Android 4K高清图片解码显示(1)安卓内存分析

原创 2015年11月20日 10:57:41

    Android在5.0之前使用Dalvik虚拟机。Dalvik 基于寄存器,而 JVM 基于栈。

    Dalvik的内存分为3部分:

          1.Java Object Heap:这部分是用来分配java对象的,app中java代码new出来的对象都在这个heap当中分配。  Android系统对dalvik的heap  size作了硬性限制,不同的手机可能根据自身内存大小为Java Object Heap配置了不同的大小。当java进程申请的java空间超过阈值时,就会抛出OOM异常。 在代码中可以使用ActivityManager.getMemoryClass方法获取该值。Java  Object Heap的最大值就是app能够使用的最大内存。下面是我的Nexus5的配置:

[dalvik.vm.heapsize]: [512m]
[dalvik.vm.heapstartsize]: [8m]

            2. Bitmap Memory: 也称为External Memroy ,是用来处理图像的。 在Android3.1之前,BitmapMemory是在Native Heap中进行分配, 但是这部分内存同样计入到了Java ObjectHeap中 。在3.1之后的版本中, BitmapMemory直接在Java Object Heap中进行分配,可以接收GC管理了。Bitmap是吃内存大户,要谨慎合理的使用。

            3. Native Memory: Native Code中使用malloc分配出来的内存,就是分配在Native Heap.   这部分内存不受Java Object Heap限制,可以自由使用。虽然这么说,但是不能过于贪心,如果过多的使用这部分内存,则可能引起GC被回收,造成app莫名的奔溃。

           在调试时可以使用一下命令查看app内存使用情况。

           adb shell dumpsys meminfo $package/$pid

           下面是dump相册的内存使用的结果。


shell@hammerhead:/ $ dumpsys meminfo com.google.android.apps.photos
dumpsys meminfo com.google.android.apps.photos
Applications Memory Usage (kB):
Uptime: 447210103 Realtime: 1130534558


** MEMINFO in pid 6511 [com.google.android.apps.photos] **
                   Pss  Private  Private  Swapped     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap     6253     5912        0        0    23808    21797     2010
  Dalvik Heap    10778    10676        0        0    31885    25032     6853
 Dalvik Other      988      988        0        0
        Stack      264      264        0        0
       Ashmem        4        4        0        0
      Gfx dev     6036     6036        0        0
    Other dev        4        0        4        0
     .so mmap      691      140        0        0
    .apk mmap     1163        0      768        0
    .ttf mmap       76        0       72        0
    .dex mmap    10432        4    10428        0
    .oat mmap     1440        0      476        0
    .art mmap      965      676       40        0
   Other mmap      470        8      368        0
   EGL mtrack    41280    41280        0        0
      Unknown      136      136        0        0
        TOTAL    80980    66124    12156        0    55693    46829     8863


 App Summary
                       Pss(KB)
                        ------
           Java Heap:    11392
         Native Heap:     5912
                Code:    11888
               Stack:      264
            Graphics:    47316
       Private Other:     1508
              System:     2700


               TOTAL:    80980      TOTAL SWAP (KB):        0


 Objects
               Views:      112         ViewRootImpl:        1
         AppContexts:        2           Activities:        1
              Assets:        2        AssetManagers:        2
       Local Binders:       31        Proxy Binders:       22
       Parcel memory:        9         Parcel count:       38
    Death Recipients:        1      OpenSSL Sockets:        0


 SQL
         MEMORY_USED:      552
  PAGECACHE_OVERFLOW:      316          MALLOC_SIZE:       62


 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4      272             52         5/22/4  /data/user/0/com.google.android.apps.photos/databases/disk_cache
         4      272             27         3/16/4  /data/user/0/com.google.android.apps.photos/databases/disk_cache (1)
         4       28             45         6/19/5  /data/user/0/com.google.android.apps.photos/databases/google_analytics_v4.db


相关文章推荐

关于Android 支持 4K 视频显示的问题总结

问题引入:          Android M 中声称支持原生的4K视频显示,这应该如何理解:原文地址: http://news.mydrivers.com/1/433/433988.htm    ...
  • coloriy
  • coloriy
  • 2017年07月05日 14:55
  • 586

Android 4K高清图片解码显示(3)Bitmap优化

上一篇介绍了Android中常用的解码方法。Bitmap是Android开发中经常要使用到的,但是由于Bitmap的使用会占用大量内存,容易造成OOM。Bitmap占用的内存为:像素总数 * 每个像素...

弄了一款安卓美女App,图片用高清的

萌妹子谁不喜欢!相信很多朋友都喜欢用手机看一些美女妹子图,手机可以单手操作,一边看一边干其他事情也更加方便!那么在手机上有没有什么可以看妹子的App呢?遍地都是!笔者随便就能够如同报菜名一样报出十来个...

DroidCamX – 让您的 Android 安卓手机瞬间变成电脑的高清无线摄像头

很多人的台式机电脑都没有配备摄像头,想视频聊天时就不方便了。然而,大家手机的摄像头一般都比买到的USB摄像头要清晰得多!其实使用一些软件,可以通过 WiFi 将你的 Android 手机瞬间变身为电脑...
  • pe2011l
  • pe2011l
  • 2012年04月01日 13:08
  • 430

安卓开启照相机并保存本地显示高清照片

新建一个安卓项目Traffic. 1.activity_main.xml先对界面进行布局:

高清时代4K H.265/HEVC来临---OTT/IPTV直播系统大发展

近几年网络电视盒子业务大爆发。乐视、小米、天猫甚至阿里云都有网络电视小盒子的产品。提起这个行业,那么这个词OTT-TV或IPTV对于我们来说是不陌生的。 今天我们不细说OTT-TV和IPTV有什么区别...

Android 4.x Gallery2分析

Gallery2介绍 Gallery2主要功能是实现Android系统本地存储以及网络存储中的媒体(图片&视频)资源的浏览,媒体信息,显示和更多操作(删除、分享、选择、缩放、编辑等)。 Galler...
  • lgglkk
  • lgglkk
  • 2017年02月07日 23:56
  • 712

4K发展面临瓶颈,高清影音本如何破局?

毋庸置疑,4K时代已经来临,从4K视频,到4K影片,再到4K电视,可以说,4K所带来的震撼和影响丝毫不亚于当年的1080P。由于在显示的清晰度和综合效果上,4K都有着得天独厚的优势,所以,业界普遍认为...

日本K1拳王魔裟斗高清集锦—在线播放

http://blog.39.net/mangbu9/a_16144859.html http://blog.39.net/mangbu9/a_16144863.html ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 4K高清图片解码显示(1)安卓内存分析
举报原因:
原因补充:

(最多只允许输入30个字)