Android性能测试
FPS和流畅度
FPS
1.dumpsys SurfaceFlinger –latency shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和评价流畅度
2.dumpsys gfxinfo <PACKAGE_NAME> FPS 计算方法的比较
3.dumpsys gfxinfo <PACKAGE_NAME> framestats M版本新增,测试显示性能-基于Android M 开发者预览版
流畅度(SM: SMoothness)
和丢帧相对,在VSync机制中1s内Loop运行的次数。
那些年我们用过的显示性能指标 可用腾讯GT工具
内存
1.dumpsys meminfo <PACKAGE_NAME> or <Pid>
2.procrank(/system/xbin/procrank)
3.ActivityManager的getMemoryInfo(ActivityManager.MemoryInfo outInfo) 或者 getProcessMemoryInfo(memPid)
CPU
1.dumpsys cpuinfo |grep <PACKAGE_NAME>
2.top -n 1| grep <PACKAGE_NAME>
3.cat /proc/<Pid>/stat
流量
1.cat /proc/<Pid>/net/dev wlan0那行输出
2.首先cat /proc/<pid>/status获取uid(PackageManager.getApplicationInfo("PackageName", PackageManager.GET_ACTIVITIES).uid),再cat /proc/net/xt_qtaguid/stats | grep uid。其中第6和8列为 rx_bytes(接收数据)和tx_bytes(传输数据)包含tcp,udp等所有网络流量传输的统计。
一个uid可能对应多个进程,所以这有两行流量是累加的就求和就行。
3.TrafficStats类:
获取总接受流量TrafficStats.getTotalRxBytes(),
获取总发送流量TrafficStats.getTotalTxBytes());
获取不包含WIFI的手机GPRS接收量TrafficStats.getMobileRxBytes());
获取不包含Wifi的手机GPRS发送量TrafficStats.getMobileTxBytes());
统计某一个进程的总接收量TrafficStats.getUidRxBytes(Uid));
统计某一个进程的总发送量TrafficStats.getUidTxBytes(Uid));
参考文章Android 性能测试实践(四) 流量,随手记之Android网络调试简要记录,
Android性能相关文章:Android性能优化典范 - 第1季,第2季,第3季,第4季,第5季。Android界面性能调优手册,Android UI性能优化详解。