APM : 应用程序性能管理

2011年时国外的APM行业 NewRelic 和 APPDynamics 已经在该领域拔得头筹,国内近些年来也出现一些APM厂商,如: 听云, OneAPM, 博睿(bonree) 云智慧,阿里百川码力。 (据分析,国内android端方案都是抄袭NewRelic公司的,由于该公司的sdk未混淆,业界良心)

能做什么: crash监控,卡顿监控,内存监控,增加trace,网络性能监控,app页面自动埋点,等。

=========================================================================
涉及到的技术:
gradle:TransformGradle PluginGroovy
Class:Class文件格式分析、Java虚拟机、字节码指令
Java AOP:ASM, AspectJ,Javassit ,Javapoet (ASM详解ASM4使用指南),Spring,CGLib等

待插桩代码原理,需要知道插桩点。

=========================================================================
如果想做一个apm,以上是需要学习的相关知识。大概包括6个大点,每个大的知识点了解学习。了解后在学习如何使用。

基本原理:

安卓 APM
通过修改app class字节码的形式将我们项目的class文件进行修改,从而做到嵌入我们的监控代码。编译器会将所有class文件打包称dex文件,最终打包成apk。
那么我们就需要在class编译成dex文件的时候进行代码注入。

原理就是这,但是涉及到的技术如上所述,掌握技术后对相关开源库要知道原理才可能插桩;如果想针对性做,需要对相关app深入了解。
针对大部分情况,国内的听云做的很好了。如果想要检测特定app的“逻辑性能”,那则需要定制,但是在没有基础的情况下,学习量和工作量可以自行脑补。需要的整体周期应该多久才可以。

相关文章: