android adb介绍与命令大全

android开发环境中,ADB是我们进行android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的;

ADB概述

Android Debug Bridge,Android调试桥接器,简称ADB,是用于管理模拟器或真机状态的万能工具,通俗一点讲adb就是pc和移动设备通信的桥梁,它采用了c/s模型,包括三个部分:

1、客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端,需要说明的是客户端与手机或者模拟器是一对多的关系,也就是说不管连接多少设备客户端就只有唯一的一个实例存在。

2、服务端部分,是运行在开发用电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信。

3、守护进程部分,运行于模拟器或手机的后台(简称adb daemon)。


ADB原理解析

下边我先展示两张adb工作原理图如图一,二所示:

(图1)


(图2)

      从图一我们可以大概了解到adb三个角色之间的关系,其中adb client和adb server运行在我们的电脑上边,adb daemon运行在我们连接的移动设备后台;

      理清了他们三者的关系后大家肯定很好奇它们之间是怎么互相通信的呢?使用何种通信协议以及哪些通信端口呢?

好吧,其实它们之间是通过tcp/ip协议建立长连接实现通信;

       当adb客户端启动后,会主动寻找并尝试连接adb服务进程,如果服务进程没有启动就会被主动启动,如果服务进程已经启动则它们会立即建立连接并通过本地5037端口进行通信,接下来服务端与所有正在运行的模拟器或手机连接。它通过扫描 5555-5585 之间的奇数号端口来搜索模拟器或手机,一旦发现 adb 守护进程,就通过此端口进行连接。需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号端口用于控制台连接,奇数号端口用于 adb 连接,当服务端与所有的模拟器建立连接之后,就可以使用 adb 命令来控制或者访问了。因为服务端管理着连接并且可以接收到从多个 adb 客户端的命令,所以可以从任何一个客户端或脚本来控制任何模拟器或手机设备;

通过adb控制移动设备必须确保设备和电脑已经正常连接,常用的连接方式有两种:

1:usb电缆连接,这种方式我就不过多介绍了,大家平时大多都是用的这种连接方式;

2:wifi连接,步骤如下所示

a:将电脑和手机连接同一个wifi网络,确保它们的ip在相同的网段;

b:将移动设备用usb电缆连接;

c:设置目标设备监听5555端口 命令是 : adb tcpip 5555;

d:断开连接的电缆线;

e:找到移动设备使用的ip地址(设置/关于手机/状态消息/ip地址);

f:通过adb连接到当前的移动设备 命令是 - adb connect device_ip_address;

g:确认你的设备已经和pc主机正常连接,我们可以通过执行adb devices命令查看是否连接成功;

如果一段时间adb断开连接,我们可以重复上边的步骤重新连接;



常用的ADB命令

1:adb devices/adb get-serialno

作用:列举当前连接的设备(可以是多个设备);

执行结果如下所示:

Listof devices attached

emulator-5554device

emulator-5556device

emulator-5558device

adb get-serialno只能当连接一个设备时使用,并拿到设备的序列号;

2:adb -s / -e / -d

作用:指定对某个连接成功的设备执行命令;

adb -s emulator-5556  install helloWorld.apk

这条命令就是往emulator-5556模拟器安装apk文件;

-s: 指定要操作的设备;

-e: 默认操作模拟器;

-d:默认操作硬件设备;

3:adb install -r/-s

作用:使用adb install命令可以从开发用电脑中复制应用程序并且安装到模拟器或手机上,adb install命令必须指定待安装的.apk文件的路径;

-r:保留数据和缓存文件,重新安装apk

-s:安装apk到sd卡

4:adb uninstall [-k] <package>


作用:卸载指定包名的apk文件,(-k:不删除程序运行所产生的数据和缓存目录)

5:adb pull [-a] <remote-path> <local-path>

作用:从模拟器或手机拷贝文件或文件夹(包括文件夹的子目录)到电脑(-a:保留文件时间戳及属性),remote-path为手机端文件路径,local-path为文件复制到的路径;

6:adb push <loacal-path> <remote-path>

作用:将文件或文件夹(包括文件夹的子目录)拷贝到模拟器或手机;

比如,我想把桌面的 log.txt 复制到手机的 dev 目录下,则命令如下:

 adb push /Users/littlejie/Desktop/log.txt  /dev

7:  adb kill-server 和 adb start-server

作用:在某些情况下需要重启 adb 服务来解决问题,比如 adb 无响应,这时你可以通过adb kill-server来实现这一操作,之后,通过adb start-server命令来重启 adb 服务;

8:  adb help

作用:调出adb命令提示;

9:  adb reboot

作用:重启连接成功的设备。

如果连接了多个设备可以指定重启其中一个设备,命令如下

adb -s xxx reboot

10:  adb shell  cat /sys/class/net/wlan0/address

作用:获取机器mac地址;

说明:adb shell命令表示进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令;

adb shell netcfg  //查看当前连接成功手机的ip地址;

11:  adb shell am start -n <packagename>

作用:启动指定包名的应用

12:  adb shell ps

作用 :列出当前运行的进程;

13:  adb shell ls/adb shell cd xx/adb shell rename path/oldfilename path/newfilename/adb shell rm -r <folder> /adb shell mv path/file newpath/file

adb shell ls 作用:列出目录下的文件和文件夹;

adb shell cd <folder>作用:进入文件夹,等同于dos中的cd 命令;

adb shell rename <old folder path> <new folder path>作用:重命名文件;

adb shell rm -r <folder>作用:删除指定路径文件的文件或者文件夹;

adb shell mv <old-folder> <new-folder>作用:移动文件到新的目录;

14:  adb shell mkdir path/foldelname 

作用:新建文件夹;

adb shell chmod777 <folder>设置文件的权限;

adb shell cat <folder/file> 查看文件内容;

15:  adb forward tcp:8000 tcp:9000

作用:执行此命令后, PC端的8000端口会被adb监听, 这个时候我们只需要往8000端口写数据, 这个数据就会发送到手机端的9000端口上,一般用来主机和移送设备进行额外的数据传输;

16: adb shell am XX

常见的命令如下所示:

a:adb shell am start [options] intent;

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

adb shell am start -a android.settings.INPUT_METHOD_SETTINGS

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

adb shell am start -ncom.android.camera/.Camera     //打开拨号界面,并传递一个DATA_URI数据给拨号界面

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

b: adb shell am startservice 

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

adb shell am startservice com.some.package.name/.YourServiceSubClassName

c: adb shell am force-stop <packagename>

adb shell am force-stop com.some.package

d: adb shell am kill <packagename>

adb shell am kill com.some.package

e: adb shell am monitor //监控程序的crash和anr错误;

17:adb shell pm XX

a: adb shell pm list packages  [option] filter //列出当前已安装的应用包名

根据filter可以搜索你需要的包名;

b: adb shell pm list permission-groups //查看所有可用的权限

c : adb shell pm list permissions [options] group //查看某个权限组下边所有的权限

d: adb shell pm path <package> //查看某个apk安装路径

e: adb shell pm clear <package> //删除和这个包有关联的所有数据

f: adb shell pm set-install-location location //改变apk默认安装位置(只能在已root设备使用,未root设备会报java.lang.SecurityException异常)

Changes the default install location. Location values:

0: Auto—Let system decide the best location.

1: Internal—install on internal device storage.

2: External—install on external media.

Note:This is only intended for debugging; using this can cause applications to break and other undesireable behavior.

g: adb shell pm get-install-location //获取系统默认安装位置

h: adb shell  screencap /sdcard/screen.png //截图当前页面并保存到指定目录












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

推荐阅读更多精彩内容