博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
APT使用指南
阅读量:4029 次
发布时间:2019-05-24

本文共 1692 字,大约阅读时间需要 5 分钟。

一、安装部署 

我们只需要将下载的APT_Eclipse_Plugin.jar文件放到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 目录下,用打开分析。 
四、进程列表视图 
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插件.

转载地址:http://ufhbi.baihongyu.com/

你可能感兴趣的文章
C/C++中关于动态生成一维数组和二维数组的学习
查看>>
系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
查看>>
JVM最简生存指南
查看>>
漂亮的代码,糟糕的行为——解决Java运行时的内存问题
查看>>
Java的对象驻留
查看>>
自己动手写GC
查看>>
Java 8新特性终极指南
查看>>
logback高级特性使用(二) 自定义Pattern模板
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
可扩展、高可用服务网络设计方案
查看>>
如何构建高扩展性网站
查看>>
微服务架构的设计模式
查看>>
持续可用与CAP理论 – 一个系统开发者的观点
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
c++指针常量与常量指针详解
查看>>
c++字符数组和字符指针区别以及str***函数
查看>>
c++类的操作符重载注意事项
查看>>
c++模板与泛型编程
查看>>
STL::deque以及由其实现的queue和stack
查看>>
CS4344驱动
查看>>