1、 查看內存信息
1)查看所有內存信息
命令:
dumpsys meminfo
例:
C:\Users\laiyu>adb shell
shell@android:/ $ dumpsys meminfo
dumpsys meminfo
Applications Memory Usage (kB):
Uptime: 80066272 Realtime: 226459939
Total PSS by process:
90058 kB: com.tencent.mobileqq (pid 16731)
57416 kB: system (pid 651)
52052 kB: com.miui.home (pid 1121)
…………(篇幅問題,略)
Total PSS by OOM adjustment:
223177 kB: Persistent
57416 kB: system (pid 651)
50036 kB: com.android.deskclock (pid 1096)
…………
252678 kB: Foreground
90058 kB: com.tencent.mobileqq (pid 16731)
…………
50944 kB: Visible
20318 kB: com.miui.miwallpaper (pid 974)
…………
90855 kB: Perceptible
36448 kB: com.google.android.inputmethod.pinyin (pid 987)
…………
39654 kB: A Services
23320 kB: com.tencent.android.qqdownloader (pid 14080)
…………
49659 kB: B Services
20085 kB: com.tencent.mobileqq:qzone (pid 19646)
…………
148413 kB: Background
21457 kB: com.miui.weather2 (pid 14296)
…………
3453 kB: com.miui.providers.datahub (pid 14651)
Total PSS by category:
454627 kB: Dalvik
137206 kB: Unknown
100835 kB: .so mmap
62670 kB: .dex mmap
54208 kB: Other dev
30258 kB: Other mmap
8527 kB: .apk mmap
4752 kB: .ttf mmap
2216 kB: Ashmem
60 kB: Cursor
21 kB: .jar mmap
0 kB: Native
Total PSS: 855380 kB
KSM: 0 kB saved from shared 0 kB
0 kB unshared; 0 kB volatile
2)查看某個包的內存信息
命令:
dumpsys pkg_name
例:
shell@android:/ $ dumpsys meminfo com.tencent.mobileqq > /mnt/sdcard/meminfo.txt
bileqq > /mnt/sdcard/meminfo.txt <</span>
shell@android:/ $
查看導出結果:
具體輸出項含義請搜索網絡
2、 查看CPU信息
windows系統:
輸入命令:top -m 10 -s cpu(-m顯示最大數量,-s 按指定行排序),如下圖所示:
參數含義:
PID : progress identification,應用程序ID
S : 進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值是負數 #THR : 程序當前所用的線程數 VSS : Virtual Set Size虛擬耗用內存(包含共享庫占用的內存) RSS : Resident Set Size實際使用物理內存(包含共享庫占用的內存) PCY : 前台(fg)和后台(bg)進程 UID : User Identification,用戶身份ID Name : 應用程序名稱
注意第一列的pid,使用pid值可以查看當前程序的內存使用情況。
查看指定程序內存使用情況:
輸入命令: dumpsys meminfo 3253,如下圖所示:
參數含義:
dalvik : dalvik使用的內存
native : native堆上的內存,指C\C++堆的內存(android 3.0以后bitmap就是放在這兒) other : 除了dalvik和native的內存,包含C\C++非堆內存······ Pss : 該內存指將共享內存按比例分配到使用了共享內存的進程 allocated : 已使用的內存 free : 空閑的內存 private dirty : 非共享,又不能被換頁出去的內存(比如linux系統中為了提高分配內存速度而緩沖的小對象,即使你的進程已經退出,該內存也不會被釋放) share dirty : 共享,但有不能被換頁出去的內存
使用ctrl + c,退出adb命令行。
法1:linux系統的top命令
例子:
C:\Users\laiyu>adb shell
shell@android:/ $ top -d 1 | busybox grep "com.tencent.mobileqq" > /mnt/sdcard/p
erformance.txt
encent.mobileqq" > /mnt/sdcard/performance.txt <</span>
^C
C:\Users\laiyu>
注:直接使用grep可能報錯,提示找不到命令,這時如果busybox中有grep命令,可以如上,busybox grep
查看導出文件,如下,紅色框選部分即為cpu利用率
方法2:通過dummpsys cpuinfo命令
命令:adb shell dumpsys cpuinfo
或者分成兩部走(參考 查看電量信息)
先adb shell,然后dumpsys cpuinfo
例:
C:\Users\laiyu>adb shell dumpsys cpuinfo | find "com.tencent.mobileqq"
0.1% 16731/com.tencent.mobileqq: 0.1% user + 0% kernel / faults: 8 minor
0% 16753/com.tencent.mobileqq:MSF: 0% user + 0% kernel
0% 19646/com.tencent.mobileqq:qzone: 0% user + 0% kernel
3、 查看應用啟動時間
命令:
adb logcat -c && adb logcat -f /mnt/sdcard/up.txt -s tag
選項說明
-c 清屏
-f 指定運行結果輸出文件,默認輸出到標准設備(一般是顯示器
-s 設置默認的過濾級別為Silent
tag 僅顯示priority/tag
更多信息煩請參考 adb logcat -help
例:
先啟動app,然后執行如下命令
C:\Users\laiyu>adb logcat -c && adb logcat -f /mnt/sdcard/up.txt -s ActivityMana
ger
^C
C:\Users\laiyu>
查看輸出文件:
備注:I/ActivityManager: I 代表優先級,ActivityManager代表tag
更清晰圖如下
注:查找Dispalyed字眼,如上圖,可看到應用(com.tentcent.mobileqq)啟動時間(total +4s410ms),啟動頁停留展示時間(+835ms)
4、 查看電量信息
命令:
dumpsys battery
例:
shell@android:/ $ dumpsys battery
dumpsys battery
Current Battery Service state:
AC powered: false
USB powered: true
status: 5
health: 2
present: true
level: 100
scale: 100
voltage:4211
temperature: 297
technology: Li-poly
shell@android:/ $