adb命令是調(diào)試控制手機(jī)過程中用的比較多工具。adb是一個(gè)C/S架構(gòu)的應(yīng)用程序,主要由三部分組成:
(1)、運(yùn)行在電腦端的adb client程序
在電腦終端中執(zhí)行adb --help可以查看當(dāng)前支持的adb命令。當(dāng)在命令行執(zhí)行程序adb相關(guān)命令的時(shí)候,adb程序嘗試連接到主機(jī)上的ADB服務(wù)器,如果找不到ADB服務(wù)器,adb程序自動(dòng)啟動(dòng)一個(gè)ADB服務(wù)器。ADB服務(wù)器啟動(dòng)之后會(huì)和手機(jī)設(shè)備的adbd后臺(tái)服務(wù)進(jìn)程建立連接后。adb client就可以向ADB servcer發(fā)送服務(wù)請(qǐng)求;
(2)、運(yùn)行在PC端的adb server
ADB Server是運(yùn)行在主機(jī)上的一個(gè)后臺(tái)進(jìn)程。它的作用在于檢測USB端口監(jiān)聽設(shè)備的連接和拔除。ADB Server還需要將adb client的請(qǐng)求通過tcp連接方式轉(zhuǎn)發(fā)送到對(duì)應(yīng)手機(jī)設(shè)備的adbd進(jìn)程上去處理。
(3)、運(yùn)行在設(shè)備端的常駐進(jìn)程adb daemon
手機(jī)系統(tǒng)中的程序adbd作為一個(gè)后臺(tái)進(jìn)程在Android設(shè)備系統(tǒng)中運(yùn)行。它的作用是連接PC端的ADB服務(wù)器,接收PC端ADB 服務(wù)轉(zhuǎn)發(fā)過來的命令請(qǐng)求并進(jìn)行處理。比如處理apk 安裝和卸載等請(qǐng)求。
adb整體架構(gòu)如下圖所示:
2.adb常用命令功能說明
(1).adb devices命令
adb devices命令列舉當(dāng)前已經(jīng)連接到當(dāng)前電腦的手機(jī)設(shè)備。比如執(zhí)行如下命令可以看到當(dāng)前電腦連接的手機(jī)設(shè)備:
C:UsersQiang>adbdevices
Listofdevicesattached
89CX00000device
89CX11111device
以上命令表示當(dāng)前電腦有兩臺(tái)手機(jī)設(shè)備通過數(shù)據(jù)線連接。當(dāng)只有一臺(tái)手機(jī)設(shè)備的時(shí)候,可以直接通過adb 命令連接到手機(jī)設(shè)備。如果是多臺(tái)設(shè)備的話,需要使用adb -s 設(shè)備序列號(hào)來指定訪問那個(gè)設(shè)備。比如我需要訪問以上列舉的設(shè)備"89CX00000",可以參考如下:
C:UsersQiang>adb-s89CX00000shell
blueline:/$
blueline:/$
(2).adb connect命令
adb connect命令用來通過ip和端口的方式連接到手機(jī)設(shè)備。在安卓手機(jī)中,可以通過開發(fā)者選項(xiàng)中的網(wǎng)絡(luò)ADB調(diào)試功能項(xiàng)開啟adb 通過wifi來連接手機(jī)設(shè)備。如下圖示我個(gè)人手機(jī)打開網(wǎng)絡(luò)adb調(diào)試功能情況:
圖中顯示網(wǎng)絡(luò)調(diào)試地址為:192.168.31.217:5555。可以通過adb connect連接到該地址實(shí)現(xiàn)adb無線調(diào)試該設(shè)備的功能。如下所示:
C:\Users\Qiang>adb connect 192.168.31.217:5555
connected to 192.168.31.217:5555
C:\Users\Qiang>adb devices
List of devices attached
192.168.31.217:5555 device
C:\Users\Qiang>adb shell
OnePlus3:/ # id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid) context=u:r:su:s0
OnePlus3:/ #
(3).adb disconnect命令
adb disconnect命令將會(huì)斷開adb connect連接的設(shè)備。比如斷開"192.168.31.217:5555"設(shè)備。執(zhí)行如下:
(4).adb forward命令
adb forward命令用于端口轉(zhuǎn)發(fā),用法為:adb forward 本地端口 手機(jī)端口。端口轉(zhuǎn)發(fā)主要作用就是將手機(jī)端作為server服務(wù)器,電腦端作為客戶端。通過端口轉(zhuǎn)發(fā),電腦端可以使用轉(zhuǎn)發(fā)的端口開發(fā)socket程序連接到手機(jī)端,然后和手機(jī)中的server程序交互。
如果需要取消轉(zhuǎn)發(fā)的端口可以執(zhí)行命令:adb forward --remove 本地端口。 如果需要取消全部轉(zhuǎn)發(fā)的端口可以執(zhí)行:adb forward --remove-all。
(5).adb push命令
adb push命令是將PC端的文件放到手機(jī)端中。命令用法:adb push 電腦端文件路徑 手機(jī)端文件路徑。比如將PC端的文件放到手機(jī)外置卡,可以如下操作:
C:UsersQiang>adbpushE:TempDir est.txt/sdcard/test.txt
C:UsersQiang>
(6).adb pull命令
adb pull命令是將手機(jī)端的文件放到PC端中。命令用法:adb pull 手機(jī)端文件路徑 電腦端文件路徑。比如將手機(jī)端的文件放到電腦端,可以如下操作:
C:UsersQiang>adbpull/sdcard/test.txtE:TempDir est007.txt
C:UsersQiang>
(7).adb shell命令
adb shell命令功能主要是建立和手機(jī)端的終端命令行執(zhí)行通道。類似Ubuntu系統(tǒng)中的命令行終端。adb shell命令成功之后,當(dāng)前終端執(zhí)行上下文變成了手機(jī)設(shè)備,就可以執(zhí)行手機(jī)端系統(tǒng)提供的各種命令。比如ls、pm、am等命令。如下執(zhí)行參考:
(8).adb install命令
adb install命令用來在電腦端安裝apk到手機(jī)端。如下參考執(zhí)行:
(9).adb install-multiple命令
adb install-multiple可以像adb install命令那樣安裝單個(gè)apk。同時(shí)支持安裝xapk文件,安裝的時(shí)候需要將xapk解壓,然后傳入所有的apk文件。比如需要adb安裝test.xapk,首先將test.xapk當(dāng)成zip包解壓。然后使用如下命令安裝所有的apk文件:
C:UsersQiang>adbinstall-multiple"E: estconfig.arm64_v8a.apk""E: estconfig.armeabi_v7a.apk""E: est est.apk" Success
C:UsersQiang>
(10).adb uninstall命令
adb uninstall命令用來卸載安裝到手機(jī)的App應(yīng)用。比如要卸載手機(jī)里面的Firefox應(yīng)用,先找到該應(yīng)用的包名為:org.mozilla.firefox。執(zhí)行如下命令進(jìn)行卸載:
C:UsersQiang>adbuninstallorg.mozilla.firefox Success
C:UsersQiang>
(11).adb logcat命令
adb logcat命令用來輸出手機(jī)的運(yùn)行日志信息,方便調(diào)試分析手機(jī)系統(tǒng)和App。可以通過adb logcat --help查看更高級(jí)的用法。比如清空日志信息執(zhí)行:adb logcat -c。比如只輸出TAG標(biāo)簽WifiClientModeImpl的日志信息,可以執(zhí)行:adb logcat WifiClientModeImpl:D *:S。
(12).adb remount命令
adb remount命令將系統(tǒng)分區(qū)掛載為可讀寫權(quán)限。比如一般情況下想把一個(gè)文件放到/system目錄下面是沒有權(quán)限的。當(dāng)adb有root條件下執(zhí)行adb remount之后,手機(jī)系統(tǒng)system分區(qū)就被掛載為可讀寫權(quán)限,就可以通過adb push將文件放到system目錄里面。如下演示:
C:UsersQiang>adbremount
remountsucceeded
C:UsersQiang>adbpush
E:Downloadsmyls/system/bin/myls E:Downloadsmyls:1filepushed,0skipped.24.7MB/s(68181bytesin0.003s)
C:UsersQiang>
(13).adb reboot命令
adb reboot命令主要是將手機(jī)重啟到某一個(gè)狀態(tài)。特別是在刷機(jī)過程中頻繁使用。主要是以下三個(gè)狀態(tài):
bootloader狀態(tài) 如果需要線刷手機(jī)系統(tǒng)即fastboot方式刷機(jī)的時(shí)候就需要手機(jī)進(jìn)入bootloader模式,執(zhí)行:adb reboot bootloader。
recovery狀態(tài) 如果需要卡刷即recovery模式下刷入ota升級(jí)包,需要執(zhí)行:adb reboot recovery。這種情況下刷機(jī)需要把刷機(jī)包文件放到手機(jī)的外置卡/sdcard目錄下面。
sideload模式 sideload模式實(shí)質(zhì)也是recovery模式刷機(jī)的一種,需要執(zhí)行:adb reboot sideload。該模式下刷機(jī)不需要將刷機(jī)包拷貝到手機(jī)外置卡。直接在電腦終端執(zhí)行:adb sideload 刷機(jī)包路徑。
(14).adb sideload命令
adb sideload在recovery模式下刷機(jī)使用。當(dāng)recovery模式情況下開啟sideload功能之后,直接在電腦終端執(zhí)行:adb sideload 刷機(jī)包路徑完成刷機(jī)工作。
(15).adb root命令
adb root命令主要是通知手機(jī)中的adbd 以root權(quán)限重啟運(yùn)行。執(zhí)行成功之后adb具備root權(quán)限。
(16).adb start-server命令
adb start-server命令表示啟動(dòng)PC端的adb server進(jìn)程。
(17).adb kill-server命令
adb kill-server命令表示停止PC端運(yùn)行的adb server進(jìn)程。
3.安卓手機(jī)中常用的命令
安卓手機(jī)系統(tǒng)某種意義上來說可以看成一個(gè)Linux系統(tǒng)。所以手機(jī)系統(tǒng)中存在Linux系統(tǒng)提供的ls、cat、top、ps等命令。除了提供Linux系統(tǒng)絕大部分的命令外,安卓系統(tǒng)還額外提供了許多命令。以下列舉一些常用的命令。
(1).屬性操作命令getprop/setprop
getprop命令獲取當(dāng)前手機(jī)的屬性信息。比如獲取手機(jī)型號(hào)可以執(zhí)行:adb shell getprop ro.product.model。
setprop命令用來修改手機(jī)系統(tǒng)的屬性信息。比如修改屬性:adb shell setprop ro.debuggable 0。
?
(6).svc命令
svc命令提供了控制power、wifi、usb、bluetooth打開關(guān)閉等功能。可以通過adb shell svc help查看支持的功能列表。
以下列舉一些常用的命令: 藍(lán)牙打開:adb shell svc bluetooth enable。
藍(lán)牙關(guān)閉:adb shell svc bluetooth disable Wifi打開:adb shell svc wifi enable。
Wifi關(guān)閉:adb shell svc wifi disable。
(8).selinux狀態(tài)查看和設(shè)置
查看當(dāng)前手機(jī)系統(tǒng)selinux狀態(tài)命令:
adb shell getenforce。
關(guān)閉當(dāng)前selinux:adb shell setenforce 0。
打開selinux:adb shell setenforce 1。
修改selinux狀態(tài)需要有root權(quán)限才行。
審核編輯:劉清
-
控制器
+關(guān)注
關(guān)注
112文章
16444瀏覽量
179314 -
ADB驅(qū)動(dòng)
+關(guān)注
關(guān)注
0文章
13瀏覽量
6288 -
Ubuntu系統(tǒng)
+關(guān)注
關(guān)注
0文章
91瀏覽量
4021
原文標(biāo)題:adb常用命令使用介紹
文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論