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 に答える