关于提前异步类加载
来源:3-12 启动优化其它方案

全是甘货
2019-03-01
老师,你在课程里面提及,初始化优化手段,还包括可以提前加载异步类,方法是重写ClassLoader并让其具备打印类加载时类名的能力,从而得到异步类有哪些,提前加载它们。
第一,是否有相关文章谈及怎么改写和适配这个ClassLoader从而达到上述目的。
第二,请问提前是提前到什么时候呢?
写回答
1回答
-
同学你好!
第一个问题:Hook掉系统的ClassLoader需要稍微具备点Java hook的知识,实际上就是反射重新设置值即可。这里给你找了篇文章你可以看下,有hook掉系统classloader的代码,还是比较好做的,而且和native hook不同,这个hook的兼容性问题非常少。https://www.cnblogs.com/ZhangXiangQian/p/5386029.html
第二个问题:只要Multidex完成之后就可以异步类的加载了,不能在Multidex之前做是因为Multidex之前非主Dex的class还没有被加到classloader中,去访问的话肯定是会报错:ClassNotFound!
182019-03-03
相似问题