メモリ不足のゲームに関する分析情報

デバイスのメモリ不足により、Android が人気の高い高忠実度ゲームを強制終了(または終了)することがあります。Android は、使用可能なメモリをすべて使用してアプリとゲームをキャッシュに保存し、アプリとゲームをすばやく読み込むようにします(ユーザー エクスペリエンスの向上)。ただし、メモリが不足すると、システムはメモリ使用量の多いアプリとゲームを強制終了し、デバイスの通常の動作に必要なメモリを解放します。

ゲームのメモリ使用量を改善するための情報、分析情報、ベスト プラクティスは次のとおりです。

  • ApplicationExitInfo を使用する - この Java/Kotlin API は、Android システムによって前のゲーム実行が強制終了された理由を返します。ApplicationExitInfo を使用して、以前のプロセス実行のデッドの原因としてメモリ不足がないか確認します。メモリ不足が原因でゲームが強制終了されたかどうかを確認して、そのデバイスでメモリ使用量を抑えるようにゲームを最適化します。
  • 合計物理 RAM を確認する - フォアグラウンドでゲームが強制終了されないようにし、デバイスの機能に合わせて、合計物理 RAM を確認し、それに応じてゲームのメモリ使用量を調整します。バックグラウンドに移動した直後にアプリが強制終了されないように(プレーヤーがマルチタスクできるように)するには、トリム コールバック(特に TRIM_MEMORY_UI_HIDDEN)を使用してゲームのメモリ使用量を削減します。
  • 非推奨の trim コールバックを登録しないでください。Android には、メモリ上限に達したときにネイティブのメモリ圧力イベントを検出する API がありません(ローメモリ キラー デーモンのコールアウトをご覧ください)。Trim コールバックはメモリ不足による強制終了の防止には役立ちなかったため、Android では TRIM_MEMORY_UI_HIDDENTRIM_MEMORY_BACKGROUND を除くすべてのサポートを終了しました。

ローメモリ キラーデーモン

Android のローメモリ キラー デーモン(lmkd)は、実行中の Android システムのメモリ状態をモニタリングし、必要最小限のプロセスを停止してシステムのパフォーマンスを許容レベルに維持することでハイメモリ プレッシャーに対応するプロセスです。

デーモンは、プロセスがなんらかのコールバックを承認するのを待たずに、終了するプロセスを選択できます。そのため、アプリやゲームが強制終了される前にメモリを解放する最後のチャンスとして通知が届くことはありません。

詳しくは、ローメモリ キラーデーモンをご覧ください。