adb命令详解

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 文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容