adb设备调试常用命令

这篇具有很好参考价值的文章主要介绍了adb设备调试常用命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自从工作越来越忙后,越来越懒得写文章了,趁着1024程序员节,仪式性地写篇文章,分享一下最近调试设备经常用到的adb指令~

1.查看应用内存占用

1.1 dumpsys meminfo package

dumpsys是查看系统服务信息的一个常用指令,可以用dumpsys -l查看系统所有的服务,dumpsys meminfo可以查看到应用最详细的内存占用情况,主要有两大用途

  • 查看应用的内存占用情况,可以看到不同的内存类型占用,详细的占用情况可助于分析应用哪一块占用了较大内存。
  • 辅助分析内存泄露问题,该命令可以查看到Activity的个数,当退出界面后仍然还有activity存在或者个数不对,则说明该activity已经泄露了。

命令查询的数据示例如下:

Applications Memory Usage (in Kilobytes):
Uptime: 195423478 Realtime: 195423478

** MEMINFO in pid 23209 [com.example.myfirstapp] **
                   Pss  Private  Private     Swap     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap     8406     8284        0        0    20620    17082     3537
  Dalvik Heap      988      900        0        0     2962     1426     1536
 Dalvik Other      481      476        0        0                           
        Stack       56       56        0        0                           
       Ashmem        7        0        0        0                           
    Other dev       12        0       12        0                           
     .so mmap     2123      160        8        0                           
    .jar mmap     1737        0       24        0                           
    .apk mmap     1027        0        0        0                           
    .ttf mmap       48        0        0        0                           
    .dex mmap     1944        4     1936        0                           
    .oat mmap       66        0        0        0                           
    .art mmap     5883     5508        0        0                           
   Other mmap       60       20        0        0                           
      Unknown      725      688        0        0                           
        TOTAL    23563    16096     1980        0    23582    18508     5073
 
 App Summary
                       Pss(KB)
                        ------
           Java Heap:     6408
         Native Heap:     8284
                Code:     2132
               Stack:       56
            Graphics:        0
       Private Other:     1196
              System:     5487
 
               TOTAL:    23563      TOTAL SWAP (KB):        0
 
 Objects
               Views:       17         ViewRootImpl:        1
         AppContexts:        6           Activities:        1
              Assets:        2        AssetManagers:        0
       Local Binders:        9        Proxy Binders:       28
       Parcel memory:        2         Parcel count:       10
    Death Recipients:        0      OpenSSL Sockets:        0
            WebViews:        0
 
 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0

PSS表示应用程序占用的共享内存和私有内存的总和,该参数能比较精确地表示应用占用的内存大小。

如果dumpsys meminfo不带包名,则会打印出系统整体所有应用的内存占用,并且还能看到应用的进程等级,对于系统性能调优用途很大。

1.2 top -s 6

top命令比dumpsys命令的优点是实时性高,缺点是无法查看到PSS的数值,要自己估算出实际的内存占用情况。top命令还能查看当前应用的cpu占用率及内存占用情况,这是top命令一个常用用途。

-s 6参数含义是用RSS列进行排序,让内存占用最高的在最前边,默认排序是CPU占用率,应用在未操作时会排到很后,有可能会看不到当前的应用。

Tasks: 162 total,   1 running, 161 sleeping,   0 stopped,   0 zombie
  Mem:      1.9G total,      1.7G used,      175M free,       23M buffers
 Swap:         0 total,         0 used,         0 free,      968M cached
400%cpu  11%user   1%nice   8%sys 380%idle   0%iow   0%irq   0%sirq   0%host
  PID USER         PR  NI VIRT [RES] SHR S %CPU  %MEM     TIME+ ARGS                                    
  515 system       18  -2 7.7G 295M 199M S  4.6  14.7  29:48.69 system_server
  683 u0_a100      20   0 5.2G 205M 149M S  2.6  10.2  40:35.52 com.android.systemui
 8036 system       20   0 4.6G 166M 116M S  0.0   8.2   0:03.29 com.android.settings
  935 u0_a102      20   0 4.8G 163M 110M S  0.0   8.1   0:21.57 com.android.launcher3
  176 root         20   0 5.1G 147M 122M S  0.0   7.3   0:02.27 zygote64
  999 u0_a115      20   0 4.6G 139M  99M S  0.0   6.9   0:03.67 com.android.inputmethod.latin
 3250 u0_a116      20   0 4.5G 131M  85M S  0.0   6.5   0:01.33 com.dfl.android.bestpractice
  764 radio        20   0 4.9G 123M  94M S  0.3   6.1   2:24.95 com.android.phone
