adb常用命令補充

1. adb devices

主要作用:查看當前已連接的設(shè)備,連接到計算機的Android設(shè)備或者模擬器將會以列表的形式顯示。

輸出格式:[serialNumber][state]

l? 如果當前沒有模擬器或者設(shè)備運行,adb則會返回List of devices attached為空

l? offline:表明設(shè)備沒有連接到計算機或無響應(yīng)

l? device:設(shè)備已經(jīng)連接到計算機。注意,該狀態(tài)并不表示Android設(shè)備可用,當Android設(shè)備處于啟動階段時,若連接成功也會返回該狀態(tài)。

2.? ? adb install <apk文件路徑>

主要作用:將指定的apk文件安裝到設(shè)備上,<apk文件路徑>可以從本地文件夾拖動到終端中。

常用參數(shù):

adb install –r 覆蓋安裝

adb install –s 安裝到SD卡

adb install –rs覆蓋安裝到SD卡

adb –s <serial number> install 選定設(shè)備安裝

當有多個設(shè)備連接時,可以用下面的命令來直接選定設(shè)備進行安裝。

adb [-d|-e|-s <serial number>] install <path_to_apk>

d:真機(多個設(shè)備中只有一個真機時適用)

e:模擬器(多個設(shè)備中只有一個模擬器時適用)

s:序列號

adb –d install ./test.apk

adb –s emulator-5556 install ./test.apk

3.? ? adb uninstall <包名>

主要作用:卸載設(shè)備上的指定程序

查看包名路徑:/data/app,系統(tǒng)安裝包路徑:/sys/data,這兩個路徑下文件的查看都需要root權(quán)限

adb uninstall –k <包名>

adb shell pm uninstall –k <包名>

卸載程序但是保留其配置和緩存文件,即/data/data/packname下的數(shù)據(jù)與/sdcard/程序名 的數(shù)據(jù)

4.? ? adb push/pull

主要作用:復制文件

1)adb push <本地路徑><設(shè)備路徑>

把pc上的文件或文件夾復制到設(shè)備中。

adb push /home/test.apk /sdcard/

2)adb pull <設(shè)備路徑><本地路徑>

把設(shè)備上的文件或文件夾復制到電腦

adb pull /sdcard/log/test.xls /home/

Pull命令后可不輸入本地地址,不輸入時文件會復制到當前終端所在目錄

5.? ? 關(guān)閉和啟動adb服務(wù)

sudo –s

adb kill-server? //關(guān)閉adb服務(wù)

adb start-server //啟動adb服務(wù)

6.? ? sudo –i和sudo –s的區(qū)別

sudo –i:在root用戶下,使用root權(quán)限執(zhí)行adb命令

sudo –s:在當前用戶下,使用root權(quán)限執(zhí)行adb命令

7.? ? adb logcat

主要作用:查看日志,在命令行中顯示調(diào)試信息

adb logcat >> <指定文件路徑>? 將logcat信息保存在指定文件中

>> 追加

>覆蓋

adb logcat –help:查看logcat命令幫助文檔

adb logcat -v time >C:\Users\pphou\Desktop\error.log

每一條日志消息都有一個標記和優(yōu)先級與其關(guān)聯(lián)。

格式為:<priority>/<tag>

過濾不同優(yōu)先級的log:adb logcat *:W(過濾比W優(yōu)先級低的log)

標記是一個簡短的字符串,用于標識原始消息的來源(例如“View”來源于顯示系統(tǒng))。

優(yōu)先級是下面的字符,順序從低到高:

V—Verbose 明細(最低優(yōu)先級)

D—Debug 調(diào)試

I—Info 信息

W—Warm 警告

E—Error 錯誤

F—Fatal 嚴重錯誤

S—Silent 無記載(最高優(yōu)先級,沒有什么會被記載)

建議配合Eclipse使用,查看logcat

8.? ? adb shell

由于Android是基于Linux內(nèi)核的操作系統(tǒng)。因此,在Android上可以執(zhí)行shell命令。

常用命令如下:

ls? ? 查看文件夾

cd? ? 改變目錄

cat <文件名>? ? 查看文件內(nèi)容

rm? ? 刪除文件

mkdir <文件夾>? ? 新建文件夾

cp? ? 復制文件到另一目錄

exit? 退出shell命令

adb shell <command>? ? 直接運行設(shè)備命令

adb shell su –c “<command>”? ? 直接運行root權(quán)限命令

9.? ? adb shell am

am start –n <包名>/<包名>.<Activity名>? 啟動程序

am force-stop <包名>? ? 強制停止程序

am kill <包名> 殺死與包名有關(guān)的后臺進程,不影響用戶體驗,相當于一般的清理內(nèi)存功能

am kill-all? ? 殺死所有后臺進程

10. adb shell pm

pm path <包名>? 查看apk安裝在手機后的路徑

pm uninstall [-k] <包名>? 卸載程序(-k:保留配置文件)

pm clear <包名>? ? 清除應(yīng)用緩存數(shù)據(jù)

11. 其他常用命令

adb help? ? 顯示幫助信息

adb version? 顯示adb版本

adb reboot? ? 重啟手機

