后面我会通过一系列的文章来介绍 APM 的原理、框架设计与实现等等。本篇就是这个系列的第一篇,主要从实现原理方面来介绍 APM。按照目前的计划,这个系列大致会从如下几个方面来展开:
- 原理篇:主要介绍 APM 的实现原理;
- 设计篇:介绍整个 APM 框架设计;
- 实现篇-Gradle Plugin:介绍 Gradle 插件在 APM 项目中的应用,以及如何开发一个 Gradle Plugin;
- 实现篇-Javassist/ASM:Javassist、ASM 等字节码操作库的介绍,以及如何使用它们在编译时插入代码来采集各项性能数据;
- 实现篇-数据存储及上报:介绍 APM 框架的存储上报机制及实现过程;
- 发布集成:最后会介绍如何将库发布到 jCenter() 以及如何在生产项目中集成。
这里要向大家交代一点是,之前的文章为了极力做到将复杂的问题用通俗易懂的方式解释清楚,又要面面俱到,往往篇幅过长;诸如之前写过的RxJava系列6(从微观角度解读RxJava源码) 、神兵利器Dagger2 、安居客 Android 项目架构演进 、Android 模块化探索与实践 、写给 Android 应用工程师的 Binder 原理剖析等文章,篇幅通常都在 8000~