Android性能测试数据收集(全)

本文详细介绍如何在Android环境下监测应用的性能指标,包括获取用户PID、UID、内存使用情况、流畅度、流量消耗以及CPU占有率等关键信息。同时,提供ADB命令获取设备内存、指定包名占用内存及CPU占用率的方法。

获取用户PID

1、SDK版本大于26

       1.找出所属pid

              命令:ps  -A|grep packageName(WINDOWS环境下将grep替换成findstr),下图第二列数据即为 PID

2、SDK版本小与26:ps  |grep packageName(跟上面方法类似 )

 

获取用户UID

命令: dumpsys package packageName|findstr userId

Android环境下获取内存

通过ActivityManager获取对应PID占用的内存

ActivityManager mAm = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

MemoryInfo[] memoryInfoArray = mAm.getProcessMemoryInfo(pids);

MemoryInfo pidMemoryInfo = memoryInfoArray[0];

value[0] = pidMemoryInfo.nativePss;

value[1] = pidMemoryInfo.dalvikPss;

value[2] = pidMemoryInfo.getTotalPss();

Android环境下获取流畅度

Choreographer.getInstance().postFrameCallback(
       new Choreographer.FrameCallback(){
              @Override
              public void doFrame(long frameTimeNanos){    
                            //每次绘制都加1
                            result+=1;
		}
       }
)
//上面这个方法需要不停调用
//计算公式:   流畅度=( result*1000)/采集间隔周期(单位ms)

Android环境下获取消耗的流量

获取上传流量

TrafficStats.getUidTxBytes(pid)

获取下载流量

TrafficStats.getUidRxBytes(pid)

 

ADB命令获取内存

获取设备总内存命令:adb shell cat /proc/meminfo |findstr MemTotal

获取指定包名占用内存: adb shell dumpsys meminfo pakagename

获取指定包名内存方式二:adb shell top  -n 1 |findstr packageName   (部分机型包名结尾会显示+导致无法匹配 )

 

获取CPU占有率的方法

1.获取指定pid的CPU开始执行前占用时间

       命令:adb shell cat /proc/pid/stat  (如果文件不存在,则说明该进程不是Android系统维护,无法获取对应CPU)

   startProcessCpu =24446+10320;

2.获取总的CPU开始执行前占用时间

       命令:adb shell cat /proc/stat

 startCpu=9096266+....323086+0+0+0;

3.休眠1秒

4.再次执行步骤1、2

  endProcessCpu=步骤1;

  endCpu =步骤2;

5.最后取得CPU占用率公式如下:

((endProcessCpu-startProcessCpu)/(endCpu-startCpu))*100

6.进程的jiffies数为:startProcessCpu

 

流量

1、下载流量

       命令: adb shell cat /proc/net/xt_qtaguid/stats |grep -E "uid"

第6列数据即为下载流量(这里需要将LO(本地)的流量排除掉)

2、上传流量

       命令: adb shell cat /proc/net/xt_qtaguid/stats |grep -E " uid"

第8列数据即为下载流量(主要需要将LO(本地)的流量排除掉)

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值