16167 u0_a56       20   0 4.4G 114M  79M S  0.0   5.7   0:00.23 com.android.documentsui
 1136 u0_a99       20   0 4.5G 113M  78M S  0.0   5.6   0:00.48 com.android.dialer
23209 u0_a123      10 -10 4.4G 111M  78M S  0.0   5.5   0:00.35 com.example.myfirstapp
  748 network_sta+ 20   0 4.6G 107M  80M S  0.0   5.3   0:25.21 com.android.networkstack
 2515 system       20   0 4.5G 105M  63M S  0.0   5.2   0:00.71 com.android.keychain
 1907 u0_a67       20   0 4.5G 102M  68M S  0.0   5.0   0:00.48 com.android.permissioncontroller
 1942 u0_a65       20   0 4.4G  96M  62M S  0.0   4.8   0:00.39 com.android.providers.calendar
 1311 radio        20   0 4.4G  94M  60M S  0.0   4.6   0:00.24 com.android.ims.rcsservice
  838 u0_a58       20   0 4.5G  93M  67M S  0.0   4.6   0:00.62 android.ext.services
16269 u0_a54       20   0 4.4G  90M  57M S  0.0   4.5   0:00.06 com.android.mtp
 1288 secure_elem+ 20   0 4.4G  90M  57M S  0.0   4.5   0:00.21 com.android.se
16209 u0_a64       20   0 4.4G  90M  56M S  0.0   4.4   0:00.04 com.android.externalstorage
16237 u0_a54       20   0 4.4G  90M  63M S  0.0   4.4   0:00.07 android.process.media

PSS的内存=RES(进程当前实际占用的物理大小)-SHR(共享内存大小)/共享进程数量,RES的内存值包含了和其他进程共享内存的数据,所以其值会比实际应用占用的内存值PSS要偏大。另外也可使用命令procrank可查看应用的内存占用排名。

2.查看系统硬件信息

2.1 查看内存信息 cat /proc/meminfo

该命令可查看到关于内存的详细信息,包含内存总大小及各个细分类型的内存大小,其中的CmaTotal与CmaFree是一个重要的参数,表示可分配的连续物理内存,如果cma的内存不足,会导致无法打开新界面或弹窗,或出现黑屏的问题。

MemTotal:        7708608 kB
MemFree:          125148 kB
MemAvailable:    2150096 kB
Buffers:            2096 kB
Cached:          1959024 kB
SwapCached:        31456 kB
Active:          1425944 kB
Inactive:        1842408 kB
Active(anon):     781092 kB
Inactive(anon):   797336 kB
Active(file):     644852 kB
Inactive(file):  1045072 kB
Unevictable:      193320 kB
Mlocked:          193320 kB
SwapTotal:       5767164 kB
SwapFree:         740944 kB
Dirty:               208 kB
Writeback:             0 kB
AnonPages:       1497100 kB
Mapped:          1086956 kB
Shmem:             84136 kB
KReclaimable:     639856 kB
Slab:             644596 kB
SReclaimable:     185208 kB
SUnreclaim:       459388 kB
KernelStack:      137728 kB
PageTables:       188484 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9621468 kB
Committed_AS:   198069204 kB
VmallocTotal:   263061440 kB
VmallocUsed:      235160 kB
VmallocChunk:          0 kB
Percpu:            13568 kB
CmaTotal:         372736 kB
CmaFree:               0 kB
IonTotalCache:     178616 kB
IonTotalUsed:     428572 kB
GPUTotalUsed:     450368 kB

我手机打印出的CmaFree为0kb,但手机还是能正常使用,这一块与我的认识不太一样,只能推测为手机系统自已做过内存管理模块相关的修改。

2.2 查看cpu信息 cat /proc/cpuinfo

该命令可以查看CPU的核心数,及架构信息。

Processor	: AArch64 Processor rev 0 (aarch64)
processor	: 0
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xd
CPU part	: 0x805
CPU revision	: 14

processor	: 1
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x51
CPU architecture: 8
CPU variant	: 0xd
CPU part	: 0x805
CPU revision	: 14
...
processor	: 7
BogoMIPS	: 38.40
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x1
CPU part	: 0xd0d
CPU revision	: 0

Hardware	: Qualcomm Technologies, Inc SM8250_AC

我手机的基本信息是64位8核cpu,高通芯片。

2.3 查看存储分区及占用 df -h

该命令会以M为单位,列出系统上所有目录及其分区,最主要用途是查看哪个分区占用了较大的存储。

