无论是我们fix一些第三方依赖库,还是去做一些比如热修复,插件化等的时候,都会涉及到代码插桩
包括的知识点:
- Java字节码的组成(基本了解即可)
- ASM如何操作字节码(流程和关键方法)
- Android的打包过程,包括资源打包,代码打包,apk签名等流程,需要大体上了解清楚
- Gradle的构件流程和知识,包括新版的gradle的api
- Gradle+ASM实现一个简单的插桩,比如耗时方法统计,或者是页面驻留统计
- 学习使用apktool,dex2jar以及JD-GUI,它们是用来怼插桩效果进行验证的
- 学习Github上优秀的ASM插桩框架。比如一些热修复框架,插件化框架等,比如AutoRegister等