• 安卓app测试之内存监控


    一、通过Dumpsys 来取值

    1、adb shell dumpsys meminfo

    获取的所有进程的内存信息,以及总内存,剩余内存,使用的内存等信息。

    2、想获得某一进程内存的详细信息,在后面加上包名或者pid.

    adb shell dumpsys meminfo pakagename or Pid

    3、重点关注字段

    (1) Native/Dalvik 的 Heap 信息

    它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。

    Dalvik Heap就是常说的堆内存,Dalvik Heap不能超过最大限制;超过单个程序内存的最大限制时,就可能出现OOM(内存溢出)。

    (2)Total 的 PSS 信息

    PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存),这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大。

    二、用/system/xbin/procrank工具 来取值很直观

    1、adb shell procrank

    三、top

    1、top -d 1 | grep packageName

    方法一:adb shell "top -d 1|grep packageName"

    方法二:adb shell 进入到linux命令下,执行该命令

    四、关于单个应用内存占用量问题

    #查看单个应用程序最大内存限制

    adb shell "getprop|grep heapgrowthlimit"

    #应用启动后分配的初始内存

    adb shell "getprop|grep dalvik.vm.heapstartsize"

    #单个java虚拟机最大的内存限制

    adb shell "getprop|grep dalvik.vm.heapsize"

    应用如果不想在 dalvik heap达到heapgrowthlimit限制的时候出现OOM,需要在 Manifest中的application标签中声明 android:largeHeap=“true”,声明后应用 dalvik heap 达到heapsize的时候才会出现OOM! 

    注:设备的不一样 最大内存限制也可能不一样

  • 相关阅读:
    2C Numerical Sequence (hard version)
    2A Subset——折半枚举+二分
    假设检验、Z检验与T检验
    使用PyCaret构建机器学习模型
    Python图像处理
    NumPy教程
    NLP中的标识化
    概率论的数学基础
    用直方图和箱线图理解数据
    神经网络简易教程
  • 原文地址:https://www.cnblogs.com/wuzm/p/10968988.html
Copyright © 2020-2023  润新知