さて、タイトルはそれを言います。
まだ使用可能なメモリの数を知ることも便利です。(ネイティブコードで)ランダムにクラッシュする傾向のあるメモリを大量に消費するアプリケーションを作成していますが、メモリが不足しているのではないかと疑っています。
さて、タイトルはそれを言います。
まだ使用可能なメモリの数を知ることも便利です。(ネイティブコードで)ランダムにクラッシュする傾向のあるメモリを大量に消費するアプリケーションを作成していますが、メモリが不足しているのではないかと疑っています。
Android でアプリケーションのメモリ使用量を調べる方法を教えてください。
hackbod の回答に同意します。私の理解では、あなたのアプリはクラッシュせず、むしろ強制終了されます。この議論は興味深いかもしれません。
カーネルがオーバーコミット メモリを使用する場合、メモリを割り当てた後に NULL をチェックする必要がありますか。
低メモリ状態(onLowMemory())を知るためのコールバックがあると思いますが、それを使用して低メモリ状態を特定できますが、試したことはありません。
通常、Android のアプリケーションは、メモリ不足が原因でクラッシュすることはありません。多くのメモリを使用している場合、他のほとんどすべてのアプリケーションが強制終了される可能性があります。メモリを使い続けると、システムがアプリを強制終了する可能性があります (クラッシュするのではなく、単に強制終了するだけです)。
ネイティブ コードを扱っている場合、より可能性の高い説明は、どこかでメモリを破損しているということです。
http://kohlerm.blogspot.com/2010/02/android-memory-usage-analysis-slides.htmlをチェックして、どの Java オブジェクトが最もメモリを使用しているかを確認してください
OutOfMemoryException をキャッチし、System.gc() を呼び出して手動のガベージ コレクションを実行し、失敗したコードを再試行することができます。JNI でネイティブ例外を使用して、メモリ不足が原因で C++ コードが失敗したことを検出したり、予測したりできる場合があります。