Я успешно создал Java-приложение, которое выгружает локальные и глобальные JNI-файлы в logcat, проблема в том, что это работает только для текущего запущенного процесса. Этот код был
Class cls = Class.forName("android.os.Debug");
Method method = cls.getDeclaredMethod("dumpReferenceTables");
Constructor con = cls.getDeclaredConstructor();
con.setAccessible(true);
method.invoke(con.newInstance());
Наше приложение на C #, есть ли способ вызвать это из Xamarin.Android или Forms?
Я также скомпилировал бинарный файл linux-gnueabi-g ++ из этого или аналогичного кода, но получаю ошибки времени выполнения с помощью env, GetEnv () и "неопределенной ссылки на` JNI_CreateJavaVM '".
jclass vm_class = env->FindClass("dalvik/system/VMDebug");
jmethodID dump_mid = env->GetStaticMethodID( vm_class, "dumpReferenceTables", "()V" );
env->CallStaticVoidMethod( vm_class, dump_mid )
У нас в основном есть рутированные устройства, поэтому использование c-бинарного является опцией, но я не уверен, является ли это правильным маршрутом вообще? Спасибо