adb 常用命令以及使用adb编写自动化脚本

1.adb 启动服务:

        adb start-server  如果是没有启动的情况下输入会提示5037端口;若是开启状态,那么输入没有任何提示

2.adb 关闭服务:

        adb kill-server 启动状态关闭后,无反应,不存会错误提示

特殊情况:

        当手机连接电脑时,关闭adb服务会自动启动。

3.获取手机设备号

        adb devices 展示手机设备号和手机名称

4.查看手机系统版本号

        adb shell getprop ro.build.version.release

5.发送电脑文件到手机/sdcard目录

        adb push 电脑目录地址  手机目录地址

6.手机文件拉取到电脑上

        adb pull 手机目录地址  电脑目录地址

7.进入手机操作系统

        adb shell 

        退出 exit

        查看app使用过程中cpu和内存消耗:

                top | grep app 包名

8.记录手机log信息

        adb logcat 

        退出 ctrl+c

        扩展:过滤在指定APP日志信息

                Unix: adb logcat | grep app包名

                 windows: adb logcat | findstr app包名

     adb logcat -v time > 文件名.txt 持续写入

日志解析:
V Verbose 最低级别,开发调试中的一些详情信息,仅在开发中使用,不可再发布产品中输出
D Debug 调试  调试信息
I info 提示性信息
W warning 警告
E Error 错误 
PID 进程号

搜索闪退:
exception   
force finish / force stopping 
fatal/cause  by


ANR 应用无响应
出现原因:
    1.用户在主线程长时间被阻塞时提供处理交互,提高用户体验
    2.Android 自身检测机制
 
搜索 traces to 查看文件写入的路径---只会记录最后一次ANR信息

如果想要查看所有的:
    可以进入/data/system/dropbox  使用pull的方式将文件拉取出来-----真机没有权限

9.手机区分app: 通过包名和启动名进行区分 ----APP需要在启动的情况下才能获取

        unix: adb shell dumpsys window windows | grep mFoc

        window: adb shell dumpsys window windows | findstr mFoc

        方式二:

        安卓8以上:adb shell dumpsys activity | findstr "mResumedActivity"

10. 安装apk 到手机

        adb install 路径/apk文件

        或者直接找到apk在电脑上的存储位置,直接adb istall apk文件就可以

11. 卸载 apk

        adb uninstall 包名

12.获取启动时间

        adb shell am  start -W 包名/启动名(包名+启动名)

totaltime:app自身启动时间

waittime:手机等待app启动时间

13 查看包名列表:

        adb shell pm list packages -3  列出手机中安装的所有package -3 表示第三方应用

14 连接模拟器:adb connect 127.0.0.1:模拟器端口

                          adb disconnect   127.0.0.1:模拟器端口

15 查看当前安装包:

        adb shell dumpsys package 包名 | findstr versionCode

页面管理: am activity manager

  手机应用每一个页面都需要activity来完成调用

  1. adb shell dumpsys activity | findstr "mFocuse"
  2. 使用 aapt 来进行apk包解析
  3. 使用 adb shell  monkey -p 包名 -v -v -v 1

adb -s 设备号 shell 

手机没有自带驱动解决办法:adb 连接 Android 手机的两种方式 - 测试派

IOS 抓包工具 stream:

        通用-》关于本机-》证书信任设置

  1. IOS APP 测试方法和测试工具大揭秘 - 测试派

使用adb 进行UI自动化脚本

1.获取包名:
adb shell pm list package -3

2.根据报名获取启动名
adb shell monkey -p 包名 -v -v -v 1
        是从component= 到;end中间这段就是启动名

3.根据获取到的activity的名字,启动应用
adb shell am start -W -S  启动名

4.等待通过ping自己完成
ping 127.0.0.1 -n 1
 






互动型命令:
1.adb shell input text  输入内容
对于坐标可以使用开发者选项 中的指针位置
2.adb shell input tap x坐标 y坐标 
3.键盘操作
 adb shell input keyevent 
    关闭键盘  4
    回车  66
    退格 67
    删除  112 
4 滑动操作
  adb shell input swipe  起点x  起点y  终点x  终点y  时长毫秒
  长按使用 swipe短距离 长时间


APP 性能测试:

  1. adb shell dumpsys meminfo 包名
    1. 参数值:
      1. Pss Total:指占用了真实的物理内存的空间
      2. Heap Size:指占用总内存(Heap  堆)
      3. Dalvik Heap :指java中new出来的java堆空间(占用虚拟的内存空间)
        1. 查看单个应用最大内存限制,输入命令:getprop|grep heapgrowthlimit  得到结果该机型为192,Malvik process 超过就会抛OOM异常,会导致闪退
      4. Native Heap:指c 中malloc出来的堆空间,扩展:c++申请的内存为native process,java申请的内存:java process
    2. 关注点:
      1. 退出某个页面之后,内存是否有回落
      2. 进行某个操作之后,内存是否增长过快
  2. CPU
    1. adb shell dumpsys cpuinfo  | findstr 包名(Linux 用grep)

      1. 停止app的命令:

        adb shell am force-stop packagename(杀死进程)

        adb shell input keyevent 3 (置于后台)

      2. 这个过程是在用户(user)中花26%的时间,并在内核空间(kernel)花费43%的时间

  3. TPS ----不是很理解,后续补充

           准备工作:进入手机设置-》开发者选项-》启动GPU调试层;开发者选项->监控-》华为呈现模式分析 在adb shell  dumpsys gfxinfo 中
    1. adb shell  dumpsys gfxinfo 包名
      1. 参数--监控未在  gfxinfo 
        1. Total frames rendered: 105 本次dump搜集了105帧的信息
          Janky frames: 2 (1.90%) 105帧中有2帧的耗时超过了16ms,卡顿概率为1.9%
          Number Missed Vsync: 0 垂直同步失败的帧
          Number High input latency: 0 处理input时间超时的帧数
          Number Slow UI thread: 2 因UI线程上的工作导致超时的帧数
          Number Slow bitmap uploads: 0 因bitmap的加载耗时的帧数
          Number Slow issue draw commands: 1 因绘制导致耗时的帧数

         

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值