adb的常用命令

1、用ADB在PC端对手机进行各种操作的准备工作

一共需要三步即可。

1. step1 Enable 开发者模式

2. step2 Enable USB Debug模式

3. step3 使用数据线连接手机和PC

  • Enable开发者模式对于不同型号的手机来说操作大同小异,都是找到手机系统设置的关于项,连续7次点击系统的[Build Number]即可,连续点击的过程中,系统会提示‘还差n步就打开开发者模式’。
    打开开发者模式后,进入到开发者模式里,选上【启动USB Debug模式】即可。
  • 当手机端开启USB Debug模式后,可以使用USB线连接手机和PC,此时:手机端会提示:是否信任当前调试设备,点击【同意】即可。

2、命令

- adb devices   (查询连接到当前PC的Android设备)
- adb install xxx.apk(进入安装包的目录,安装软件)
- adb uninstall $package_name(进入安装包的目录,卸载软件)   
- install和uninstall还有其他参数。
- adb install -r xxx.apk
- adb uninstall -k $package_name

在安装时,加上【-r】,如果已经安装了该软件,那么系统就会先卸载,在安装这个软件
在卸载时,加上【-k】,表示卸载时保留数据和缓冲区目录,只卸载应用程序

安装pos机的例子:
1、adb devices    -查看连接状态
2、adb connect xx.xx.xx.xx:5555
3、adb install /Users/fengyanhua/Downloads/app-debug.apk
4、adb disconnect xx.xx.xx.xx:5555  -断开连接
查询POS机的日志:
5、adb -s xx.xx.xx.xx logcat

3、 查看包名的方法

1. - step1 打开软件置于顶层
2. - step1 点击UIAutomatorviewer的Device Screenshot按钮  
3. - step1 查看右下方的package值

4、文件交换


adb pull remote_files local_dir  把手机上的文件拷贝到本地
 
adb push local_dir remote_files  把PC上的文件,发送到已经连接的Android手机上


参数含义:
remote_files: 手机端的目录或者文件路径
local_dir:本地文件的路径

e.g:

adb pull /sdcard/DICM/camera ~/Desktop/       把手机上的某个目录全部都拷贝到PC本地上

adb push ~/Desktop/test.txt /data/local/tmp/  把PC本地的文件传输到手机的/data/local/tmp/目录

5、其他的命令

adb version: 查看adb版本信息

adb remount: 对其设备读写进行初始化

adb kill-server: 干掉ADB进程

adb start-server:启动ADB进程

adb root:对于已经root过的手机,加载ROOT权限

adb reboot: 重启设备

adb wait-for-device:等待设备上线

adb -d serial number: 当有多台设备连接时,指定某一设备

adb connect <ip>: 通过网络使PC连接设备

6、Android系统及App日志查看

- adb logcat

- adb logcat -c   清理logcat的缓冲区

adb的日志全部都会缓存在系统的缓冲区,当我们需要对系统或者App进行Debug的时候,我们先清理一下之前缓冲区的无效log,这样可以清除一些无效的日志信息。

- adb logcat -v time *:e  |grep $package_name   查看指定App的错误信息

如:adb logcat -v time *:e |grep com.koudai.weidian.buyer.internal
运行这个命令后,再操作App,我们可以通过终端的输出来获取到App在执行过程中遇到的所有Error信息。
 
  • 日志分析
1. bugreport里面包含了各种log信息,大部分log也可以通过直接运行相关的程序来直接获得 bugreport记录android启动过程的log,以及启动后的系统状态,包括进程列表,内存信息,VM信息等等
2. Java Exception 在mian log中分析,需要注意exception的时间PID和栈
3. ANR 在log中查看system log 找到ANR关键字

  • Monkey的输出日志

正常情况,如果Monkey测试顺利执行完成,在log的最后会打印出当前执行事件的次数和所花费的时间;// Monkey finished 代表执行完成
异常情况:
查阅Monkey的输出日志
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception”
3. 如果有空指针,搜索“NullPointerException”
4. 如果Monkey执行中断,在log最后也能看到当前执行次数

  • log文件的分类

