2017-02-03 21 views
0

我想從我的應用程序使用這種本機方法泄漏。我可以看到「返回的方法」。在我的日誌中,但我似乎沒有丟失任何內存。我正在使用(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) 

編輯:

我這樣做是因爲我想測試我的應用程序在內存不足的情況。

+0

好的,那應該足以導致泄漏。不知道你爲什麼這樣做,或者你的問題是什麼。 –

+0

我這樣做是因爲我想在低內存情況下測試我的應用程序。 –

+0

我不確定MemoryInfo.availMem是否考慮到本地使用情況,或者它是否只是Java堆使用情況。你可能想看看https://developer.android.com/reference/android/os/Debug.MemoryInfo.html作爲信息的替代來源 –

回答