安卓除錯橋 (android debug bridge, adb),是一種可以用來操作手機裝置或模擬器的命令列工具。它存在於 sdk/platform-tools 目錄下。
首先將手機連線了電腦,並且在開發者
選擇中開啟usb 除錯模式
adb devices
可以看到
c:\users\liaojp>adb devices
list of devices attached
7884b375 device
其中,7884b375 是裝置序列號,device 是裝置狀態,裝置狀態有三種:
如果發現多個裝置,可以指定對應的裝置
adb -s 裝置號 其他指令
例如:adb -s 7884b375 install ***.apk
如果想要保留資料,則:
如果出現報錯報錯:failure [delete_failed_internal_error]
獲取包名的位址
掛載系統讀寫許可權
adb remount
刪除第一步獲取的包名的位址
重啟
adb reboot
android 內建 apk 有如下特權:
不能被普通使用者解除安裝
具有比普通應用更高的許可權,可以使用受限的系統 api,
結合某些 manifest.xml 宣告,可以實現更多效果,例如系統級保活
可以宣告 priority > 0 的 元件
/system
是android系統目錄,存放android系統應用和lib,有時候我們需要向該目錄中寫入檔案,例如,將自己開發的apk內建到系統中,作為系統apk啟動,但該目錄預設是只有read
許可權,沒有write
許可權,執行wirte後會出現read-only file system
的錯誤提示。
下面介紹如何獲取該 write 許可權:
執行adb shell su
。以 root 使用者進入adb shell。(在shell中去輸入命令符會有乙個$開頭,當你是root身份開啟時,開頭就是乙個井號#)
執行mount|grep /system
,可以看到如下資訊,不同裝置,看到的資訊不一樣。
/dev/block/platform/15740000.dwmmc0/by-name/system /system ext4 ro,relatime,data=ordered 0 0
看到 ro,即表示該目錄只有read許可權,接下來嘗試修改許可權。
執行mount -o remount /system
, 其中 部分填入在上面看到的檔案路徑,例如,我這裡是
/dev/block/platform/15740000.dwmmc0/by-name/system
,所以我應該執行的完整命令是
mount -o remount /dev/block/platform/15740000.dwmmc0/by-name/system /system
重新執行mount|grep /system
,看到如下資訊,ro 已經變成 rw,表示system已經此時已經可以向 /system 寫入檔案了。
/dev/block/platform/15740000.dwmmc0/by-name/system /system ext4 rw,relatime,data=ordered 0 0
如果要恢復該目錄的讀寫許可權,可以執行mount -o remount,ro /system
。
在將檔案 push 到 『/system』 資料夾之前,必須先輸入命令adb remount
。
adb remount
的作用相當於adb shell mount -o rw,remount,rw /system
。
在 android 5.0 以前,推送到系統應用目錄中的apk會被自動安裝,android 5.0 之後,只在系統啟動時,系統會自動安裝它。
確認有沒有被實際安裝,可以通過如下命令
adb shell //進入adb shell 模式
# pm list packages | grep //在所有已安裝的apk中,查詢指定的apk有沒有安裝
如果安裝成功,則會有一行輸出,顯示自己的應用包名,否則不會有任何輸出提示。
可以通過重啟系統來使剛剛push進入的apk安裝到系統中。如果完全重啟系統的話,花費時間較長,可以通過部分重啟來節省時間。在cmd中執行如下命令。
abd shell//進入adb shell 模式
# am restart //重啟系統(非完全重啟)
重啟之後正常情況下應用應該已經安裝了,接下來測試下應用是否能能夠工作。
adb shell pm list packages
adb shell am start 包名/完整activity路徑
如果需要攜帶引數(攜帶乙個intent,key 為name):
啟動乙個隱式的intent:
adb shell am start -a "android.intent.action,view" -d ""
adb shell am startservice 包名/完整server路徑
adb shell am broadcast -a "broadcastactionfilter"
adb shell screencap /sdcard/screen.png
adb shell screenrecord /sdcard/demo.mp4
把手機中的檔案拷貝到電腦中,使用adb pull [local]
命令,如果local
位址為空,則會拷貝到電腦當前目錄下:
adb pull /sdcard/game.apk
把電腦中的檔案拷貝到手機裡,使用adb push
命令:
adb reboot recovery
adb 用法大全 adb常用命令
安裝軟體 adb install apk檔名稱.apk 重新安裝該軟體 adb install r apk檔名稱.apk 解除安裝apk軟體 adb uninstall apk包名.apk 檢視手機上的執行日誌,此項可以用來查錯 adb logcat 檢視手機是否連線,以及連線了幾台手機 adb d...
adb 常用命令
adb命令的主要用途 1.執行android裝置的shell 命令列 2.管理模擬器或android裝置的對映埠。3.安裝和解除安裝應用程式。關閉或開啟adb服務 關閉adb服務 adb kill server 開啟adb服務 adb start server 檢視當前連線的裝置 adb devic...
adb 常用命令
顯示當前執行的全部模擬器 對某一模擬器執行命令 abd s 模擬器編號 adb devices列出來id 命令 獲取模擬器中的檔案 adb pull 用pull命令可以把裝置 手機 上的檔案或者資料夾複製到本機電腦。例如執行程式在機子中存了乙個日誌檔案,可以用次命令將該檔案拉出來到本店電腦中,檢視詳...