美文网首页
adb命令详解

adb命令详解

作者: Jane_cd88 | 来源:发表于2018-08-30 17:54 被阅读0次

1、adb 简介

 Android

Debug Brige 安卓调试桥

2、安装

 1)Windows:

              1、按照手机驱动(手机官网或者装应用宝、豌豆荚);

              2、adb 可执行文件(sdk\platform-tools下面或者网上下载);

              3、配置环境变量右键我的电脑->属性->高级设置->环境变量->Path,使用“;”隔开,把2当                  中的adb 文件路径添加到Path当中

    2)Linux:

              1、不需要安装驱动(可能需要配置UID 和PID,参考3)

              2、adb 路径 sdk\platform-tools

              3、配置PATH,或者将adb 文件拷贝到/usr/bin/下面。

3、adb 命令

       1)adb devices

              [serialNumber] [state]

       2)adb get-serialno

              [serialNumber]

       3)adb get-state

              [state]

              设备的状态有 3 钟,device , offline , unknown

              device:设备正常连接

              offline:连接出现异常,设备无响应

              unknown:没有连接设备

       4)adb wait-for-device shell

       5)adb

kill-server , adb start-server , 结束 adb 服务, 启动 adb 服务,通常两个命令一起用

              一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用 kill-server,              然后运行 start-server 进行重启服务

  6)adb push

              adb pull 注意Windows路径当中使用反斜杠,Linux使用斜杠

       7)adb root

              adb remount重新挂载分区,可以写入

              手机系统版本分为出货版本(user)、debug版本(userdebug)和工程版本(eng)

              debug版本执行adb root 之后可以和工程版本一样,有相同的权限。

              工程版本执行adb remount 可以删除和增加手机当中的文件

       8)adb reboot 重新启动android 设备

       9)adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误

       10)adb install [-r]*.apk

                     -r替换

              adb uninstall  包名

       11)adb logcat 过滤日志

              优先级是下面的字符,顺序是从低到高:

              V —明细 (最低优先级)    D —调试   I — 信息    W —警告  E — 错误

              F —严重错误 S — 无记载 (最高优先级,没有什么会被记载)

              adb logcat -b main/system/  radio(无线通讯日志)

                     默认是main

              adb logcat -s tag

                     I/ActivityManager(585): Starting activity: Intent { action=android.intent.action...}

                     比方说上面的tag 指 的就是 ActivityManager

              adb logcat ActivityManager:I  *:S

                     过滤tag 为 ActivityManager但是打印级别大于等于I的输出日志

              adb logcat | grep关键字或者正则表达式            

                     举例:adb logcat | grep ActivityManager

       12)无线连接adb

                     1、将手机usb连接到宿主,保证手机和宿主主机在同一网段

                     2、执行adb tcpip 5555

                     3、断开连接,查看手机ip地址

                     4、执行adb connect

                     5、如果执行,查看 adb devices会看到

                            :5555device

                     6、如果没有connect 成功,确信在同一个网段

                            adbkill-server

                            adbstart-server

                            adbdisconnect

                            adbconnect

              13)adb forward 重定向,用于socket通信

                     用法: adb forward tcp:6100 tcp:7100

                                   adb forward tcp:6100 local:logd

       4)adb shell 命令 system/bin/下面的命令 

              1)adb shell 理解

                     进入到手机内部,Android 底层也是linux ,可以将Android理解为一台电脑。

                     ssh /smb这些协议登录到其他电脑都需要IP地址,通过ip便可区分不同的设备。

                     当宿主电脑连接一台电脑的时候,可以执行adb shell

                     但连接两台以上的Android 手机的时候,直接执行adb shell 会提示

                     error: more than one device/emulator。

                     执行此命令应该指定设备的serialNumber

                     wenrongping@wen ~/work $ adb devices

                     List of devices attached

                     810EBMC3ZWPW      device

                     QS3122PC0310SC1000036   device

                     adb -s810EBMC3ZWPWshell

                     adb -s810EBMC3ZWPW installhelloWorld.apk

                     如果只有一个Android 设备,可以使用adb -d shell

                     如果只有一个模拟器,可以使用adb -e shell

              2)adb shell +命令 实际上执行的是Android手机里面的linux 命令:

                     常用linux命令:

                     cd 切换路径

                     ls   查看当前文件夹下面的文件和文件夹信息 ls -l

                     rm   删除某个文件和文件夹(-r)

                     mkdir 创建文件夹

                     cp  拷贝

                     pwd  查看当前的路径

                     dumpsys 查看系统状态

                     getprop 查看系统属性

              3)adb shell am

                     1、start [options]

                     命令样例:

                     //使用Action方式打开系统设置-输入法设置

                     adbshell am start -a android.settings.INPUT_METHOD_SETTINGS

                     //使用组件名方式启动照相机功能

                     adbshell am start -n com.android.settings/.Settings

                     //打开拨号界面,并传递一个DATA_URI数据给拨号界面

                     adbshell am start -a android.intent.action.CALL -d tel:10086

                     2、startservice [options]

                     根据Intent 启动Service

                    命令样例:

                     //使用ComponentName 方式启动一个Service

                     adbshell am startservice com.guli.launcher/com.guli.launcher.widget.TimerService

                     3、force-stop

                     命令样例:

                     adbshell am force-stop com.android.settings

                     4、broadcast [options]

                     命令样例:

                     //恢复出厂设置的方法,会清除内存所有内容(慎重测试)

                     adbshell am broadcast -a android.intent.action.MASTER_CLEAR

              4)pm list package 列出安装在设备上的应用

                     不带任何选项:列出所有的应用的包名(不知道怎么找应用的包名的同学看这里)

                     adb shell pm list package

                     -s:列出系统应用

                     adb shell pm list package -s

                     -3:列出第三方应用

                     adb shell pm list package -3

                     -f:列出应用包名及对应的apk名及存放位置

                     adb shell pm list package -f

                     -i:列出应用包名及其安装来源,结果显示例子:

                     package:com.zhihu.androidinstaller=com.xiaomi.market

                     举例:

                     adb shell pm list package -i guli

                     类似命令:

                     adb shell dumpsys activity

              5)screencap 截图命令

                     adb shell screencap -p /sdcard/screen.png

                     截屏,保存至sdcard 目录

              6)screenrecord 录制命令

                     adb shell screenrecord sdcard/record.mp4

              7)adb shell

                     wm size

                     获取手机分辨率

              8) adb shellime list -s                          

                     列出设备上的输入法

              9)adb shell monkey

                     公司网站有介绍

              10)adb shell input []

              这个命令可以向 Android 设备发送按键事件,其源码 Input.java

              inputtext ,发送文本内容,不能发送中文

              adbshell input text test123456 在桌面的搜索界面做测试

              前提先将键盘设置为英文键盘

