美文网首页
adb命令大全

adb命令大全

作者: XX杰 | 来源:发表于2020-10-21 19:59 被阅读0次

获取应用包名和Actively:
adb shell dumpsys window | findstr mCurrentFocus
检查内存情况
adb shell dumpsys meminfo packageName
查看单个应用最大内存限制,
输入命令:getprop|grep heapgrowthlimit 得到结果该机型为192M。dalvik process 超过就会抛OOM异常


image.png
Native Heap:Native代码分配的内存,虚拟机和Android框架分配内存。
关于什么是Native代码,即非Java代码分配的内存。详细介绍请找百度。
Dalvik Heap:Java对象分配的占据内存
Dalvik Other:类数据结构和索引占据内存
Stack:栈内存
Ashmem:不以dalvik- 开头的内存区域,匿名共享内存用来提供共享内存通过分配一个多个进程可以共享的带名称的内存块。匿名共享内存(Anonymous Shared Memory-Ashmem。Android匿名共享内存是基于Linux共享内存的,都是在tmpfs文件系统上新建文件,并将其映射到不同的进程空间,从而达到共享内存的目的,只是,Android在Linux的基础上进行了改造,并借助Binder+fd文件描述符实现了共享内存的传递。
Other dev:内部driver占用的内存
.so mmap  C库代码占用的内存
.jar mmap  java文件代码占用的内存
.apk mmap apk代码占用的内存
.ttf mmap  ttf文件代码占用的内存
.dex mmap  dex文件代码占用内存。类函数的代码和常量占用的内存,dex mmap是映射classex.dex文件,Dalvik虚拟机从dex文件加载类信息和字符串常量等。Dex文件有索引区和Data区
Other mmap  其它文件占用的内存

Heap Size:Dalvik Heap总共的内存大小
Heap Alloc:所有应用实例分配的内存,包括了应用从zygote共享分享的内存

测试cpu情况
top -m -s cpu |grep packageName
应用帧率
adb shell dumpsys gfxinfo packageName
耗电量
adb shell dumpsys batterystats |grep packageName

CPU adb shell dumpsys cpuinfo
帧率 adb shell dumpsys gfxinfo
显示 adb shell dumpsys display
电源 adb shell dumpsys power
电池状态 adb shell dumpsys batterystats
电池 adb shell dumpsys battery
闹钟 adb shell dumpsys alarm
位置 adb shell dumpsys location

三、CPU
CPU测试,主要关注的是cpu的占用率。很多时候,我们玩手机时,会出现发热发烫,那是因为CPU使用率过高,CPU过于繁忙,会使整个手机无法响应用户,整体性能降低,用户体验就会很差,也容易引起ANR(application not responding, 主线程(UI线程)如果在规定时内没有处理完相应工作,就会出现ANR)等等一系列问题。

测试点:
1).在空闲时间(切换至后台)的消耗,基本没大应用使用cpu
2).在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况
3).在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)

具体场景:
1、应用空闲状态运行监测CPU占用率
空闲状态:应用按Home键退到后台,不再占用系统的状态(通常是灭屏半分钟后)
CPU占用率=0%

2、应用中等规格运行监测CPU占用率
中等规格:模拟用户最常见的使用场景
CPU占用率≤30%

3、应用满规格长时间正常运行监测CPU占用率
Monkey测试
CPU占用率≤30%

4、应用正常运行期间监测CPU占用率峰值
应用正常运行:打开应用进行基本操作
CPU占用率≤50%

测试方法:
1、使用adb命令:
1) top -m -s cpu |grep packageName

top cpu 参数:
-m 显示最大数
-s 按指定行排序
-t 显示进程名称
-n 在退出前刷新几次
-d 刷新间隔

如果反复进行某个操作,cpu占用过高且一直无法释放,那便可能存在风险。

2)dumpsys cpuinfo |grep packageName

2、使用第三方测试工具:Emmagee、GT等。
3、使用AndroidStudio自带的检测工具Android Monitor。

