android 程序内存分析


1、java 层内存占用分析
可以通过eclipse中的DDMS(Dalvik Debug Monitor Service)查看某个进程java 虚拟机的内存占用情况。
使用方法参见:http://blog.csdn.net/feng88724/article/details/6460918
也可以生成heap dump文件,通过MAT工具分析内存泄露问题。




2、native层内存占用分析:参考http://tju-jusi.iteye.com/blog/1544778
可以通过eclipse中的DDMS(Dalvik Debug Monitor Service)查看某个进程java native 的内存占用情况。
  1)setprop libc.debug.malloc 1  
    stop
    start

   支持的参数: (注明:本人测试只有1可用)

1  - perform leak detection

5  - fill allocated memory to detect overruns

10 - fill memory and add sentinels to detect overruns

20 - use special instrumented malloc/free routines for the emulator

 


  


  2)eclipse 中的C:\Users\XXXX\.android\ddms.cfg文件末尾添加
  native=true


  3)从SDK\tools 中启动独立的 DDMS ( ddms.bat )可以看见 native heap 选项卡
  
  4)找到自己的库函数***.so  后面的 Method 列中的地址。使用 NDK 中的 addr2line 工具,
用法:在命令行中addr2line.exe -e  ***\obj\local\armeabi\***.so  地址
注意,一定要是obj 底下的 .so , lib 里面的是不含有符号表的。
另外 Method 中的地址一般要将高 3(或者2) 位置 0 , 80cc6e22 变为 000c6e22 。 80dxxxxx 的怎么变自己领悟吧。


3.总的进程内存占用情况,参考http://blog.csdn.net/haima1998/article/details/46693441
通过dumpsys meminfo pid 来查看进程的Native heap和dalvik size
root@device:/ # dumpsys meminfo 3808                                            
Applications Memory Usage (kB):
Uptime: 3819006 Realtime: 3819006


** MEMINFO in pid 3808 [com.XXX.tv.XXX.XXX] **
                   Pss  Private  Private  Swapped     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap        0        0        0        0     4944     3677     1266
  Dalvik Heap        0        0        0        0    35663    26822     8841
 Dalvik Other     1653     1652        0        0                           
        Stack      248      248        0        0                           
       Ashmem    37885    37820        0        0                           
    Other dev        5        0        4        0                           
     .so mmap     4925     3092       20        0                           
    .jar mmap        0        0        0        0                           
    .apk mmap      171        0        0        0                           
    .ttf mmap      428        0      212        0                           
    .dex mmap     3225        0     2472        0                           
   Other mmap       31        4        0        0                           
      Unknown     3517     3516        0        0                           
        TOTAL    52088    46332     2708        0    40607    30499    10107
 
 Objects
               Views:      155         ViewRootImpl:        1
         AppContexts:        3           Activities:        1
              Assets:        3        AssetManagers:        3
       Local Binders:       12        Proxy Binders:       23
    Death Recipients:        2
     OpenSSL Sockets:        0
 
 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0
 
 
 Asset Allocations
    zip:/data/app/com.XXX.tv.XXX.XXX-1.apk:/resources.arsc: 171K
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值