1.5.1 常用工具之ADB介紹與快速入門

一、什么是ADB

ADB是Android-Sdk里的一個客戶端-服務器端程序,其中客戶端是我們操作的電腦, 服務器端是Android設備,它的全稱為Android Debug Bridge,就是起到調試橋的作用。通過這個橋我們可以管理設備或手機模擬器的狀態,還可以進行很多手機操作,如安裝軟件、系統升級、運行shell命令等等。

簡而言之,ADB就是連接Android手機與PC端的橋梁,可以讓用戶在電腦上對手機進行全面的操作。

二、安裝方法

電腦上需要安裝客戶端,客戶端包含在sdk里,而服務端設備上不需要安裝,只需要在手機上打開開發者選項并啟用USB調試功能即可。

對于Linux用戶有一個最簡單的安裝方法:在terminal下鍵入sudo apt-get install adb然后回車輸入密碼再回車,稍等片刻即可使用。

不過這樣我們就沒法知道adb具體的安裝位置了,雖然這也沒什么。對于好奇心爆棚的同學可以采用這樣的方法安裝:
1、將下載好的sdk解壓后放在“~目錄”或者其它任意目錄,然后修改~/.bash_profile文件,設置運行環境指向sdk的tools目錄。
2、具體是打開~/.bash_profile文件(如果沒有此文件也可以自行添加),然后在里面加入一行 export PATH=${PATH}:<你的sdk目錄>/tools,然后就可以使用adb命令了。

三、ADB常用命令

  • adb devices

這個命令是查看當前連接的設備, 連接到計算機的Android設備或者模擬器將會被顯示出來。

  • adb install

用來安裝軟件,將指定的apk文件安裝到設備上。

  • adb uninstall

用來卸載軟件,將指定包名的apk文件從設備上卸載。

  • adb shell

通過上面的命令,就可以進入設備或模擬器的shell環境中,在這個Linux Shell中,你可以執行各種Linux的命令,另外如果只想執行一條shell命令,可以采用這種方式:adb shell [command],如:adb shell dmesg會打印出內核的調試信息。

  • adb push 本地路徑 遠程路徑

用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)。

  • adb pull 遠程路徑 本地路徑

用pull命令可以把設備(手機)上的文件或者文件夾復制到本機電腦。

  • adb get-product

獲取設備的ID號

  • adb get-serialno

獲取設備的序列號

  • adb help

顯示幫助信息(包括各種命令用法與含義)

四、push 和 Install 的不同

adb push和adb install是apk包安裝的兩種方法,用法如下:

1.adb push XXX.apk /你想推送的路徑
2.adb install XXX.apk

顯而易見,兩者的區別是:

adb push可以自定義推送路徑,adb install 只能安裝在/data/app文件下。
其次,adb push 是將apk包復制到路徑下面,重啟后/system/app和/data/app下的apk包都會自動安裝。
adb install是將apk安裝到手機里,流程是:復制APK安裝包到data/app目錄下,解壓并掃描安裝包,把dex文件(Dalvik字節碼)保存到dalvik-cache目錄,并data/data目錄下創建對應的應用數據目錄(so文件也在./包名/lib下,或者/data/app-lib/包名)。
另外,install復制APK安裝包到data/app目錄下的過程中,會將apk名改為包名-1.apk,數字為android接收到的版本號。
其中對于/system文件夾比較容易碰到的問題是報read only file的錯誤,哪怕/system已經被你改成了777的權限,解決的方法是:1.adb shell 2.su 3.mount -o remount rw /system重新掛載一下/system文件系統

五、常用的抓取日志命令

捕獲Logcat輸出:

adb logcat -c && adb logcat -v time | tee logcat.txt | grep -i 7837
adb logcat -c && adb logcat -v time | tee logcat.txt | grep -E 'showImgWithUrl'

抓取崩潰日志:

logcat -s AndroidRuntime DEBUG

adb命令向設備復制導入、導出、刪除文件等

//導入文件復制文件
adb push 文件 目標文件路徑
adb push lo.log storage/sdcard0
//導出文件 mac默認是你的$home文件查看home文件方法 echo $HOME
adb pull storage/sdcard0/wifi_config.log

獲取序列號:

adb get-serialno

查看連接計算機的設備: adb devices
重啟機器: adb reboot
重啟到bootloader,即刷機模式: adb reboot bootloader
重啟到recovery,即恢復模式: adb reboot recovery
查看log: adb logcat
終止adb服務進程: adb kill-server
重啟adb服務進程: adb start-server
獲取機器MAC地址: adb shell cat /sys/class/net/wlan0/address
獲取CPU序列號:adb shell cat /proc/cpuinfo
安裝APK:adb install <apkfile> //比如:adb install baidu.apk
保留數據和緩存文件,重新安裝apk:adb install -r <apkfile>
//比如:adb install -r baidu.apk
安裝apk到sd卡:adb install -s <apkfile>
// 比如:adb install -s baidu.apk
卸載APK:adb uninstall <package>
//比如:adb uninstall com.baidu.search
卸載app但保留數據和緩存文件:adb uninstall -k <package>
//比如:adb uninstall -k com.baidu.search
啟動應用:adb shell am start -n <package_name>/.<activity_class_name>
查看設備cpu和內存占用情況:adb shell top
查看占用內存前6的app:adb shell top -m 6
刷新一次內存信息,然后返回:adb shell top -n 1
查詢各進程內存使用情況:adb shell procrank
殺死一個進程:adb shell kill [pid]
查看進程列表:adb shell ps
查看指定進程狀態:adb shell ps -x [PID]
查看后臺services信息:adb shell service list
查看當前內存占用:adb shell cat /proc/meminfo
查看IO內存分區:adb shell cat /proc/iomem
將system分區重新掛載為可讀寫分區:adb remount

從本地復制文件到設備:adb push <local> <remote>
從設備復制文件到本地:adb pull <remote> <local>

列出目錄下的文件和文件夾,等同于dos中的dir命令:adb shell ls
//進入文件夾,等同于dos中的cd 命令:

adb shell cd <folder>

重命名文件:adb shell rename path/oldfilename path/newfilename

刪除system/avi.apk:adb shell rm /system/avi.apk

刪除文件夾及其下面所有文件:adb shell rm -r <folder>

移動文件:adb shell mv path/file newpath/file

設置文件權限:
adb shell chmod 777 /system/fonts/DroidSansFallback.ttf
新建文件夾:adb shell mkdir path/foldelname

查看文件內容:adb shell cat <file>
查看wifi密碼:adb shell cat /data/misc/wifi/*.conf
清除log緩存:adb logcat -c
查看bug報告:adb bugreport
獲取設備名稱:adb shell cat /system/build.prop
查看ADB幫助:adb help
跑monkey:adb shell monkey -v -p your.package.name 500

更詳細的ADB命令指南

感謝優秀的你跋山涉水看到了這里,不如關注下讓我們永遠在一起!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容