導航:首頁 > 程序命令 > androidtop命令

androidtop命令

發布時間:2025-01-24 01:24:10

『壹』 常用命令之TOP

android中TOP命令用於查看當前CPU負載、內存佔用、進程信息等。

第一行 ,進程信息:

系統現在共有668個進程,其中處於運行中的有1個,665個在休眠(sleep),stoped狀態的有0個,zombie狀態(僵屍)的有2個。

第二行 ,內存信息:

物理內存總量:3.5G

使用中的內存:3.1G

空閑的內存:466M

緩存的內存:96M

第三行 ,交御陪換分區,android中指ZRAM:

交換分區總量:2G

使用中的交換區:455M

空閑的交換區總量:1.5G

緩沖的交換區:1.4G

第四行 ,CPU狀態信息:

800%cpu

5%user - 用戶進程佔用cpu的百分比

0%nice - 優先值為負的進程所佔用的CPU時間

7%sys - 系統進程佔用cpu的百分比

788%idle - 空閑cpu百分比

1%iow - IO等待時間凱拆尺

0%irq - 硬中斷時間

0%sirq - 軟中斷時間

0%host -

第五行 ,各進程狀態監控:

PID — 進程id

USER — 進程所有者

PR — 進程優先順序

NI — nice值。負值表示高優先順序,正值表示低優先順序

VIRT — 進程使用的虛擬內存總量,VIRT=SWAP+RES

RES — 進程使用的、未被換出的物理內存大小,RES=CODE+DATA

SHR — 共享內存大小

S — 進程狀盯高態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程

%CPU — 上次更新到現在的CPU時間佔用百分比

%MEM — 進程使用的物理內存百分比

TIME+ — 進程使用的CPU時間總計,單位1/100秒

ARGS — 進程名稱(命令名/命令行)

『貳』 安卓系統超級終端怎麼用

在Android系統中,超級終端是一個強大的工具,可以執行多種命令來監控和管理設備。其中,df命令是檢查文件系統磁碟空間佔用情況的常用命令。其格式為df [options],其中主要參數包括-s、-a、-k、-x、-l、-i、-h、-P和-T,用於詳細查看文件系統的使用情況。對於超級用戶而言,使用df命令時可能會發現某些分區的容量超過100%,這是因為linux系統為超級用戶保留了10%的空間,由其單獨支配。這種安排有助於系統管理員在硬碟使用接近飽和時仍能正常工作。


另一個常用的命令是top,它用於顯示執行中的程序進程。其格式為top [-] [d delay] [q] [c] [S] [s] [n],主要參數包括d、q、c、S、s、n等,用於設置更新間隔、進程顯示和排序方式。top命令是Linux系統管理的重要工具,提供了豐富的信息,包括PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+和Command等。此外,還可以通過快捷鍵進行交互操作,如立刻刷新、根據CPU使用大小排序、根據時間排序、退出top命令等。


最後,free命令用於顯示內存的使用情況,其格式為free [-b|-k|-m] [-o] [-s delay] [-t] [-V],主要參數包括-b、-k、-m、-s delay、-t和-o,用於以不同單位顯示內存使用情況、設置更新間隔、顯示內存總和列等。free命令相比top命令,使用更簡單,佔用的系統資源較少。通過-s delay參數可以不間斷地監視內存使用情況,將其作為實時監控器使用。


這些命令對於系統管理員來說至關重要,它們提供了關於系統狀態的詳細信息,幫助管理員進行有效的管理和維護。雖然這些命令在使用時可能會消耗一定的系統資源,但它們的功能強大且易於操作,是維護Android設備的重要工具。

『叄』 Android性能測試(內存、cpu、fps、流量、GPU、電量)——adb篇

3)查看進程列表:adb shell "ps",同時也能獲取到應用的UID,方式如下(不需root許可權):

u0_a開頭的都是Android的應用進程,Android的應用的UID是從10000開始,到19999結束,可以在Process.java中查看到(FIRST_APPLICATION_UID和LAST_APPLICATION_UID),u0_a後面的數字就是該應用的UID值減去FIRST_APPLICATION_UID所得的值,所以,對於截圖這個應用進程,它是u0_a155,按前面的規制,它的UID就是155 + FIRST_APPLICATION_UID = 10155。

VSS - Virtual Set Size 虛擬耗用內存(包含共享庫佔用的內存)
RSS - Resident Set Size 實際使用物理內存(包含共享庫佔用的內存)
PSS - Proportional Set Size 實際使用的物理內存(比例分配共享庫佔用的內存)
USS - Unique Set Size 進程獨自佔用的物理內存(不包含共享庫佔用的內存)
一般來說內存佔用大小有如下規律:VSS >= RSS >= PSS >= USS

