复习:adb_02


  1. 冷启动: adb shell am start -W xxx
  2. 1. 热启动:

    back按键再次启动:

    adb shell am start -W xxx

  3. adb shell dumpsys meminfo xxx

    测试关注点:

    1. Native heap allocJIN的内存分配(代码,堆,栈);   

    2. Dalvik heap allocJava层的内存分配(虚拟机);  

    3. PSS:进程占用的实际物理内存;

    4. Heap Alloc Dalvik堆和本地堆分配使用的大小,它的值比Pss TotalPrivate Dir

  4. Monkey: 

    测1,300毫秒触发一次

    adb shell monkey -p xxx -s 1000 -v -v --pct-trackball 0 --pct-motion 5 --pct-touch 65 --pct-nav 0 --pct-syskeys 5 --pct-anyevent 10 --pct-appswitch 10 --pct-majornav 5 --ignore-crashes --throttle 300 10800 > C:\Users\DELL\Desktop\monkey_log02.txt

    2)可以打开前面准备的.bat文件监控应用内存情况

    3监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令:

       adb shell dumpsys meminfo xxx (进程名)

       如果发现内存过大,则保存HPROF文件:

    adb shell am dumpheap xxx /data/local/tmp/test.hprof<本地路径>

     4分析hprof文件

      1. 将保存好的.hprof文件pull到本地

    adb pull /data/local/tmp/test.hprof C:\Users\DELL\Desktop\test

    2. 用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件

           test目录

           hprof-conv <HPROF文件路径> <转换后的HPROF路径>

             hprof-conv test.hprof test02.hprof

     5MAT工具打开转换后的HPROF文件

       选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,有多个相同的对象,则会存在内存泄露的问题)

  5. CPU

      1. adb shell “dumpsys cpuinfo | grep xxx”

    2. top命令

    adb shell top -m 10 -s cpu   

    查看占用cpu最高的前10个程序(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)

    adb shell “top | grep xxx”

    查询某个应用的CPU占用率(如果反复进行某个操作,cpu占用过高且一直无法释放,那便可能存在风险)

    1. CPU占用
      1. 应用按Home键退到后台,不再占用系统的状态
      2. 用户正常使用app监测CPU占用率:      长时间运行监测CPU占用率
      3. 长时间运行监测CPU占用率

      4. 其他工具检测fps
      5. GPU

        测试方法:打开设置->开发者选项->调试GPU过度绘制

        1.  GPU过渡渲染不同的颜色代表不同的绘制程度

          1. 原色:无过渡绘制

          2. 蓝色:绘制一次 (理想状态)

          3. 绿  色:绘制二次

          4. 浅红:绘制三次 (可以优化)

          5. 深红:绘制四次 (必须优化)

        应用所有界面以及分支界面下,3X过度绘制总面积(浅红色区域)不超过屏幕可视区域的1/4

      6.  电量 

        adb shell dumpsys battery 

        重置电池数据收集数据 

        adb shell dumpsys batterystats --enable full-wake-history

        adb shell dumpsys batterystats --reset

        获取整个设备的电量消耗信息:

        adb shell dumpsys batterystats | more

        获取某个apk的电量消耗信息:

        adb shell dumpsys batterystats xxx | more

        手机的电池信息:

        adb shell dumpsys battery

        1. 关注点:

        字段值:

        Current Battery Service state

        AC powered: false

        USB powered: true

        Wireless powered: false

        statuS:24电池状态:2:充电状态,其他数字为非充电状态

        health:24电池健康状态:只有数字2表示qod

        present:true电池是否安装在机身

        leve1:88电量:百分比

        scale: 100

        voltage:4225电池电压

        current now: 350

        temperature:340#电池温度,单位是0.1摄氏度

        amoient-temperature 0

        technology::L1-po1y#电池种类

相关