參考:
Android Debug Bridge:https://developer.android.com/studio/command-line/adb.html
adb shell 指令詳解 : http://blog.163.com/hero_213/blog/static/3989121420115915014721/
文檔:adb簡介 - https://wiki.cyanogenmod.org/w/Doc:_adb_intro/zh-cn
######################################################################################3
之前就已經知道了adb,但是并沒有了解過。這一次趁着開發android系統,需要測試CPU的占用率,好好看看adb的用法。發現确實能夠提升開發的幸福感。
目前使用系統:Ubuntu 14.04.5 LTS

adb存放在android-sdk開發包的platform-tools檔案夾内
我的android-sdk開發包路徑:
/opt/android-sdk-linux/platform-tools
在該目錄下可以直接運作adb,或者将該路徑添加到PATH環境變量中:
sudo gedit /etc/profile
在profile檔案最末添加(另起一行):
export PATH=/opt/android-sdk-linux/platform-tools:$PATH
注意:使用你自己的路徑
儲存後重新整理:
source /etc/profile
即可在任意路徑下使用adb
##################################################################################
adb的用法很多,能夠實作很複雜的功能。我還沒有深入了解adb,是以僅在這裡記錄一些覺得會有效提升開發效率的用法
1.從pc發送 檔案/目錄 到手機;
2.從手機上傳 檔案/目錄到pc;
3.遠端安裝apk;
4.遠端解除安裝apk;
5.實時監控apk的CPU占用率;
6.實時監控apk的記憶體使用率;
7.在多個手機/模拟器(Emulator)情況下如何對某一個裝置進行操作
################################################################################3#
如何啟用調試?
如果想要在手機上啟用USB調試,那麼你的手機必須設定開發者選項(Developer options)中的USB調試(USB debugging)選項
自從Android 4.2開始,開發者選項(Developer options)預設是不可見的,是以你在系統設定中是找不到的。如果想要打開,可以進入設定(Settings)-> 關于手機(About phone),連續點選版本号(Build number)7下。
我的開發手機是小米5,是以點選設定 -> 關于手機中的MIUI版本選項:
點選7次過後會提示你已經打開開發者模式。小米手機的開發者選項在設定 -> (系統和裝置)更多設定中:
進入開發者選項,打開開啟開發者選項和USB調試選項即可:
這樣,adb就可以對你的手機進行操作了
自從Android 4.2.2開始,當你對手機設定完USB調試後,使用usb線連接配接到開發電腦,手機上會彈出一個對話框:
詢問你是否接受使用這台計算機進行調試。點選确定即可
查詢裝置/模拟器執行個體
使用devices指令可以檢視已連接配接的裝置/模拟器
打開一個Terminal:Ctrl+Alt+T
輸入adb devices,将會列出所有已連接配接的手機/模拟器
輸出格式是
序列号(serialNumber) 狀态(devices)
以下是幾種即可出現的情況
上圖表明沒有任何裝置和電腦連接配接
上圖表明出現了一個裝置,但是裝置狀态是unauthorized,其實就是允許USB調試中的最後一步未完成,在手機上點選确定即可。
如果這個對話框已經消失,有兩種解決方法:
1)重新連接配接USB線和手機;
2)在開發者選項中重新開啟USB調試
使用上面其中一個方法,對話框就會重新出現,點選确定即可。
上圖表明,有一個裝置已經連接配接上了電腦,可以開始adb調試了
開始/結束adb伺服器
開始adb伺服器
adb start-server
或者
表明已經開啟
有時候,adb伺服器對指令并不響應,那麼你可以需要重新啟動adb伺服器
關閉adb伺服器
adb kill-server
或者
表明adb伺服器并未開啟
#######################################################################
ADB文法(Syntax)
可以在腳本或者指令行中使用adb指令,通用指令格式為:
adb [-d|-e|-s <serialNumber>] <command>
如果僅有一個模拟器或者僅有一個手機連接配接,那麼adb指令預設被發送到該裝置上。此時可以指令格式為:
adb <command>
如果有多個模拟器或者多個手機被連接配接,那麼需要通過參數-d,-e或者-s來指定目标裝置。
在下面的指令介紹中,預設僅有一個裝置被連接配接在電腦上,最後在給出多個裝置情況下的方法
###################################################################################3
遠端操作Android系統
手機和pc連接配接成功後,我們可以打開一個遠端終端,直接操作Android系統
使用shell指令即可:
adb shell
常用的linux操作指令同樣可以在Android系統上實作,比如ls,pwd,cd,mv,cp等
也可以在本地操作Android系統,格式為:
adb shell [shellCommand]
更多有用的資訊:
ADB Shell Commands:https://developer.android.com/studio/command-line/shell.html
退出遠端終端有兩種方式:
1)快捷鍵:Ctrl+D
2)指令exit
####################################################################################
1.從pc發送 檔案/目錄 到手機
使用push指令即可,格式為:
adb push <local> <remote>
<local>表示本地路徑
<remote>表示手機路徑
note:我們在手機上看到的檔案路徑一般為:/mnt/sdcard/或者/storage/emulated/0/(目前還不了解這兩個的關系,不過這兩個都是指向同一個地方)
發送檔案:
adb push all.png /mnt/sdcard/
更改名字:
adb push all.png /mnt/sdcard/1.png
發送檔案夾(連帶着子檔案夾一起發送):
adb push hello/ /mnt/sdcard/
同時修改檔案夾名:
adb push hello/ /mnt/sdcar/hi
僅複制檔案夾内的檔案到指定目錄:
adb push hello/* /mnt/sdcard/aaa/
2.從手機上傳 檔案/目錄到pc
使用pull指令,格式如下:
adb pull <remote> <local>
3.遠端安裝apk
使用install指令,格式為:
adb install <path-to-apk>
其中<path-to-apk>表示一個本地apk的路徑
例如:
adb install HelloWorld.apk
如果你的手機上已經存在,那麼會提示你該apk已經安裝在手機上
安裝成功也會出現提示
4.遠端解除安裝apk
解除安裝apk需要手機已經root,我的目前還沒有,是以沒有嘗試過
有兩個不錯的連結:
android cmd adb指令安裝和删除apk應用:http://blog.csdn.net/xpsharp/article/details/7289910
adb uninstall解除安裝apk檔案說明:http://blog.csdn.net/flydream0/article/details/7452136
5.實時監控apk的CPU占用率
6.實時監控apk的記憶體使用率
這兩個功能還沒有透徹的了解,給對外連結接供參考:
windows下使用adb工具檢視android程式cpu和記憶體消耗情況:http://blog.csdn.net/grafx/article/details/22533035?utm_source=tuicool&utm_medium=referral
Android使用adb檢視目前裝置運作程序CPU記憶體等資源的使用情況:http://blog.csdn.net/meteorluoyidong/article/details/49632797
檢視android程式的CPU和記憶體消耗情況:http://www.360doc.com/content/14/1008/15/16319846_415269900.shtml
7.在多個手機/模拟器(Emulator)情況下如何對某一個裝置進行操作
上面的操作都是基于單個模拟器/手機的情況,有時候可能會有多個模拟器/手機,這時,我們在進行adb調試,就必須指定某個裝置
使用參數-s即可,格式如下:
adb -s <serialNumber> <command>
<serialNumber>表示裝置序列号,可以通過指令adb devices檢視
是以如果有多個裝置,那麼每次執行指令時均加入-s <serialNumber>即可指定裝置
##################################################3
上面讨論了一些adb的簡單使用,這些功能也都已經在Android Studio實作,是以還是得好好搞懂AS
現在adb不僅可以通過USB進行調試,它還支援Wi-Fi調試:
Wireless usage:https://developer.android.com/studio/command-line/adb.html#wireless