3

アプリケーションが接続されたデバイスで実行されているときに、ターミナルで次のコマンドを実行しました。adb shell dumpsys meminfo com.mine.application テーブルを取得したら、次のような「アセット割り当て」のリストも取得します。

Asset Allocations
zip:/data/app/com.mine.application-1.apk:/resources.arsc: 115K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K

zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K

これは、アプリケーションの一部を数回実行した後に発生します。これは、Helvetica フォントが何度も割り当てられていることを意味すると考えてよろしいですか? そして、それらのメモリをすべて使い果たしていますか? また、特定のアクティビティを終了してもこれらの割り当ては削除されないため、これはメモリ リークであると考えてよろしいですか?

これが本当なら、これを修正するために、onPause の際にフォントへの参照を無効にするようにしますか? ありがとう。

4

1 に答える 1

4

Typeface.createFromAsset() がメモリ リークするという Android のバグが文書化されています。

http://code.google.com/p/android/issues/detail?id=9904を参照してください。

于 2012-07-24T16:14:16.940 に答える