In Java program, we can use following codes to get the system memory info: =============================================================== ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); MemoryInfo info = new MemoryInfo(); activityManager.*getMemoryInfo*(info); ===============================================================
But now, we need to get system memory info from Native C program. So, I have to implement following codes to new "MemoryInfo" object: =============================================================== jclass cls = env->FindClass("android/app/ActivityManager$MemoryInfo"); jmethodID ctor = env->GetMethodID(cls, "<init>", "()V"); jobject *objMemoryInfo* = env->NewObject(cls, ctor); =============================================================== Up to now, we have got the MemoryInfo's object "objMemoryInfo". Then I need to input "*objMemoryInfo*" to "*parcelMemoryInfo*", but don't how to convert from Parcelable to Parcel: =============================================================== int GET_MEMORY_INFO_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION+75; sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> am = sm->getService(String16("activity")); Parcel *parcelMemoryInfo* = *objMemoryInfo*; * //HERE: how to convert from Parcelable to Parcel * Parcel reply; status_t ret = am->transact(GET_MEMORY_INFO_TRANSACTION, * parcelMemoryInfo*, &reply); =============================================================== Thanks. -- unsubscribe: android-kernel+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-kernel