使用 adb shell "mpsys meminfo -s <pakagename | pid>"命令,輸出結果分以下4部分:

PS:在apk內調用運行獲取其他app的內存數據則需要root許可權

adb命令:adb shell mpsys gfxinfo <package | pid>

正常情況下幀率應該在16.67ms左右,1秒60幀,執行結果如下:

詳細計算方法如下:

還有一個命令是: adb shell mpsys SurfaceFlinger --latency LayerName

其中LayerName在各個不同系統中獲取的命令是不一樣的
在Android 6系統直接就是SurfaceView
在Android 7系統中可以通過 mpsys window windows | grep mSurface | grep SurfaceView 然後通過數據截取到
在Android 8系統中可以通過 mpsys SurfaceFlinger | grep android包名獲取到

執行命令結果如下:

計算方法比較簡單,一般列印出來的數據是129行(部分機型列印兩次257行,但是第一部分是無效數據,取後半部分),取len-2的第一列數據為end_time,取len-128的第一列數據為start_time
fps = 127/((end_time - start_time) / 1000000.0)
至於為啥要取第一列數據,這里不做過多介紹,歡迎參看這兩篇文章
老羅的文章SurfaceView原理
Android性能測試之fps獲取
至於為啥要處於1000000,因為命令列印出來的是納秒單位,要轉為毫秒進行計算,127就是因為命令一次列印出來127幀的數據而已

有兩種方法可以獲取
1) adb shell "top -n 5 | grep <package | pid>" ,第三列就是實時監控的CPU佔用率(-n 指定執行次數,不需root許可權),這邊top命令執行需要2到3s左右,一般可以採用busybox 的top命令執行,效率會快很多

2) adb shell "mpsys cpuinfo | grep <package | pid>"
兩種方法直接區別在於,top是持續監控狀態,而mpsys cpuinfo獲取的實時CPU佔用率數據

adb命令:adb shell "mpsys batterystats < package | pid>" (Android 5.0後引入)
獲取單個應用的耗電量信息,具體返回結果待研究

adb命令:adb shell "mpsys battery"
出現信息解讀:
AC powered:false 是否連接AC(電源)充電線
USB powered:true 是否連接USB(PC或筆記本USB插口)充電
Wireless powered:false 是否使用了無線電源
status: 1 電池狀態,2為充電狀態,其他為非充電狀態
level:58 電量(%)
scale: 100. 電量最大數值
voltage: 3977 當前電壓(mV)
current now: -335232. 當前電流(mA)
temperature:355 電池溫度,單位為0.1攝氏度

adb 命令:adb shell "mpsys< package | pid> | grep UID" [通過ps命令,獲取app的UID(安裝後唯一且固定)]
adb shell cat /proc/uid_stat/UID/tcp_rcv [cat為查看命令,讀取tcp_rcv獲取應用接收流量信息(設備重啟後清零)]
adb shell cat /proc/uid_stat/UID/tcp_snd [cat為查看命令,讀取tcp_snd獲取應用發送流量信息(設備重啟後清零)]
計算流量消耗步驟:

或者還有一種方式獲取應用流量消耗:

首先判斷類型:
cat /sys/class/thermal/thermal_zone*/type

只有紅框框出來的是有效的
cat /sys/class/thermal/thermal_zone*/temp
獲取CPU溫度

mpsys battery | grep temperature 單位0.1攝氏度

獲取/proc/stat文件內容(無許可權限制)

總的cpu時間片是 total = user+nice+system+idle+iowait+irq+softirq
忙碌時間為 notidle = user+nice+system +iowait+irq+softirq
cpu使用率計算方法為,先取開始的total值和忙碌時間notidle,隔一段時間片,再取一次計算total2,notidle2, cpuuse = (notidle2 – notidle) * 100 / (total2 - total)%

PS:由於Android 8許可權收緊,在Android 8系統手機內apk內讀取文件內容為空,需要shell許可權才可獲取文件內容,下同

讀/sys/devices/system/cpu/cpuX/cpufreq/scaling_cur_freq文件的值,X不定,看是幾核手機,scaling_cur_freq是否存在也不一定,需要判斷

至於為啥不取cpuinfo_cur_freq文件的值,原因是android 6,7系統獲取的時候,這個文件shell沒有讀取許可權,需要root許可權

參考文章: https://blog.csdn.net/long_meng/article/details/45934899

Android 6,7系統可執行
mpsys window windows | grep "mCurrentFocus"

執行結果一般為類似:
mCurrentFocus=Window{81caaa5 u0 com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity}
按照一定規則把com.tencent.mobileqq提取出來即可