adb shell am broadcast -a android.intent.action.MASTER_CLEAR(恢復出廠)

adb shell dumpsys window | grep init 查看手機的分辨率

adb logcat -s ActivityManager? ? ? ? Activity的啟動時間

12.常用命令使用

1.adb shell pm list package? ? 查看手機上所有的安裝包

2.adb shell pm list package -3? ? 查看第三方安裝包

3.adb shell pm list packages -s? ? ?查看系統(tǒng)的包

4.adb shell pm list packages -e “要搜索的內(nèi)容”? ? ?查看啟動包中搜索的包

5.adb shell dumpsys window | findstr mCurrentFocus? ?獲取當前打開的APP包名(前面的為包名,斜杠后面的是當前啟動的acivity)

adb shell dumpsys activity activities | grep "peo"

6.adb shell pm clear (apk包名)? 清除應(yīng)用數(shù)據(jù)與緩存

7.adb shell am force-stop com.peopxxx.activity? 強制停止應(yīng)用

13.殺掉monkey進程

adb shell ps | findstr monkey

adb shell kill 23033(進程號)

14.monkey設(shè)置白名單

--pkg-whitelist-file:只執(zhí)行白名單文件里面的包/apk ?

adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt

(以白名單為例)

? 1.首先手機要連接成功

? 2.在本地新建一個whitelist的txt文檔

? 3.使用命令adb shell pm list packages 查看手機中的包名

? 4.將需要執(zhí)行的包名寫進whitelist中

? 5.在命令行使用adb remount 進行掛載(有的不需要掛載)

? 6.使用push命令:adb push C:\xxx\Desktop\whitelist.txt /data/local/tmp 將文件push到手機中

? 7.執(zhí)行命令:C:\Users\Administrator>adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt -v 10000 >"C:\xxx\Desktop\log.txt"


黑名單--pkg-blacklist-file?:不執(zhí)行黑名單文件里面的包/apk ? ??

adb shell monkey --pkg-blacklist-file /data/local/tmp/blacklist.txt

15.adb命令查看cpu與內(nèi)存使用率

adb shell dumpsys meminfo? ?--查看內(nèi)存信息

具體查看某個pid的內(nèi)存信息,輸入命令:dumpsys meminfo pid

通過adb shell top,得到pid。


參數(shù)含義: dalvik:dalvik使用的內(nèi)存

native:native堆上的內(nèi)存,指C\C++堆的內(nèi)存(android3.0以后bitmap就是放在這兒)?

?other:除了dalvik和native的內(nèi)存,包含C\C++非堆內(nèi)存······

Pss:該內(nèi)存指將共享內(nèi)存按比例分配到使用了共享內(nèi)存的進程?

?heap alloc:已使用的內(nèi)存?

?heap free:空閑的內(nèi)存?

?share dirty:共享,但有不能被換頁出去的內(nèi)存

privatedirty:非共享,又不能被換頁出去的內(nèi)存(比如linux系統(tǒng)中為了提高分配內(nèi)存速度而緩沖的小對象,即使你的進程已經(jīng)退出,該內(nèi)存也不會被釋放)


查看cpu信息:方法一

輸入命令:top -m 10 (-m顯示最大數(shù)量,-s 按指定行排序)

參數(shù)含義:

? ? PID? : progress identification,應(yīng)用程序ID?

? ? S? ? : 進程的狀態(tài),其中S表示休眠,R表示正在運行,Z表示僵死狀態(tài),N表示該進程優(yōu)先值是負數(shù)?

? ? #THR : 程序當前所用的線程數(shù)?

? ? VSS? : Virtual Set Size虛擬耗用內(nèi)存(包含共享庫占用的內(nèi)存)?

? ? RSS? : Resident Set Size實際使用物理內(nèi)存(包含共享庫占用的內(nèi)存)?

? ? PCY? : 前臺(fg)和后臺(bg)進程?

? ? UID? : User Identification,用戶身份ID?

? ? Name : 應(yīng)用程序名稱?

方法二:

命令:adb shell dumpsys cpuinfo

adb shell dumpsys cpuinfo | findstr "xx"

16.測試結(jié)果分析

程序無響應(yīng),ANR問題:在日志中搜索“ANR”

崩潰問題:在日志中搜索“CRASH”

其他問題:在日志中搜索”Exception”

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、日志相關(guān): adb logcat //顯示全部日志 adb logcat > c:\test.log //...
    學習不斷閱讀 59,870評論 0 11
  • Tcp/IP通信也是不安全的,在傳輸?shù)臅r候也可能出現(xiàn)漏洞 查看正在運行的進程 adb shell ps -A |g...
    遠遠飄著云閱讀 5,231評論 0 0
  • 原:http://m.itdecent.cn/p/980fea2c9457 1、查看最上層成activity...
    柒黍閱讀 1,732評論 0 0
  • 1、查看最上層成activity名字:adb shell dumpsys activity | findstr "...
    waiwaaa閱讀 1,440評論 0 0
  • Appium學習筆記目錄 本文包含內(nèi)容: adb常用命令 1. 查看當前PC端連接有多少設(shè)備adb devices...
    殘陽夕露閱讀 787評論 0 3

友情鏈接更多精彩內(nèi)容