Loading api/current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -17067,21 +17067,26 @@ package android.os { method public static java.lang.String getOtherLabel(int); method public int getOtherPrivateDirty(int); method public int getOtherPss(int); method public int getOtherSharedClean(int); method public int getOtherSharedDirty(int); method public int getTotalPrivateDirty(); method public int getTotalPss(); method public int getTotalSharedClean(); method public int getTotalSharedDirty(); method public void readFromParcel(android.os.Parcel); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; field public int dalvikPrivateDirty; field public int dalvikPss; field public int dalvikSharedClean; field public int dalvikSharedDirty; field public int nativePrivateDirty; field public int nativePss; field public int nativeSharedClean; field public int nativeSharedDirty; field public int otherPrivateDirty; field public int otherPss; field public int otherSharedClean; field public int otherSharedDirty; } core/java/android/app/ActivityThread.java +22 −12 Original line number Diff line number Diff line Loading @@ -970,13 +970,20 @@ public final class ActivityThread { pw.print(memInfo.otherPss); pw.print(','); pw.print(memInfo.nativePss + memInfo.dalvikPss + memInfo.otherPss); pw.print(','); // Heap info - shared // Heap info - shared dirty pw.print(memInfo.nativeSharedDirty); pw.print(','); pw.print(memInfo.dalvikSharedDirty); pw.print(','); pw.print(memInfo.otherSharedDirty); pw.print(','); pw.print(memInfo.nativeSharedDirty + memInfo.dalvikSharedDirty + memInfo.otherSharedDirty); pw.print(','); // Heap info - shared clean pw.print(memInfo.nativeSharedClean); pw.print(','); pw.print(memInfo.dalvikSharedClean); pw.print(','); pw.print(memInfo.otherSharedClean); pw.print(','); pw.print(memInfo.nativeSharedClean + memInfo.dalvikSharedClean + memInfo.otherSharedClean); pw.print(','); // Heap info - private pw.print(memInfo.nativePrivateDirty); pw.print(','); pw.print(memInfo.dalvikPrivateDirty); pw.print(','); Loading @@ -984,6 +991,7 @@ public final class ActivityThread { pw.print(memInfo.nativePrivateDirty + memInfo.dalvikPrivateDirty + memInfo.otherPrivateDirty); pw.print(','); // Object counts pw.print(viewInstanceCount); pw.print(','); pw.print(viewRootInstanceCount); pw.print(','); Loading Loading @@ -1018,34 +1026,36 @@ public final class ActivityThread { } // otherwise, show human-readable format printRow(pw, HEAP_COLUMN, "", "", "Shared", "Private", "Heap", "Heap", "Heap"); printRow(pw, HEAP_COLUMN, "", "Pss", "Dirty", "Dirty", "Size", "Alloc", "Free"); printRow(pw, HEAP_COLUMN, "", "------", "------", "------", "------", "------", printRow(pw, HEAP_COLUMN, "", "", "Shared", "Private", "Shared", "Heap", "Heap", "Heap"); printRow(pw, HEAP_COLUMN, "", "Pss", "Dirty", "Dirty", "Clean", "Size", "Alloc", "Free"); printRow(pw, HEAP_COLUMN, "", "------", "------", "------", "------", "------", "------", "------"); printRow(pw, HEAP_COLUMN, "Native", memInfo.nativePss, memInfo.nativeSharedDirty, memInfo.nativePrivateDirty, nativeMax, nativeAllocated, nativeFree); memInfo.nativePrivateDirty, memInfo.nativeSharedClean, nativeMax, nativeAllocated, nativeFree); printRow(pw, HEAP_COLUMN, "Dalvik", memInfo.dalvikPss, memInfo.dalvikSharedDirty, memInfo.dalvikPrivateDirty, dalvikMax, dalvikAllocated, dalvikFree); memInfo.dalvikPrivateDirty, memInfo.dalvikSharedClean, dalvikMax, dalvikAllocated, dalvikFree); int otherPss = memInfo.otherPss; int otherSharedDirty = memInfo.otherSharedDirty; int otherPrivateDirty = memInfo.otherPrivateDirty; int otherSharedClean = memInfo.otherSharedClean; for (int i=0; i<Debug.MemoryInfo.NUM_OTHER_STATS; i++) { printRow(pw, HEAP_COLUMN, Debug.MemoryInfo.getOtherLabel(i), memInfo.getOtherPss(i), memInfo.getOtherSharedDirty(i), memInfo.getOtherPrivateDirty(i), "", "", ""); memInfo.getOtherPrivateDirty(i), memInfo.getOtherSharedClean(i), "", "", ""); otherPss -= memInfo.getOtherPss(i); otherSharedDirty -= memInfo.getOtherSharedDirty(i); otherPrivateDirty -= memInfo.getOtherPrivateDirty(i); otherSharedClean -= memInfo.getOtherSharedClean(i); } printRow(pw, HEAP_COLUMN, "Unknown", otherPss, otherSharedDirty, otherPrivateDirty, "", "", ""); otherPrivateDirty, otherSharedClean, "", "", ""); printRow(pw, HEAP_COLUMN, "TOTAL", memInfo.getTotalPss(), memInfo.getTotalSharedDirty(), memInfo.getTotalPrivateDirty(), nativeMax+dalvikMax, nativeAllocated+dalvikAllocated, nativeFree+dalvikFree); memInfo.getTotalSharedClean(), nativeMax+dalvikMax, nativeAllocated+dalvikAllocated, nativeFree+dalvikFree); pw.println(" "); pw.println(" Objects"); Loading core/java/android/os/Debug.java +34 −8 Original line number Diff line number Diff line Loading @@ -114,6 +114,8 @@ public final class Debug public int dalvikPrivateDirty; /** The shared dirty pages used by dalvik. */ public int dalvikSharedDirty; /** The shared clean pages used by dalvik. */ public int dalvikSharedClean; /** The proportional set size for the native heap. */ public int nativePss; Loading @@ -121,6 +123,8 @@ public final class Debug public int nativePrivateDirty; /** The shared dirty pages used by the native heap. */ public int nativeSharedDirty; /** The shared clean pages used by the native heap. */ public int nativeSharedClean; /** The proportional set size for everything else. */ public int otherPss; Loading @@ -128,11 +132,16 @@ public final class Debug public int otherPrivateDirty; /** The shared dirty pages used by everything else. */ public int otherSharedDirty; /** The shared clean pages used by everything else. */ public int otherSharedClean; /** @hide */ public static final int NUM_OTHER_STATS = 12; private int[] otherStats = new int[NUM_OTHER_STATS*3]; /** @hide */ public static final int NUM_CATEGORIES = 4; private int[] otherStats = new int[NUM_OTHER_STATS*NUM_CATEGORIES]; public MemoryInfo() { } Loading @@ -158,21 +167,32 @@ public final class Debug return dalvikSharedDirty + nativeSharedDirty + otherSharedDirty; } /** * Return total shared clean memory usage in kB. */ public int getTotalSharedClean() { return dalvikSharedClean + nativeSharedClean + otherSharedClean; } /* @hide */ public int getOtherPss(int which) { return otherStats[which*3]; return otherStats[which*NUM_CATEGORIES]; } /* @hide */ public int getOtherPrivateDirty(int which) { return otherStats[which*3 + 1]; return otherStats[which*NUM_CATEGORIES + 1]; } /* @hide */ public int getOtherSharedDirty(int which) { return otherStats[which*3 + 2]; return otherStats[which*NUM_CATEGORIES + 2]; } /* @hide */ public int getOtherSharedClean(int which) { return otherStats[which*NUM_CATEGORIES + 3]; } /* @hide */ public static String getOtherLabel(int which) { Loading @@ -186,8 +206,8 @@ public final class Debug case 6: return ".apk mmap"; case 7: return ".ttf mmap"; case 8: return ".dex mmap"; case 9: return ".oat mmap"; case 10: return ".art mmap"; case 9: return "code mmap"; case 10: return "image mmap"; case 11: return "Other mmap"; default: return "????"; } Loading @@ -201,12 +221,15 @@ public final class Debug dest.writeInt(dalvikPss); dest.writeInt(dalvikPrivateDirty); dest.writeInt(dalvikSharedDirty); dest.writeInt(dalvikSharedClean); dest.writeInt(nativePss); dest.writeInt(nativePrivateDirty); dest.writeInt(nativeSharedDirty); dest.writeInt(nativeSharedClean); dest.writeInt(otherPss); dest.writeInt(otherPrivateDirty); dest.writeInt(otherSharedDirty); dest.writeInt(otherSharedClean); dest.writeIntArray(otherStats); } Loading @@ -214,12 +237,15 @@ public final class Debug dalvikPss = source.readInt(); dalvikPrivateDirty = source.readInt(); dalvikSharedDirty = source.readInt(); dalvikSharedClean = source.readInt(); nativePss = source.readInt(); nativePrivateDirty = source.readInt(); nativeSharedDirty = source.readInt(); nativeSharedClean = source.readInt(); otherPss = source.readInt(); otherPrivateDirty = source.readInt(); otherSharedDirty = source.readInt(); otherSharedClean = source.readInt(); otherStats = source.createIntArray(); } Loading core/jni/android_os_Debug.cpp +12 −3 Original line number Diff line number Diff line Loading @@ -64,20 +64,22 @@ struct stat_fields { jfieldID pss_field; jfieldID privateDirty_field; jfieldID sharedDirty_field; jfieldID sharedClean_field; }; struct stat_field_names { const char* pss_name; const char* privateDirty_name; const char* sharedDirty_name; const char* sharedClean_name; }; static stat_fields stat_fields[_NUM_CORE_HEAP]; static stat_field_names stat_field_names[_NUM_CORE_HEAP] = { { "otherPss", "otherPrivateDirty", "otherSharedDirty" }, { "dalvikPss", "dalvikPrivateDirty", "dalvikSharedDirty" }, { "nativePss", "nativePrivateDirty", "nativeSharedDirty" } { "otherPss", "otherPrivateDirty", "otherSharedDirty", "otherSharedClean" }, { "dalvikPss", "dalvikPrivateDirty", "dalvikSharedDirty", "dalvikSharedClean" }, { "nativePss", "nativePrivateDirty", "nativeSharedDirty", "nativeSharedClean" } }; jfieldID otherStats_field; Loading @@ -86,6 +88,7 @@ struct stats_t { int pss; int privateDirty; int sharedDirty; int sharedClean; }; #define BINDER_STATS "/proc/binder/stats" Loading Loading @@ -234,6 +237,7 @@ static void read_mapinfo(FILE *fp, stats_t* stats) stats[whichHeap].pss += pss; stats[whichHeap].privateDirty += private_dirty; stats[whichHeap].sharedDirty += shared_dirty; stats[whichHeap].sharedClean += shared_clean; } } } Loading Loading @@ -263,12 +267,14 @@ static void android_os_Debug_getDirtyPagesPid(JNIEnv *env, jobject clazz, stats[HEAP_UNKNOWN].pss += stats[i].pss; stats[HEAP_UNKNOWN].privateDirty += stats[i].privateDirty; stats[HEAP_UNKNOWN].sharedDirty += stats[i].sharedDirty; stats[HEAP_UNKNOWN].sharedClean += stats[i].sharedClean; } for (int i=0; i<_NUM_CORE_HEAP; i++) { env->SetIntField(object, stat_fields[i].pss_field, stats[i].pss); env->SetIntField(object, stat_fields[i].privateDirty_field, stats[i].privateDirty); env->SetIntField(object, stat_fields[i].sharedDirty_field, stats[i].sharedDirty); env->SetIntField(object, stat_fields[i].sharedClean_field, stats[i].sharedClean); } jintArray otherIntArray = (jintArray)env->GetObjectField(object, otherStats_field); Loading @@ -283,6 +289,7 @@ static void android_os_Debug_getDirtyPagesPid(JNIEnv *env, jobject clazz, otherArray[j++] = stats[i].pss; otherArray[j++] = stats[i].privateDirty; otherArray[j++] = stats[i].sharedDirty; otherArray[j++] = stats[i].sharedClean; } env->ReleasePrimitiveArrayCritical(otherIntArray, otherArray, 0); Loading Loading @@ -640,6 +647,8 @@ int register_android_os_Debug(JNIEnv *env) env->GetFieldID(clazz, stat_field_names[i].privateDirty_name, "I"); stat_fields[i].sharedDirty_field = env->GetFieldID(clazz, stat_field_names[i].sharedDirty_name, "I"); stat_fields[i].sharedClean_field = env->GetFieldID(clazz, stat_field_names[i].sharedClean_name, "I"); } return jniRegisterNativeMethods(env, "android/os/Debug", gMethods, NELEM(gMethods)); Loading Loading
api/current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -17067,21 +17067,26 @@ package android.os { method public static java.lang.String getOtherLabel(int); method public int getOtherPrivateDirty(int); method public int getOtherPss(int); method public int getOtherSharedClean(int); method public int getOtherSharedDirty(int); method public int getTotalPrivateDirty(); method public int getTotalPss(); method public int getTotalSharedClean(); method public int getTotalSharedDirty(); method public void readFromParcel(android.os.Parcel); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; field public int dalvikPrivateDirty; field public int dalvikPss; field public int dalvikSharedClean; field public int dalvikSharedDirty; field public int nativePrivateDirty; field public int nativePss; field public int nativeSharedClean; field public int nativeSharedDirty; field public int otherPrivateDirty; field public int otherPss; field public int otherSharedClean; field public int otherSharedDirty; }
core/java/android/app/ActivityThread.java +22 −12 Original line number Diff line number Diff line Loading @@ -970,13 +970,20 @@ public final class ActivityThread { pw.print(memInfo.otherPss); pw.print(','); pw.print(memInfo.nativePss + memInfo.dalvikPss + memInfo.otherPss); pw.print(','); // Heap info - shared // Heap info - shared dirty pw.print(memInfo.nativeSharedDirty); pw.print(','); pw.print(memInfo.dalvikSharedDirty); pw.print(','); pw.print(memInfo.otherSharedDirty); pw.print(','); pw.print(memInfo.nativeSharedDirty + memInfo.dalvikSharedDirty + memInfo.otherSharedDirty); pw.print(','); // Heap info - shared clean pw.print(memInfo.nativeSharedClean); pw.print(','); pw.print(memInfo.dalvikSharedClean); pw.print(','); pw.print(memInfo.otherSharedClean); pw.print(','); pw.print(memInfo.nativeSharedClean + memInfo.dalvikSharedClean + memInfo.otherSharedClean); pw.print(','); // Heap info - private pw.print(memInfo.nativePrivateDirty); pw.print(','); pw.print(memInfo.dalvikPrivateDirty); pw.print(','); Loading @@ -984,6 +991,7 @@ public final class ActivityThread { pw.print(memInfo.nativePrivateDirty + memInfo.dalvikPrivateDirty + memInfo.otherPrivateDirty); pw.print(','); // Object counts pw.print(viewInstanceCount); pw.print(','); pw.print(viewRootInstanceCount); pw.print(','); Loading Loading @@ -1018,34 +1026,36 @@ public final class ActivityThread { } // otherwise, show human-readable format printRow(pw, HEAP_COLUMN, "", "", "Shared", "Private", "Heap", "Heap", "Heap"); printRow(pw, HEAP_COLUMN, "", "Pss", "Dirty", "Dirty", "Size", "Alloc", "Free"); printRow(pw, HEAP_COLUMN, "", "------", "------", "------", "------", "------", printRow(pw, HEAP_COLUMN, "", "", "Shared", "Private", "Shared", "Heap", "Heap", "Heap"); printRow(pw, HEAP_COLUMN, "", "Pss", "Dirty", "Dirty", "Clean", "Size", "Alloc", "Free"); printRow(pw, HEAP_COLUMN, "", "------", "------", "------", "------", "------", "------", "------"); printRow(pw, HEAP_COLUMN, "Native", memInfo.nativePss, memInfo.nativeSharedDirty, memInfo.nativePrivateDirty, nativeMax, nativeAllocated, nativeFree); memInfo.nativePrivateDirty, memInfo.nativeSharedClean, nativeMax, nativeAllocated, nativeFree); printRow(pw, HEAP_COLUMN, "Dalvik", memInfo.dalvikPss, memInfo.dalvikSharedDirty, memInfo.dalvikPrivateDirty, dalvikMax, dalvikAllocated, dalvikFree); memInfo.dalvikPrivateDirty, memInfo.dalvikSharedClean, dalvikMax, dalvikAllocated, dalvikFree); int otherPss = memInfo.otherPss; int otherSharedDirty = memInfo.otherSharedDirty; int otherPrivateDirty = memInfo.otherPrivateDirty; int otherSharedClean = memInfo.otherSharedClean; for (int i=0; i<Debug.MemoryInfo.NUM_OTHER_STATS; i++) { printRow(pw, HEAP_COLUMN, Debug.MemoryInfo.getOtherLabel(i), memInfo.getOtherPss(i), memInfo.getOtherSharedDirty(i), memInfo.getOtherPrivateDirty(i), "", "", ""); memInfo.getOtherPrivateDirty(i), memInfo.getOtherSharedClean(i), "", "", ""); otherPss -= memInfo.getOtherPss(i); otherSharedDirty -= memInfo.getOtherSharedDirty(i); otherPrivateDirty -= memInfo.getOtherPrivateDirty(i); otherSharedClean -= memInfo.getOtherSharedClean(i); } printRow(pw, HEAP_COLUMN, "Unknown", otherPss, otherSharedDirty, otherPrivateDirty, "", "", ""); otherPrivateDirty, otherSharedClean, "", "", ""); printRow(pw, HEAP_COLUMN, "TOTAL", memInfo.getTotalPss(), memInfo.getTotalSharedDirty(), memInfo.getTotalPrivateDirty(), nativeMax+dalvikMax, nativeAllocated+dalvikAllocated, nativeFree+dalvikFree); memInfo.getTotalSharedClean(), nativeMax+dalvikMax, nativeAllocated+dalvikAllocated, nativeFree+dalvikFree); pw.println(" "); pw.println(" Objects"); Loading
core/java/android/os/Debug.java +34 −8 Original line number Diff line number Diff line Loading @@ -114,6 +114,8 @@ public final class Debug public int dalvikPrivateDirty; /** The shared dirty pages used by dalvik. */ public int dalvikSharedDirty; /** The shared clean pages used by dalvik. */ public int dalvikSharedClean; /** The proportional set size for the native heap. */ public int nativePss; Loading @@ -121,6 +123,8 @@ public final class Debug public int nativePrivateDirty; /** The shared dirty pages used by the native heap. */ public int nativeSharedDirty; /** The shared clean pages used by the native heap. */ public int nativeSharedClean; /** The proportional set size for everything else. */ public int otherPss; Loading @@ -128,11 +132,16 @@ public final class Debug public int otherPrivateDirty; /** The shared dirty pages used by everything else. */ public int otherSharedDirty; /** The shared clean pages used by everything else. */ public int otherSharedClean; /** @hide */ public static final int NUM_OTHER_STATS = 12; private int[] otherStats = new int[NUM_OTHER_STATS*3]; /** @hide */ public static final int NUM_CATEGORIES = 4; private int[] otherStats = new int[NUM_OTHER_STATS*NUM_CATEGORIES]; public MemoryInfo() { } Loading @@ -158,21 +167,32 @@ public final class Debug return dalvikSharedDirty + nativeSharedDirty + otherSharedDirty; } /** * Return total shared clean memory usage in kB. */ public int getTotalSharedClean() { return dalvikSharedClean + nativeSharedClean + otherSharedClean; } /* @hide */ public int getOtherPss(int which) { return otherStats[which*3]; return otherStats[which*NUM_CATEGORIES]; } /* @hide */ public int getOtherPrivateDirty(int which) { return otherStats[which*3 + 1]; return otherStats[which*NUM_CATEGORIES + 1]; } /* @hide */ public int getOtherSharedDirty(int which) { return otherStats[which*3 + 2]; return otherStats[which*NUM_CATEGORIES + 2]; } /* @hide */ public int getOtherSharedClean(int which) { return otherStats[which*NUM_CATEGORIES + 3]; } /* @hide */ public static String getOtherLabel(int which) { Loading @@ -186,8 +206,8 @@ public final class Debug case 6: return ".apk mmap"; case 7: return ".ttf mmap"; case 8: return ".dex mmap"; case 9: return ".oat mmap"; case 10: return ".art mmap"; case 9: return "code mmap"; case 10: return "image mmap"; case 11: return "Other mmap"; default: return "????"; } Loading @@ -201,12 +221,15 @@ public final class Debug dest.writeInt(dalvikPss); dest.writeInt(dalvikPrivateDirty); dest.writeInt(dalvikSharedDirty); dest.writeInt(dalvikSharedClean); dest.writeInt(nativePss); dest.writeInt(nativePrivateDirty); dest.writeInt(nativeSharedDirty); dest.writeInt(nativeSharedClean); dest.writeInt(otherPss); dest.writeInt(otherPrivateDirty); dest.writeInt(otherSharedDirty); dest.writeInt(otherSharedClean); dest.writeIntArray(otherStats); } Loading @@ -214,12 +237,15 @@ public final class Debug dalvikPss = source.readInt(); dalvikPrivateDirty = source.readInt(); dalvikSharedDirty = source.readInt(); dalvikSharedClean = source.readInt(); nativePss = source.readInt(); nativePrivateDirty = source.readInt(); nativeSharedDirty = source.readInt(); nativeSharedClean = source.readInt(); otherPss = source.readInt(); otherPrivateDirty = source.readInt(); otherSharedDirty = source.readInt(); otherSharedClean = source.readInt(); otherStats = source.createIntArray(); } Loading
core/jni/android_os_Debug.cpp +12 −3 Original line number Diff line number Diff line Loading @@ -64,20 +64,22 @@ struct stat_fields { jfieldID pss_field; jfieldID privateDirty_field; jfieldID sharedDirty_field; jfieldID sharedClean_field; }; struct stat_field_names { const char* pss_name; const char* privateDirty_name; const char* sharedDirty_name; const char* sharedClean_name; }; static stat_fields stat_fields[_NUM_CORE_HEAP]; static stat_field_names stat_field_names[_NUM_CORE_HEAP] = { { "otherPss", "otherPrivateDirty", "otherSharedDirty" }, { "dalvikPss", "dalvikPrivateDirty", "dalvikSharedDirty" }, { "nativePss", "nativePrivateDirty", "nativeSharedDirty" } { "otherPss", "otherPrivateDirty", "otherSharedDirty", "otherSharedClean" }, { "dalvikPss", "dalvikPrivateDirty", "dalvikSharedDirty", "dalvikSharedClean" }, { "nativePss", "nativePrivateDirty", "nativeSharedDirty", "nativeSharedClean" } }; jfieldID otherStats_field; Loading @@ -86,6 +88,7 @@ struct stats_t { int pss; int privateDirty; int sharedDirty; int sharedClean; }; #define BINDER_STATS "/proc/binder/stats" Loading Loading @@ -234,6 +237,7 @@ static void read_mapinfo(FILE *fp, stats_t* stats) stats[whichHeap].pss += pss; stats[whichHeap].privateDirty += private_dirty; stats[whichHeap].sharedDirty += shared_dirty; stats[whichHeap].sharedClean += shared_clean; } } } Loading Loading @@ -263,12 +267,14 @@ static void android_os_Debug_getDirtyPagesPid(JNIEnv *env, jobject clazz, stats[HEAP_UNKNOWN].pss += stats[i].pss; stats[HEAP_UNKNOWN].privateDirty += stats[i].privateDirty; stats[HEAP_UNKNOWN].sharedDirty += stats[i].sharedDirty; stats[HEAP_UNKNOWN].sharedClean += stats[i].sharedClean; } for (int i=0; i<_NUM_CORE_HEAP; i++) { env->SetIntField(object, stat_fields[i].pss_field, stats[i].pss); env->SetIntField(object, stat_fields[i].privateDirty_field, stats[i].privateDirty); env->SetIntField(object, stat_fields[i].sharedDirty_field, stats[i].sharedDirty); env->SetIntField(object, stat_fields[i].sharedClean_field, stats[i].sharedClean); } jintArray otherIntArray = (jintArray)env->GetObjectField(object, otherStats_field); Loading @@ -283,6 +289,7 @@ static void android_os_Debug_getDirtyPagesPid(JNIEnv *env, jobject clazz, otherArray[j++] = stats[i].pss; otherArray[j++] = stats[i].privateDirty; otherArray[j++] = stats[i].sharedDirty; otherArray[j++] = stats[i].sharedClean; } env->ReleasePrimitiveArrayCritical(otherIntArray, otherArray, 0); Loading Loading @@ -640,6 +647,8 @@ int register_android_os_Debug(JNIEnv *env) env->GetFieldID(clazz, stat_field_names[i].privateDirty_name, "I"); stat_fields[i].sharedDirty_field = env->GetFieldID(clazz, stat_field_names[i].sharedDirty_name, "I"); stat_fields[i].sharedClean_field = env->GetFieldID(clazz, stat_field_names[i].sharedClean_name, "I"); } return jniRegisterNativeMethods(env, "android/os/Debug", gMethods, NELEM(gMethods)); Loading