直接apk內讀取文件即可,不需要shell許可權(支持到Android8)
Gpu使用率獲取:會得到兩個值,(前一個/後一個)*100%=使用率
adb shell cat /sys/class/kgsl/kgsl-3d0/gpubusy

Gpu工作頻率:
adb shell cat /sys/class/kgsl/kgsl-3d0/gpuclk
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/cur_freq

Gpu最大、最小工作頻率:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/min_freq

Gpu可用頻率
adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/available_frequencies

Gpu可用工作模式:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/available_governors

Gpu當前工作模式:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/governor

『肆』 安卓手機常用的一些工程測試指令有哪些

Android手機的一些主要工程測試指令
*#*#7780#*#* –重設為原廠設定,不會刪除預設程序,及 SD 卡檔案*2767*3855# –重設為原廠設定,會刪除 SD 卡所有檔案
*#*#34971539#*#* –顯示相機相機韌體版本,或更新相機韌體
*#*#4636#*#* — 顯示手機信息、電池信息、電池記錄、使用統計數據、WiFi 信息
*#*#7594#*#* –當長按關機按鈕時,會出現一個切換手機模式的窗口,包括: 靜音模式、飛航模式及關機,你可以用以上代碼,直接變成關機按鈕
*#*#273283*255*663282*#*#* –開啟一個能讓你備份媒體文件的地方,例如相片、聲音及影片等
*#*#197328640#*#* –啟動服務模式,可以測試手機部分設置及更改設定WLAN、 GPS 及藍牙測試的代碼
*#*#232339#*#* 或 *#*#526#*#* 或 *#*#528#*#* – WLAN 測試
*#*#232338#*#* – 顯示 WiFi MAC 地址
*#*#1472365#*#* – GPS 測試
*#*#1575#*#* – 其它 GPS 測試
*#*#232331#*#* – 藍牙測試
*#*#232337#*# – 顯示藍牙裝置地址
*#*#8255#*#* –啟動 GTalk 服務監視器顯示手機軟體版本的代碼
*#*#4986*2650468#*#* – PDA、 Phone、 H/W、 RFCallDate
*#*#1234#*#* – PDA 及 Phone
*#*#1111#*#* – FTA SW 版本
*#*#2222#*#* – FTA HW 版本
*#*#44336#*#* – PDA 、Phone、 CSC、 Build Time、 Changelist number各項硬體測試
*#*#0283#*#* – Packet Loopback
*#*#0*#*#* – LCD 測試
*#*#0673#*#* 或 *#*#0289#*#* – Melody 測試
*#*#0842#*#* – 裝置測試,例如振動、亮度
*#*#2663#*#* – 觸控屏幕版本*#*#2664#*#* – 觸控屏幕測試
*#*#0588#*#* – 接近感應器測試*#*#3264#*#* – 內存版本

『伍』 android shell command有哪些

Android執行shell命令
一、方法

1. /**
2. * 執行一個shell命令,並返回字元串值
3. *
4. * @param cmd
5. * 命令名稱&參數組成的數組(例如:{"/system/bin/cat", "/proc/version"})
6. * @param workdirectory
7. * 命令執行路徑(例如:"system/bin/")
8. * @return 執行結果組成的字元串
9. * @throws IOException
10. */
11. public static synchronized String run(String[] cmd, String workdirectory)
12. throws IOException {
13. StringBuffer result = new StringBuffer();
14. try {
15. // 創建操作系統進程(也可以由Runtime.exec()啟動)
16. // Runtime runtime = Runtime.getRuntime();
17. // Process proc = runtime.exec(cmd);
18. // InputStream inputstream = proc.getInputStream();
19. ProcessBuilder builder = new ProcessBuilder(cmd);
20.
21. InputStream in = null;
22. // 設置一個路徑(絕對路徑了就不一定需要)
23. if (workdirectory != null) {
24. // 設置工作目錄(同上)
25. builder.directory(new File(workdirectory));
26. // 合並標准錯誤和標准輸出
27. builder.redirectErrorStream(true);
28. // 啟動一個新進程
29. Process process = builder.start();
30.
31. // 讀取進程標准輸出流
32. in = process.getInputStream();
33. byte[] re = new byte[1024];
34. while (in.read(re) != -1) {
35. result = result.append(new String(re));
36. }
37. }
38. // 關閉輸入流
39. if (in != null) {
40. in.close();
41. }
42. } catch (Exception ex) {
43. ex.printStackTrace();
44. }
45. return result.toString();
46. }

二、用途
執行Linux下的top、ps等命令,這些命令你也通過adb可以執行查看效果。
1)top命令如下:

