0
私のアプリケーションからこのネイティブメソッドを使用してリークを引き起こそうとしています。私は "Method returned"を見ることができます。私のログでは、私はRAMを失うことはありません。私は使用を追跡するために(MemoryInfo.availMem/1048576L)を使用しています。ネイティブリークを起こそうとしています
JNIEXPORT jstring JNICALL Java_com_app_native_Wrapper_causeLeak(JNIEnv *je, jclass jc, jint bytes) {
char *p_array = calloc(bytes,sizeof(char));
return (*je)->NewStringUTF(je, "Method returned.");
}
そして、この方法で10メガバイトのリークが発生しようとしている:
Wrapper.causeLeak(10 * 1024 * 1024)
編集:私はメモリ不足の状況で私のアプリをテストするため
が、私はこれをやっています。
OK、リークを引き起こすのに十分です。なぜこれをやっているのか、あなたの質問が何であるかはわかりません。 –
私は低メモリ状況で私のアプリをテストしたいので、これをやっています。 –
MemoryInfo.availMemがネイティブでの使用を考慮しているのか、まさにJavaのヒープ使用であるのか分かりません。情報の代替ソースとしてhttps://developer.android.com/reference/android/os/Debug.MemoryInfo.htmlをご覧ください。 –