Filesystem        Size Used Avail Use% Mounted on
/dev/block/dm-15  650M 650M     0 100% /
tmpfs             3.6G 2.0M  3.6G   1% /dev
tmpfs             3.6G  24K  3.6G   1% /mnt
/dev/block/dm-16  1.0G 1.0G     0 100% /system_ext
/dev/block/dm-17  2.3M 2.3M     0 100% /product
overlay-overlay   3.4M 3.4M     0 100% /product/app
overlay-overlay   3.4M 3.4M     0 100% /product/priv-app
overlay-overlay   3.4M 3.4M     0 100% /product/lib64
overlay-overlay   3.4M 3.4M     0 100% /product/lib
overlay-overlay   3.4M 3.4M     0 100% /product/overlay
overlay           511M 511M     0 100% /product/etc/permissions
overlay           511M 511M     0 100% /product/framework
/dev/block/dm-18  930M 930M     0 100% /vendor
/dev/block/dm-19  237M 237M     0 100% /odm
/dev/block/dm-7   2.1G 2.1G     0 100% /my_stock
/dev/block/dm-12  1.0G 1.0G     0 100% /my_preload
/dev/block/dm-14  822M 822M     0 100% /my_bigball
/dev/block/dm-13  368K 368K     0 100% /my_manifest
tmpfs             3.6G  16K  3.6G   1% /apex
/dev/block/sda9   404M  40M  351M  11% /cache
/dev/block/dm-49  106G 103G  2.8G  98% /data
...
/dev/block/loop31 232K 116K  112K  51% /apex/com.android.scheduling@339990000
/dev/block/loop32 720K 692K   16K  98% /apex/com.android.sdkext@339990000
/dev/block/loop33 232K  80K  148K  36% /apex/com.android.ondevicepersonalization@339990000
/dev/fuse         106G 103G  2.8G  98% /storage/emulated
/data/media       106G 103G  2.8G  98% /storage/emulated/0/Android/data

如果想查看某个目录下哪个文件或目录占用的存储最大,可使用命令df -sh *来查看,先进入指令的目录,再执行该指令。

3.5K	ARDebug
12K	Alarms
18G	Android
59M	AnkiChina
12K	Audiobooks
201M	BaiduNetdisk
15K	Browser
3.5K	ByteDownload
15K	Ccb
231K	ColorOS
2.7G	DCIM
5.4M	DingTalk
3.5M	Documents
1.2G	Download
...

2.4 查看系统配置的属性信息 getprop

该命令可查看到系统预置的一些属性值,有一些功能相关联的信息可以通过反射比较方便要从prop中取出。

[vendor.media.vpp.osie.enable]: [0]
[vendor.media.vpp.osie.internal.enable]: [1]
[vendor.media.vpp.osie.internal.version]: [osie2.0]
[vendor.media.vpp.sr.internal.enable]: [1]
[vendor.modem_dump_action]: [1]
[vendor.opengles.version]: [196610]
[vendor.oplus.dalvik.vm.heapgrowthlimit]: [384m]
[vendor.oplus.dalvik.vm.heapmaxfree]: [8m]
[vendor.oplus.dalvik.vm.heapminfree]: [512k]
[vendor.oplus.dalvik.vm.heapsize]: [512m]
[vendor.oplus.dalvik.vm.heapstartsize]: [16m]
[vendor.oplus.dalvik.vm.heaptargetutilization]: [0.75]
[vendor.oplus.sap.interface]: [wlan2]
[vendor.vidc.debug.level]: [1]
[vendor.vold.serialno]: []
[vold.fbe.decrypted]: [1]
[vold.has_adoptable]: [0]
[vold.has_compress]: [0]
[vold.has_quota]: [1]
[vold.has_reserved]: [1]
[vold.storage.prepared]: [1]

如果有root权限,还可以通过命令setprop key 值,修改参数的值。

2.5 设备的分辨率及dpi

  • 查看设备的分辨率wm size,

  • 查看设备的dpiwm density

emulator64_arm64:/ $ wm size
Physical size: 1920x1080
 $ wm density
Physical density: 160

3. 模拟操作指令

3.1 白天黑夜切换 cmd uimode night

该指令需要先执行su切换成root用户,适用于可进行root的设备。可用于验证白天黑夜模式快速切换下界面是否有异常

 cmd uimode night yes
Night mode: yes
emulator64_arm64:/ # cmd uimode night no                                                               
Night mode: no
emulator64_arm64:/ # cmd uimode night auto                                                             
Night mode: auto
  • 白天:night no
  • 黑夜: night yes
  • 自动:night auto

3.2 模拟输入事件 input

input支持的输入的类型有文章来源地址https://www.toymoban.com/news/detail-720262.html

  • text:文本,input text 123
  • keyevent:物理按键,input keyevent 4,返回back;3回到主页home
  • tap:点击事件,input tap 100 100,点击(100,100)对应的位置点
  • swipe:滑动事件,input swipe 10 20 30 40,从(10,20)坐标滑动到(30,40)
  • draganddrop:拖动事件,input draganddrop 10 20 30 40,从(10,20)坐标拖动到(30,40)
  • press:按压事件,input press 200 300 ,按下(200,300)坐标,不会触发点击事件
  • roll:滚动事件,input roll 100 100,向右滚动100像素,向下滚动100像素

