![Android高级开发实战:UI、NDK与安全](https://wfqqreader-1252317822.image.myqcloud.com/cover/778/653778/b_653778.jpg)
第2章 Android SDK命令行工具
2.1 SDK命令行
ADB是Android Debug Bridge的英文缩写,意思是Android程序调试桥,使用SDK自带的工具可以对Android模拟器或真机直接进行管理。ADB在SDK的platform-tools目录下。
1.启动和关闭ADB服务命令
使用Eclipse开发项目时,在一段时间内没有使用模拟器或真机后,经常出现在控制台上提示我们adb不可用的信息,需要重新启动adb或重新启动Eclipse。通常使用命令行的方式先关闭服务,然后再启动服务。
关闭服务命令格式:adb kill-server,如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0019_0001.jpg?sign=1738809446-ngC786a2Qf9cOrK837sTvUVm5cN29sDE-0-b2f50da92c4115990b71549752a83f6e)
启动服务命令格式:adb start-server,如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0019_0002.jpg?sign=1738809446-xRTcbea9ibneLuYys2anSb66Rt38K7n0-0-83179a1e8805acf6c45281afee77c67a)
2.查询当前设备命令
在需要时可以启动多个设备来测试我们的项目,例如测试发短信和拨打电话程序。要查看当前设备的数目可以使用adb devices命令,如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0020_0001.jpg?sign=1738809446-zRjZGtI5YQvBlXQpEkB5QAm9H2rYGXtf-0-0da444a210741687625629933de3fc69)
上图中显示当前有一个HTC的设备HT24WTV10117。List of devices attached下面的内容表示当前设备,如果值为offline则表示当前没有连接到adb的设备。
3.安装和卸载应用程序命令
当需要安装apk时,如QQ.apk,则可以使用adb install命令。安装apk命令格式:adb install [apk在计算机中的路径],如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0020_0002.jpg?sign=1738809446-HNuTLOtvp02WPTTAH0YOgEy6q1nsoqOP-0-972740c83695ad69da9bfa4d321e182b)
如果设备上已经有了要安装的apk,则重新安装这个apk需要使用adb install -r命令。
覆盖安装apk命令格式:adb install -r [apk在计算机中的路径],如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0020_0003.jpg?sign=1738809446-y2h4NYxK1d9YkGsSTCQAaR2Be4imBCB9-0-8afb81939d311950265d8c00d0c84d7a)
当卸载QQ.apk时可以使用adb uninstall命令,卸载apk命令格式:adb uninstall [apk的package名称]。
注意:adb uninstall后边的参数不应该是.apk文件,而是包名,即AndroidMainifest.xml文件中<manifest>节点下package元素所指定的名字。Package是唯一标识apk的记号,相当于公民的身份证号。
HierarchicalViewDemo.apk的package名称是com.example.hierarchicalviewdemo,如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0020_0004.jpg?sign=1738809446-UF6RZFdudP3IC9IZuUqacel0x48hK8Rm-0-0026515a94da24c38ea19b3791ad7f06)
下图是卸载HierarchicalViewDemo.apk的例子。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0021_0001.jpg?sign=1738809446-TYcxsKZU05Uyl8WFbmcDmWG8fv6ut8rU-0-e0957b2114fdf85fa546a80e215a7d6e)
4.个人计算机(PC)与设备交换文件命令
通常我们需要把设备上的文件移动到PC上,如拍摄的照片,可以使用adb pull命令。
从设备上复制文件到个人计算机的命令格式:adb pull [设备上文件的路径][保存路径]。
例如,将HTC手机上/mnt/sdcard/DCIM/100MEDIA/IMAG0001.jpg的图片复制到PC上的C盘下,命名为pull.jgp,方法如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0021_0002.jpg?sign=1738809446-gMqG3tRp9EWTAzXwJ9xKpebjeWZqywIU-0-8096d2c383e6947660a2a176b4d962ff)
当我们想要把PC上的文件导入到设备上时,例如将PC上的图片导入到设备上,这时需要使用adb push命令。
从PC上复制文件到设备上的命令格式:adb push [PC上文件的路径] [设备上的保存路径]。
下面将PC上的C:\Users\Administrator\Pictures\psb.gif导入到设备的/mnt/sdcard/DCIM/目录下,命名为push.jpg,如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0021_0003.jpg?sign=1738809446-UL059Ieep0OHsyLXt5GZaGR4VGGUVHaU-0-78ba7e8e00035cea7ddaa81feb5dc26b)
此时在Eclipse的File Explorer中打开目录结构就可以看到导入后被命名为push.jpg的文件,如下图所示。
![](https://epubservercos.yuewen.com/BA5784/3591128803590201/epubprivate/OEBPS/Images/figure_0021_0004.jpg?sign=1738809446-jegqh6DQ8KWQhKr5Kc5kKtdBFMiz8vwu-0-3a9d9526645ea0f424acaa7af3654812)
File Explorer是文件浏览器,用于展示设备的文件结构,类似于我们使用鼠标双击“我的电脑”之后进入各个磁盘下就可以浏览文件一样。在Eclipse中通过单击Window→Show View→File Explorer就可以显示File Exploer。
如果执行Window→Show View看不到File Exploer,则可以执行Window→Show View→Other,再双击File Exploer即可打开File Exploer视图。