1. adb shell
2. $ top -h
3. top -h
4. Usage: top [-m max_procs] [-n iterations] [-d delay] [-s sort_column] [-t] [-h]
5. -m num Maximum number of processes to display. // 最多顯示多少個進程
6. -n num Updates to show before exiting. // 刷新次數
7. -d num Seconds to wait between updates. // 刷新間隔時間(默認5秒)
8. -s col Column to sort by <cpu,vss,rss,thr> // 按哪列排序
9. -t Show threads instead of processes. // 顯示線程信息而不是進程
10. -h Display this help screen. // 顯示幫助文檔
11. $ top -n 1
12. top -n 1

就不把執行效果放上來了,總之結果表述如下:

1. User 35%, System 13%, IOW 0%, IRQ 0% // CPU佔用率
2. User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306 // CPU使用情況
3.
4. PID CPU% S #THR VSS RSS PCY UID Name // 進程屬性
5. xx xx% x xx xx xx xx xx xx
6.
7. CPU佔用率:
8. User 用戶進程
9. System 系統進程
10. IOW IO等待時間
11. IRQ 硬中斷時間
12.
13. CPU使用情況(指一個最小時間片內所佔時間,單位jiffies。或者指所佔進程數):
14. User 處於用戶態的運行時間,不包含優先值為負進程
15. Nice 優先值為負的進程所佔用的CPU時間
16. Sys 處於核心態的運行時間
17. Idle 除IO等待時間以外的其它等待時間
18. IOW IO等待時間
19. IRQ 硬中斷時間
20. SIRQ 軟中斷時間
21.
22. 進程屬性:
23. PID 進程在系統中的ID
24. CPU% 當前瞬時所以使用CPU佔用率
25. S 進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值是負數。
26. #THR 程序當前所用的線程數
27. VSS Virtual Set Size 虛擬耗用內存(包含共享庫佔用的內存)
28. RSS Resident Set Size 實際使用物理內存(包含共享庫佔用的內存)
29. PCY OOXX,不知道什麼東東
30. UID 運行當前進程的用戶id
31. Name 程序名稱android.process.media
32.
33. // ps:內存佔用大小有如下規律:VSS >= RSS >= PSS >= USS
34. // PSS Proportional Set Size 實際使用的物理內存(比例分配共享庫佔用的內存)
35. // USS Unique Set Size 進程獨自佔用的物理內存(不包含共享庫佔用的內存)

在附件Android系統->android top.txt文件內,自個總結的。
2)執行代碼

1. // top命令
2. public static final String[] TOP = { "/system/bin/top", "-n", "1" };
3.
4. // 現在執行top -n 1,我們只需要第二行(用第二行求得CPU佔用率,精確數據)
5. // 第一行:User 35%, System 13%, IOW 0%, IRQ 0% // CPU佔用率
6. // 第二行:User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306
7. // // CPU使用情況
8. public static synchronized String run(String[] cmd) {
9. String line = "";
10. InputStream is = null;
11. try {
12. Runtime runtime = Runtime.getRuntime();
13. Process proc = runtime.exec(cmd);
14. is = proc.getInputStream();
15.
16. // 換成BufferedReader
17. BufferedReader buf = new BufferedReader(new InputStreamReader(is));
18. do {
19. line = buf.readLine();
20. // 前面有幾個空行
21. if (line.startsWith("User")) {
22. // 讀到第一行時,我們再讀取下一行
23. line = buf.readLine();
24. break;
25. }
26. } while (true);
27.
28. if (is != null) {
29. buf.close();
30. is.close();
31. }
32. } catch (IOException e) {
33. e.printStackTrace();
34. }
35. return line;
36. }
37.
38. // 獲取指定應用的top命令獲取的信息
39. // PID CPU% S #THR VSS RSS PCY UID Name // 進程屬性
40. // 如果當前應用不在運行則返回null
41. public static synchronized String run(String[] cmd, String pkgName) {
42. String line = null;
43. InputStream is = null;
44. try {
45. Runtime runtime = Runtime.getRuntime();
46. Process proc = runtime.exec(cmd);
47. is = proc.getInputStream();
48.
49. // 換成BufferedReader
50. BufferedReader buf = new BufferedReader(new InputStreamReader(is));
51. do {
52. line = buf.readLine();
53. // 讀取到相應pkgName跳出循環(或者未找到)
54. if (null == line || line.endsWith(pkgName)) {
55. break;
56. }
57. } while (true);
58.
59. if (is != null) {
60. buf.close();
61. is.close();
62. }
63. } catch (IOException e) {
64. e.printStackTrace();
65. }
66. return line;
67. }

--------------------------------------------
PID:進程在系統中的ID

CPU% - 當前瞬時所以使用CPU佔用率

#THR - 程序當前所用的線程數

UID - 運行當前進程的用戶id

Name - 程序名稱org.xmpp.app

