Android --- OOM の一般的な原因

目次

メモリ不足 OOM

1 つのアプリケーションで使用できる最大メモリ

OOM の一般的な原因

メモリのリアルタイム監視

メモリ不足 OOM

1 つのアプリケーションで使用できる最大メモリ

\銃弾 dalvik.vm.heapstartsize ヒープ割り当ての初期サイズを表します。

\銃弾 dalvik.vm.heapgrowthlimitは単一プロセスのメモリ制限を表します。

\銃弾 dalvik.vm.heapsize 単一のプロセスで使用可能な最大メモリ。

heapgrowthlimitが定義されている場合、その値は単一プロセスのメモリ値を制限するために使用されます。通常、  heapsize値は heapgrowthlimit値より大きくなりますheapgrowthlimitの値を設定して も十分でない場合は、マニフェスト ファイル(AndroidManifest.xml)ファイルに  「android:largeHeap=true」を追加して、heapsize の値を使用できます。

OOM の一般的な原因

1.大きな画像を読み込む

2.メモリリーク

Java例外システム

メモリのリアルタイム監視

JPDA

\銃弾 Java プラットフォーム デバッグ システムJPDA (Java PlatformDebugger Architecture)。これは、仮想マシンのデバッグと監視のために Java 仮想マシンによって特別に提供されるインターフェイスのセットです。

\銃弾 JVMTIは JVM によって公開されるインターフェースであり、JDI は JDWP 通信プロトコルを実装するクライアントであり、これを介してデバッガーは JVM でデバッグされたプログラムと通信します。

 JVMTI の重要な機能

\銃弾 クラスを再定義する

\銃弾 オブジェクトの割り当てとガベージ コレクションのプロセスを追跡する

\銃弾 オブジェクトの参照ツリーに従い、ヒープ内のすべてのオブジェクトをトラバースする

\銃弾 Java コール スタックを検出する

\銃弾 すべてのスレッドを中断 (および再開) する

アート・ユー

アート (Android ランタイム)。Android 8.0 以降では、ART Tool Interface (ART TI) がランタイムの内部アーキテクチャ情報を提供し、スプリッターとデバッガーがアプリのランタイム動作に影響を与えることを可能にします。これを使用して、最先端のパフォーマンス ツールを実現できます

おすすめ

転載: blog.csdn.net/qq_44950283/article/details/130145586