Android ADB Shell 常用命令
1. 設(shè)備連接與排錯(cuò) (Device Connection)
Linux下無(wú)權(quán)限或無(wú)法識(shí)別設(shè)備
當(dāng)Linux系統(tǒng)無(wú)法識(shí)別Android設(shè)備,或出現(xiàn) no permissions 報(bào)錯(cuò)時(shí),通常是 udev 規(guī)則缺失導(dǎo)致。
解決方法:
- 獲取設(shè)備ID:
運(yùn)行 lsusb 查看USB設(shè)備列表。找到你的設(shè)備(如含 “Google Inc.” 或廠商名)。
記錄下 ID 后的兩組數(shù)字,例如 18d1:4ee7。
idVendor: 18d1idProduct: 4ee7
- 配置udev規(guī)則:
創(chuàng)建或編輯規(guī)則文件:
sudo vim /etc/udev/rules.d/90-android.rules
添加以下內(nèi)容(替換為你的ID):
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee7", MODE="0666", GROUP="plugdev", SYMLINK+="android", SYMLINK+="android_adb"- 重啟服務(wù)與ADB:
sudo udevadm control --reload-rules sudo service udev restart sudo udevadm trigger adb kill-server adb start-server
2. 應(yīng)用與包管理 (Package Management)
主要使用 pm (Package Manager) 命令。
查看已安裝應(yīng)用
- 列出所有包:
adb shell pm list packages
- 按條件篩選:
-f: 顯示包名及其對(duì)應(yīng)的APK路徑-d: 僅顯示被禁用的包-e: 僅顯示啟用的包-s: 僅顯示系統(tǒng)包-3: 僅顯示第三方安裝的包-i: 顯示安裝來(lái)源(如installer_package_name)grep過(guò)濾:adb shell pm list packages | grep "keyword"
獲取應(yīng)用信息
- 查看應(yīng)用APK路徑:
adb shell pm path <package_name>
示例:adb shell pm path com.android.settings
- 查看應(yīng)用詳細(xì)信息 (dumpsys):
adb shell dumpsys package <package_name>
此命令會(huì)輸出極為詳細(xì)的應(yīng)用組件、權(quán)限、狀態(tài)等信息。
停止與清除
- 強(qiáng)行停止應(yīng)用:
adb shell am force-stop <package_name>
- 清除應(yīng)用數(shù)據(jù) (類似重裝效果):
adb shell pm clear <package_name>
3. Activity 與 Service 管理 (Activity Manager)
主要使用 am (Activity Manager) 命令。
啟動(dòng) Activity
adb shell am start -n <package_name>/<activity_class_name> [options]
- 攜帶參數(shù)啟動(dòng):
--es <key> <string_value>: 傳遞 String 參數(shù)--ei <key> <int_value>: 傳遞 Int 參數(shù)--ez <key> <boolean_value>: 傳遞 Boolean 參數(shù)
示例:
adb shell am start -n com.example.app/.MainActivity --es username "test"
發(fā)送廣播 (Broadcast)
adb shell am broadcast -a "<ACTION_NAME>" [extras]
- 示例:模擬SIM卡狀態(tài)變化
adb shell am broadcast -a "android.intent.action.SIM_STATE_CHANGED" --es "ss" "LOADED"
查看當(dāng)前 Activity
快速確認(rèn)當(dāng)前顯示的界面所屬的 Activity。
adb shell dumpsys activity top | grep ACTIVITY
或者(Windows下若無(wú)grep):
adb shell dumpsys activity top
然后手動(dòng)查找 ACTIVITY 關(guān)鍵字。
Service 操作
- 查看運(yùn)行中的 Service(添加到ServiceManager的):
adb shell service list
- Dump Service 信息:
adb shell dumpsys activity service <service_name>
4. 文件系統(tǒng)與搜索 (File System & Search)
Android Shell 支持大部分標(biāo)準(zhǔn) Linux 命令。
文本搜索 (grep)
- 基本用法:
grep -rn "search_term" <path>
-r: 遞歸查找子目錄-n: 顯示行號(hào)-i: 忽略大小寫-l: 僅列出包含匹配內(nèi)容的文件名-w: 全詞匹配(Word matching)- 實(shí)用場(chǎng)景:
查找所有包含 “ERROR” 的日志文件:
find /sdcard/logs | xargs grep "ERROR"
文件查找 (find)
- 按文件名查找:
find <path> -name "<filename_pattern>"
示例:find /system -name "*.so"
容量與結(jié)構(gòu)
- 查看磁盤空間:
df -h
- 查看當(dāng)前目錄大小:
du -sh .
- 查看目錄樹結(jié)構(gòu):
tree -L 2 # 僅顯示2層深度
5. 日志與調(diào)試 (Logging & Debugging)
Logcat 高級(jí)用法
- 保存日志到文件:
adb logcat -v time > log.txt
- 清除舊日志:
adb logcat -c
- 過(guò)濾特定字符串:
- Linux/Mac:
adb logcat | grep "Error" - Windows:
adb logcat | findstr "Error" - 包含全部緩沖區(qū)(包含 crash, radio, events 等):
adb logcat -b all
屬性系統(tǒng) (Properties)
- 獲取屬性:
adb shell getprop <key>
示例:獲取運(yùn)營(yíng)商信息 adb shell getprop ro.carrier
- 設(shè)置屬性(通常需要root或特殊權(quán)限):
adb shell setprop <key> <value>
示例:允許覆蓋安裝系統(tǒng)App adb shell setprop debug.allow.persist.update true
進(jìn)程信息
- 查看進(jìn)程:
adb shell ps -ef | grep <app_name>
- 查看進(jìn)程打開的文件 (lsof):
adb shell lsof -p <pid>
Window Manager (wm)
- 開啟 ProtoLog (調(diào)試WMS/AMS):
adb shell wm logging enable-text WM_DEBUG_STATES
6. 屏幕操作 (Screen Operations)
屏幕截圖
- 截圖并保存到電腦(一步到位):
adb exec-out screencap -p > screenshot.png
- 傳統(tǒng)方式(先存手機(jī)再拉?。?/li>
adb shell screencap -p /sdcard/sc.png adb pull /sdcard/sc.png
屏幕錄制
- 錄制視頻:
adb shell screenrecord /sdcard/demo.mp4
- 限制時(shí)長(zhǎng)(例如30秒):
adb shell screenrecord --time-limit 30 /sdcard/demo.mp4
注意:默認(rèn)最長(zhǎng)錄制180秒。
7. 系統(tǒng)與工程模式 (Advanced & System)
解鎖 Bootloader
- 進(jìn)入 Bootloader 模式:
adb reboot bootloader
- 解鎖命令(需在開發(fā)者選項(xiàng)開啟 OEM Unlock):
fastboot flashing unlock
到此這篇關(guān)于Android ADB Shell 常用命令的文章就介紹到這了,更多相關(guān)Android ADB Shell 命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Jetpack Compose圖片組件使用實(shí)例詳細(xì)講解
在Compose中,圖片組件主要有兩種,分別是顯示圖標(biāo)的Icon組件和顯示圖片的Image組件,當(dāng)我們顯示一系列的小圖標(biāo)的時(shí)候,我們可以使用Icon組件,當(dāng)顯示圖片時(shí),我們就用專用的Image組件2023-04-04
Android屏幕手勢(shì)檢測(cè)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android屏幕手勢(shì)檢測(cè)的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
Android 添加TextView刪除線(代碼簡(jiǎn)單)
最近接了個(gè)項(xiàng)目,其中有項(xiàng)目需求是這樣的,有這么個(gè)需求,就是一個(gè)產(chǎn)品下有兩個(gè)價(jià)格,一個(gè)是市場(chǎng)價(jià),一個(gè)是銷售價(jià),這時(shí)要把市場(chǎng)價(jià)添加個(gè)刪除線;怎么實(shí)現(xiàn)呢?下面小編給大家分享一段簡(jiǎn)單的代碼實(shí)現(xiàn)Android 添加TextView刪除線2016-02-02
Android實(shí)現(xiàn)多點(diǎn)觸控功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多點(diǎn)觸控功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Android基于ViewPager實(shí)現(xiàn)的應(yīng)用歡迎界面完整實(shí)例
這篇文章主要介紹了Android基于ViewPager實(shí)現(xiàn)的應(yīng)用歡迎界面,結(jié)合完整實(shí)例形式分析了ViewPager類用于歡迎界面顯示圖片的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-08-08
Android畫廊效果之ViewPager顯示多個(gè)圖片
這篇文章主要為大家詳細(xì)介紹了Android畫廊效果之ViewPager顯示多個(gè)圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Android利用FlexboxLayout輕松實(shí)現(xiàn)流動(dòng)布局
flexbox是屬于CSS的一種布局方案,可以簡(jiǎn)單、完整、響應(yīng)式的實(shí)現(xiàn)各種頁(yè)面布局。谷歌將其引入以提高復(fù)雜布局的能力。下面這篇文章主要給大家介紹了在Android中利用FlexboxLayout輕松實(shí)現(xiàn)流動(dòng)布局的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-04-04
Android中實(shí)現(xiàn)TCP和UDP傳輸實(shí)例
這篇文章主要介紹了Android中實(shí)現(xiàn)TCP和UDP傳輸實(shí)例,本文給出了TCP服務(wù)器端代碼、TCP客戶端代碼、UDP服務(wù)器端代碼、UDP客戶端代碼等代碼實(shí)例,需要的朋友可以參考下2015-03-03
Flexbox+ReclyclerView實(shí)現(xiàn)流式布局
這篇文章主要為大家詳細(xì)介紹了Flexbox+ReclyclerView實(shí)現(xiàn)流式布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11