VSS - Virtual Set Size 虛擬耗用內存(包含共享庫佔用的內存)
RSS - Resident Set Size 實際使用物理內存(包含共享庫佔用的內存)
PSS - Proportional Set Size 實際使用的物理內存(比例分配共享庫佔用的內存)
USS - Unique Set Size 進程獨自佔用的物理內存(不包含共享庫佔用的內存)

一般來說內存佔用大小有如下規律:VSS >= RSS >= PSS >= USS

『陸』 做Android 手機軟體測試需要掌握哪些工具

請注意測試本身不是靠工具的而是靠設計,這是我的理念,所以我一向覺得,很多人認為做測試做的好就是靠掌握一門好的工具,這個觀點是不正確的,所以我可以負責任的告訴你,做Android手機需要掌握的不是工具、而是理念、思維、以及框架,總的來說是本質,而工具只是輔助,那麼現在我來介紹一些我了解的工具(僅僅是了解,很多沒用過)
開源 Android 軟體測試工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。
Android Test Kit
Android Test Kit 是一組 Google 開源測試工具,用於 Android 平台,包含 Espresso API 可用於編寫簡潔可靠的 Android UI 測試。
AndroidJUnit4
AndroidJUnit4 是一個讓 JUnit 4 可以直接運行在 Android 設備上的開源命令行工具。
Appium
Appium 是一個開源、跨平台的自動化測試工具,用於測試原生和輕量移動應用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驅動蘋果的 UIAutomation 庫和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協議。Appinm 的 iOS 支持是基於 Dan Cuellar's 的 iOS Auto. Appium 同時綁定了 Selendroid 用於老的 Android 平台測試。
Calabash-android
calabash-android 是一個基於 Cucumber 的 Android 的功能自動化測試框架。Calabash 允許你寫和執行,是開源的自動化移動應用測試工具,支持 Android 和 iOS 原生應用。Calabash 的庫允許原生和混合應用的交互測試,交互包括大量的終端用戶活動。Calabash 可以媲美 Selenium WebDriver。但是, 需要注意的是 web 應用和桌面環境的交互跟觸摸屏應用的交互是不同的。Calabash 專為觸摸屏設備的原生應用提供 APIs。
Monkey
Monkey 是 Google 開發的 UI/應用測試工具,也是命令行工具,主要針對壓力測試。你可以在任意的模擬器示例或者設備上運行。Monkey 發送一個用戶事件的 pseudo-random 流給系統,作為你開發應用的壓力測試。
MonkeyTalk
MonkeyTalk 是世界上最強大的移動應用測試工具。MonkeyTalk 自動為 iOS 和 Android 應用進行真實的,功能性交互測試。MonkeyTalk 提供簡單的 "smoke tests",復雜數據驅動的測試套件。MonkeyTalk 支持原生,移動和混合應用,真實設備或者模擬器。MonkeyTalk 使得場景捕獲非常容易,可以記錄高級別,可讀的測試腳本。同樣的命令可以用在 iOS 和 Android 應用上。你可以記錄一個平台的一個測試,並且可以在另外一個平台回放。MonkeyTalk 支持移動觸摸和基於手勢交互為主的移動體驗。點擊,拖拽,移動,甚至是手指繪制也可以被記錄和回放。
NativeDriver
NativeDriver 是 WebDriver API 的實現,是原生應用 UI 驅動,而不是 web 應用。
Robolectric
Robolectric 是一款Android單元測試框架,使用 Android SDK jar,所以你可以使用測試驅動開發 Android 應用。測試只需幾秒就可以在工作站的 JVM 運行。Robolectric 處理視圖縮放,資源載入和大量 Android 設備原生的 C 代碼實現。Robolectric 允許你做大部分真實設備上可以做的事情,可以在工作站中運行,也可以在常規的 JVM 持續集成環境運行,不需要通過模擬器。
RoboSpock
RoboSpock 是一個開源的 Android 測試框架。提供簡單的編寫 BDD 行為驅動開發規范的方法,使用Groovy 語音,支持 Google Guice 庫。RoboSpock 合並了 Robolectric 和 Spock 的功能。
Robotium
Robotium 是一款國外的Android自動化測試框架,主要針對Android平台的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長 按、滑動等)、查找和斷言機制的API,能夠對各種控制項進行操作。Robotium結合Android官方提供的測試框架達到對應用程序進行自動化的測 試。另外,Robotium 4.0版本已經支持對WebView的操作。Robotium 對Activity,Dialog,Toast,Menu 都是支持的。
UIAutomator
uiautomator 測試框架提高用戶界面(UI)的測試效率,通過自動創建功能 UI 測試示例,可以在一個或者多個設備上運行你的應用。
Selendroid
Selendroid 是一個 Android 原生應用的 UI 自動化測試框架。測試使用 Selenium 2 客戶端 API 編寫。Selendroid 可以在模擬器和實際設備上使用,也可以集成網格節點作為縮放和並行測試。

