From 58ab9ef051162f17f521ff4c3beb5e2724be7b00 Mon Sep 17 00:00:00 2001 From: Tor Norbye Date: Wed, 13 Jun 2018 18:29:45 -0400 Subject: [PATCH] Use android.jar from Metalava. This CL only affects the SDK. It reverts commit 91967398ad528f87d520b93049692810dbf0ca14 and then updates the packaging source for android.jar to the metalava jar. It also packages the extracted annotations, annotations.zip. Test: Manually built various apps with android.jar file as well as some binary verification with javap Bug: 78245848 Change-Id: I5614a7f5af11d12c99cf0275ae0a88d97cc0bbc7 (cherry-picked from f13bb3dab6c5617ec88d6a6ba8628ce049ed693a) --- build/Android.mk | 42 ++++++++++++++++++++++++++++++++++++++++++ build/sdk.atree | 8 +++++--- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/build/Android.mk b/build/Android.mk index c9e32a559..791511ca9 100644 --- a/build/Android.mk +++ b/build/Android.mk @@ -80,6 +80,30 @@ $(android_jar_src_target): $(full_src_target) ALL_SDK_FILES += $(android_jar_full_target) ALL_SDK_FILES += $(android_jar_src_target) +# ============ Metalava SDK jar file of stubs ============ +full_target := $(call intermediates-dir-for,JAVA_LIBRARIES,metalava_android_stubs_current,,COMMON)/classes.jar +full_src_target := $(OUT_DOCS)/metalava-api-stubs-docs-stubs.srcjar + +.PHONY: metalava_android_stubs +metalava_android_stubs: $(full_target) $(full_src_target) + +# android.jar is what we put in the SDK package. +android_jar_intermediates := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/metalava_android_jar_intermediates +android_jar_full_target := $(android_jar_intermediates)/metalava-android.jar +android_jar_src_target := $(android_jar_intermediates)/metalava-android-stubs-src.jar + +$(android_jar_full_target): $(full_target) + @echo Package SDK Stubs: $@ + $(copy-file-to-target) + +$(android_jar_src_target): $(full_src_target) + @echo Package SDK Stubs Source: $@ + $(hide)mkdir -p $(dir $@) + $(hide)$(ACP) $< $@ + +ALL_SDK_FILES += $(android_jar_full_target) +ALL_SDK_FILES += $(android_jar_src_target) + # ==================================================== # The uiautomator stubs @@ -149,3 +173,21 @@ android_test_stubs: $(full_target) # Build and store the android_test.jar. $(call dist-for-goals,sdk win_sdk,$(full_target):android_test.jar) + +# ============ Metalava System SDK ============ +full_target := $(call intermediates-dir-for,JAVA_LIBRARIES,metalava_android_system_stubs_current,,COMMON)/classes.jar + +.PHONY: metalava_android_system_stubs +metalava_android_system_stubs: $(full_target) + +# Build and store the android_system.jar. +$(call dist-for-goals,sdk win_sdk,$(full_target):metalava_android_system.jar) + +# ============ Metalava Test SDK ============ +full_target := $(call intermediates-dir-for,JAVA_LIBRARIES,metalava_android_test_stubs_current,,COMMON)/classes.jar + +.PHONY: metalava_android_test_stubs +metalava_android_test_stubs: $(full_target) + +# Build and store the android_test.jar. +$(call dist-for-goals,sdk win_sdk,$(full_target):metalava_android_test.jar) diff --git a/build/sdk.atree b/build/sdk.atree index c528332c9..592c74e82 100644 --- a/build/sdk.atree +++ b/build/sdk.atree @@ -64,7 +64,7 @@ external/chromium-trace/UPSTREAM_REVISION platfo # Compatibility: moved to platform but also leave them in platform-tools for a little # longer until all active Gradle plugins have support for looking in both places development/sdk/generated-api-versions.xml platform-tools/api/api-versions.xml -prebuilts/sdk/sdk-annotations/annotations.zip platform-tools/api/annotations.zip +${OUT_DIR}/target/common/obj/PACKAGING/metalava-api-stubs-docs_annotations.zip platform-tools/api/annotations.zip ############################################################################## # Build Tools Component @@ -165,8 +165,9 @@ ${HOST_OUT}/development/sdk/platform_source.properties sdk/sdk-build.prop platforms/${PLATFORM_NAME}/build.prop # Main Public API jar -${OUT_DIR}/target/common/obj/PACKAGING/android_jar_intermediates/android.jar platforms/${PLATFORM_NAME}/android.jar -${OUT_DIR}/target/common/obj/PACKAGING/android_jar_intermediates/android-stubs-src.jar platforms/${PLATFORM_NAME}/android-stubs-src.jar +${OUT_DIR}/target/common/obj/PACKAGING/metalava_android_jar_intermediates/metalava-android.jar platforms/${PLATFORM_NAME}/android.jar +${OUT_DIR}/target/common/obj/PACKAGING/metalava_android_jar_intermediates/metalava-android-stubs-src.jar platforms/${PLATFORM_NAME}/android-stubs-src.jar + # optional API files. development/build/optional.json platforms/${PLATFORM_NAME}/optional/optional.json ${OUT_DIR}/target/common/obj/JAVA_LIBRARIES/org.apache.http.legacy.stubs_intermediates/classes.jar platforms/${PLATFORM_NAME}/optional/org.apache.http.legacy.jar @@ -208,6 +209,7 @@ development/sdk/generated-api-versions.xml platforms/${PLATFORM_NAME}/data/api- # API annotations database for lint prebuilts/sdk/sdk-annotations/annotations.zip platforms/${PLATFORM_NAME}/data/annotations.zip +${OUT_DIR}/target/common/obj/PACKAGING/metalava-api-stubs-docs_annotations.zip platforms/${PLATFORM_NAME}/data/annotations.zip # Eclipse Editors support framework/layoutlib-legacy.jar platforms/${PLATFORM_NAME}/data/layoutlib.jar