实时打印的有:logcat main,logcat radio,logcat events,tcp dump,高通平台的还有QXDM日志

状态信息的有:adb shell cat /proc/kmsg,adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport,工程模式等。

7、 查看系统都安装了那些应用

adb shell pm list packages  

eg:

买家版: (com.koudai.weidian.buyer.internal)

adb shell pm list packages|grep com.koudai

8、 input命令

input命令可以用于向键盘发送一些指令。

常用命令分析:

* adb shell input text test //让键盘输入test,经测试不能支持输入中文

  比如输入0,就可以使用:
  adb shell input keyevent KEYCODE_0
  或 adb shell input keyevent 7

* adb shell input tap 200 300 //在屏幕坐标(200,300)位置点击一下

* adb shell input swipe 200 200 1000 1000 //就是从屏幕(200,200)滑动到(1000,1000);

//在小的距离内,从(200,200)的位置滑动到(201,201)的位置,连续滑动2000毫秒,页面表现为长按的效果
* adb shell input swipe 200 200 201 201 2000 
tip:机子要求是安卓4.4以上

如何定位屏幕的坐标呢?
其实在手机开发者选项,开启指针位置功能,就可以实时定位屏幕坐标了

9、am命令


* am 这个命令可以帮助我们直接启动activity、service及广播

* am start 启动应用

格式:
adb shell am start 包名/.类名

或 adb shell am start 包名/类的全名

后面跟的参数的意思分别是:
参数名 解释
-a 传入动作
-n 传入组件(package)
-t 传入类型
-d 传入数据

1.拨打一个电话:
am start -a android.intent.action.CALL -d tel:10086

2.打开一个网页:
 am start -a android.intent.action.VIEW -d  http://www.baidu.com 

3.打开音乐播放器:
adb shell am start -n com.android.bbkmusic/.WidgetToTrackActivity

4.启动一个服务:
am startservice <服务名称>
例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService
或者 am startservice -a com.smz.myservice

5.发送一个广播:
am broadcast -a <广播动作>
例如: am broadcast -a com.smz.mybroadcast

6.adb shell am monitor 监控 crash 与 ANR

7.am force-stop , 后跟包名,结束应用

值得注意的是,不同手机的相同类型应用,如相机,因为他们的package都可能是不一样的,所以要把package提取出来,再抽离为公共的方法。

10、pm命令

pm(Package Manager),这个命令主要用于获取和安装在 Android 设备上的应用信息。


■ pm list 安装包名查询
■ adb shell pm list package 列出所有应用
■ adb shell pm list package -3 列出第三方应用
■ adb shell pm list instrumentation 列出所有测试包
■ pm install 安装应用
■ pm unitall 卸载应用
■ pm clear 清除应用缓存
          

11、monkey命令


-p 允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定。指定多个包:

adb shell monkey -p package_1  –p package_2  100

--ignore-crashes 忽视应用 crash 报错,不指定该参数时,应用出现 crash,monkey

会自动停止发送事件,指定该参数后,monkey 会在 crash 后也一直发送事件,直到所有事件发送完成。

--ignore-timeouts 忽视超时导致的错误,即ANR的错误

  • Monkey 命令启动方式:
a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试          
b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试          
c) 在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器 

12、Dumpsys常用服务信息查询


Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息

adb shell dumpsys meminfo   //内存  adb shell dumpsys meminfo com.koudai.weidian.buyer.internal

adb shell dumpsys cpuinfo   //CPU

adb shell dumpsys gfxinfo  //帧率

adb shell dumpsys display  //显示

adb shell dumpsys power    //电源

adb shell dumpsys batterystats  //电池

posted @ 2019-08-02 17:02  fengyanhuaivy  阅读(513)  评论(0编辑  收藏  举报