有一些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