当前位置:网站首页>Adb 实用命令(网络包、日志、调优相关)
Adb 实用命令(网络包、日志、调优相关)
2022-07-07 08:13:00 【邹奇】
文章目录
- 背景
- 命令
- - 连接机顶盒
- - 查看已连接设备
- - 断开某个机顶盒的连接
- - 断开所有设备连接
- - 获取 root 权限
- - 挂载文件系统
- - 抓取网络包
- - 拉取网络包到本机cmd执行命令当前目录
- - 删除设备中的网络包
- - 获取机顶盒设备信息
- - 根据 uri 查看 contentProvider 中表信息
- - 根据包名和期启动类名打开应用
- - 设置应用运行时的系统参数
- - 根据包名杀应用进程
- - 进程的名字使用 grep 指令过滤输出 "com.gitv.tv.launcher" 进程的信息
- - 清空(清除)Android中的logcat缓冲区
- - 查看 cpu 信息
- - 查看系统的 meminfo
- - 查看电量信息
- - 查找应用的 pid
- - 查看应用最大内存限制
- - 分析应用的内存信息(是否存在内存泄漏)
背景
最近在局方现场出差,我负责sdk开发,局方外包给了北京的同事集成sdk开发应用,后面发现应用存在一些问题需要解决。我又是乙方,就来到了局方现场分析问题,然后反馈解决。
不过后续sdk也没动,一些优化都是应用(存在内存泄漏)需要做的,机顶盒性能也可能有一定的影响。
现场有用到一些比较实用的 adb 命令,这里记录下,方便自己和同学们日后使用。
命令
- 连接机顶盒
adb connect [机顶盒ip]
- 查看已连接设备
adb devices
- 断开某个机顶盒的连接
adb disconnect [机顶盒ip]
or
adb disconnect [虚拟机名称]
- 断开所有设备连接
adb disconnect
- 获取 root 权限
adb root
- 挂载文件系统
adb remount
当想往移动设备端 push 文件时显示没权限,可尝试执行以下指令:
adb root
adb remount
如果还提示 read-only 的话,可继续尝试执行命令:
adb root
adb disable-verity
adb reboot 重启后再 adb remount 即可。
当你想 push 进某一具体路径下的文件夹时可以用: adb shell mount -o rw,remount /路径/路径
注:adb remount 的作用相当于 adb shell mount -o rw,remount,rw /system
- 抓取网络包
(在 cmd 窗口执行命令所在目录下放 tcpdump 文件,抓包时用)
adb shell tcpdump -i any -p -s 0 -w /data/data/capture.pcap
组合键: ctrl + C
可以停止抓包。
- 拉取网络包到本机cmd执行命令当前目录
adb pull /data/data/capture.pcap
- 删除设备中的网络包
adb shell
rm /data/data/capture.pcap
- 获取机顶盒设备信息
adb shell getprop
- 根据 uri 查看 contentProvider 中表信息
adb shell content query --uri [表的uri]
示例:
adb shell content query --uri content://stbauthinfo/authentication
结果如下:
Row: 0 _id=131, name=epg_server, value=http://183.224.21.144:33200
Row: 1 _id=132, name=refreshTime, value=915738
Row: 2 _id=133, name=licence, value=1
Row: 3 _id=134, name=Password, value=969256
Row: 4 _id=135, name=username, value=dsw1878700035901
Row: 5 _id=136, name=user_token, value=tj3kkvhyh0d4yS-StkL2k8844
Row: 6 _id=137, name=platform, value=YNYDHW
Row: 7 _id=138, name=userGroup, value=0
Row: 8 _id=139, name=platformType, value=1
Row: 9 _id=140, name=g_token, value=ee422c5fcf70dda06b3fb295d39ef8b0f5aca34ed45bcb4c
Row: 10 _id=141, name=isSW, value=0
- 根据包名和期启动类名打开应用
adb shell am start -n [pkgId]/[launchClassName]
示例:
adb shell am start -n com.utstar.smartTV/yanhua.tv.activity.Dispatcher
- 设置应用运行时的系统参数
adb shell setprop [自定义参数 key] [要设置的参数对应的 value]
示例:
adb shell setprop debug.ottsdk.config 1
注:设备重启后,设置的参数值会失效;但重启应用不会失效。
- 根据包名杀应用进程
adb shell am force-stop [pkgId]
注意:有的时候不一定能成功。
因为在 android8.1 系统的代码中:
if (app.persistent && !evenPersistent) {
// we don't kill persistent processes
continue;
}
应用中 android:persistent=“true”,true 就不让 force-stop,当然进程也就存在。
那么如果想强制杀可以这样做:找到应用的进程id,然后通过命令 kill -9 [进程id]
可以强制杀进程。
- 进程的名字使用 grep 指令过滤输出 “com.gitv.tv.launcher” 进程的信息
adb shell top | grep com.gitv.tv.launcher
更多相关命令请阅读 adb shell top 命令。
- 清空(清除)Android中的logcat缓冲区
adb logcat -c
建议抓取日志前,执行一遍该命令。
防止抓取多余的日志,保证日志抓取的准确性,方便分析定位问题。
- 查看 cpu 信息
adb shell dumpsys cpuinfo
- 查看系统的 meminfo
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的内存数量
- 查看电量信息
adb shell dumpsys battery
- 查找应用的 pid
adb shell
top | grep [pkgId]
第一列的数字 2185 就是应用的进程 pid
- 查看应用最大内存限制
adb shell
getprop|grep heapgrowthlimit
- 分析应用的内存信息(是否存在内存泄漏)
adb shell
dumpsys meminfo [pkgId/pid]
更多详细使用和内存分析说明请阅读:adb shell dumpsys meminfo 详解。
技术永不眠!我们下期见!
边栏推荐
猜你喜欢
Appx code signing Guide
Fiddler simulates the interface test
[ORM framework]
【acwing】789. Range of numbers (binary basis)
【STM32】STM32烧录程序后SWD无法识别器件的问题解决方法
Postman interface test IV
【HigherHRNet】 HigherHRNet 详解之 HigherHRNet的热图回归代码
串口通讯继电器-modbus通信上位机调试软件工具项目开发案例
[higherhrnet] higherhrnet detailed heat map regression code of higherhrnet
对存储过程进行加密和解密(SQL 2008/SQL 2012)
随机推荐
Es classes and objects, prototypes
Official media attention! The list of top 100 domestic digital collection platforms was released, and the industry accelerated the healthy development of compliance
ORM model -- creation and query of data records
ORM -- logical relation and & or; Sort operation, update record operation, delete record operation
ISP、IAP、ICP、JTAG、SWD的编程特点
The Hal library is configured with a general timer Tim to trigger ADC sampling, and then DMA is moved to the memory space.
【STM32】STM32烧录程序后SWD无法识别器件的问题解决方法
The new activity of "the arrival of twelve constellations and goddesses" was launched
Postman interface test III
Fiddler simulates the interface test
ArcGIS operation: batch modify attribute table
Win10 installation vs2015
Chris LATTNER, the father of llvm: why should we rebuild AI infrastructure software
XML配置文件解析与建模
Postman tutorial - scripting
Study summary of postgraduate entrance examination in September
Postman interface test II
PDF文档签名指南
STM32产品介绍
. Net configuration system