###1 adb的概念
adb的全称为Android Debug Bridge(调试桥);通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序。当我们运行Eclipse时ADB进程会自动运行(默认adb会daemon相关的网络端口)。adb是一个客户端-服务器端程序,其中客户端是电脑,服务端是Android设备。
###2 adb的主要功能
-
运行设备的shell命令;
-
管理模拟器或设备的端口映射;
-
计算机和设备之间上传/下载文件;
-
将本地apk软件安装至模拟器或Android设备;
###3 adb的常用命令
####3-1 查看设备:adb device
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。
输出信息的第2列都是device,表示当前设备都在线。如果该列的值是offline,表示该实例没有连接到adb上或实例没有响应。
####3-2 登录设备的shell:adb shell
这个命令将登录设备的shell.后面加将是直接运行设备命令, 相当于执行远程命令。
退出shell模式:ctrl+c
####3-3 启动和关闭ADB服务:adb kill-server
模拟器在运行一段时间后,adb服务有可能(在Windows进程中可找到这个服务,该服务用来为模拟器或通过USB数据线连接的真机服务)会出现异常。这时需要重新对adb服务关闭和重启。
####3-4 重启设备:adb reboot
重新启动到recovery
adb reboot recovery
重新启动到bootloader
adb reboot bootloader
重新启动到bootloader
adb reboot fastboot
fastboot flash recovery <路径>
####3-5 安装软件:adb install
这个命令将指定的apk文件安装到设备上。
如:adb install E:\com.baidumap.apk
如果在安装程序之前,该程序已经在模拟器或真机上存在了,可以使用“-r”重新安装。
adb install -r E:\com.baidumap.apk
####3-6 卸载软件:adb uninstall <包名>
adb uninstall -k <包名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件。
如:adb uninstall com.alistory.Activity
####3-7 查看所有应用包名
adb shell pm list packages
####3-8 电脑->设备
adb push <本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)。
如:adb push E:\test.txt /sdcard/
####3-9 设备->电脑
adb pull <远程路径> <本地路径>
用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑。
如:adb pull /sdcard/1.txt d:\file\
####3-10 多设备选择
adb –s <设备号>
多设备选择操作
####3-11 adb shell下的dumpsys可以查看很多系统service信息
adb shell dumpsys activity top|findstr ACTIVITY
####3-12 adb logcat查看系统日志
通过选项(参数)过滤
通过管道( | grep )过滤
如: ps |grep system_server
####3-13 adb shell下的getprop可以查看很多设备相关信息(IMIE、SN、固件信息、机型……)
脚本中可以用Runtime.getRuntime().exec(“getprop ro.product.model”);
####3-14 adb命令在android 代码中这样执行:
private boolean runCmdFunction(String cmd) {
boolean retValue = false;
if (cmd == null) {
return false;
}
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
retValue = true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return retValue;
}
###4 adb总结
综合来说,adb在开发测试调试中是一个很不错的工具,很多小的细节需要在项目中慢慢体会。