『柒』 android 基本文件操作命令

ADB (Android Debug Bridge)
說明:下面一些命令需要有root許可權才能執行成功
快速啟動dos窗口執行adb:
1. adb.exe所在路徑添加到系統環境變數中
2. 配置快捷鍵啟動dos
進入C:\WINDOWS\system32目錄下,找到cmd.exe.
右擊菜單 "發送到" -> 桌面快捷方式。
在桌面上右擊"快捷方式 到 cmd.exe" -> "屬性" -> "快捷方式"頁
-> 游標高亮"快捷鍵" -> 按下自定義快捷鍵 (如:Ctrl + Alt + Z)

任何情況下,按下Ctrl + Alt + Z啟動dos窗口就可以執行adb命令了

-----------查看設備連接狀態 系列-----------
adb get-serialno 獲取設備的ID和序列號serialNumber
adb devices 查詢當前計算機上連接那些設備(包括模擬器和手機),輸出格式: [serialNumber] [state]
adb get-state 查看模擬器/設施的當前狀態.

說明:
序列號[serialNumber]——由adb創建的一個字元串,這個字元串通過自己的控制埠<type>-<consolePort>
唯一地識別一個模擬器/設備實例。一個序列號的例子: emulator-5554

-----------發送命令到設備 系列-----------
adb [-d|-e|-s <serialNumber>] <command>
-d 發送命令給usb連接的設備
-e 發送命令到模擬器設備
-s <serialNumber> 發送命令到指定設備

如啟動手機設備shell: adb -d shell

adb forward <local> <remote>發布埠,可以設置任意的埠號,
做為主機向模擬器或設備的請求埠。如:adb forward tcp:5555 tcp:8000

adb reboot 重啟手機
adb remount 將system分區重新掛載為可讀寫分區
adb kill-server 終止adb服務進程
adb start-server 重啟adb服務進程
adb root 已root許可權重啟adb服務
adb wait-for-device 在模擬器/設備連接之前把命令轉載在adb的命令器中
adb jdwp 查看指定的設施的可用的JDWP信息.
可以用 forward jdwp:<pid> 埠映射信息來連接指定的JDWP進程.例如:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000

adb shell am 命令可以啟動應用程序

adb shell input text <string> 向設備輸入文本(游標所在的文本框)
adb shell input keyevent <event_code> 向設備發送按鍵事件
如:
在編輯簡訊時,往文本框輸入文本:adb shell input text "hello"
向手機發送鍵值回Home:adb shell input keyevent 3
event_code 參考view/KeyEvent.java中的 KEYCODE_*
public static final int KEYCODE_SOFT_LEFT = 1;
public static final int KEYCODE_SOFT_RIGHT = 2;
public static final int KEYCODE_HOME = 3;
public static final int KEYCODE_BACK = 4;
public static final int KEYCODE_CALL = 5;
public static final int KEYCODE_ENDCALL = 6;

-----------安裝卸載 系列-----------
adb install [-l] [-r] <file> - push this package file to the device and install it
('-l' means forward-lock the app)
('-r' means reinstall the app, keeping its data)
adb uninstall [-k] <package> - remove this app package from the device
('-k' means keep the data and cache directories)
如:
adb install d:\hello.apk
adb unstall com.huawei.hello
說明:如果帶-r選項重新安裝apk時,安裝在 /data/local/tmp/目錄下,手機重啟後還是使用原來的apk.

-----------文件操作 系列-----------
adb push <local> <remote> - file/dir to device
adb pull <remote> <local> - file/dir from device

-----------基本linux shell命令 系列-----------
adb shell [command]
ls 列出目錄下的文件和文件夾
cd 切換目錄
rm 刪除目錄和文件
cat 查看文件內容
ps 可以看那個進程再跑
ps -x [PID] 查看單個進程的狀態
top 可以看那個進程的佔用率最高
su 切換到root用戶
kill [pid] 殺死一個進程
chmod 777 <file> 修改該文件為可執行許可權

詳細使用情況可以登錄一台Linux伺服器在shell下查看幫助手冊, man <command>

-----------查看系統狀態和信息 系列-----------
adb shell procrank 查詢各進程內存使用情況
adb shell service list 查看services信息
adb shell cat /proc/meminfo 查看當前的內存情況
adb shell cat /proc/cpuinfo 查看CPU信息(硬體)
adb shell cat /proc/iomem 查看IO內存分區

adb shell getprop 列出系統所有屬性
adb shell getprop | findstr "gsm" 列出包含gsm的屬性
adb shell setprop <key> <value> 修改系統屬性

