Android性能自测

目录

一、应用启动耗时自测

二、帧率查看

三、Top命令查看系统资源占用

3.1 第一行:任务(进程)

3.2 第二行:mem状态

3.3 第三行:swap交换分区

3.4 第四行:cpu状态

3.5 第五行:标题

四、抓取trace.html文件分析

4.1 使用Android Monitor工具

4.2 使用adb shell atrace命令

4.3 使用systrace.py命令

五、抓取log分析

5.1 设置日志缓冲大小

 5.2 打印crash日志

 5.3 打印常规日志

 5.4 打印内核日志

 5.5 打印非内核log

  5.6 打印bugreport

  5.7 打印服务

  5.8 打印surfaceFlinger

  5.9 打印window


一、应用启动耗时自测

        adb shell am start -W 包名/类名

1)TotalTime自己的所有Activity的启动耗时。

2)WaitTime应用进程的创建过程 + TotalTime。

        冷启动一般参考TotalTime

二、帧率查看

        adb shell "dumpsys SurfaceFlinger --dispsync |grep mPeriod

        目前系统状态是60帧 ,暂无掉帧状态。

三、Top命令查看系统资源占用

  1. adb shell 进入设备;
  2. 输入 top 即可实时刷新系统资源占用情况,如下图。

3.1 第一行:任务(进程)

  • 537 total:系统现在共有537个进程
  • 1 running:有1个运行中的
  • 501 sleeping:有501个休眠的
  • 0 stopped:有0个stoped状态的
  • 2 zombie:有2个zombie(僵尸)状态的

3.2 第二行:mem状态

  • 3805444k total:物理内存总量
  • 3701864k used:使用中的内存总量
  • 103580k free:空闲内存总量
  • 1936k buffers:缓存的内存量

3.3 第三行:swap交换分区

  • 2293756k total:交换区总量
  • 308136k used:使用的交换区总量
  • 1985620k free:空闲交换区总量
  • 2097388k cached: 缓冲的交换区总量

可用内存数 = Mem的free + Mem的buffers + Swap的cached
所以此台Android设备可用内存数 = 103580k + 1936k + 2097388k= 2,202,904k(约2.2G)

3.4 第四行:cpu状态

  • 800%cpu : CPU总量
  • 10%user: 用户空间占用CPU的百分比
  • 0%nice: 改变过优先级的进程占用CPU的百分比
  • 13%sys: 内核空间占用CPU的百分比
  • 777%idle : 空闲CPU百分比
  • 0%iow : IO等待占用CPU的百分比
  • 0%irq: 硬中断(Hardware IRQ)占用CPU的百分比
  • 0%sirq : 软中断(Software Interrupts)占用CPU的百分比

3.5 第五行:标题

  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS
  • PID: 进程id
  • USER: 进程所有者
  • PR: 进程优先级
  • NI: nice值。负值表示高优先级,正值表示低优先级
  • VIRT: 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  • RES: 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  • SHR: 共享内存大小,单位kb
  • S: 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  • %CPU: 上次更新到现在的CPU时间占用百分比
  • %MEM: 进程使用的物理内存百分比
  • TIME+: 进程使用的CPU时间总计,单位1/100秒
  • ARGS: 进程名

四、抓取trace.html文件分析

4.1 使用Android Monitor工具

        Monitor工具目录一般在SDK目录的SDK\tools\monitor,基本很少用,Monitor也存在一些兼容问题。

4.2 使用adb shell atrace命令

adb shell "atrace gfx input view wm am sched load idle freq -b 20480 -t 5" > path

        生成的为文本文档,还需要使用systrace.py命令转换为.html:systrace.py --from-file=path。

4.3 使用systrace.py命令

        systrace.py脚本相当于整合了atrace命令,电脑需要配置python运行环境,systrace.py路径在SDK目录的\platform-tools\systrace\systrace.py。

        具体步骤:

  1. 连接设备并adb root;
  2. 切换到system.py文件路径下:cd C:\My Program Files\Android SDK\platform-tools\systrace;
  3. 执行命令,生成html文件:python systrace.py -t 10 gfx input view wm am res rs sched freq idle dalvik -o D:\test\trace.html;
  4. 直接在google浏览器中打开html即可。(如无法打开trace文件,可尝试如下操作:在chrome地址栏中输入”chrome:tracing”,然后点击load按钮load你的trace.html文件。)

 

五、抓取log分析

5.1 设置日志缓冲大小

adb shell logcat -g  setprop persist.logd.size 4M

 5.2 打印crash日志

adb shell logcat -b crash

 5.3 打印常规日志

adb shell logcat > C:\Users\tianbinbin\Desktop\log.txt

 5.4 打印内核日志

adb shell cat /proc/kmsg > C:\Users\tianbinbin\Desktop\kernel.log

 5.5 打印非内核log

adb logcat -b main -b system -b radio -b events -v time > C:\Users\tianbinbin\Desktop\all_user.log

  5.6 打印bugreport

adb bugreport

  5.7 打印服务

adb shell service list packages |grep Notification

  5.8 打印surfaceFlinger

adb shell dumpsys SurfaceFlinger > C:\Users\tianbinbin\Desktop\111.txt

  5.9 打印window

adb shell dumpsys window > C:\Users\tianbinbin\Desktop\222.txt

 


目录

一、应用启动耗时自测

二、帧率查看

三、Top命令查看系统资源占用

3.1 第一行:任务(进程)

3.2 第二行:mem状态

3.3 第三行:swap交换分区

3.4 第四行:cpu状态

3.5 第五行:标题

四、抓取trace.html文件分析

4.1 使用Android Monitor工具

4.2 使用adb shell atrace命令

4.3 使用systrace.py命令

五、抓取log分析

5.1 设置日志缓冲大小

 5.2 打印crash日志

 5.3 打印常规日志

 5.4 打印内核日志

 5.5 打印非内核log

  5.6 打印bugreport

  5.7 打印服务

  5.8 打印surfaceFlinger

  5.9 打印window

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值