adb常用命令总结[持续更新]
文章目录
- 官方查询地址
- 什么情况有使用adb命令诉求?
- 查询设备信息
- 查看安卓版本 返回9,10,11
- 获取系统api版本:返回28,29
- 查询内存信息
- 查询cpu信息
- 查询机型
- 查询屏幕相关
- 像素密度
- 分辨率
- 查询电池信息
- 分析性能常用命令
- 查看内存占用
- 查看cpu占用
- 根据包名查询pid(进程号)
官方查询地址
什么情况有使用adb命令诉求?
-
虽然Android Studio及其三方GUI插件已经很完备了,但是Android应用很广,手机只是一个应用场景,还有诸如:TV、手表、机车、或别的定制系统,其实就不一定随时方便连上adb,无法使用GUI工具、USB插口等情况,可能是通过串口等方式直接连到对应的Android系统中。
- ADB idea插件:
- 跨端(Flutter开发)的AndroidADBTool
开源地址:https://github.com/EaniaHuui/android_tool
- ADB idea插件:
-
GUI工具并不能满足所有的需求场景:比如查看内存、cpu信息,通过shell脚本输出内存、cpu占用、帧率曲线等。虽然有Profiler这种强大的工具,但是目前使用的情况,获取到的数据经常还存在误差。
注:adb shell命令本质上是对于Android系统的操作命令。
查询设备信息
查看安卓版本 返回9,10,11
adb shell getprop ro.build.version.release
获取系统api版本:返回28,29
adb shell getprop ro.build.version.sdk
查询内存信息
在linux系统中,/proc/目录下都会用文件的方式,存储着各种设备相关信息。比如:cpuinfo、meminfo、version(linux内核版本)等信息
adb shell cat /proc/meminfo
输出:
MemTotal: 5815012 kB //总的内存大小
MemFree: 424212 kB
MemAvailable: 3162140 kB //可用内存大小
Buffers: 232832 kB
Cached: 2057404 kB
SwapCached: 10700 kB
Active: 2610536 kB
Inactive: 690156 kB
Active(anon): 835188 kB
Inactive(anon): 309728 kB
Active(file): 1775348 kB
Inactive(file): 380428 kB
...
或者使用dumpsys meminfo命令:
adb shell dumpsys meminfo [packageName] //需要指定查看某个包名对应进程占用内存时,后面带上packageName即可
输出结果:
Applications Memory Usage (in Kilobytes):
Uptime: 179965454 Realtime: 2420253989
Total PSS by process:
253,766K: system (pid 1589)
252,549K: com.android.systemui (pid 3672 / activities)
238,455K: com.miui.home (pid 20309 / activities)
176,473K: com.tencent.mm (pid 21083)
145,484K: com.tencent.mm:push (pid 1625)
91,356K: com.iflytek.inputmethod.miui (pid 7621)
...
Total PSS by OOM adjustment:
432,299K: Native
49,474K: android.hardware.camera.provider@2.4-service (pid 653)
49,335K: surfaceflinger (pid 723)
29,461K: logd (pid 546)
22,543K: android.hardware.graphics.composer@2.1-service (pid 661)
17,958K: zygote (pid 611)
11,974K: webview_zygote (pid 3734)
10,159K: qcrild (pid 1119)
...
Total PSS by category:
530,002K: Native
288,069K: .dex mmap
227,496K: .art mmap
217,753K: Dalvik
153,504K: .so mmap
129,412K: .oat mmap
...
Total RAM: 5,815,012K (status normal) //总内存大小和/proc/meminfo中是一样的
Free RAM: 3,828,092K ( 387,360K cached pss + 2,426,516K cached kernel + 595,148K cached ion + 419,068K free)
Used RAM: 2,653,523K (2,112,671K used pss + 540,852K kernel)
Lost RAM: 1,028,308K
ZRAM: 93,492K physical used for 445,500K in swap (2,621,436K total swap)
Tuning: 256 (large 512), oom 322,560K, restore limit 107,520K (high-end-gfx)
查询cpu信息
adb shell cat /proc/cpuinfo
可看到cpu是几核,厂商信息。
Processor : AArch64 Processor rev 12 (aarch64)
processor : 0
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x7
CPU part : 0x803
CPU revision : 12
processor : 1
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x7
CPU part : 0x803
CPU revision : 12
processor : 2
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x7
CPU part : 0x803
CPU revision : 12
processor : 3
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x7
CPU part : 0x803
CPU revision : 12
processor : 4
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x7
CPU part : 0x803
CPU revision : 12
processor : 5
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x7
CPU part : 0x803
CPU revision : 12
processor : 6
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x6
CPU part : 0x802
CPU revision : 13
processor : 7
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0x6
CPU part : 0x802
CPU revision : 13
Hardware : Qualcomm Technologies, Inc SDM710
如上面是查看小米8SE的cpu信息,8核,高通的处理器。
查询机型
adb shell getprop ro.product.model
比如小米8SE输出:
MI 8 SE
查询屏幕相关
像素密度
adb shell wm density
分辨率
adb shell vm size
如果是修改像素密度,在上述命名后跟具体数值即可,设备界面上也会实时应用新的密度。
查询电池信息
adb shell dumpsys battery
分析性能常用命令
查看内存占用
adb shell dumpsys meminfo [packageName]
比如查看微信的内存信息:adb shell dumpsys meminfo com.tencent.mm
如下所示,该命令还能看到四大组件的数量,可用于分析Activity泄漏等性能问题。
dumpsys meminfo com.tencent.mm
Applications Memory Usage (in Kilobytes):
Uptime: 182816715 Realtime: 2423105250
** MEMINFO in pid 21083 [com.tencent.mm] **
Pss Private Private SwapPss Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 34177 34144 0 15484 88064 68780 19283
Dalvik Heap 19662 19648 0 133 22771 11386 11385
Dalvik Other 8554 8552 0 253
Stack 84 84 0 24
Ashmem 2 0 0 0
Gfx dev 11528 11528 0 0
Other dev 36 0 36 0
.so mmap 5534 500 2120 4535
.jar mmap 32 28 4 336
.apk mmap 2353 0 884 0
.ttf mmap 623 0 152 0
.dex mmap 58593 0 57668 20
.oat mmap 2424 0 0 0
.art mmap 19564 19208 8 20240
Other mmap 805 4 280 0
EGL mtrack 27744 27744 0 0
GL mtrack 2644 2644 0 0
Unknown 3980 3980 0 2261
TOTAL 241625 128064 61152 43286 110835 80166 30668
App Summary
Pss(KB)
------
Java Heap: 38864
Native Heap: 34144
Code: 61356
Stack: 84
Graphics: 41916
Private Other: 12852
System: 52409
TOTAL: 241625 TOTAL SWAP PSS: 43286
Objects
Views: 518 ViewRootImpl: 2
AppContexts: 8 Activities: 2 //Activity数量能帮助分析内存泄漏
Assets: 11 AssetManagers: 0
Local Binders: 77 Proxy Binders: 146
Parcel memory: 37 Parcel count: 149
Death Recipients: 94 OpenSSL Sockets: 0
WebViews: 0
SQL
MEMORY_USED: 732
PAGECACHE_OVERFLOW: 228 MALLOC_SIZE: 117
DATABASES
pgsz dbsz Lookaside(b) cache Dbname
4 96 109 11/79/13 /data/user/0/com.tencent.mm/no_backup/androidx.work.workdb
4 8 0/0/0 (attached) temp
4 96 34 2/15/3 /data/user/0/com.tencent.mm/no_backup/androidx.work.workdb (3)
4 28 56 167/36/6 /data/user/0/com.tencent.mm/databases/Scheduler.db
查看cpu占用
- 第一种:dumpsys cpuinfo,但不是及时刷新的,是一段时间的平均值
adb shell dumpsys cpuinfo
输出:
Load: 0.0 / 0.0 / 0.0
CPU usage from 248217ms to 184018ms ago (2022-09-03 13:58:59.522 to 2022-09-03 14:00:03.722):
47% 21083/com.tencent.mm: 34% user + 13% kernel / faults: 7825 minor
28% 723/surfaceflinger: 18% user + 10% kernel
13% 661/android.hardware.graphics.composer@2.1-service: 6.8% user + 6.2% kernel / faults: 44 minor
5.3% 239/crtc_commit:99: 0% user + 5.3% kernel
3.7% 246/kgsl_worker_thr: 0% user + 3.7% kernel
2.8% 27448/kworker/u16:4: 0% user + 2.8% kernel
2.5% 4533/irq/103-1436400: 0% user + 2.5% kernel
2.2% 240/crtc_event:99: 0% user + 2.2% kernel
1.9% 27447/kworker/u16:0: 0% user + 1.9% kernel
1.7% 1589/system_server: 0.8% user + 0.8% kernel / faults: 1071 minor
1.5% 27450/kworker/u16:12: 0% user + 1.5% kernel
0.7% 3672/com.android.systemui: 0.6% user + 0% kernel / faults: 317 minor
0.6% 668/android.hardware.sensors@1.0-service: 0.2% user + 0.3% kernel
0.5% 7/rcu_preempt: 0% user + 0.5% kernel
第二种:top命令,是linux系统的原生命令,是顺时的,及时刷新的
adb shell top -n 1 //类似于windows的任务管理器,查看cpu占用情况
输出:
Tasks: 706 total, 1 running, 704 sleeping, 0 stopped, 0 zombie
Mem: 5815012k total, 5731852k used, 83160k free, 235892k buffers
Swap: 2621436k total, 422028k used, 2199408k free, 2200852k cached
800%cpu 69%user 0%nice 48%sys 676%idle 0%iow 3%irq 3%sirq 0%host
PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS
21083 u0_a168 10 -10 4.9G 217M 186M S 51.7 3.8 26:28.20 com.tencent.mm
723 system -2 -8 2.0G 24M 18M S 31.0 0.4 53:30.95 surfaceflinger
27538 shell 20 0 11M 4.2M 3.2M R 24.1 0.0 0:00.08 top -n 1
661 system -3 -8 66M 7.7M 4.4M S 13.7 0.1 22:17.03 android.hardwar+
26139 root 20 0 0 0 0 S 6.8 0.0 0:20.59 [kworker/u16:5]
26567 root 20 0 0 0 0 S 3.4 0.0 0:01.54 [kworker/0:0]
4533 root RT 0 0 0 0 S 3.4 0.0 5:38.84 [irq/103-143640+
4448 root RT 0 0 0 0 S 3.4 0.0 8:47.64 [sugov:6]
1589 system 18 -2 4.8G 284M 284M S 3.4 4.9 143:57.82 system_server
246 root -3 0 0 0 0 S 3.4 0.0 6:46.47 [kgsl_worker_th+
239 root RT 0 0 0 0 S 3.4 0.0 31:17.51 [crtc_commit:99]
61 root 20 0 0 0 0 S 3.4 0.0 0:37.33 [rcuop/6]
27537 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:1H]
27536 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/u16:9]
27535 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/u16:6]
27534 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/u16:2]
27512 root 20 0 0 0 0 S 0.0 0.0 0:00.02 [kworker/1:1]
27468 u0_a36 20 0 3.7G 101M 88M S 0.0 1.7 0:00.46 com.android.cam+
27467 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:2]
27460 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/2:1]
如上图可见,top命令能看到更多的信息:
- 总的cpu比例,上面的设备是8核,所以总共是800%
- 空闲cpu比例,idle这一列
根据包名查询pid(进程号)
adb shell pidof packag_name
举例:查询com.tencent.mm的进程号