Я пытаюсь вызвать утечку с помощью этого родного метода из своего приложения. Я вижу, что «Метод вернулся». в моих журналах, но я, похоже, не теряю 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.");
}
И пытаясь вызвать утечку 10MB с помощью этого метода:
Wrapper.causeLeak(10 * 1024 * 1024)
EDIT:
Я делаю это, потому что я хочу, чтобы проверить мое приложение в ситуации с малым количеством памяти.
Хорошо, этого должно быть достаточно, чтобы вызвать утечку. Не знаете, почему вы это делаете или что ваш вопрос. –
Я делаю это, потому что хочу проверить свое приложение в ситуации с низкой памятью. –
Я не уверен, что MemoryInfo.availMem учитывает собственное использование или просто использует кучу Java-кучи. Вы можете посмотреть https://developer.android.com/reference/android/os/Debug.MemoryInfo.html в качестве альтернативного источника информации –