Tencent / Shadow

零反射全动态Android插件框架
BSD 3-Clause "New" or "Revised" License
7.36k stars 1.29k forks source link

首次安装耗时较长 #1336

Open chy116449859 opened 6 days ago

chy116449859 commented 6 days ago

我们有个Android9的设备,首次安装+启动耗时非常久 installPlugin()方法耗时2.096s, loadPluginLoaderAndRuntime()耗时10.579s, getLoadedPlugin()耗时0.003s, loadPlugin()耗时22.128s, 这个过程中这2个方法为什么耗时这么久?有没有什么优化的建议?

我们也测试了多个其他型号的手机和定制化的设备,表现不一,有的手机比较快,整个流程1-2s,有的手机也有10s左右。 IMG20240627173454

shifujun commented 6 days ago

既然确实不同手机有快有慢,这个优化肯定要针对不同手机来做了。所以分析这个问题并不容易。可能影响比较大的还是磁盘I/O。如果你定位到具体某个方法确实慢,咱们可以一起考虑下怎么优化,比如之前有优化过加载宿主类的白名单的匹配。

按已有的经验,最有效的手段是预加载。在用户触发任何插件的功能前,提前主动执行完插件的application onCreate。尽可能让插件处于就差显示界面这一步了。如果插件还有什么方法可以提前执行,也要提前做。

chy116449859 commented 6 days ago

我们还在定位更细致的方法耗时,之前有没有其他开发者反馈该类问题呢,是否有借鉴的方法可以分享?