2

ホーム画面で Google 検索ウィジェットを使用すると、システム サーバー内でメモリ リークが発生することがわかりました。Google ウィジェットは、ホーム ボタンをクリックするたびに更新され、クラスcom.android.server.appwidget.AppWidgetServiceImplの複数の参照を保持しています。

メモリ分析ツールからの以下の分析レポートを確認してください。

「 dalvik.system.PathClassLoader @ 0x12c1d220 」によってロードされる「com.android.server.appwidget.AppWidgetServiceImpl 」の 1 つのインスタンスは、47,168,416 ( 65.38% ) バイトを占有します。メモリは、「 dalvik.system.PathClassLoader @ 0x12c1d220 」によってロードされた「com.android.server.appwidget.AppWidgetServiceImpl 」の 1 つのインスタンスに蓄積されます。

ヒープ ダンプ分析 MAT のスクリーン ショット

問題を再現する手順:

  1. 工場出荷時のデータリセットを行います。
  2. Google ログイン アカウントで setupwizard を完了します。
  3. インターネット接続を切断しないでください。
  4. 最近のタブからすべてのアプリを消去します。
  5. HOMEキーを押す >> 1秒待つ >> 最近のアプリキーを押す >> 1秒待つ >> HOMEキーを押す 1秒待つ
  6. 手順 5 を複数回 (100 回) 繰り返し、次のコマンドでシステム サーバーのヒープ メモリを観察します。

adb shell dumpsys meminfo

「Dalvik Heap」から「Heap Size」と「Heap Alloc」列の増加を観察しました

前後のヒープサイズの下を見つけます。

system_server メモリ情報の詳細

Google 検索アプリを無効にすると、システム サーバーのメモリ リークは観察されませんでした。

私はメモリリークの問題のデバッグが初めてです。サイドシステムサーバーでヒープサイズを食べているのは誰で、その理由は?

ありがとう

4

0 に答える 0