C++ で記述されたゲームを NDK を使用して Android に移植しています。実行中に消費するメモリ量を知る必要があります。C++ で記述された Android アプリケーションのメモリ使用量をプログラムで調べる方法を探しています。
5210 次
3 に答える
7
JonnyBoy の回答に基づく 2 つの関数。
static long getNativeHeapAllocatedSize(JNIEnv *env)
{
jclass clazz = (*env)->FindClass(env, "android/os/Debug");
if (clazz)
{
jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapAllocatedSize", "()J");
if (mid)
{
return (*env)->CallStaticLongMethod(env, clazz, mid);
}
}
return -1L;
}
static long getNativeHeapSize(JNIEnv *env)
{
jclass clazz = (*env)->FindClass(env, "android/os/Debug");
if (clazz)
{
jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapSize", "()J");
if (mid)
{
return (*env)->CallStaticLongMethod(env, clazz, mid);
}
}
return -1L;
}
于 2013-11-19T02:36:46.357 に答える
5
Java では、次の方法で割り当てられた/使用されたネイティブ メモリを確認できます。
Debug.getNativeHeapAllocatedSize()
Debug.getNativeHeapSize()
見る:
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapAllocatedSize%28%29
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapSize%28%29
于 2013-06-14T21:39:58.377 に答える