dumpsys meminfo详解

先说命令,详细讲解放在后面

查看内存使用情况

  • adb shell dumpsys meminfo [pkg] 查看指定进程包名的内存使用情况

命令详解

android程序内存被分为2部分:native和dalvik,dalvik就是java堆,普通java对象是在java堆分配,而bitmap是直接在native上分配,对于内存的限制是 native+dalvik 不能超过最大限制。android程序内存一般限制在16M,当然也有24M的。

pplications Memory Usage (kB):
Uptime: 27199950 Realtime: 145023102

** MEMINFO in pid 20100 [com.laomou.memtest] **
                   Pss  Private  Private  Swapped     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap     1876     1544        0    15964    29440    27821     1618
  Dalvik Heap      780      740        0       36    17032    15133     1899
 Dalvik Other      496      312        0     8500                           
        Stack      136      136        0        4                           
    Other dev        4        0        4        0                           
     .so mmap      457       56      164     2696                           
    .apk mmap      127        0       20        0                           
    .dex mmap      386       44      340        4                           
    .oat mmap     1070        0      340        0                           
    .art mmap     1520      388      544      140                           
   Other mmap       11        8        0        0                           
      Unknown       92       92        0      116                           
        TOTAL     6955     3320     1412    27460    46472    42954     3517

 App Summary
                       Pss(KB)
                        ------
           Java Heap:     1672
         Native Heap:     1544
                Code:      964
               Stack:      136
            Graphics:        0
       Private Other:      416
              System:     2223

               TOTAL:     6955      TOTAL SWAP (KB):    27460

 Objects
               Views:        7         ViewRootImpl:        0
         AppContexts:        2           Activities:        1
              Assets:        4        AssetManagers:        2
       Local Binders:        3        Proxy Binders:        8
       Parcel memory:        2         Parcel count:       10
    Death Recipients:        0      OpenSSL Sockets:        0

 Dalvik
         isLargeHeap:    false

 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0
  • Objects
    查看参数,如果Views、Activities 不等于0的话,那么肯定存在内存泄漏。

  • Dalvik
    isLargeHeap: false

  • AndroidManifest.xml

<application android:largeHeap="false">

如果不是内存消耗大的应用,如图库之类,建议不要设置isLargeHeap=true

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 非常棒的一片博文,在这里转一下。感谢作者。Android进程的内存管理分析最近在网上看了不少Android内存管理...
    任易Change阅读 3,971评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,277评论 25 709
  • 1、内存了解 在Android App的性能优化的各个部分里,内存方面的知识较多且不易理解,内存的问题绝对是最令人...
    萧竹阅读 12,906评论 1 12
  • 作者:李新越 反省中。 人,终究是感性的动物。会哭,会笑,会喜,会悲,人的感情有冷也有热。有的人人突然觉得,曾有一...
    抱芪阅读 4,005评论 0 4
  • 捞起水淋淋的月亮 月亮睁开沉默与别离的 眼睛 手指翻越一片黑色纸张,这时候我便被时光肢解 埋葬到流血地下 哀伤的子...
    红尘红尘阅读 2,755评论 0 6