Carlyle-Lee

Results 9 comments of Carlyle-Lee

能提供下完整的报错信息吗? 这个类在debug 下,是在包内的。在release 下,不应该被引用到。 麻烦确定下,你是在 release 下报错,还是在debug 下报错。

我再次验证了下 1.2.3 版本,没有这个启动崩溃问题。 你给的崩溃日志不全,暂时无法定位具体问题。 目前最新版本 1.2.4 做了些优化,fix 了一些问题 ,可以尝试下。 如果还有问题,临时创建了一个qq 群,可以交流: 1126680883

hi, 目前抓包功能是hook 实现的。搜索下yhook。 如果已经接入yhook,可以打开下lens sp 功能,输入关键字 hook ,看看hook 开关是否被关闭了。 因为art hook 方案稳定性问题,可能对一些设备的支持不够友好。

目前的任务分析:是基于ART method hook。(hook 的实现在另外的项目中)。在抓取到任务的时候同时记录了线程名字 线程id & 线程创建位置信息。 现在在hook 到一个任务被执行的时候,执行了一个解释器回调。这个回调开放给业务方面,用于解释这个任务是什么,从而定位到是什么任务在执行。 如果没有解释器,那么就展示当前的对象toString,如果这个对象的类是一个匿名内部类,那么就可以直接定位到代码实现位置。 LensTrace 的主要功能就是一键分析,发现阶段内任务耗时点,发现任务调度问题,通过解释器进一步分析具体耗时问题,进而解决问题。 功能还在进化中。未来有时间可以继续分享出来。

看起来还是hook 描述文件的问题。从你说的异常信息上看,是没有找到对应的类。可能你那边的hookmain 版本比较早,很久没有维护了。android 11 and highter 可能存在反射找不到方法的问题。 你可以参考 hook 方案 原著修复下这个问题。 新方案中也可以直接动态hook 了。

> Task中执行例如网络请求任务,在一定时间后完成网络请求任务,是否存在手动调用该任务完成的API呢? 看文档打log仅有顺序场景,无异步回调场景,如何实现FIFO的网络请求等场景呢? TM是支持任务依赖的。通过给任务设定一个id,一般这个id可以在ids.xml中申明。不同模块中,申明同样的id 值即可。 参考TM.executeSync 这个API可以强制任务执行。

有的。TaskManager.getInstance().registerXXX 这里可以注册任务执行状态的回调。

> 使用runable操作,不会内存泄漏吗? TM 内部有队列维护任务列表,当任务执行完成后,就会彻底从TM内部移除。 对于因为依赖条件一直没有执行的任务,如果持有了某些已销毁页面的context,是存在内存泄漏风险的。TM提供了API批量移除一些列任务。可以在退出页面的时候,显式的把这些任务移除掉。