警言:慎終如始藏雏!
調試Android程序有時需要adb shell 命令缕探,adb全稱Android Debug Bridge ,就是起到調試橋的作用擅笔。通過adb我們可以在Eclipse中通過DDMS來調試Android程序险胰,說白了就是debug工具汹押。adb通過監(jiān)聽Socket TCP 5554等端口讓IDE和Qemu通訊矿筝。默認情況下當我們運行Eclipse時adb進程就會自動運行起便。adb是一個C/S模式的程序,由三個部分組成:a client窖维,a server and a daemon榆综。其中client和server運行在的development machine上,daemon運行在emulator或設備上铸史。
adb一般位于/platform-tools/目錄下鼻疮,其中是android sdk的安裝目錄×战危可以把adb 路徑添加進系統(tǒng)環(huán)境變量path里面判沟,例:D:\sdk\platform-tools;這樣就能在打開powershell時就能響應adb命令,不用每次都進入adb目錄崭篡。以下是常用adb命令
adb 常用命令大全
顯示系統(tǒng)中全部Android平臺:
android list targets
顯示系統(tǒng)中全部AVD(模擬器):
android list avd
創(chuàng)建AVD(模擬器):
android create avd –name 名稱 –target 平臺編號
啟動模擬器:
emulator -avd 名稱 -sdcard ~/名稱.img (-skin 1280×800)
刪除AVD(模擬器):
android delete avd –name 名稱
創(chuàng)建SDCard:
mksdcard 1024M ~/名稱.img
AVD(模擬器)所在位置:
Linux(~/.android/avd)? ? ? Windows(C:\Documents and Settings\Administrator\.android\avd)
啟動DDMS:
ddms
顯示當前運行的全部模擬器:
adb devices
對某一模擬器執(zhí)行命令:
abd -s 模擬器編號 命令
安裝應用程序:
adb install -r 應用程序.apk
獲取模擬器中的文件:
adb pull
向模擬器中寫文件:
adb push
進入模擬器的shell模式:
adb shell
啟動SDK挪哄,文檔,實例下載管理器:
android
缷載apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
查看adb命令幫助信息:
adb help
在命令行中查看LOG信息:
adb logcat -s 標簽名
adb shell后面跟的命令主要來自:
源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄琉闪。
刪除系統(tǒng)應用:
adb remount (重新掛載系統(tǒng)分區(qū)迹炼,使系統(tǒng)分區(qū)重新可寫)。
adb shell
cd system/app
rm *.apk
獲取管理員權限:
adb root
啟動Activity:
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴展數據,等)。
發(fā)布端口:
你可以設置任意的端口號斯入,做為主機向模擬器或設備的請求端口砂碉。如:
adb forward tcp:5555 tcp:8000
復制文件:
你可向一個設備或從一個設備中復制文件,
復制一個文件或目錄到設備或模擬器上:
adb push
如:adb push test.txt /tmp/test.txt
從設備或模擬器上復制一個文件或目錄:
adb pull
如:adb pull /addroid/lib/libwebcore.so .
搜索模擬器/設備的實例:
取得當前運行的模擬器/設備的實例的列表及每個實例的狀態(tài):
adb devices
查看bug報告:
adb bugreport
記錄無線通訊日志:
一般來說刻两,無線通訊的日志非常多增蹭,在運行時沒必要去記錄,但我們還是可以通過命令磅摹,設置記錄:
adb shell
logcat -b radio
獲取設備的ID和序列號:
adb get-product
adb get-serialno
訪問數據庫SQLite3
adb shell
sqlite3
cd system/sd/data //進入系統(tǒng)內指定文件夾
ls //列表顯示當前文件夾內容
rm -r xxx //刪除名字為xxx的文件夾及其里面的所有文件
rm xxx //刪除文件xxx
rmdir xxx //刪除xxx的文件夾
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 希望小伙伴們多多支持(如有錯誤沪铭,希望指出)