ADB全称是Android Debug Bridge,是android sdk里的用来直接操作管理android模拟器或者真实的android设备的工具,adb本质上是一个“CS”程序,其中client是用来操作的电脑,server是android设备。主要功能有:
运行设备的shell(命令行);
管理模拟器或者设备的端口映射;
计算机和设备之间上传下载文件;
将本地apk安装至设备上。
ADB常用的命令详解
adb devices
查看挡墙连接的设备,该命令返回连接至开发机的android设备序列号及状态。如:
emulator-5554 offline
emulator-5556 device该状态并不表示android设备可用,当android设备处于启动阶段时,若连接成功也会返回该状态
adb首先会启动server,该server使用5037端口进行监听,并尝试使用5555~5585端口连接android设备,也可以人为地改变通信端口:
adb forward <local port> <device port>
eg:adb forward tcp:5555 tcp:8888
当多台设备连接至同一开发机时,需要使用-s区分序列号,如:
adb -s emulator-5556 install helloworld.apk
这是安装apk文件的命令,若想重新安装。可以用
adb install -r helloworld.apk
adb uninstall <apk_name>
卸载apk文件
adb uninstall –k <apk_name>
卸载apk文件,但是保留配置和缓存文件
adb shell
进入设备的shell环境中,这是一个Linux Shell环境,可以执行各种Linux命令,如果只想执行一条shell命令,可以采用以下的方式
adb shell <command>
在shell下可查看手机系统的具体命令
getprop:查看设备全部信息参数,从硬件信息到ROM版本信息。
getprop ro.serialno:查看设备的SN号
……
ls:列出当前目录下的文件
adb shell bugreport
将从开机到此时所有log日志都输出出来
adb push <local path> <device path>
从主机push文件到设备路径中,如:
adb push c:\adb\helloworld.apk /sdcard/
此处需要注意的是,主机上的路径是“C:\”,手机上的是“/sdcard/”,两处斜杠方向不同。
adb pull < device path > < local path >
从设备某一路径下把文件拉到主机某路径
adb logcat > <local path file>
把logcat写进本地某一路径的文件中
adb logcat –s tag_name
直接在命令窗口查看log信息
adb bugreport
查看bug报告
adb start-server
adb kill-server
这两句是启动adb或杀死adb服务,某些时候eclipse调试会报adb is down等adb错误,这时候一般就在android SDK 的platform-tools的路径下先kill一下,再start一下就好了;若不行,就打开任务管理器,关闭adb进程,再打开这个进程;看看是否安装了360安全卫士,里面也有一个adb.exe,占用了端口,所以本地eclipse的启动不了,把360安全卫士关了,再启动就好了。