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