Add hwbinder library
HAL impls will depend hwbinder.jar instead of framework.jar on build-time, but on runtime framework.jar will be used. This is to cut the circular dependency when using configstore from Android framework. Also added JNI call to HwBinder.java to cut configstore's dependency on systemproperty in framework.jar. Note that hwbinder.jar is LOCAL_UNINSTALLABLE_MODULE and so it won't be installed in an actual image. Bug: 35771640 Test: build & run Change-Id: I2420298cf9df5d6bbcead3e4451b703ce9bc3e29
This commit is contained in:
26
Android.mk
26
Android.mk
@@ -545,6 +545,32 @@ $(framework_module): | $(dir $(framework_module))framework-res.apk
|
||||
|
||||
framework_built := $(call java-lib-deps,framework)
|
||||
|
||||
# HwBinder
|
||||
# =======================================================
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
core/java/android/os/HidlSupport.java \
|
||||
core/java/android/annotation/NonNull.java \
|
||||
core/java/android/os/HwBinder.java \
|
||||
core/java/android/os/HwBlob.java \
|
||||
core/java/android/os/HwParcel.java \
|
||||
core/java/android/os/IHwBinder.java \
|
||||
core/java/android/os/IHwInterface.java \
|
||||
core/java/android/os/DeadObjectException.java \
|
||||
core/java/android/os/DeadSystemException.java \
|
||||
core/java/android/os/RemoteException.java \
|
||||
core/java/android/util/AndroidException.java \
|
||||
|
||||
LOCAL_NO_STANDARD_LIBRARIES := true
|
||||
LOCAL_JAVA_LIBRARIES := core-oj core-libart
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE := hwbinder
|
||||
|
||||
LOCAL_DX_FLAGS := --core-library
|
||||
LOCAL_UNINSTALLABLE_MODULE := true
|
||||
include $(BUILD_JAVA_LIBRARY)
|
||||
|
||||
# Copy AIDL files to be preprocessed and included in the SDK,
|
||||
# specified relative to the root of the build tree.
|
||||
# ============================================================
|
||||
|
||||
@@ -71,4 +71,13 @@ public abstract class HwBinder implements IHwBinder {
|
||||
}
|
||||
|
||||
private long mNativeContext;
|
||||
|
||||
private static native void native_report_sysprop_change();
|
||||
|
||||
/**
|
||||
* Notifies listeners that a system property has changed
|
||||
*/
|
||||
public static void reportSyspropChanged() {
|
||||
native_report_sysprop_change();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <hwbinder/ProcessState.h>
|
||||
#include <nativehelper/ScopedLocalRef.h>
|
||||
#include <vintf/parse_string.h>
|
||||
#include <utils/misc.h>
|
||||
|
||||
#include "core_jni_helpers.h"
|
||||
|
||||
@@ -403,6 +404,11 @@ void JHwBinder_native_joinRpcThreadpool() {
|
||||
IPCThreadState::self()->joinThreadPool();
|
||||
}
|
||||
|
||||
static void JHwBinder_report_sysprop_change(JNIEnv /**env*/, jobject /*clazz*/)
|
||||
{
|
||||
report_sysprop_change();
|
||||
}
|
||||
|
||||
static JNINativeMethod gMethods[] = {
|
||||
{ "native_init", "()J", (void *)JHwBinder_native_init },
|
||||
{ "native_setup", "()V", (void *)JHwBinder_native_setup },
|
||||
@@ -422,6 +428,9 @@ static JNINativeMethod gMethods[] = {
|
||||
|
||||
{ "joinRpcThreadpool", "()V",
|
||||
(void *)JHwBinder_native_joinRpcThreadpool },
|
||||
|
||||
{ "native_report_sysprop_change", "()V",
|
||||
(void *)JHwBinder_report_sysprop_change },
|
||||
};
|
||||
|
||||
namespace android {
|
||||
|
||||
Reference in New Issue
Block a user