android 线程使用监控思路分享

时间:2025-03-30 09:53:09

Java线程Hook

使用SandHook监控Thread#start()函数的调用
/ganyao939543405/article/details/86661040

问题:
如果是线程池,则得到调用start方法的堆栈没有意义。

需要hook Runnable的run方法

Native线程Hook

使用XHook监控pthread_create方法的调用

导出堆栈信息

hook到线程启动动作之后,需要导出堆栈信息,分析堆栈信息能够知道启动线程的动作来自于哪个业务模块。

问题

因为java的线程最后也是走到native的pthread_create方法,所以hook到pthread_create方法后,还需要区分,如果是java线程,则pass掉,只处理native代码调用到pthread_create的那部分。