4.3 使用ADB帮助调试程序
ADB(Android Debug Bridge)是强大的调试工具,它可以帮助管理模拟器实例和设备的方方面面。ADB可以做很多工作:查询模拟器实例和设备、进入shell、导入导出文件、应用程序打包和卸载、查看LogCat,等等。本节介绍查询模拟器实例和设备、进入shell、导入导出文件。在Windows平台下面的ADB是由Android SDK安装目录 \platform-tools\adb.exe指令实现。
4.3.1 查询模拟器实例和设备
在Android中,有时需要查询有哪些模拟器实例或者设备与开发电脑连接起来了。查询这些内容时,可以通过DDMS查看,如图4-14所示。
图4-14 查询模拟器实例
事实上,DDMS能够查询到这些模拟器实例或者设备信息是通过调用ADB指令实现的,下面看看直接调用ADB实现查询模拟器实例或者设备,首先通过DOS(MacOS或Linux终端)进入Android SDK安装目录platform-tools目录,运行adb指令如下:
adb devices List of devices attached S3C6410 Android device emulator-5554 device
4.3.2 进入shell
通过ADB进入到模拟器实例或者设备的shell,可以运行一些常用Linux的指令,在<Android SDK安装目录> platform-tools下运行adb指令如下:
adb shell
如果有多个模拟器实例或者设备上面的指令出现错误error:more than one device and emulator,如果进入shell,如图4-15所示,会出现Linux shell提示符$或#。
图4-15 Android Linux shell
adb -s serialNumber shell
注意 退出Android Linux shell可以通过exit命令实现。
4.3.3 导入导出文件
有时,需要在开发机与模拟器实例或者设备中直接导入或导出文件,在DDMS中可以通过File Explorer实现文件导入或导出,如图4-16所示,工具栏中的按钮可以实现文件导入,按钮可以实现文件导出。
图4-16 导入导出文件
注意 DDMS实现文件导入导出时,可能会出现无法导入或导出的问题,读者可以使用adb指令导入或导出。
DDMS实现文件导入或导出也是通过adb实现的,下面通过adb命令实现开发机与模拟器实例或者设备信息文件的导入或导出。
1.导入指令
adb push local remote
如果有多个模拟器实例或者设备,执行上面的指令会出现错误error:more than one device and emulator,它的完整命名如下:
adb -s serialNumber push local remote
如果从开发机上把一个MP3导入到模拟器emulator-5554的SD卡中,可以使用如图4-17所示的指令,如果文件或文件目录有空格,就要用双引号括起来。
图4-17 导入指令
2.导出指令
adb pull remote local
如果有多个模拟器实例或者设备,执行指令会出现错误error:more than one device and emulator,它的完整命名如下:
adb -s serialNumber pull remote local
如果从模拟器实例emulator-5554中com.eorient.provider应用的数据库文件dbdemo1.db导出到开发机的C盘根目录下面,可以使用如图3-30所示的指令。
图4-18 导出指令