Merge "Split AndroidRuntime into AndroidRuntimeBase base-class and the rest."
This commit is contained in:
committed by
Android (Google) Code Review
commit
04f0cab79d
@@ -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
|
||||
|
||||
@@ -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__
|
||||
@@ -67,7 +86,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 \
|
||||
@@ -79,7 +97,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 \
|
||||
@@ -183,6 +200,7 @@ LOCAL_C_INCLUDES += \
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libmemtrack \
|
||||
libandroid_runtime \
|
||||
libandroidfw \
|
||||
libexpat \
|
||||
libnativehelper \
|
||||
@@ -243,7 +261,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)
|
||||
|
||||
@@ -227,9 +227,6 @@ int register_com_android_internal_os_RuntimeInit(JNIEnv* env)
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
/*static*/ JavaVM* AndroidRuntime::mJavaVM = NULL;
|
||||
|
||||
|
||||
AndroidRuntime::AndroidRuntime() :
|
||||
mExitWithoutCleanup(false)
|
||||
{
|
||||
@@ -257,15 +254,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)
|
||||
// If AndroidRuntime had anything to do here, we'd have done it in 'start'.
|
||||
}
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
|
||||
56
core/jni/AndroidRuntimeBase.cpp
Normal file
56
core/jni/AndroidRuntimeBase.cpp
Normal file
@@ -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
|
||||
|
||||
@@ -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();
|
||||
@@ -44,12 +46,6 @@ public:
|
||||
Tool,
|
||||
};
|
||||
|
||||
/**
|
||||
* 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,
|
||||
*/
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
50
include/android_runtime/AndroidRuntimeBase.h
Normal file
50
include/android_runtime/AndroidRuntimeBase.h
Normal file
@@ -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
|
||||
@@ -24,6 +24,7 @@ LOCAL_SRC_FILES:= \
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libandroid_runtime \
|
||||
libandroid_runtime_derived \
|
||||
libnativehelper \
|
||||
libutils \
|
||||
libbinder \
|
||||
|
||||
@@ -48,6 +48,7 @@ LOCAL_C_INCLUDES += \
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libandroid_runtime \
|
||||
libandroid_runtime_derived \
|
||||
libaudioflinger \
|
||||
libaudioutils \
|
||||
libbinder \
|
||||
|
||||
@@ -25,7 +25,8 @@ LOCAL_SHARED_LIBRARIES := \
|
||||
libbinder \
|
||||
libui \
|
||||
libgui \
|
||||
libandroid_runtime
|
||||
libandroid_runtime \
|
||||
libandroid_runtime_derived
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libstorage
|
||||
|
||||
@@ -20,6 +20,7 @@ LOCAL_SRC_FILES:= \
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libandroid_runtime \
|
||||
libandroid_runtime_derived \
|
||||
libskia
|
||||
|
||||
LOCAL_C_INCLUDES += \
|
||||
|
||||
@@ -6,6 +6,7 @@ LOCAL_SRC_FILES:= \
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libandroid_runtime \
|
||||
libandroid_runtime_derived \
|
||||
libandroidfw \
|
||||
libnativehelper \
|
||||
libRS \
|
||||
|
||||
@@ -37,6 +37,7 @@ LOCAL_C_INCLUDES += \
|
||||
|
||||
LOCAL_SHARED_LIBRARIES += \
|
||||
libandroid_runtime \
|
||||
libandroid_runtime_derived \
|
||||
libandroidfw \
|
||||
libbinder \
|
||||
libcutils \
|
||||
|
||||
Reference in New Issue
Block a user