Android 性能监控系列一(原理篇)

  1. 首先在客户端(Android、iOS、Web等)采集数据;
  2. 接着将采集到的数据整理上报到服务器;
  3. 服务器接收到数据后建模、存储、挖掘分析,让后将数据可视化,供用户使用。

如下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们介绍的 Android APM 框架其实就是在 Android 平台上应用的一个数据采集上报 SDK。主要包含三大模块:

  1. 数据采集
  2. 数据存储
  3. 数据上报

其中数据采集是整个 APM 框架的核心。

数据采集我们可以通过手动埋点的方式,但这种方式工作量巨大、不灵活,而且无法覆盖到所有场景;因此只能通过自动化的方式来采集数据。在应用构建期间,通过修改字节码的方式来进行字节码插桩就是实现自动化的方案之一。

三. Android 打包流程及字节码插桩原理

在谈字节码插桩的原理之前,首先我们看看 Android 的打包流程,如下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从上面这张打包流程图我们可以看到,一个 App 的所有 class 文件,包括第三方的 class 文件都会经过 dex 的过程打包成一个或者多个 dex 文件。

这其中涉及到两个很关键的环节:

  1. javac:将 .java 格式的源代码文件编译成 class 文件;
  2. dex: 将 cla
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值