Android app大量使用RAM的原因以及如何减少

时间:2013-10-24 09:36:13

标签: android android-memory

当我多次启动并退出我的应用时,其RAM使用量增加超过500 MB。当我使用adb shell dumpsys meminfo检查内存转储时,我检查了未知pss value是导致问题的原因。什么是大pss值的原因以及如何降低pss值。

Shared  Private     Heap     Heap     Heap

                   Pss    Dirty    Dirty     Size    Alloc     Free

                ------   ------   ------   ------   ------   ------

       Native        0        0        0   534460   531827     1604
       Dalvik    51013    17868    50664    90480    82266     8214
       Cursor        0        0        0                           
       Ashmem        0        0        0                           
    Other dev    14292       52    14288                           
     .so mmap     3810     2320     1720                           
    .jar mmap        0        0        0                           
    .apk mmap     1305        0        0                           
    .ttf mmap        0        0        0                           
    .dex mmap     2960        0        0                           
   Other mmap     1738      440      236                           
      Unknown   504718      296   384284                           
        TOTAL   579836    20976   451192   624940   614093     9818

1 个答案:

答案 0 :(得分:5)

我发现了高RAM使用率的原因。当我分析应用程序的本机堆转储时,我知道库libharfbuzz.so的实例占用了大量空间,并且该库用于显示字体,所以当我检查代码时,有很多{{1}的实例在代码中创建了多个地方。由于TypeFace在本机内存中分配,它使本机堆大小很大,这就是RAM使用率更高的原因。我删除了这些实例并创建了单个TypeFace实例并在我的应用程序中使用它,并且RAM使用率降低了。