四、FPS (应用的使用流畅度)

FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。
´一般来说,Android设备的屏幕刷新率为60帧/s,要保持画面流畅不卡顿,要求每一帧的时间不超过1000/60=16.6ms,这就是16ms的黄金准则,如果中间的某些帧的渲染时间超过16ms,就会导致这段时间的画面发生了跳帧,因此原本流畅的画面变发生了卡顿。

测试方法:
1、adb命令
1)打开手机:开发者选项—>profile GPU rendering —> in adb shell dumpsys gfxinfo

  1. 操作要测试的apk
  2. cmd窗口输入命令: adb shell dumpsys gfxinfo packageName
  3. 得到一个矩阵数据,计算矩阵中帧率大于16的点所占比例,即为卡顿比

含义:
Draw: 表示在Java中创建显示列表部分中,OnDraw()方法占用的时间。
Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长。
Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。
Draw + Process + Execute = 完整显示一帧 ,这个时间要小于16ms才能保存每秒60帧。

5)通过execl进行表格处理可以直观的查看软件的流畅度

2、除了使用adb shell, 还可以直接使用开发者选项自带的图表
1)打开手机:开发者选项—>profile GPU rendering —> on screen as bars

  1. 操作被测的软件
    3)界面会显示如下的一个统计数据表

2、使用第三方测试工具:Emmagee、GT等。
3、使用AndroidStudio自带的检测工具Android Monitor。

GPU渲染

GPU渲染是指在一个像素点上绘制多次(超过一次):显示一个什么都没有做的activity界面算作画了1层,给activity加一个背景是第2层,在上面放了一个Text View(有背景的Text View)是第3层,Text View显示文本就是第4层仅仅只是为了显示一个文本,却在同一个像素点绘制了四次,这是一定要优化的。过度绘制对动画性能的影响是极其严重的,如果你想要流畅的动画效果,那么一定不能忽视过度绘制。

测试方法:
1、手机自动的Debug GPU overdraw
1)打开手机—>设置—>开发者选项—>Debug GPU overdraw—>show overdraw areas
2)打开被测的应用

GPU过渡渲染不同的颜色代表不同的绘制程度
1)、原色:无过渡绘制
2)、蓝色:绘制一次 (理想状态)
3)、绿色:绘制二次
4)、浅红:绘制三次 (可以优化)
5)、深红:绘制四次 (必须优化)

测试指标:
1、控制过渡绘制为2x
2、不允许存在4x过渡绘制
3、不允许存在面积超过屏幕1/4的3x过渡绘制

相关文章

  • adb、emulator、android指令

    adb命令大全adb命令pm工具讲解 adb 指令 常用 安装:adb install [文件路径] 卸载:adb...

  • adb 调试命令收集

    adb 调试命令收集 0. 参考文章 Awesome Adb——一份超全超详细的 ADB 用法大全Android ...

  • ADB 命令大全

    ADB 命令大全常用命令用于速查,都是经常需要用到的,没有接触过adb命令从第二节开始看,对每个命令有详细解释。 ...

  • adb命令大全

    1、日志相关: adb logcat //显示全部日志 adb logcat > c:\test.log //...

  • adb 命令大全

    注释:()里面包名在命令行输入命令时候只用输出包名不用写 () 有线连接:插上数据线,手机打开调试模式 输入:ad...

  • adb命令大全

    获取应用包名和Actively:adb shell dumpsys window | findstr mCurre...

  • adb命令大全

    adb命令与adb shell命令的区别? adb命令是PC端adb程序自带的命令 adb shell 命令是调用...

  • ADB命令大全

    adb shell dumpsys window displays:获取详细屏幕分辨率信息 adb shell w...

  • ADB命令大全

    https://blog.csdn.net/zhonglunshun/article/details/78362439

  • adb命令大全

    adb(android debug bridge),即Android调试桥,它是一种功能多样的命令行工具,用于建立...

网友评论

      本文标题:adb命令大全

      本文链接:https://www.haomeiwen.com/subject/hhmfyktx.html