以下のページでは、アプリのメモリ使用量を改善する方法について説明します。
メモリに関する一般的なガイダンス
- メモリの概要
- Android のコアメモリ アーキテクチャ、RAM の制約、ローメモリ キラー(LMK)を使用してオペレーティング システムがプロセスをバランスさせる方法について説明します。
- メモリ管理
- コンポーネントのライフサイクル全体でリソースを解放し、リークを回避し、プロセス状態間の移行時にメモリを管理するためのデベロッパーのベスト プラクティスについて説明します。
- Android のメモリについてとトラブルシューティング
- Android のメモリ アーキテクチャ、分析に利用できるツール、メモリ関連の問題の特定と解決に役立つ実践的な演習の包括的な概要を提供します。
- アプリのメモリ予算を設定する
- アプリのメモリ使用量をアクティブなワーキング セットまで削減するために、アプリのメモリ予算を宣言して管理する方法について説明します。
エリア固有の最適化
- ゲームのメモリの概要
- ゲームエンジンを使用するアプリ専用に調整された、メモリ バジェット、ネイティブ割り当て処理、グラフィック アセット管理のガイダンスについて詳しく説明します。
- ビットマップ画像の最適化
- 画像ライブラリ内でビットマップ アセットのサイズ設定、デコード、キャッシュ保存を効率的に行う方法を示します。
- WebView のメモリを管理、診断する
- WebView のマルチプロセス メモリモデルについて説明し、リークを防ぐためにライフサイクルを適切に管理する方法を説明し、メモリの問題を診断するための実用的なワークフローを提供します。
- R8 コードの最適化
- R8 を使用して APK サイズ、メタデータのオーバーヘッド、ランタイム メモリ使用量を削減する方法について説明します。
ローカルメモリのデバッグツール
- Android Studio ツール
- IDE 内で直接、ヒープのリアルタイム検査、メモリ割り当ての追跡、リーク検出のワークフローを提供します。
- Perfetto ヒープダンプ エクスプローラ
- ネイティブと Java または Kotlin のヒープダンプを詳細に視覚的に分析し、保持されたオブジェクト ツリーと匿名メモリ割り当てを分離します。
- デバイス上でシステム トレースをキャプチャする
- アプリのパフォーマンス関連のバグに対処するために、デバイス上のシステムレベルのトレースを記録する方法について説明します。
- Android でのメモリ使用量のデバッグ
- Linux のメモリ管理を理解し、
dumpsys meminfo、Perfetto、ネイティブ ヒープ プロファイル、ヒープダンプなどのツールを使用してメモリ使用量を追跡し、リークを特定する方法を説明します。
本番環境レベルのメモリツール
- Android Vitals: メモリ使用量(匿名 RSS + スワップ)
- Android Vitals では、アプリのプロダクション環境でのメモリ使用量を、プロセス状態(フォアグラウンド、フォアグラウンド サービス、バックグラウンド サービス)別に分類して共有します。
- Android Vitals: ビットマップ メモリ使用量
- Android Vitals では、Android デバイスからデータを集計して、アプリのビットマップ メモリ使用量に関する指標を提供します。
- Android Vitals: DEX コードの最適化
- Android Vitals は、アプリの DEX コードの最適化レベルが低い場合にアラートを発します。これには、R8 を使用するアプリやゲームの難読化、圧縮、最適化が含まれます。
- Crashlytics 20.1.0
- 診断コンテキストとともに本番環境のメモリ不足(OOM)例外とメモリ リミッターの強制終了を表示し、フィールド クラッシュの優先順位付けと修正を行います。
- ProfilingManager
- アプリがライブ ユーザー セッションから本番環境のヒープダンプとヒープ プロファイルをプログラムで収集してアップロードできる高度な API。
参考情報
メモリの詳細については、次のリソースをご覧ください。