私はAndroidのNDKがメモリを大量に割り当てるコードブロックを持っています。私が必要とする最後のものは、try-catchブロックを使用することです.NoMemoryErrorが存在する可能性があります。ネイティブSDKに書き込む方法を知っていますか?Android NDK - NoMemoryErrorでキャッチしよう
私はこれと同じ機能を実装する必要があります。
for(int i=1;i<50;i++){
try{
int[] mega =new int[i*1024*1024];//1MB
}catch (OutOfMemoryError e) {
usedMemory= (Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())/new Float(1048576.0);
usedText=usedMemory+" MB";
tw.setText(usedText);
break;
}
}
あなたのコメントには1MBと書いてありますが、実際にはそれぞれ4MBの反復が割り当てられます。このコードの問題は、Androidがクラッシュして、例外が発生する前に焼くことです。システムはメモリを解放するために他のアプリやサービスをシャットダウンしようとします。その過程でAndroidは非常に遅くなり、最終的に不正行為を開始します。そのようなシステムにストレスを与えるのではなく、単に空きメモリの量を問い合わせるだけです。 – BitBank
私はNDKを練習するためだけに必要です...そして、私はNDKでこの機能を再現する方法がないと思います、どう思いますか? btw、それは重要ではない、それは1 MBか4 MBかどうか、私は実行時から空きメモリをチェックする – Waypoint