4

当我多次启动和退出我的应用程序时,它的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
4

1 回答 1

7

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

于 2013-10-29T14:57:11.330 回答