11

ある時点で Android アプリをデバッグしているときに、LogCat に大量のエントリが表示されます。

Tag: TextLayoutCache Text: Cache Value 0x51b9f578 deleted, size=168 (the hexa value changes from entry to entry)

誰かこれについて知っていますか?メモリーリーク?それが問題である場合、それを解決する方法はありますか?ありがとう!

4

2 に答える 2

5

ネット上に決定的な答えはないようですので、TextLayoutCache.cppのコードを調べました。私にはうまく見えます。パフォーマンスを向上させるためにテキスト レイアウト データをキャッシュしています。現在、 TextLayoutCache.hで定義されている 0.5MB の固定の既定のキャッシュ サイズがあります。

そのため、レイアウト テキストを固定値セット (<0.5MB) に変更している場合、ログ メッセージは表示されません。

テキストを動的な値に変更すると、最終的にキャッシュがいっぱいになり、LRU (最も長く使用されていない) キャッシュ エントリが削除され、ログ メッセージが表示されます。これは単なるデバッグ メッセージであり、エラーでもリークでもありません。これは、Android の内部がアプリをどのように処理しているかについての有用なパフォーマンス メトリクスです。

TextLayoutCache は Android バージョン >= 5 では使用されないことに注意してください。

于 2014-03-08T10:17:45.717 に答える