adb shell sqlite3 可以執行sql語句查看資料庫信息, 具體使用情況待調查

-----------Log 系列-----------
adb logcat [ <filter-spec> ] - View device log

1~~~~~~~~~~~查看可用日誌緩沖區:
adb logcat -b radio — 查看緩沖區的相關的信息.
adb logcat -b events — 查看和事件相關的的緩沖區.
adb logcat -b main — 查看主要的日誌緩沖區

2~~~~~~~~~~~過濾日誌輸出:
過濾器語句按照下面的格式描tag:priority ... , tag 表示是標簽, priority 是表示標簽的報告的最低等級
adb logcat *:W 顯示優先順序為warning或更高的日誌信息
adb logcat ActivityManager:I MyApp:D *:S

日誌的標簽是系統部件原始信息的一個簡要的標志。(比如:「View」就是查看系統的標簽).
優先順序有下列集中,是按照從低到高順利排列的:
V — Verbose (lowest priority)
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (highest priority, on which nothing is ever printed)

如果你電腦上運行logcat ,相比在遠程adbshell端,你還可以為環境變數ANDROID_LOG_TAGS :輸入一個參數來設置默認的過濾
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"
需要注意的是ANDROID_LOG_TAGS 過濾器如果通過遠程shell運行logcat 或用adb shell logcat 來運行模擬器/設備不能輸出日誌.

3~~~~~~~~~~~控制日誌輸出格式:
日誌信息包括了許多元數據域包括標簽和優先順序。可以修改日誌的輸出格式,所以可以顯示出特定的元數據域。可以通過 -v 選項得到格式化輸出日誌的相關信息.

brief — Display priority/tag and PID of originating process (the default format).
process — Display PID only.
tag — Display the priority/tag only.
thread — Display process:thread and priority/tag only.
raw — Display the raw log message, with no other metadata fields.
time — Display the date, invocation time, priority/tag, and PID of the originating process.
long — Display all metadata fields and separate messages with a blank lines.
當啟動了logcat ,你可以通過-v 選項來指定輸出格式:

[adb] logcat [-v <format>]
下面是用 thread 來產生的日誌格式:

adb logcat -v thread
需要注意的是你只能-v 選項來規定輸出格式 option.

4~~~~~~~~~~~Logcat命令列表
-b <buffer> 載入一個可使用的日誌緩沖區供查看,比如event 和radio . 默認值是main 。具體查看Viewing Alternative Log Buffers.
-c 清楚屏幕上的日誌.
-d 輸出日誌到屏幕上.
-f <filename> 指定輸出日誌信息的<filename> ,默認是stdout .
-g 輸出指定的日誌緩沖區,輸出後退出.
-n <count> 設置日誌的最大數目<count> .,默認值是4,需要和 -r 選項一起使用。
-r <kbytes> 每<kbytes> 時輸出日誌,默認值為16,需要和-f 選項一起使用.
-s 設置默認的過濾級別為silent.
-v <format> 設置日誌輸入格式,默認的是brief 格式,要知道更多的支持的格式,參看Controlling Log Output Format

adb bugreport - return all information from the device
that should be included in a bug report.

adb shell dmesg 查詢內核緩沖區信息
adb shell mpstate 各類信息,比如進程信息,內存信息,進程是否異常,kernnel的log等
adb shell mpcrash
adb shell mpsys 查詢所有service的狀態

-----------其他 -----------

模擬器使用鏡像sdcard
用SDK里的mksdcard工具來創建FAT32磁碟鏡像並在模擬器啟動時載入它。這樣創建鏡像:? mksdcard <size> <file>,
比如我要創建一個64M的SD卡模擬文件,文件路徑是在D:\workspace\sdcard.img
mksdcard 64000000 D:\workspace\sdcard.img

Emulator –sdcard D:\workspace\sdcard.img
或者在eclipse的run菜單的open run dialog對話框中配置啟動參數。

#top
Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]
-m num Maximum number of processes to display.
-n num Updates to show before exiting.
-d num Seconds to wait between updates.
-s col Column to sort by (cpu,vss,rss,thr).
-t Show threads instead of processes.
-h Display this help screen.

********* simple selection ********* ********* selection by list *********
-A all processes -C by command name
-N negate selection -G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders -g by session OR by effective group name
-e all processes -p by process ID
T all processes on this terminal -s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
r only running processes U processes for specified users
x processes w/o controlling ttys t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full --Group --User --pid --cols --ppid
-j,j job control s signal --group --user --sid --rows --info
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long u user-oriented --sort --tty --forest --version
-F extra full X registers --heading --no-heading --context
********* misc options *********
-V,V show version L list format codes f ASCII art forest
-m,m,-L,-T,H threads S children in sum -y change -l format
-M,Z security data c true command name -c scheling class
-w,w wide output n numeric WCHAN,UID -H process hierarchy

