【内存优化】查看app(进程)的内存占用

1、官方有篇文章,详细的写了,可以通过哪些工具查看内存占用的情况

https://developer.android.com/studio/profile/investigate-ram.html

2、较常用的 adb 命令,adb shell dumpsys meminfo

  1. Here is an older dumpsys on Dalvik of the gmail app:  
  2.   
  3. ** MEMINFO in pid 9953 [com.google.android.gm] **  
  4.                  Pss     Pss  Shared Private  Shared Private    Heap    Heap    Heap  
  5.                Total   Clean   Dirty   Dirty   Clean   Clean    Size   Alloc    Free  
  6.               ------  ------  ------  ------  ------  ------  ------  ------  ------  
  7.   Native Heap      0       0       0       0       0       0    7800    7637(6)  126  
  8.   Dalvik Heap   5110(3)    0    4136    4988(3)    0       0    9168    8958(6)  210  
  9.  Dalvik Other   2850       0    2684    2772       0       0  
  10.         Stack     36       0       8      36       0       0  
  11.        Cursor    136       0       0     136       0       0  
  12.        Ashmem     12       0      28       0       0       0  
  13.     Other dev    380       0      24     376       0       4  
  14.      .so mmap   5443(51996    2584    2664(55788    1996(5)  
  15.     .apk mmap    235      32       0       0    1252      32  
  16.     .ttf mmap     36      12       0       0      88      12  
  17.     .dex mmap   3019(52148       0       0    8936    2148(5)  
  18.    Other mmap    107       0       8       8     324      68  
  19.       Unknown   6994(4)    0     252    6992(4)    0       0  
  20.         TOTAL  24358(14188    9724   17972(2)16388    4260(2)16968   16595     336  
  21.   
  22.  Objects  
  23.                Views:    426         ViewRootImpl:        3(8)  
  24.          AppContexts:      6(7)        Activities:        2(7)  
  25.               Assets:      2        AssetManagers:        2  
  26.        Local Binders:     64        Proxy Binders:       34  
  27.     Death Recipients:      0  
  28.      OpenSSL Sockets:      1  
  29.   
  30.  SQL  
  31.          MEMORY_USED:   1739  
  32.   PAGECACHE_OVERFLOW:   1164          MALLOC_SIZE:       62  

看上面的数据可以简单排查出你app中的一些问题,比如看当前Activity数量,如果显示的数量和你预期的数量不一致,可能就已经有activity泄露了,然后你可以用工具 mat 来排查具体是什么原因引起的activity内存泄漏,具体可以看这篇:

《【内存优化】内存泄漏 之 MAT 工具的使用 》

你可能感兴趣的:(Android性能优化)