有一些Android的工具需要在命令行的环境中运行,只是可以选择Windows的开始->运行,键入cmd并确定,进入命令行的界面中运行。主要的命令行工具包括adb和mksdcard等。命令行的工具在Android SDK的tools目录中,使用命令行的窗口如图所示:

adb(Android Debug Bridge,Android调试桥)是Android的主要调试工具,它可以通过网络或者USB连接真实的设备,也可以连接仿真器。使用adb进行调试,通常在命令行的界面中。

将出现shell提示符,这就是Android所运行的Linux系统中的shell终端,可以在这个shell提示符后执行Android系统提供的Linux命令。

1.使用ls命令查看Android系统根目录:

root@android:/ # ls -l    
ls -l     
drwxr-xr-x root     root              2014-03-15 12:56 acct     
drwxr-xr-x root     system            2014-03-15 12:56 app-cache     
drwxrwx--- system   cache             2014-03-13 22:43 cache     
dr-x------ root     root              2014-03-15 12:56 config     
-rw-r--r-- root     root         1395 1970-01-01 08:00 cwkeys     
lrwxrwxrwx root     root              2014-03-15 12:56 d -> /sys/kernel/debug     
drwxrwx--x system   system            2014-03-15 16:20 data     
-rw-r--r-- root     root          238 1970-01-01 08:00 default.prop     
drwxr-xr-x root     root              2014-03-15 12:56 dev     
drwx------ root     root              2014-03-13 21:56 devlog     
lrwxrwxrwx root     root              2014-03-15 12:56 etc -> /system/etc     
-rwxr-x--- root     root       111468 1970-01-01 08:00 init     
-rwxr-x--- root     root         9770 1970-01-01 08:00 init.pyramid.rc     
-rwxr-x--- root     root        11297 1970-01-01 08:00 init.qcom.sh     
-rwxr-x--- root     root        21570 1970-01-01 08:00 init.rc     
-rwxr-x--- root     root         4545 1970-01-01 08:00 init.usb.rc     
drwxrwxr-x root     system            2014-03-15 12:56 mnt     
dr-xr-xr-x root     root              1970-01-01 08:00 proc     
drwx------ root     root              2012-08-07 08:38 root     
drwxr-x--- root     root              1970-01-01 08:00 sbin     
lrwxrwxrwx root     root              2014-03-15 12:56 sdcard -> /mnt/sdcard     
drwxr-xr-x root     root              2014-03-15 12:56 sys     
drwxr-xr-x root     root              2014-03-13 22:40 system     
-rw-r--r-- root     root         1058 1970-01-01 08:00 ueventd.pyramid.rc     
-rw-r--r-- root     root         7877 1970-01-01 08:00 ueventd.rc     
drwxrwx--x system   system            2014-03-15 12:56 vendor 

Android根目录中的主要文件夹与目标系统的out/target/product/generic/root内容相对应,此外etc、proc等目录是在Android启动后自动建立的,system映像被挂接到根文件系统的system目录中,data映像被挂接到根文件系统的data目录中。

 

2.使用ps命令可以查看Android系统的进程:

root@android:/ # ps    
ps     
USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME     
root      1     0     416    276   c013bf84 00008728 S /init     
root      2     0     0      0     c00d3eb0 00000000 S kthreadd     
root      3     2     0      0     c00c0c50 00000000 S ksoftirqd/0     
root      5     2     0      0     c005eb48 00000000 D kworker/u:0     
root      6     2     0      0     c00f4188 00000000 S migration/0     
root      10    2     0      0     c00cfd50 00000000 S khelper     
root      11    2     0      0     c00cfd50 00000000 S suspend_sys_syn     
root      12    2     0      0     c00cfd50 00000000 S suspend     
root      13    2     0      0     c00cfd50 00000000 S perflock_wq     
root      14    2     0      0     c00f53e8 00000000 S irq/347-pm8901-     
root      15    2     0      0     c010f794 00000000 S sync_supers     
root      16    2     0      0     c011047c 00000000 S bdi-default     
root      17    2     0      0     c00cfd50 00000000 S kblockd     
root      18    2     0      0     c0308d34 00000000 S khubd     
root      19    2     0      0     c00cfd50 00000000 S l2cap     
root      20    2     0      0     c00cfd50 00000000 S a2mp     
root      22    2     0      0     c00cfd50 00000000 S cfg80211     
root      23    2     0      0     c00cfd50 00000000 S tty_smd0     
root      24    2     0      0     c00f53e8 00000000 S irq/505-pm8058_     
root      25    2     0      0     c00cfd50 00000000 S tps65200     
root      26    2     0      0     c00cfd50 00000000 S iewq.

.

.

从系统的进程中可以看到,系统1号和2号进程以0号进程为父进程。init是系统运行的第1个进程,即Android根目下的init可执行程序,这是一个用户空间的进程。kthreadd是系统的2号进程,这是一个内核进程,其他内核进程都直接或间接以它为父进程。    
Zygote、/system/bin/sh、/system/bin/mediaserver等进程是被init运行起来的,因此它们以init为父进程。其中android.process.acore(Home)、com.android.mms等进程代表的是应用程序进程,它们的父进程都是zygote。

 

3.使用adb连接目标系统终端的方式如下所示:

> adb shell
 

4.使用adb安装应用程序的方法为:    

> adb install XXX.apk
 

5.卸载已经安装的应用

(1)方法1:

     adb uninstall [-k] <package>。

其中package表示需要卸载的应用的包的名字,k表示是否保留应用的配置信息和cache数据。

(2)手动删除。    

adb shell     
cd /data/app     
rm app.apk 

6 .使用adb在主机和目标机之间传送文件的方法为:

可以使用adb pull ,push 命令将文件复制到一个模拟器/设备实例的数据文件或是从数据文件中复制。install 命令只将一个apk文件复制到一个特定的位置,与其不同的是,pull 和 push 命令可让用户复制任意的目录和文件到一个模拟器/设备实例的任何位置。

> adb push {host_path} {target_path}    
> adb pull {target_path} {host_path} 

7.mksdcard是用来建立SD卡映像的工具,用来建立一个Fat32格式的磁盘映像,其使用方法如下所示:

mksdcard [-l label] <size> <file>

mksdcard的参数-l用于指定磁盘映像的标签,size用于指定磁盘映像的大小,其后面可以跟K、M、G等参数,file是磁盘映像的文件名称,这个文件也就是在仿真器运行过程中指定的文件。    
mksdcard的一个使用的示例如下所示:    

> mksdcard 128M sdcard.img

 
这表示建立了一个大小为128M,名称为sdcard.img的Fat32磁盘映像文件。

 

8.查看版本信息

>adb version
Android Debug Bridge version 1.0.20
 

9.转发端口

可以使用 forward 命令进行任意端口的转发—一个模拟器/设备实例的某一特定主机端口向另一不同端口的转发请求。下面演示了如何建立从主机端口7100到模拟器/设备端口8100的转发。

adb forward tcp:7100 tcp:8100

同样地,可以使用ADB来建立命名为抽象的UNIX域套接口,上述过程如下所示:

adb forward tcp:7100 local:logd