Android之常用ADB命令(持续更新)

2024-06-04 9880阅读

一、常用命令

1.安装应用

adb install xxx.apk
adb install -r xxx.apk 覆盖安装
adb install -l 锁定该应用程序
adb install -t 允许测试包
adb install -s 把应用程序安装到sd卡上
adb install -d 允许降级安装
adb install -g 为应用程序授予所有运行时的权限

2.卸载应用

adb uninstall 包名

3.启动应用

adb shell am start 包名/完整Activity路径
如:adb shell am start com.example.test/com.example.test.MainActivity

4.查看已连接的设备列表

adb devices

5.无线连接设备

adb connect 手机ip(手机和电脑处于同一网段)

6.查看日志

adb logcat
adb logcat > 文件名(将日志存储在文件中)
'>' : 覆盖文件内容
'>>' : 追加在文件末尾

7.获取包名

获取手机里所有的包名: adb shell pm list packages
获取手机里所有的系统应用的包名: adb shell pm list packages -s
获取手机里所有第三方软件的包名: adb shell pm list packages -3

8.清除缓存

adb shell pm clear 包名

9.停止应用

adb shell am force-stop 包名

二、性能相关

10.获取启动时间

adb shell am start -W 包名/activity名
-W :获取时间
-S:启动前强行停止应用 (冷启动的时间)
-R 数字: 启动次数(可以求几次的平均值)
注意:参数均为大写,顺序可以调整,但-R后必须是数字
例如:adb shell am start -W -S -R 5 com.tpshop.malls/com.tpshop.malls.SplashActivity

11.获取内存信息

adb shell dumpsys meminfo [pkg/pid]
Native/Dalvik的Heap信息:如果发现这个值一直增长,可能出现了内存泄漏
Total的PSS信息:这个值是应用真正占据的内存大小

12.查看整个系统内存

// Android系统中,查看整个系统的内存详情
adb shell cat /proc/meminfo 

相关参数的详细解释如下所示:

MemTotal:         688576 kB     总内存
MemFree:          153736 kB     空闲内存
MemAvailable:     339884 kB     可用内存
Buffers:              16 kB     给文件的缓冲大小
Cached:           267672 kB     高速缓冲存储器
SwapCached:           36 kB     被高速缓冲存储用的交换空间的大小
Active:           222900 kB     活跃使用中的高速缓冲存储器页面文件大小
Inactive:         123700 kB     不经常使用中的告诉缓冲存储器文件大小
Active(anon):      31800 kB     活跃的匿名内存(进程中堆上分配的内存,是用malloc分配的内存)
Inactive(anon):    57272 kB     不活跃的匿名内存
Active(file):     191100 kB     活跃的file内存
Inactive(file):    66428 kB    不活跃的file内存     
Unevictable:           0 kB    不能被释放的内存页
Mlocked:               0 kB    mlock()系统调用锁定的内存大小
SwapTotal:       2097148 kB    交换空间总大小
SwapFree:        2096884 kB    空闲交换空间
Dirty:                 0 kB    等待被写回到磁盘的大小
Writeback:             0 kB    正在被写回的大小
AnonPages:         78876 kB       未映射页的大小
Mapped:            28556 kB    设备和文件映射大小
Shmem:             10160 kB    已经被分配的共享内存大小
Slab:             102916 kB    内核数据结构缓存大小
SReclaimable:      49616 kB    可收回slab的大小
SUnreclaim:        53300 kB    不可回收的slab的大小
KernelStack:        4416 kB      kernel消耗的内存
PageTables:         6028 kB      管理内存分页的索引表的大小
NFS_Unstable:          0 kB      不稳定页表的大小
Bounce:                0 kB      在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存
WritebackTmp:          0 kB      USE用于临时写回缓冲区的内存
CommitLimit:     2441436 kB      系统实际可分配内存总量
Committed_AS:     308028 kB      当前已分配的内存总量
VmallocTotal:   34359738367 kB   虚拟内存大小
VmallocUsed:      179588 kB    已经被使用的虚拟内存大小
VmallocChunk:   34359310332 kB   malloc 可分配的最大的逻辑连续的内存大小
HardwareCorrupted:     0 kB      删除掉的内存页的总大小(当系统检测到内存的硬件故障时)
AnonHugePages:      6144 kB      匿名 HugePages 数量
CmaTotal:              0 kB    总的连续可用内存
CmaFree:               0 kB      空闲的连续内存
HugePages_Total:       0      预留HugePages的总个数 
HugePages_Free:        0     池中尚未分配的 HugePages 数量
HugePages_Rsvd:        0        表示池中已经被应用程序分配但尚未使用的 HugePages 数量
HugePages_Surp:        0      这个值得意思是当开始配置了20个大页,现在修改配置为16,那么这个参数就会显示为4,一般不修改配置,这个值都是0
Hugepagesize:       2048 kB     每个大页的大小
DirectMap4k:      108416 kB   映射TLB为4kB的内存数量
DirectMap2M:      940032 kB   映射TLB为2M的内存数量
DirectMap1G:           0 kB     映射TLB为1G的内存数量

13.获取当前CPU占用情况

adb shell dumpsys cpuinfo

三、其他

14.截屏

adb shell screencap -p /sdcard/screenshot.png

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]