adb工具即Android Debug Bridge(安卓調試橋) tools。它就是一個命令行窗口,用於電腦端與模擬器或者真實設備交互。
經常使用操做:java
adb devices 沒有設備:可藉助驅動精靈檢查手機驅動,驅動安裝好以後重啓電腦。
adb devices unauthorized :解決辦法:將手機設置->輔助功能->開發者模式->撤銷usb調試受權,從新打開開發者模式android
adb devices
adb version
若是在電腦D盤下面有個a.apk文件,只須要一行命令就安裝到手機上: adb install d:/a.apk 若是已經安裝了這個程序,能夠經過如下命令覆蓋安裝: adb install -r d:/a.apk 保留數據和緩存文件,從新安裝 apk adb install -r a.apk 安裝包在android設備中 adb shell pm install apk在移動端的路徑
adb uninstall 包名 卸載軟件可是保留配置和緩存文件: adb uninstall -k 包名
若是機器上有多個模擬器或真機,須要使用-s命令行參數指定具體的模擬器或真機。例如,下面的命令分別在模擬器和真機上安裝、從新安裝和卸載應用程序。shell
在emulator-5554模擬器上安裝ebook.apk adb -s emulator-5554 install ebook.apk 在真機上安裝ebook.apk adb -s HT9BYL904399 install ebook.apk 在emulator-5554模擬器上從新安裝ebook.apk adb -s emulator-5554 install -r ebook.apk 在真機上從新安裝ebook.apk adb -s HT9BYL904399 install -r ebook.apk 在emulator-5554模擬器上卸載ebook.apk(不保留數據和緩衝目錄) adb -s emulator-5554 uninstall net.blogjava.mobile.ebook 在真機上卸載ebook.apk(保留數據和緩衝目錄) adb -s HT9BYL904399 uninstall -k net.blogjava.mobile.ebook
包名(Package name)在Android系統中是判斷一個App的惟一標識,不一樣的App能夠有一樣的名字,可是它的包名不能夠相同。緩存
例如我能夠本身編譯生成一個App也叫「微信」,可是我App的包名不能爲com.tencent.mm(微信的包名爲這個),若是我指定的包名若是也和微信一致了,那麼個人手機上只容許安裝這兩個App中的其中一個。說到這不少人就會有疑問,若是有人惡意作了一個和微信內容如出一轍的App,名字和包名都和微信同樣,那怎麼分辨呢?Android中爲了防止這樣,還作了一個叫簽名的東西,微信的簽名通常咱們是沒有的,因此就能夠經過簽名來標識出這款App究竟是誰的了。服務器
一、看源代碼 當有源代碼的時候,能夠到工程目錄下的 「AndroidManifest.xml」文件下查看package這一項。 二、adb命令查看 列出手機裝的全部 app 的包名: adb shell pm list packages 列出系統應用的全部包名: adb shell pm list packages -s 列出除了系統應用的第三方應用包名: adb shell pm list packages -3 推測一個包中可能帶有的關鍵字: adb shell dumpsys activity | findstr mFocusedActivity 清除應用數據與緩存 adb shell pm clear 應用包名
一、接收電腦文件 語法:adb push local remote 案例:adb push d:/a.txt /sdcard/ 把電腦 D 盤下的 a.txt 文件推送到手機 sdcard 目錄下 二、上傳文件到電腦 語法:adb pull remote local 案例:adb pull /sdcard/a.txt d:/ 上傳位於/sdcard/目錄下的 a.txt 文件到電腦的 D 盤根目錄下
能夠在安卓設備上裝個QQ之類的軟件,進行截屏 adb shell screencap /sdcard/a.png adb shell /system/bin/screencap -p /sdcard/a.png 二、使用adb進行屏幕錄像 adb shell screenrecord /sdcard/a.mp4 經過ctrl+c中止錄製,你能夠在sdcard目錄下查看。媽媽不再擔憂我處處找錄製視頻的軟件了。
進入shell adb shell 退出shell exit
獲取序列號 adb get-serialno 獲取 MAC 地址 adb shell cat /sys/class/net/wlan0/address 查看設備型號 adb shell getprop ro.product.model 查看 Android 系統版本 adb shell getprop ro.build.version.release 查看屏幕分辨率 adb shell wm size 查看屏幕密度 adb shell wm density 查看permissions adb shell pm list permissions 查看系統的危險權限dangerous permissions adb shell pm list permissions -d -g
adb kill-server adb start-server 好比但願移動adb文件夾,或者adb命令得不到想要的內容時
列出當前進程 adb shell ps | findstr 包名 殺死某個包的進程 adb shell am force-stop 包名
獲取內存: adb shell dumpsys meminfo 包名 獲取cpu: adb shell dumpsys cpuinfo | findstr 包名 adb shell top -n 1 | findstr 包名 獲取流暢度相關: adb shell dumpsys gfxinfo 包名
若是想在模擬器或真機上運行已安裝的應用程序,除了直接在模擬器或真機上操做外,還可使用以下的命令直接運行程序。微信
在emulator-5554模擬器上運行ebook.apk adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 在真機上運行ebook.apk adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 其中Main是ebook.apk的主Activity。至關於Windows應用程序的主窗體或Web應用程序的主頁面。am是shell命令。
查看當前顯示的activity adb shell dumpsys activity | findstr "mFocusedActivity" 結果: mFocusedActivity: ActivityRecord{93a4f9 u0 com.youdao.note/.activity2.MainActivity t36} 注意:咱們只須要這一部分:com.youdao.note/.activity2.MainActivity 即包名+activity 找到當前手機內的top Activity: adb shell dumpsys activity top | findstr ACTIVITY 啓動某一個Activity: adb shell am start activity路徑 adb shell am start com.youdao.note/.activity2.MainActivity ———————這個Activity路徑可經過上面獲取top activity的方式獲取
netstat -ano|findstr "8080"