netstat -ano 查看網路連狀態
顯示協議統計信息和當前 TCP/IP 網路連接。

NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]

-a 顯示所有連接和監聽埠。
-b 顯示包含於創建每個連接或監聽埠的
可執行組件。在某些情況下已知可執行組件
擁有多個獨立組件,並且在這些情況下
包含於創建連接或監聽埠的組件序列
被顯示。這種情況下,可執行組件名
在底部的 [] 中,頂部是其調用的組件,
等等,直到 TCP/IP 部分。注意此選項
可能需要很長時間,如果沒有足夠許可權
可能失敗。
-e 顯示乙太網統計信息。此選項可以與 -s
選項組合使用。
-n 以數字形式顯示地址和埠號。
-o 顯示與每個連接相關的所屬進程 ID。
-p proto 顯示 proto 指定的協議的連接;proto 可以是
下列協議之一: TCP、UDP、TCPv6 或 UDPv6。
如果與 -s 選項一起使用以顯示按協議統計信息,proto 可以是下列協議之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 顯示路由表。
-s 顯示按協議統計信息。默認地,顯示 IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統計信息;
-p 選項用於指定默認情況的子集。
-v 與 -b 選項一起使用時將顯示包含於
為所有可執行組件創建連接或監聽埠的
組件。
interval 重新顯示選定統計信息,每次顯示之間
暫停時間間隔(以秒計)。按 CTRL+C 停止重新
顯示統計信息。如果省略,netstat 顯示當前
配置信息(只顯示一次)

pm
usage: pm [list|path|install|uninstall]
pm list packages [-f]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] PATH
pm uninstall [-k] PACKAGE
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT

The list packages command prints all packages. Options:
-f: see their associated file.

The list permission-groups command prints all known
permission groups.

The list permissions command prints all known
permissions, optionally only those in GROUP. Options:
-g: organize by group.
-f: print all information.
-s: short summary.
-d: only list dangerous permissions.
-u: list only the permissions users will see.

The list instrumentation command prints all instrumentations,
or only those that target a specified package. Options:
-f: see their associated file.

The list features command prints all features of the system.

The path command prints the path to the .apk of a package.

The install command installs a package to the system. Options:
-l: install the package with FORWARD_LOCK.
-r: reinstall an exisiting app, keeping its data.
-t: allow test .apks to be installed.
-i: specify the installer package name.

The uninstall command removes a package from the system. Options:
-k: keep the data and cache directories around.
after the package removal.

The enable and disable commands change the enabled state of
a given package or component (written as "package/class").

查看stdout 和stderr
在默認狀態下,Android系統有stdout 和 stderr (System.out和System.err )輸出到/dev/null ,
在運行Dalvik VM的進程中,有一個系統可以備份日誌文件。在這種情況下,系統會用stdout 和stderr 和優先順序 I.來記錄日誌信息

通過這種方法指定輸出的路徑,停止運行的模擬器/設備,然後通過用setprop 命令遠程輸入日誌

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start系統直到你關閉模擬器/設備前設置會一直保留,可以通過添加/data/local.prop 可以使用模擬器/設備上的默認設置

UI/軟體 試驗程序 Monkey
當Monkey程序在模擬器或設備運行的時候,如果用戶出發了比如點擊,觸摸,手勢或一些系統級別的事件的時候,
它就會產生隨機脈沖,所以可以用Monkey用隨機重復的方法去負荷測試你開發的軟體.
最簡單的方法就是用用下面的命令來使用Monkey,這個命令將會啟動你的軟體並且觸發500個事件.

$ adb shell monkey -v -p your.package.name 500
更多的關於命令Monkey的命令的信息,可以查看UI/Application Exerciser Monkey documentation page.

閱讀全文

與androidtop命令相關的資料

熱點內容
excel表格單列數據加密 瀏覽:646
給同事的解壓話語 瀏覽:990
linux關閉網卡命令行 瀏覽:452
史上最漂亮程序員 瀏覽:768
java實現excel的導入 瀏覽:758
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668
hci命令 瀏覽:662
福建伺服器大區雲空間 瀏覽:840
筆桿子程序員 瀏覽:745
手機軟體易驗證加密 瀏覽:589
文檔加密只讀模式也不能看到 瀏覽:431
把jpg轉換成pdf的軟體 瀏覽:874
linuxeth0mac 瀏覽:192
windows編程知乎 瀏覽:442
壓縮工期超過40 瀏覽:249
Android怎麼優化內存 瀏覽:106
linuxetcsysconfig 瀏覽:396