summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiyong Park <jiyong@google.com>2019-08-19 15:24:49 +0900
committerJiyong Park <jiyong@google.com>2019-08-29 07:44:38 +0900
commit20426538f85098552f52dffb40d0f7ffff7946d4 (patch)
treecbd17d4b300a8fff9323f39664f3a69f216ae65b
parentd2411f730f6d143d00b605312e632d0e41d9f632 (diff)
Cut the dependency to framework from droiddoc modules
droiddoc modules for the SDK API documentation and stubs library generations have depended on the 'framework' (which was recently changed to framework-minus-apex' module to get the list of Java source files to be processed. This however caused a circular dependency when we tried to modularize some classes in the framework library as a separate library. The separate java library depended on the stubs library (because it should only use SDK APIs) and the stubs library depended on the framework library. The framework library itself depended on the separated library (or its stub) to use APIs from the separated library, thus forming a circular dependency. This change fixes the problem by directly giving the framework source files via a filegroup `framework-sources-to-document` where all Java and AIDL files that are to be documented are included in. This change also put the generated R.java and Manifest.java files from framework-res into the filegroup for framework sources. Bug: 70046217 Bug: 135922046 Test: m Change-Id: I09ad88da47540d31ad089aad5e1151a4b6877ec2
-rw-r--r--Android.bp173
-rw-r--r--core/java/com/package.html8
-rw-r--r--location/lib/Android.bp9
-rw-r--r--media/Android.bp13
-rw-r--r--media/lib/signer/Android.bp7
-rw-r--r--test-mock/Android.bp8
6 files changed, 119 insertions, 99 deletions
diff --git a/Android.bp b/Android.bp
index a2d8bfe42bfc..36210e674624 100644
--- a/Android.bp
+++ b/Android.bp
@@ -162,49 +162,54 @@ filegroup {
path: "wifi/java",
}
-framework_srcs = [
- // Java/AIDL sources under frameworks/base
- ":framework-core-sources",
- ":framework-drm-sources",
- ":framework-graphics-sources",
- ":framework-keystore-sources",
- ":framework-location-sources",
- ":framework-lowpan-sources",
- ":framework-media-sources",
- ":framework-mca-effect-sources",
- ":framework-mca-filterfw-sources",
- ":framework-mca-filterpacks-sources",
- ":framework-opengl-sources",
- ":framework-rs-sources",
- ":framework-sax-sources",
- ":framework-telecomm-sources",
- ":framework-telephony-sources",
- ":framework-wifi-sources",
- ":PacProcessor-aidl-sources",
- ":ProxyHandler-aidl-sources",
-
- // AIDL sources from external directories
- ":dumpstate_aidl",
- ":framework_native_aidl",
- ":gatekeeper_aidl",
- ":gsiservice_aidl",
- ":incidentcompanion_aidl",
- ":installd_aidl",
- ":keystore_aidl",
- ":libaudioclient_aidl",
- ":libbinder_aidl",
- ":libbluetooth-binder-aidl",
- ":libcamera_client_aidl",
- ":libcamera_client_framework_aidl",
- ":libupdate_engine_aidl",
- ":storaged_aidl",
- ":vold_aidl",
-
- // etc.
- "core/java/**/*.logtags",
- ":framework-javastream-protos",
- ":framework-statslog-gen",
-]
+filegroup {
+ name: "framework-srcs",
+ srcs: [
+ // Java/AIDL sources under frameworks/base
+ ":framework-core-sources",
+ ":framework-drm-sources",
+ ":framework-graphics-sources",
+ ":framework-keystore-sources",
+ ":framework-location-sources",
+ ":framework-lowpan-sources",
+ ":framework-media-sources",
+ ":framework-mca-effect-sources",
+ ":framework-mca-filterfw-sources",
+ ":framework-mca-filterpacks-sources",
+ ":framework-opengl-sources",
+ ":framework-rs-sources",
+ ":framework-sax-sources",
+ ":framework-telecomm-sources",
+ ":framework-telephony-sources",
+ ":framework-wifi-sources",
+ ":PacProcessor-aidl-sources",
+ ":ProxyHandler-aidl-sources",
+
+ // AIDL sources from external directories
+ ":dumpstate_aidl",
+ ":framework_native_aidl",
+ ":gatekeeper_aidl",
+ ":gsiservice_aidl",
+ ":incidentcompanion_aidl",
+ ":installd_aidl",
+ ":keystore_aidl",
+ ":libaudioclient_aidl",
+ ":libbinder_aidl",
+ ":libbluetooth-binder-aidl",
+ ":libcamera_client_aidl",
+ ":libcamera_client_framework_aidl",
+ ":libupdate_engine_aidl",
+ ":storaged_aidl",
+ ":vold_aidl",
+
+ // For the generated R.java and Manifest.java
+ ":framework-res{.aapt.srcjar}",
+
+ // etc.
+ ":framework-javastream-protos",
+ ":framework-statslog-gen",
+ ],
+}
java_defaults {
name: "framework-aidl-export-defaults",
@@ -231,30 +236,10 @@ java_defaults {
},
}
-java_defaults {
- name: "framework-defaults",
- defaults: ["framework-aidl-export-defaults"],
- installable: true,
-
- srcs: framework_srcs,
-
- aidl: {
- generate_get_transaction_name: true,
- },
-
- exclude_srcs: [
- // See comment on framework-atb-backward-compatibility module below
- "core/java/android/content/pm/AndroidTestBaseUpdater.java",
- ],
-
- sdk_version: "core_platform",
- libs: [
- "ext",
- "updatable_media_stubs",
- ],
-
- jarjar_rules: ":framework-jarjar-rules",
-
+// Collection of classes that are generated from non-Java files that are not listed in
+// framework_srcs. These have no or very limited dependency to the framework.
+java_library {
+ name: "framework-internal-utils",
static_libs: [
"mimemap",
"apex_aidl_interface-java",
@@ -290,6 +275,38 @@ java_defaults {
"com.android.sysprop.apex",
"PlatformProperties",
],
+ sdk_version: "core_platform",
+ installable: false,
+}
+
+java_defaults {
+ name: "framework-defaults",
+ defaults: ["framework-aidl-export-defaults"],
+ installable: true,
+
+ srcs: [
+ ":framework-srcs",
+ "core/java/**/*.logtags",
+ ],
+
+ aidl: {
+ generate_get_transaction_name: true,
+ },
+
+ exclude_srcs: [
+ // See comment on framework-atb-backward-compatibility module below
+ "core/java/android/content/pm/AndroidTestBaseUpdater.java",
+ ],
+
+ sdk_version: "core_platform",
+ libs: [
+ "ext",
+ "updatable_media_stubs",
+ ],
+
+ jarjar_rules: ":framework-jarjar-rules",
+
+ static_libs: ["framework-internal-utils"],
required: [
// TODO: remove gps_debug when the build system propagates "required" properly.
@@ -760,7 +777,7 @@ python_binary_host {
],
}
-// TODO: Don't rely on this list once droiddoc can take a list of packages to document
+// TODO: Don't rely on this list by switching package.html into package-info.java
frameworks_base_subdirs = [
"core/java",
"graphics/java",
@@ -780,13 +797,6 @@ frameworks_base_subdirs = [
"rs/java",
]
-packages_to_document = [
- "android",
- "javax/microedition/khronos",
- "org/apache/http/conn",
- "org/apache/http/params",
-]
-
// Make the api/current.txt file available for use by modules in other
// directories.
filegroup {
@@ -879,6 +889,8 @@ metalava_framework_docs_args += " --replace-documentation " +
stubs_defaults {
name: "framework-doc-stubs-default",
srcs: [
+ ":framework-srcs",
+ "core/java/**/*.logtags",
"test-base/src/**/*.java",
":opt-telephony-srcs",
":opt-net-voip-srcs",
@@ -888,8 +900,6 @@ stubs_defaults {
"test-runner/src/**/*.java",
":jobscheduler-framework-source",
],
- srcs_lib: "framework-minus-apex",
- srcs_lib_whitelist_pkgs: packages_to_document,
libs: framework_docs_only_libs,
local_sourcepaths: frameworks_base_subdirs,
create_doc_stubs: true,
@@ -939,14 +949,15 @@ doc_defaults {
stubs_defaults {
name: "metalava-api-stubs-default",
srcs: [
+ ":framework-srcs",
+ "core/java/**/*.logtags",
":opt-telephony-srcs",
":opt-net-voip-srcs",
":core_public_api_files",
":updatable-media-srcs",
":jobscheduler-framework-source",
],
- srcs_lib: "framework-minus-apex",
- srcs_lib_whitelist_pkgs: packages_to_document,
+ libs: ["framework-internal-utils"],
local_sourcepaths: frameworks_base_subdirs,
installable: false,
annotations_enabled: true,
@@ -960,6 +971,7 @@ stubs_defaults {
"sdk-dir",
"api-versions-jars-dir",
],
+ sdk_version: "core_platform",
}
droidstubs {
@@ -1271,6 +1283,7 @@ droidstubs {
":openjdk_java_files",
":opt-telephony-common-srcs",
],
+
arg_files: [
"core/res/AndroidManifest.xml",
],
@@ -1405,7 +1418,7 @@ filegroup {
// annotations to private apis
aidl_mapping {
name: "framework-aidl-mappings",
- srcs: framework_srcs,
+ srcs: [":framework-srcs"],
output: "framework-aidl-mappings.txt",
}
diff --git a/core/java/com/package.html b/core/java/com/package.html
new file mode 100644
index 000000000000..8f35da9a8158
--- /dev/null
+++ b/core/java/com/package.html
@@ -0,0 +1,8 @@
+<!--
+ This file is to hide classes in com.* packages from SDK
+-->
+<html>
+<body>
+ {@hide}
+</body>
+</html>
diff --git a/location/lib/Android.bp b/location/lib/Android.bp
index b15cc5ccd656..ff6921d3e1c2 100644
--- a/location/lib/Android.bp
+++ b/location/lib/Android.bp
@@ -16,13 +16,12 @@
java_sdk_library {
name: "com.android.location.provider",
- srcs: ["java/**/*.java"],
+ srcs: [
+ "java/**/*.java",
+ ":framework-srcs",
+ ],
libs: [
"androidx.annotation_annotation",
],
api_packages: ["com.android.location.provider"],
- srcs_lib: "framework-minus-apex",
- // TODO(b/70046217): remove core/java and android below. It was added to provide definitions for
- // types like android.os.Bundle
- srcs_lib_whitelist_pkgs: ["android", "com.android.internal.location"],
}
diff --git a/media/Android.bp b/media/Android.bp
index a7e565b384ad..a59b3e76faed 100644
--- a/media/Android.bp
+++ b/media/Android.bp
@@ -97,18 +97,17 @@ droidstubs {
":framework-media-annotation-srcs",
],
args: metalava_updatable_media_args,
- // Ideally, sdk_version here should be "current_system", but "current - 1" is used
- // to avoid dependency cycle with framework.
- sdk_version: "28",
+ aidl: {
+ // TODO(b/135922046) remove this
+ include_dirs: ["frameworks/base/core/java"],
+ },
+ sdk_version: "system_current",
}
java_library {
name: "updatable_media_stubs",
srcs: [":updatable-media-stubs"],
-
- // Ideally, sdk_version here should be "current_system", but "current - 1" is used
- // to avoid dependency cycle with framework.
- sdk_version: "28",
+ sdk_version: "system_current",
}
java_library {
diff --git a/media/lib/signer/Android.bp b/media/lib/signer/Android.bp
index 338ec12a9e28..85a007f427b8 100644
--- a/media/lib/signer/Android.bp
+++ b/media/lib/signer/Android.bp
@@ -16,8 +16,9 @@
java_sdk_library {
name: "com.android.mediadrm.signer",
- srcs: ["java/**/*.java"],
+ srcs: [
+ "java/**/*.java",
+ ":framework-srcs",
+ ],
api_packages: ["com.android.mediadrm.signer"],
- srcs_lib: "framework-minus-apex",
- srcs_lib_whitelist_pkgs: ["android.media"],
}
diff --git a/test-mock/Android.bp b/test-mock/Android.bp
index 9a653cf7204c..34ac3dcc824f 100644
--- a/test-mock/Android.bp
+++ b/test-mock/Android.bp
@@ -19,14 +19,14 @@
java_sdk_library {
name: "android.test.mock",
- srcs: ["src/**/*.java"],
+ srcs: [
+ "src/**/*.java",
+ ":framework-srcs",
+ ],
api_packages: [
"android.test.mock",
],
-
- srcs_lib: "framework-minus-apex",
- srcs_lib_whitelist_pkgs: ["android"],
compile_dex: true,
}