Android のメモリ

以下のページでは、アプリのメモリ使用量を改善する方法について説明します。

メモリに関する一般的なガイダンス

メモリの概要
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 デバイスからデータを集計して、アプリのビットマップ メモリ使用量に関する指標を提供します。
Crashlytics 20.1.0
本番環境のメモリ不足(OOM)例外とメモリ制限の強制終了を診断コンテキストとともに表示し、フィールド クラッシュの優先順位付けと修正を行います。
ProfilingManager
アプリがライブ ユーザー セッションから本番環境のヒープダンプとヒープ プロファイルをプログラムで収集してアップロードできる高度な API。

参考情報

メモリの詳細については、次のリソースをご覧ください。

ブログ投稿

動画