到了这里,关于adb设备调试常用命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【错误记录】adb 调试 android 设备报错 ( adb server version (32) doesn‘t match this client (41); killing... )

    手机上的 adb server 是新的 , 电脑上的 adb client 很长时间没有更新 , 进入 SDK Manager 中更新 Android SDK Platform-Tools 工具版本即可 ; 使用 adb 命令 , 查看 设备 , 报如下错误 ; 进入 Android Studio 时 , 也报该错误 : 报错信息是 \\\" adb server version (32) doesn’t match this client (41); \\\" 其中涉及到两个

    2024年04月13日
    浏览(42)
  • Android adb常用50条命令

    1. adb devices  - 列出所有连接的 Android 设备及模拟器   2. adb shell - 启动 Android 设备或模拟器的 shell 终端  3. adb install - 安装 APK 文件  4. adb uninstall  - 卸载 APK 文件  5. adb logcat - 查看日志输出信息,用于调试应用 6. adb push - 将文件推送到 Android 设备  7. adb pull - 从 Android 设备上

    2024年02月15日
    浏览(43)
  • ADB操作命令详解及用法大全:全面掌握Android设备管理利器

            Android Debug Bridge (ADB) 是每一位Android开发者、测试工程师乃至普通用户在管理、调试、自动化控制Android设备时不可或缺的工具。它充当了PC与Android设备之间的桥梁,通过命令行接口提供了一整套功能强大的操作指令,使得我们能够在电脑上高效地对连接的设备进行

    2024年04月11日
    浏览(47)
  • Android 逆向(四) - adb常用逆向命令

    本篇文章继续记录下adb 的一些常用逆向命令. 该命令可以查看进程信息. 用法: adb shell ps |grep [pname] 过滤进程名称: python 用法 : python 执行adb 命令的代码也很简单,如下: 执行结果: 该命令可以实时查看资源占用情况 用法: adb shell top 列含义: PID(Process ID):进程号 USER:进程所属用户

    2024年03月20日
    浏览(51)
  • 【Android】使用 adb 命令行工具结合 pm列出 Android 设备上已安装应用的应用名称和包名

    要列出 Android 设备上已安装应用的应用名称和包名,你可以使用 adb 命令行工具结合 pm(PackageManager)命令来实现。 首先,确保你已经安装了 Android SDK,并将 adb 工具添加到系统的环境变量中。 然后,打开终端或命令行窗口,连接你的 Android 设备,并输入以下命令: 上述命令

    2024年02月09日
    浏览(48)
  • adb---调试连接设备

    访问Android官方开发者网站下载页面[https://developer.android.com/studio/releases/platform-tools),下载 platform-tools 压缩包。 2.解压platform-tools之后将对应路径加入环境变量path里面保存 3.验证安装 命令行使用如下命令 我的设备时Goole Pixel_4 ,已root 如果安装成功,将显示ADB的版本信息。 #

    2024年04月28日
    浏览(30)
  • 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”

    这个错误提示意味着你的设备是使用USER版本的固件构建的,这个版本不允许禁用verity功能。但是,你可以尝试以下步骤来解决问题: 确认你的设备是否已经root,可以通过执行“adb root”命令来检查。 确认你的设备是否已经启用了开发者选项,可以在设备设置中找到“开发者

    2024年02月03日
    浏览(96)
  • adb无线连接设备进行调试操作(Wi-Fi连接)

    adb connect 命令利用TCP/IP协议来连接 (某些手机还能限制是否允许远程调试,如果存在此选项需要一并打开)。    255d50d7 5555 端口是默认端口,也可以用其他端口,-s是adb中操作指定设备的参数 -s 255d50d7是指定在255d50d7这个设备上执行此操作,如果只连接了一台设备可省略此参数

    2024年02月16日
    浏览(40)
  • 【adb】adb push命令 向设备传输文件

    用于在windows系统下,向设备传输文件。 确认电脑已安装adb。 通过usb线将设备与电脑连接。 按win+r键呼出运行窗口,输入cmd回车启动。 烧录成功: 烧录失败: 可拖拽文件进窗口快速生成路径,确保设备内路径输入正确,确保有足够的空间供adb使用。

    2024年02月11日
    浏览(43)
  • 多设备adb连接命令

    先使用adb devices获取对应的设备序列号,如: 要使用adb命令,只需在adb + ‘-s’+序列号+其他,例如:

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包