diff options
-rw-r--r-- | cmds/app_process/Android.mk | 4 | ||||
-rw-r--r-- | core/jni/Android.mk | 24 | ||||
-rw-r--r-- | core/jni/AndroidRuntime.cpp | 28 | ||||
-rw-r--r-- | core/jni/AndroidRuntimeBase.cpp | 56 | ||||
-rw-r--r-- | include/android_runtime/AndroidRuntime.h | 19 | ||||
-rw-r--r-- | include/android_runtime/AndroidRuntimeBase.h | 50 | ||||
-rw-r--r-- | media/jni/Android.mk | 1 | ||||
-rw-r--r-- | media/jni/mediaeditor/Android.mk | 1 | ||||
-rw-r--r-- | native/android/Android.mk | 3 | ||||
-rw-r--r-- | native/graphics/jni/Android.mk | 1 | ||||
-rw-r--r-- | rs/jni/Android.mk | 1 | ||||
-rw-r--r-- | services/core/jni/Android.mk | 1 |
12 files changed, 139 insertions, 50 deletions
diff --git a/cmds/app_process/Android.mk b/cmds/app_process/Android.mk index b9afe40..4eef129 100644 --- a/cmds/app_process/Android.mk +++ b/cmds/app_process/Android.mk @@ -9,7 +9,7 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ liblog \ libbinder \ - libandroid_runtime + libandroid_runtime_derived LOCAL_MODULE:= app_process @@ -30,7 +30,7 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ liblog \ libbinder \ - libandroid_runtime + libandroid_runtime_derived LOCAL_MODULE := app_process__asan LOCAL_MODULE_TAGS := eng diff --git a/core/jni/Android.mk b/core/jni/Android.mk index f8d96e3..cc1081a 100644 --- a/core/jni/Android.mk +++ b/core/jni/Android.mk @@ -1,6 +1,25 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_SRC_FILES:= \ + AndroidRuntimeBase.cpp \ + android_os_Parcel.cpp \ + android_util_Binder.cpp + +LOCAL_SHARED_LIBRARIES:= \ + libbinder \ + libcutils \ + libnativehelper \ + libutils \ + +LOCAL_MODULE := libandroid_runtime + +include $(BUILD_SHARED_LIBRARY) + +################################################################################ + +include $(CLEAR_VARS) + LOCAL_CFLAGS += -DHAVE_CONFIG_H -DKHTML_NO_EXCEPTIONS -DGKWQ_NO_JAVA LOCAL_CFLAGS += -DNO_SUPPORT_JS_BINDING -DQT_NO_WHEELEVENT -DKHTML_NO_XBL LOCAL_CFLAGS += -U__APPLE__ @@ -66,7 +85,6 @@ LOCAL_SRC_FILES:= \ android_os_Debug.cpp \ android_os_MemoryFile.cpp \ android_os_MessageQueue.cpp \ - android_os_Parcel.cpp \ android_os_SELinux.cpp \ android_os_SystemClock.cpp \ android_os_SystemProperties.cpp \ @@ -78,7 +96,6 @@ LOCAL_SRC_FILES:= \ android_nio_utils.cpp \ android_text_format_Time.cpp \ android_util_AssetManager.cpp \ - android_util_Binder.cpp \ android_util_EventLog.cpp \ android_util_Log.cpp \ android_util_FloatMath.cpp \ @@ -182,6 +199,7 @@ LOCAL_C_INCLUDES += \ LOCAL_SHARED_LIBRARIES := \ libmemtrack \ + libandroid_runtime \ libandroidfw \ libexpat \ libnativehelper \ @@ -241,7 +259,7 @@ ifeq ($(WITH_MALLOC_LEAK_CHECK),true) LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK endif -LOCAL_MODULE:= libandroid_runtime +LOCAL_MODULE:= libandroid_runtime_derived include external/stlport/libstlport.mk include $(BUILD_SHARED_LIBRARY) diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 7ed6641..77be9ec 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -226,9 +226,6 @@ int register_com_android_internal_os_RuntimeInit(JNIEnv* env) // ---------------------------------------------------------------------- -/*static*/ JavaVM* AndroidRuntime::mJavaVM = NULL; - - AndroidRuntime::AndroidRuntime() : mExitWithoutCleanup(false) { @@ -256,15 +253,6 @@ AndroidRuntime::~AndroidRuntime() SkGraphics::Term(); } -/* - * Register native methods using JNI. - */ -/*static*/ int AndroidRuntime::registerNativeMethods(JNIEnv* env, - const char* className, const JNINativeMethod* gMethods, int numMethods) -{ - return jniRegisterNativeMethods(env, className, gMethods, numMethods); -} - status_t AndroidRuntime::callMain(const char* className, jclass clazz, int argc, const char* const argv[]) { @@ -927,22 +915,6 @@ void AndroidRuntime::onVmCreated(JNIEnv* env) } /* - * Get the JNIEnv pointer for this thread. - * - * Returns NULL if the slot wasn't allocated or populated. - */ -/*static*/ JNIEnv* AndroidRuntime::getJNIEnv() -{ - JNIEnv* env; - JavaVM* vm = AndroidRuntime::getJavaVM(); - assert(vm != NULL); - - if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) - return NULL; - return env; -} - -/* * Makes the current thread visible to the VM. * * The JNIEnv pointer returned is only valid for the current thread, and diff --git a/core/jni/AndroidRuntimeBase.cpp b/core/jni/AndroidRuntimeBase.cpp new file mode 100644 index 0000000..38afc49 --- /dev/null +++ b/core/jni/AndroidRuntimeBase.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2014 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. + */ + +#define LOG_TAG "AndroidRuntimeBase" +//#define LOG_NDEBUG 0 +#include <utils/Log.h> + +#include <android_runtime/AndroidRuntime.h> + +#include "jni.h" +#include "JNIHelp.h" + +namespace android { + +/*static*/ JavaVM* AndroidRuntimeBase::mJavaVM = NULL; + +/* + * Get the JNIEnv pointer for this thread. + * + * Returns NULL if the slot wasn't allocated or populated. + */ +/*static*/ JNIEnv* AndroidRuntimeBase::getJNIEnv() +{ + JNIEnv* env; + JavaVM* vm = AndroidRuntimeBase::getJavaVM(); + assert(vm != NULL); + + if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) + return NULL; + return env; +} + +/* + * Register native methods using JNI. + */ +/*static*/ int AndroidRuntimeBase::registerNativeMethods(JNIEnv* env, + const char* className, const JNINativeMethod* gMethods, int numMethods) +{ + return jniRegisterNativeMethods(env, className, gMethods, numMethods); +} + +} // namespace android + diff --git a/include/android_runtime/AndroidRuntime.h b/include/android_runtime/AndroidRuntime.h index 0b3ce9a..efd92bb 100644 --- a/include/android_runtime/AndroidRuntime.h +++ b/include/android_runtime/AndroidRuntime.h @@ -19,6 +19,8 @@ #ifndef _RUNTIME_ANDROID_RUNTIME_H #define _RUNTIME_ANDROID_RUNTIME_H +#include "AndroidRuntimeBase.h" + #include <utils/Errors.h> #include <binder/IBinder.h> #include <utils/String8.h> @@ -31,7 +33,7 @@ namespace android { -class AndroidRuntime +class AndroidRuntime : public AndroidRuntimeBase { public: AndroidRuntime(); @@ -45,12 +47,6 @@ public: }; /** - * Register a set of methods in the specified class. - */ - static int registerNativeMethods(JNIEnv* env, - const char* className, const JNINativeMethod* gMethods, int numMethods); - - /** * Call a class's static main method with the given arguments, */ status_t callMain(const char* className, jclass clazz, int argc, @@ -104,12 +100,6 @@ public: static android_thread_id_t createJavaThread(const char* name, void (*start)(void *), void* arg); - /** return a pointer to the VM running in this process */ - static JavaVM* getJavaVM() { return mJavaVM; } - - /** return a pointer to the JNIEnv pointer for this thread */ - static JNIEnv* getJNIEnv(); - /** return a new string corresponding to 'className' with all '.'s replaced by '/'s. */ static char* toSlashClassName(const char* className); @@ -121,9 +111,6 @@ private: Vector<JavaVMOption> mOptions; bool mExitWithoutCleanup; - /* JNI JavaVM pointer */ - static JavaVM* mJavaVM; - /* * Thread creation helpers. */ diff --git a/include/android_runtime/AndroidRuntimeBase.h b/include/android_runtime/AndroidRuntimeBase.h new file mode 100644 index 0000000..2b14987 --- /dev/null +++ b/include/android_runtime/AndroidRuntimeBase.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2014 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. + */ + +#ifndef _RUNTIME_ANDROID_RUNTIME_BASE_H +#define _RUNTIME_ANDROID_RUNTIME_BASE_H + +#include <nativehelper/jni.h> + +namespace android { + +struct AndroidRuntimeBase { + /** return a pointer to the VM running in this process */ + static JavaVM* getJavaVM() { return mJavaVM; } + + /** return a pointer to the JNIEnv pointer for this thread */ + static JNIEnv* getJNIEnv(); + + /** + * Register a set of methods in the specified class. + */ + static int registerNativeMethods(JNIEnv* env, + const char* className, const JNINativeMethod* gMethods, int numMethods); + +protected: + /* JNI JavaVM pointer */ + static JavaVM* mJavaVM; + + AndroidRuntimeBase() {} + virtual ~AndroidRuntimeBase() {} + + AndroidRuntimeBase(const AndroidRuntimeBase &); + AndroidRuntimeBase &operator=(const AndroidRuntimeBase &); +}; + +} // namespace android + +#endif // _RUNTIME_ANDROID_RUNTIME_BASE_H diff --git a/media/jni/Android.mk b/media/jni/Android.mk index 51fccd4..8323ae3 100644 --- a/media/jni/Android.mk +++ b/media/jni/Android.mk @@ -24,6 +24,7 @@ LOCAL_SRC_FILES:= \ LOCAL_SHARED_LIBRARIES := \ libandroid_runtime \ + libandroid_runtime_derived \ libnativehelper \ libutils \ libbinder \ diff --git a/media/jni/mediaeditor/Android.mk b/media/jni/mediaeditor/Android.mk index 6be7fdd..b9c70f8 100644 --- a/media/jni/mediaeditor/Android.mk +++ b/media/jni/mediaeditor/Android.mk @@ -48,6 +48,7 @@ LOCAL_C_INCLUDES += \ LOCAL_SHARED_LIBRARIES := \ libandroid_runtime \ + libandroid_runtime_derived \ libaudioflinger \ libaudioutils \ libbinder \ diff --git a/native/android/Android.mk b/native/android/Android.mk index cda38e0..f55f94a 100644 --- a/native/android/Android.mk +++ b/native/android/Android.mk @@ -25,7 +25,8 @@ LOCAL_SHARED_LIBRARIES := \ libbinder \ libui \ libgui \ - libandroid_runtime + libandroid_runtime \ + libandroid_runtime_derived LOCAL_STATIC_LIBRARIES := \ libstorage diff --git a/native/graphics/jni/Android.mk b/native/graphics/jni/Android.mk index 8b333e7..02fa1b9 100644 --- a/native/graphics/jni/Android.mk +++ b/native/graphics/jni/Android.mk @@ -20,6 +20,7 @@ LOCAL_SRC_FILES:= \ LOCAL_SHARED_LIBRARIES := \ libandroid_runtime \ + libandroid_runtime_derived \ libskia LOCAL_C_INCLUDES += \ diff --git a/rs/jni/Android.mk b/rs/jni/Android.mk index cbb5b3b..4814a6e 100644 --- a/rs/jni/Android.mk +++ b/rs/jni/Android.mk @@ -6,6 +6,7 @@ LOCAL_SRC_FILES:= \ LOCAL_SHARED_LIBRARIES := \ libandroid_runtime \ + libandroid_runtime_derived \ libandroidfw \ libnativehelper \ libRS \ diff --git a/services/core/jni/Android.mk b/services/core/jni/Android.mk index 1a3ce63..93b80dc 100644 --- a/services/core/jni/Android.mk +++ b/services/core/jni/Android.mk @@ -35,6 +35,7 @@ LOCAL_C_INCLUDES += \ LOCAL_SHARED_LIBRARIES += \ libandroid_runtime \ + libandroid_runtime_derived \ libandroidfw \ libbinder \ libcutils \ |