• 郭威
    2018-12-19
    问一下作者那个fork获取线程堆栈的方式说的太笼统了,有小demo么

    作者回复: 先留时间给大家实现,后续看情况要不要放出来

    
     6
  • 1874
    2019-05-16
    老师好,通过breakpad方案获取native堆栈时能关联上java层的堆栈吗?thread id是对应不上的。根据threadname?c层子线程要是没命名应该会有很多重复吧,期待老师解答

    作者回复: native堆栈对应不上java线程的堆栈的,线程id 也是对应不上的,java的堆栈是独立在虚拟机里的和native执行的堆栈对应不上,那个只能对应到虚拟机的执行栈

    
     2
  • Sean
    2018-12-23
    文中说明的 " 需要注意的是在 Android 7.0 之后,getAllStackTraces 是不会返回主线程的堆栈的",我在8.0和8.1的系统下Java 层通过代码测试过,发现主线程的stacktrace实际上是可以得到的。不知所述结论是如何得到的?

    作者回复: 这里笔误了,应该是Android 7.0,没有之后。我后面改一下

    
     2
  • 李鑫鑫
    2018-12-18
    感觉我在浪费生命!每天写view!原来安卓还有这么好玩的东西!
    
     2
  • 小美
    2018-12-18
    绍文老师 ,android 系统里面没有 jstack 要如何dump 出 thread 信息呢?麻烦老师指导下~
    
     2
  • Geek_2d38e3
    2019-07-18
    张老师,请教一下,黑科技手机线程堆栈那个方案,我成功调用了DumpState函数,但是函数执行完毕后,传入的std::ostream里面没有内容,您有遇到过这种情况吗?

    作者回复: 需要慢慢调试一下哈,是可以实现的

    
     1
  • Fred
    2018-12-25
    老师好,在应用开发时发现同一个方法,拥有相同的输入参数,在不同的Activity里面执行的耗时会不一样。对于这个问题应该从那些角度去分析呢?

    作者回复: 通过第七章systrace的方法可以分析具体的差异情况

    
     1
  • X
    2018-12-18
    老师好,工作中的确遇到过类似开篇描述的卡顿现场,只不过当时是操作一个三方数据库,主线程里初始化了数据库有关的实体对象,然后又进行了数据库异步查找,结果ANR. 查看源码发现,两个操作都用的该数据库核心类的类锁,导致主线程一直等待子线程是释放锁。这个不是线上的,是线下的,所以查找很快,解决方式是把把异步查找用handler post了一个runnable去操作,确保主线程初始化该数据库的操作在这个异步查找之前,即先得到锁。
    所以这里顺便问下:
    1.上述线程抢占导致的ANR处理方法是否妥当?
    2. 文中说到SIGQUIT性能差,那个不是模仿系统ANR机制么 ,而那个黑科技黑科技也是模仿ANR日志打印,为何就比前者好呢?
    3.另外想问下那个文中提到的抽样是客户端控制还是服务端控制的啊?
    展开

    作者回复: 1. 数据库要case by case
    2. Sigquit是卡在当前进程操作,黑科技是卡在子进程操作
    3. 服务端

    
     1
  • Jerry银银
    2020-02-08
    获取线程堆栈时,文中提到:“需要注意的是在 Android 7.0,getAllStackTraces 是不会返回主线程的堆栈的”,那在Android 7.0上,该如何做呢?
    
    
  • Tony
    2019-11-14
    老师我想问下应用自己不适用JNI层代码去fork子进程,使用android上层框架,比如java或者Kotlin语言的api如何fork应用的子进程出来,网上也看了一些,都是通过JNI层c++代码去fork的
    
    
  • 薯条
    2019-09-22
    学习了,坚持打卡,走完整个课程
    
    
  • 朱刚
    2019-09-22
    案例的最终解决方案呢
    
    
  • 1874
    2019-03-27
    老师好,在native层hook子进程获取java堆栈的Demo能放出来吗?期待

    作者回复: 主要是通过Hook跟日志,定位是哪些view的问题

    
    
  • catkin
    2019-02-22
    张老师,文中说的fork进程收集,但是在高版本中好像fork出来的进程不能执行啊!

    作者回复: 什么意思?fork机制在很多场景都有使用,android系统也是这样。

    
    
  • sjx
    2019-01-05
    项目中使用的lottie,CPU占用非常高,大家有什么解决方案吗?

    作者回复: 需要进一步拆解下去具体的原因,是哪些步骤耗时

    
    
  • Juinn
    2019-01-01
    shaowen老师,课后作业中,hook线程的创建,为什么只有在sample进程有效,so库不是共享的吗

    作者回复: plt hook只能hook本进程的,对其他进程是无效的

    
    
  • Juinn
    2019-01-01
    shaowen老师,此章节的例子是基于有卡顿树情况下,再去分析,那么这个卡顿树怎么获取?

    作者回复: 收集卡顿堆栈,然后在后台根据堆栈聚合得到的

    
    
  • Geek_295233
    2018-12-24
    实践见真理,开阔了视野
    
    
  • 欧哩給
    2018-12-20
    老师,关于Android的内存管理与GC,有推荐的书籍或者博客吗?
    
    
  • 废帅
    2018-12-19
    现在学的还是糊涂的,先坚持打卡吧
    
    
我们在线,来聊聊吧