美文网首页
adb日常使用

adb日常使用

作者: gogoingmonkey | 来源:发表于2018-05-04 11:18 被阅读58次

adb 命令相信大家都经常使用,但是很多安卓开发者只是用了安装卸载,其实adb 还有很多强大的功能

adb 查看应用包名

很多时候我们去逆向人家的APK,都能知道包名,或者很多时候要利用APK包名搞些事情就可以使用adb

adb shell pm list packages

使用以上命令就可以查看我们设备上所有应用的包名,如果想知道应用对应的apk文件在手机上的安装位置则可以在上面的命令后加-f参数

adb shell pm list packages -f

如果配置了aapt可以使用下面的命令,如果没配环境,直接在aapt目录下

没有apk,应用已经安装到手机或虚拟机中

启动logcat,使用命令

adb logcat ActivityManager:I *:s

然后启动应用,这个时候 logcat会出现下面的:


image.png

so.ofo.labofo
com.xiaoniu.finance 都是应用启动的包名

adb 查看内存 adb shell dumpsys meminfo 使用

adb shell dumpsys meminfo 包名

这里我直接拿淘宝的应用了,如下:


image.png

我们重点看下下面几个参数:


image.png
allocated是分配了的内存,对应的左边分别是native和dalvik 两个地方
Heap Size :代表最大总共分配空间

Heap Alloc :已经分配的内存空间
mallinfo是一个C库, mallinfo 函数提供了各种各样的通过C的malloc()函数分配的内存的统计信息。
Dalvik Heap Size:从Runtime totalMemory()获得,Dalvik Heap总共的内存大小。
Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的内存大小。
Dalvik Heap Free:从Runtime freeMemory()获得,Dalvik Heap剩余的内存大小。
Dalvik Heap Size 约等于Dalvik Heap Alloc + Dalvik Heap Free
OtherPss, include Cursor,Ashmem, Other Dev, .so mmap, .jar mmap, .apk mmap, .ttf mmap, .dex mmap, Other mmap, Unkown统计信息都可以在process的smap文件看到。
Objects and SQL 信息都是从Android Debug信息中获得。
当总数也就是total这一列超过单个程序内存的最大限制时,OOM就很有可能会出现了,多数时候,发生OOM 都是在做一些跟图片相关的操作

APP summary

再继续看上面图片 app summary


image.png

进程独占内存。也就是进程销毁时可以回收的内存容量。通常private Dirty内存是最重要的部分,因为只被自己进程使用。Dirty内存是已经被修改的内存页,因此必须常驻内存(因为没有swap);Clean内存是已经映射持久文件使用的内存页(例如正在被执行的代码),因此一段时间不使用的话就可以置换出去。

实际使用内存(PSS):
将跨进程共享页也加入进来, 进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存

通常我们需要关注PSS TOTAL 和 Private Dirty

Heap Viewer

事实查看内存分配情况和空闲内存大小
发现memory Leaks
AS中点击机器人图标打开Android Device Mointor, 如下:
选中进程进行Heap 分析,点击update heap, 查看右侧的heap标签页


image.png

Heap视图显示了堆内存使用的情况,每次垃圾回收都会更新,要查看更新情况, 点击Cause GC即可
我们需要在执行查看内存是否有泄漏的用例之前和之后执行GC,即手动点击Cause GC,观察allocated大小,查看内存是否在一个稳定的数值,多次操作,只要内存稳定,即没有内存泄漏, 如果不断变大,即表示有内存泄漏。
该工具也可以用来查看是否会发生内存抖动

相关文章

  • adb日常使用

    adb 命令相信大家都经常使用,但是很多安卓开发者只是用了安装卸载,其实adb 还有很多强大的功能 adb 查看应...

  • ADB:Android测试常用的adb命令总结

    总结一些在日常Android测试工作中需要经常使用到的ADB命令,欢迎补充。 1、启动相关 启动和关闭ADB服务,...

  • adb实用命令小结

    adb对于Android程序员来说在日常的工作中使用频率很高,现将自己工作中常用的adb命令总结一下备忘,方便查询...

  • adb 与 ida调试APP

    模拟器连接 adb使用 启动adb服务: adb start-server关闭adb服务:adb kill-ser...

  • 对安卓日志获取过滤指定内容

    除了使用adb logcat之外,可以使用adb shell grep指令。 1.先输入adb shell 2.再...

  • 测试app性能方式

    【方法一】android端使用adb命令 adb dumpsys命令,查看应用程序内存使用情况 1、CPU:adb...

  • Android MAT分析内存

    1>内存分析: 使用adb dumpsys 命令adb是一个非常强大的工具,使用adb查看应用程序内存使用情况可按...

  • Appium---Android的keycode键值

    adb命令使用adb shell input keyevent XX(EventCode) #输入对应的键值adb...

  • Apktool & ADB命令使用

    Apktool & ADB命令使用 @(ApkTool&ADB)[apktool, adb] 1.反编译 在cmd...

  • Adb使用笔记

    Adb使用过程中涉及到 Adb shell 进入shell模式,使用adb shell top 会实时刷新进程信息...

网友评论

      本文标题:adb日常使用

      本文链接:https://www.haomeiwen.com/subject/jxxdrftx.html