adb經常使用命令總結

adb是android debug bridge的縮寫,意思是android調試橋。是android的sdk中提供的一個很實用、提供測試效率的命令行工具,在工做中有些命令行的必需要熟記(知識的獲取一部分就是要死記)。以前一些工具經常使用的命令行總是容易忘記,緣由應該是沒有系統性的總結。因此今天就總結一下開發中經常使用的一些ADB命令和一些使用無線調試時候老是常遇到的錯誤。html

隨筆帶過一下:adb.exe 在android sdk文件夾的platform-tools下,把這個路徑加入系統路徑中便可在命令行中使用adb命令了。而後使用adb connect 便可鏈接android機器,platform-tools文件夾下還有其餘的包括測試、調試、第三方工具、數據管理工具等。
若是須要無線鏈接android機器,須要在android機器上安裝一個無線鏈接的程序,推薦adbWireless http://download.csdn.net/download/kebi007/9851848
這裏寫圖片描述android

咱們首先要明白一點,這麼多的命令,有的adb,有的是adb shell ,這二者有什麼區別呢?答案是固然的,adb命令是adb程序自帶的一些命令,
adb shell 是調用android 系統的命令,web

1.adb shell查看手機目錄

前提手機android已經得到root權限,而且成功鏈接adb。
輸入adb shell
這裏寫圖片描述
ls 顯示手機的根目錄下各個文件夾
這裏寫圖片描述
cd /data/data:進入文件夾 pm list package 查看全部包
adb shell pm list -s 列出系統包
adb shell pm list -3 列出第三方包
adb shell pm list packages -f 查看包路徑
adb shell pm list packages -d 列舉禁用的包
adb shell pm list packages -e 列舉可用的包
這裏寫圖片描述shell

2.adb開啓/結束服務

這裏寫圖片描述

3.adb獲取序列號、查看鏈接計算機的設備、查看log、幫助、重啓機器、查看bug

  1. 查看鏈接計算機的設備 adb devices
  2. 查看adb 版本 adb version
  3. 獲取序列號 adb get-serialno
  4. 查看日誌 adb logcat
  5. 查看幫助 adb help
  6. 重啓機器 adb reboot
  7. 重啓到刷機模式bootloader adb reboot bootloader
  8. 查看bug adb bugreport

4.adb shell獲取MAC地址、設備型號、查看android系統版本、屏幕分辨率、屏幕密度、查看服務、查看wifi密碼

adb shell df 查看存儲相關信息
adb shell cat /sys/class/net/wlan0/address 獲取MAC地址
adb shell getprop ro.product.model 查看設備型號
adb shell getprop ro.build.version.release 查看Android系統版本
adb shell wm size 查看屏幕分辨率
adb shell wm density 查看屏幕密度
adb shell service 查看服務幫助信息
adb shell service list 查看服務列表
adb shell check servicename 檢查服務是否存在
adb shell cat /data/misc/wifi/*.conf 查看wifi密碼緩存

5.adb shell 使用指定設備、斷開鏈接

adb disconnect 斷開指定的鏈接設備
adb connect 鏈接
當鏈接的時候有多個設備時,使用adb shell 命令就會出現錯誤,error than one device and emulator。因此這時候只能指定設備 執行命令行。
使用adb -s deviceId shell ** 執行adb shell命令
這裏寫圖片描述app

6.adb shell 安裝卸載apk

安裝目標apk在PC端,使用adb install
安裝目標apk在Android設備端,使用adb shell pm instanll
保留數據和緩存文件,從新安裝apk 使用adb install -r cto.apk
安裝apk到sd卡 使用 adb install -s cto.apk
張林csdn
直接卸載:adb uninstall cnblogs.apk
卸載app但保留數據和緩存文件:adb uninstall -k cnblogs.apkless

總結

1.在鏈接手機設備時常常會發生各類錯誤,剛開始的時候聽麻煩的。好比鏈接的時候出現這樣
這裏寫圖片描述
這時候能夠在手機上將adbwirless 從新開啓、或者adb kill-server adb start-server
2.在鏈接vs中自帶的虛擬機時,VS生成apk已經生成可是沒法部署到模擬器上,原文連接http://bbs.csdn.net/topics/391491788?page=1
Validating enulator arguments….
determining if emulator is already running
emulator is already running
這裏寫圖片描述svg

其實這是由於沒有鏈接上模擬器,只須要將模擬器中的IP地址鏈接上去便可。成功鏈接便可完成部署。
3.adb pull 失敗 Permission denied工具

C:\Users\zhanglin>adb pull
data/data/Cnblogs.XamarinAndroid.Cnblogs.XamarinAndroid3/shared_prefs/Issume.xml
failed to copy
data/data/Cnblogs.XamarinAndroid.Cnblogs.XamarinAndroid3/shared_prefs/Issume.xml’
to ‘./Issume.xml’: Permission denied測試

明明已經受權怎麼會是這樣呢,不知道怎麼會是,查了百度
1.adb root 從新開啓adbwirless就能夠了 2.adb remount
這兩個方法均可以試試,能夠解決問題,參考原文http://www.apkbus.com/android-121320-1-1.html

4. adb server is out of date. killing… ADB server didn’t ACK daemon not running. starting it now on port 5037

查看這個端口被哪一個進程佔用了
netstat -ano | findstr 「5037」
tasklist | findstr 「19564」
taskkill /f /pid 19564
如圖:
這裏寫圖片描述
5.沒法終止PID爲xxxxx的進程
遇到了前面4的一個錯誤,5037端口被某個進程佔用了,殺掉這個端口發現,沒法終止這個進程,拒絕訪問。
這裏寫圖片描述
後來纔想起來,手機的數據線在連,裝了應用寶,這個端口被騰訊的tadb進程佔用,打開「任務管理器」,kill了這個進程就能夠鏈接了。
這裏寫圖片描述
做者:張林
標題:adb經常使用命令總結
原文地址:http://blog.csdn.net/kebi007/article/details/78024814 轉載隨意註明出處 「`