【腾讯开源】Android性能测试工具APT使用指南
【腾讯开源】Android性能测试工具APT使用指南
- 2014-04-23 09:58
- CSDN CODE
- 作者 CSDN CODE
- 17
- 7833
我们近日对腾讯的安卓平台高效的性能测试工具APT团队进行了专访。APT,Android Performance Testing Tools,适用于开发自测和定位性能瓶颈,帮助测试人员完成性能基准测试、竞品测试。

APT提供了CPU利用率实时曲线图、多维度内存实时曲线图,方便竞品对比测试和定位内存泄露问题;支持进程内存构成分析,支持手工或超过阈值时自动转储(Dump)详细堆内存对象信息,支持多进程,支持生成和导出常用格式的的日志图表。
APT相比同类工具,具有下面2大特性:
- 使用Java语言开发,基于Eclipse,跨平台,支持windows、Linux和MAC;
- 支持同时监控多个进程。
那如何高效利用APT工具呢?现在,我们为大家准备了从安装部署到开启APT各重要功能的介绍资料,方便大家参考。
APT源码地址:https://code.csdn.net/Tencent/apt
欢迎大家进行建立分支和提交更改。
一、安装部署
我们只需要将下载的APT_Eclipse_Plugin.jar文件( 前往CSDN CODE下载)放到Eclipse安装目录下的plugins文件夹下,然后重启Eclipse即可。选择“Eclipse工具栏Window - Open Perspective - Other”,选择APT,即可启动APT透视图。
提示:我们需要提前安装ADT插件。如果是升级安装,可能需要在启动Eclipse的快捷方式中添加“-clean”参数,清除插件的缓存信息。
二、CPU与内存检测
1. “设置”视图简介
首先,我们对“设置”视图的各标签页进行简单介绍:
- 首选页:控制当前的测试内容;
- CPU:可设置采样间隔、CPU占有率的采集方法;提供top和dumpsys cpuinfo两种方式;jiffies统计开关,可以精确量化CPU时间片消耗,适用于待机功耗测试;
- 内存:可设置采集间隔、自动转储(Dump)内存快照开关、自动转储(Dump)内存快照阈值;可设置内存类型曲线显示开关,此项在测试过程中可动态调整。

2. 启动CPU与内存检测
- 在“设置”视图的“首选项”选项卡中选择监测项:CPU或内存;
- 点击“进程列表”视图右上角的刷新按钮,获取手机上的正在运行进程列表;
- 在进程列表中双击或者右键添加要测试的进程(支持多选);
- 点击“开始”按钮,即可启动监测。
3. 生成统计表格
在CPU、内存视图右边的统计表格中会实时统计CPU、内存和jiffies等三个统计项的最大值、最小值、平均值和增量等统计数据。如下图所示:

三、获取内存快照
获取内存快照的方式有2种,一种是手动方式,一种是自动获取。
1. 手动获取内存快照:在进程列表中右键点击被测应用进程,选择“Dump Hprof”。
2. 自动获取内存快照:在“设置”视图的“内存”选项卡中选择开启Dump Hprof功能。设定内存阈值后,启动内存监测。

当被监控的进程内存超过设定的阈值后,会自动保存当前进程的内存快照hprof文件。内存快照.hprof文件保存在用户根目录\APT\log\hprof 目录下,用Memory Analyzer(MAT)打开分析。

四、进程列表视图
1. 开启进程列表视图
本视图包括的选项有:
- 开始/暂停按钮:控制测试的开始和暂停。
- 刷新按钮:更新手机的状态以及手机上的进程列表。
- 打开log:打开APT生成的log,重新生成曲线图。
- 打开log存放的文件夹。

2. 被测进程列表
- 支持手动输入进程名添加到被测进程列表的方式,当测试某个进程的启动过程时会很有用,因为开始的时候该进程并不存在。
- 双击或者右键删除被测的进程。
- 被测进程左侧的复选框,用于控制测试过程中要显示的进程曲线。
3. 运行进程列表
- 展示手机上运行的进程列表,双击或者添加到被测进程列表。
- 右键的上下文菜单:支持手动转储(DUMP)内存快照、GC、获取PMAP文件等功能。

4. 进程内存构成分析
获取快照:在进程列表中右键点击被测应用进程,选择“PMAP”,内存快照保存在: 用户根目录\APT\log\目录下的“包名_pid_pmap_时间戳.txt”。
查看快照:点击Eclipse工具栏Windows-》ShowView-》other,选择APT视图PMAP, 在PMAP视图中点击打开快照文件。


可以同时选择2次内存快照打开,会计算增量内存的占比,如下图。可以发现两次快照间被测应用释放了21M的匿名内存映射。