I             Inputkeyevent ,发送按键事件,KeyEvent.java

              adbshell input keyevent KEYCODE_HOME

              模拟按下 Home 键 ,源码里面有定义:

              publicstatic final int KEYCODE_HOME = 3;

              因此可以将命令中的 KEYCODE_HOME替换为 3

              inputtap ,对屏幕发送一个触摸事件

              adbshell input tap 500 500

              点击屏幕上坐标为 500 500 的位置

              inputswipe ,滑动事件

              adbshell input swipe300 500 100 500

              从右往左滑动屏幕

              如果版本不低于 4.4 , 可以模拟长按事件

              adbshell input swipe 500 500 501 501 2000

              其实就是在小的距离内,在较长的持续时间内进行滑动,最后表现出来的结果就是长按动作

6)如何kill掉一个程序,比如杀掉monkey

              1、adb shell

              2、ps | grep monkey

                     root@k06td_a:/ #ps | grep monkey

                     root      26163514   1875372 46492 binder_thr 7f7a710fd8 Scom.android.commands.monkey

              3、kill 26163

7)获取系统属性

              adb shell getprop 查看手机当中的所有属性

              adbshell getprop ro.build.version.sdk

8)介绍手MTK机文件夹

              system/priv-app system/app/  系统apk存放路径

              /data/data/包名 下面存放数据文件、数据库文件

              /vendor/  有时会放一些第三方app

              /system/framework 放置系统的sdk文件

              /system/media/ 存放audio images video 文件

相关文章

网友评论

      本文标题:adb命令详解

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