基础知识
随着技术层面的不断知识积累,你会发现,无论是 Dagger、ButterKnife 这些APT(Annotation Processing Tool)注解生成框架,还是新兴的Kotlin语言编译器,均用到了一种技术-编译插桩。编译插桩技术很有意思,也很有价值,掌握其之后,可以完成一些其他技术很难实现或者无法实现的任务。因为我们可以通过它随心所欲地操控代码,满足不同场景的需求。
下面看一下编译插桩技术都在哪些应用场景用到:
应用场景
代码生成
通过在编译过程生成代码,可以让代码隐藏复杂的内部实现,让开发可以更加聚焦于业务场景,而且也减少了手工重复的劳动量,降低出错可能性
代码监控
我们可以通过编译插桩技术实现对网络以及耗电量的监控,当然也包括其他各式各样的性能监控。
代码修改
在没有第三方库的源码情境下,编译插桩可以让我们无障碍实现内部代码的修改,比如函数奔溃,可以实现try catch捕获。当然也可以通过代码修改实现无痕埋点。这里都有案例输出。
代码分析
通过编译插桩技术可以实现自定义代码检查功能,事实上一些第三方代码检查工具也是使用的编译插桩技术来实现的,比如:Findbugs