五、注意事项
下面是使用APT工具过程中需要主要的几点内容,为您提示下:
- APT中的DumpHprof和GC功能由于用到了DDMLIB的功能,所以有两个限制;
- 确保手机系统或者被测应用是可调试的;
- DDMLIB不允许同时有多个工具获取被调试手机上的进程信息,所以如果想用APT的这两个功能,最好把Eclipse的透视图切换到APT,然后重启Eclipse;
- 获取PMAP文件需要root权限,并且需要默认root。如果进入adb shell默认不是root权限,可以优先执行adb root即可;
- 最好将adb路径加入到path中;
- Eclipse需要安装ADT插件。
APT源码地址: https://code.csdn.net/Tencent/apt,欢迎前往项目讨论组进行讨论。(文/王子殿下)
本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)
【腾讯开源】Android性能测试工具APT使用指南的更多相关文章
- Android性能测试工具APT使用指南
腾讯的安卓平台高效的性能测试工具APT(Android Performance Testing Tools),适用于开发自测和定位性能瓶颈,帮助测试人员完成性能基准测试.竞品测试. APT提供了CPU ...
- Emmagee——开源Android性能测试工具
工具:Emmagee作者:孔庆云 网易(杭州)质量保证部 开源地址:https://github.com/NetEase/Emmagee Wiki:https://github.com/NetEase ...
- Emmagee—开源Android性能测试工具
下载:https://github.com/NetEase/Emmagee/releases/download/V2.5/Emmagee.apk 1.Emmagee——Android性能测试工具 Em ...
- Android性能测试工具APT
APT源码地址:https://code.csdn.net/Tencent/apt APT,Android Performance Testing Tools,适用于开发自测和定位性能瓶颈,帮助测试人 ...
- 腾讯优测优分享 | Android性能测试工具化实现
腾讯优测专业的移动云测试平台,自动化测试提供性能测试数据,云真机实时输出性能数据,让测试更简单! 1.Android性能测试介绍 提到Android性能测试,我们总免不了俗地要首先介绍下Android ...
- 2014 非常好用的开源 Android 测试工具
http://www.php100.com/html/it/mobile/2014/1015/7495.html 当前有很大的趋势是转向移动应用平台,Android 是最广泛使用的移动操作系统,201 ...
- android性能测试工具
Android性能测试工具Emmagee介绍 Emmagee介绍 Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具.该工具的优势在于如同windows系 ...
- Android性能测试工具(一)之Emmagee
Android性能测试工具(一) 之Emmagee Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emm ...
- 开源多线程性能测试工具-sysbench
导读 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL.本文主要演示Mysql测试 ...
随机推荐
- Redis安装与基本配置(转)
一.下载与安装 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar -zxvf redis-3.0.0.tar.gz -c /u ...
- WAP页面点击与hover延迟解决之道
最近一直在WAP端页面的开发,一直都知道wap端点击相关问题存在延迟.之前做的网页大部分使用a链接进行,一直未入此坑. 最近做的一个WAP网站,各种点击,hover事件,如果使用PC端网页的做法,直接 ...
- 王立平-NGUI
NGUI: UI插入 UI : 人机交互界面 UI大部分是2D 眼下就我们总结这些.也许会增加 版权声明:本文博主原创文章,博客,未经同意不得转载.
- (大数据工程师学习路径)第一步 Linux 基础入门----数据流重定向
介绍 开始对重定向这个概念感到些许陌生,但通过前面的课程中多次见过>或>>操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中.这其实就是重定向,将原本输出到标准输出的数 ...
- Systrace
在构造函数,修复bug.完成代码后,你应该花一些时间来专注于应用性能.应用视频像素和运行的运行速度和流畅度影响用户体验. Android应用执行在一个共享资源的环境中,你的应用的性能会 ...
- 【关节点+桥】关节点和桥模板 Tarjan
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; con ...
- Entity Framework 6.1
Entity Framework 6.1-Code First Code First-代码优先,先创建好领域模型.根据... 2014-04-21 14:56 阅读(6858) 评论(0) Ent ...
- jQuery.extend()方法和jQuery.fn.extend()方法
jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例, ...
- 跳水Hibernate(一)实例解说
此语一与高二接触SSH三框架,但是,当能力有限.我们没有继续下行.今天,我们正在采取的优势Java金痴迷,随即再次上调,另一项研究SSH.让我们先从SSH中间Hibernate说起. 或许你会问.为什 ...
- Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds解
产生了一个解决这个问题的方法是在项目部署到tomcat比长45第二,当项目是比较大的,框架复杂的问题经常发生. 解决方法非常easy,找到以下这个路径中 workspace\.metadata\.pl ...