前言

长久以来,开发过程中需要对 APP 进行各个方面的测量,例如启动时间、崩溃、HTTP 请求时间、控件点击时间、内存泄露、耗电等等。通常做法是插代码,打 log,或者使用一些 SDK(Bugly, acra 之类的)。这些方法要么变成满地不可维护的Log.d,搜集的数据是有一个逮一个,全凭人看。测量方法千奇百怪,测量点千变万化,手工的方法低效,不专业,不可维护,不可重用。我们发布了新版 Appetizer 带来了我们的自动监控服务。

简介

自动监控服务分为三步骤:

  1. 对一个打包好的 APK 文件进行字节码级别的插桩,实现对 APP 内一些开发者关心的程序状态进行自动测量,输出是插桩后的 APK,可以重新签名;通过基于规则的方式找插入点,比手工高效、全面(可以插桩到第三方库代码),而且在源代码里面无痕,测量逻辑和业务逻辑分离。
  2. 在测试设备上运行插桩后的 APK,经过已有的测试流程(人工、自动、回归、压测等等),自动监控服务会持续记录各种数据(到设备 SD 卡);
  3. 收集数据的数据经过上传、分析,产生问题报告。报告目前涵盖崩溃、HTTP 请求、UI 线程卡顿等,未来会更多。报告简洁但不简单,展示的是一个个 “问题”,而不是 “CPU 使用率” 这种统计量,Appetizer 报告每个问题可以定位到源代码中某个/些函数。

特色与效果

怎么用

下载 Appetizer Desktop

Appetizer 质量监控的流程图如下:

插桩

测试

分析与报告

怎么集成

我们提供了Python 命令行工具用于集成,功能与图形界面一样,使用流程:

插桩和分析包括

环境要求

用法

安装依赖

python -m pip install -r requirements.txt

帮助

python insights.py -h

确认不会有错误即依赖安装正确

login: 登录账号

python insights.py login username password

所有客户端操作均需要登录认证,执行登录后登录用 token 保存在当前 .access_token 文件。token 默认 60 天有效,使用任意操作会自动续期。60 天后 token 过期需要重新登录。

账号可在 Appetizer.io 注册。

插桩 apk

python insights.py process apk processed_apk

例如

python insights.py process my.apk my_processed.apk 

插桩需要上传、处理、下载,需要一定时间,依据网络情况与 APK 大小不同大致在 1 分钟-3 分钟内,期间会有输出表示进展情况。

安装插桩后的 APK 并授权

python insights.py install my_processed.apk -s serialno1 -s serialno2

测试

Appetizer 质量监控客户端对测试没有特别限制,可以是简单的人工测试,也可以是复杂的回归测试,测试长度不限。插桩后的 APK 会自动 log

上传 log 获取分析报告

python insights.py analyze my_processed.apk -s serialno1 -s serialno2 --clear

其他功能

python insights.py clearlog my_processed.apk -s serialno1 -s serialno2 --clear

将设备上有指定插桩后的 APK 的 log 清除

常见问答

联系与合作


↙↙↙阅读原文可查看相关链接,并与作者交流