Loading core/jni/Android.bp +27 −0 Original line number Diff line number Diff line Loading @@ -296,6 +296,7 @@ cc_library_shared { header_libs: [ "bionic_libc_platform_headers", "dnsproxyd_protocol_headers", "libandroid_runtime_vm_headers", ], }, host: { Loading Loading @@ -337,3 +338,29 @@ cc_library_shared { never: true, }, } cc_library_headers { name: "libandroid_runtime_vm_headers", host_supported: true, vendor_available: true, // TODO(b/153609531): remove when libbinder is not native_bridge_supported native_bridge_supported: true, // Allow only modules from the following list to create threads that can be // attached to the JVM. This list should be a subset of the dependencies of // libandroid_runtime. visibility: [ "//frameworks/native/libs/binder", ], export_include_dirs: ["include_vm"], header_libs: [ "jni_headers", ], export_header_lib_headers: [ "jni_headers", ], apex_available: [ "//apex_available:platform", "com.android.media", "com.android.media.swcodec", ], } core/jni/AndroidRuntime.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <android-base/properties.h> #include <android/graphics/jni_runtime.h> #include <android_runtime/AndroidRuntime.h> #include <android_runtime/vm.h> #include <assert.h> #include <binder/IBinder.h> #include <binder/IPCThreadState.h> Loading Loading @@ -1322,6 +1323,10 @@ void AndroidRuntime::onVmCreated(JNIEnv* env) return AndroidRuntime::mJavaVM; } extern "C" JavaVM* AndroidRuntimeGetJavaVM() { return AndroidRuntime::getJavaVM(); } /* * Get the JNIEnv pointer for this thread. * Loading core/jni/include_vm/android_runtime/vm.h 0 → 100644 +24 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include <jni.h> // Get the Java VM. If the symbol doesn't exist at runtime, it means libandroid_runtime // is not loaded in the current process. If the symbol exists but it returns nullptr, it // means JavaVM is not yet started. extern "C" JavaVM* AndroidRuntimeGetJavaVM(); Loading
core/jni/Android.bp +27 −0 Original line number Diff line number Diff line Loading @@ -296,6 +296,7 @@ cc_library_shared { header_libs: [ "bionic_libc_platform_headers", "dnsproxyd_protocol_headers", "libandroid_runtime_vm_headers", ], }, host: { Loading Loading @@ -337,3 +338,29 @@ cc_library_shared { never: true, }, } cc_library_headers { name: "libandroid_runtime_vm_headers", host_supported: true, vendor_available: true, // TODO(b/153609531): remove when libbinder is not native_bridge_supported native_bridge_supported: true, // Allow only modules from the following list to create threads that can be // attached to the JVM. This list should be a subset of the dependencies of // libandroid_runtime. visibility: [ "//frameworks/native/libs/binder", ], export_include_dirs: ["include_vm"], header_libs: [ "jni_headers", ], export_header_lib_headers: [ "jni_headers", ], apex_available: [ "//apex_available:platform", "com.android.media", "com.android.media.swcodec", ], }
core/jni/AndroidRuntime.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <android-base/properties.h> #include <android/graphics/jni_runtime.h> #include <android_runtime/AndroidRuntime.h> #include <android_runtime/vm.h> #include <assert.h> #include <binder/IBinder.h> #include <binder/IPCThreadState.h> Loading Loading @@ -1322,6 +1323,10 @@ void AndroidRuntime::onVmCreated(JNIEnv* env) return AndroidRuntime::mJavaVM; } extern "C" JavaVM* AndroidRuntimeGetJavaVM() { return AndroidRuntime::getJavaVM(); } /* * Get the JNIEnv pointer for this thread. * Loading
core/jni/include_vm/android_runtime/vm.h 0 → 100644 +24 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include <jni.h> // Get the Java VM. If the symbol doesn't exist at runtime, it means libandroid_runtime // is not loaded in the current process. If the symbol exists but it returns nullptr, it // means JavaVM is not yet started. extern "C" JavaVM* AndroidRuntimeGetJavaVM();