Add LOCAL_APK_LIBRARIES argument.
This allows you to build apks that link against other apks using the framework's new shared library apk feature. Also if you are using LOCAL_APK_LIBRARIES, then LOCAL_DEX_PREOPT will not be allowed. This is because using preopt means the apk is stripped of its dex file, so the pre-installed apk can't be redexed if its associated library changes. (Even if the build system didn't strip the dex, Dalvik still has issues because it assumes a pre-odex file is always valid.) Change-Id: I952c0d24f8975f75aff67f78b5faeec91144c3e7
This commit is contained in:
@@ -398,6 +398,20 @@ endif # !LOCAL_IS_HOST_MODULE
|
||||
full_java_libs += $(full_static_java_libs) $(LOCAL_CLASSPATH)
|
||||
full_java_lib_deps += $(full_static_java_libs) $(LOCAL_CLASSPATH)
|
||||
|
||||
# This is set by packages that are linking to other packages that export
|
||||
# shared libraries, allowing them to make use of the code in the linked apk.
|
||||
LOCAL_APK_LIBRARIES := $(strip $(LOCAL_APK_LIBRARIES))
|
||||
ifdef LOCAL_APK_LIBRARIES
|
||||
link_apk_libraries := \
|
||||
$(foreach lib,$(LOCAL_APK_LIBRARIES), \
|
||||
$(call intermediates-dir-for, \
|
||||
APPS,$(lib),,COMMON)/classes.jar)
|
||||
|
||||
# link against the jar with full original names (before proguard processing).
|
||||
full_java_libs += $(link_apk_libraries)
|
||||
full_java_lib_deps += $(link_apk_libraries)
|
||||
endif
|
||||
|
||||
# This is set by packages that contain instrumentation, allowing them to
|
||||
# link against the package they are instrumenting. Currently only one such
|
||||
# package is allowed.
|
||||
|
@@ -90,6 +90,7 @@ LOCAL_JNI_SHARED_LIBRARIES:=
|
||||
LOCAL_JNI_SHARED_LIBRARIES_ABI:=
|
||||
LOCAL_JAR_MANIFEST:=
|
||||
LOCAL_INSTRUMENTATION_FOR:=
|
||||
LOCAL_APK_LIBRARIES:=
|
||||
LOCAL_MANIFEST_INSTRUMENTATION_FOR:=
|
||||
LOCAL_AIDL_INCLUDES:=
|
||||
LOCAL_JARJAR_RULES:=
|
||||
|
@@ -35,11 +35,13 @@ ifneq (true,$(WITH_DEXPREOPT))
|
||||
LOCAL_DEX_PREOPT :=
|
||||
else
|
||||
ifeq (,$(TARGET_BUILD_APPS))
|
||||
ifeq (,$(LOCAL_APK_LIBRARIES))
|
||||
ifndef LOCAL_DEX_PREOPT
|
||||
LOCAL_DEX_PREOPT := true
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq (false,$(LOCAL_DEX_PREOPT))
|
||||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
|
@@ -151,6 +151,7 @@ ifneq (true,$(WITH_DEXPREOPT))
|
||||
LOCAL_DEX_PREOPT :=
|
||||
else
|
||||
ifeq (,$(TARGET_BUILD_APPS))
|
||||
ifeq (,$(LOCAL_APK_LIBRARIES))
|
||||
ifneq (,$(LOCAL_SRC_FILES))
|
||||
ifndef LOCAL_DEX_PREOPT
|
||||
LOCAL_DEX_PREOPT := true
|
||||
@@ -158,6 +159,7 @@ endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq (false,$(LOCAL_DEX_PREOPT))
|
||||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
|
Reference in New Issue
Block a user