Introduce framework-minus-apex and create jobscheduler-framework.jar
Bug: 137763703
Test: Clean local build + "flash -w" and boot
Test: Presubmit
Test: atest CtsJobSchedulerTestCases
Test: ./cts/tests/signature/runSignatureTests.sh
Change-Id: Ie2a5a7a17f903ac18de0bcdde5be25311a62fa01
diff --git a/Android.bp b/Android.bp
index 4ef6c5e..1023b48 100644
--- a/Android.bp
+++ b/Android.bp
@@ -26,7 +26,35 @@
// READ ME: ########################################################
java_defaults {
+ name: "framework-aidl-export-defaults",
+
+ aidl: {
+ export_include_dirs: [
+ // From build/make/core/pathmap.mk FRAMEWORK_BASE_SUBDIRS
+ "core/java",
+ "graphics/java",
+ "location/java",
+ "lowpan/java",
+ "media/java",
+ "media/apex/java",
+ "media/mca/effect/java",
+ "media/mca/filterfw/java",
+ "media/mca/filterpacks/java",
+ "drm/java",
+ "opengl/java",
+ "sax/java",
+ "telecomm/java",
+ "telephony/java",
+ "wifi/java",
+ "keystore/java",
+ "rs/java",
+ ],
+ },
+}
+
+java_defaults {
name: "framework-defaults",
+ defaults: ["framework-aidl-export-defaults"],
installable: true,
srcs: [
@@ -78,9 +106,6 @@
"core/java/android/app/ISearchManagerCallback.aidl",
"core/java/android/app/IServiceConnection.aidl",
"core/java/android/app/IStopUserCallback.aidl",
- "core/java/android/app/job/IJobCallback.aidl",
- "core/java/android/app/job/IJobScheduler.aidl",
- "core/java/android/app/job/IJobService.aidl",
"core/java/android/app/ITransientNotification.aidl",
"core/java/android/app/IUidObserver.aidl",
"core/java/android/app/IUiAutomationConnection.aidl",
@@ -702,27 +727,6 @@
],
aidl: {
- export_include_dirs: [
- // From build/make/core/pathmap.mk FRAMEWORK_BASE_SUBDIRS
- "core/java",
- "graphics/java",
- "location/java",
- "lowpan/java",
- "media/java",
- "media/apex/java",
- "media/mca/effect/java",
- "media/mca/filterfw/java",
- "media/mca/filterpacks/java",
- "drm/java",
- "opengl/java",
- "sax/java",
- "telecomm/java",
- "telephony/java",
- "wifi/java",
- "keystore/java",
- "rs/java",
- ],
-
include_dirs: [
"system/update_engine/binder_bindings",
"frameworks/native/aidl/binder",
@@ -838,7 +842,7 @@
}
java_library {
- name: "framework",
+ name: "framework-minus-apex",
defaults: ["framework-defaults"],
javac_shard_size: 150,
required: [
@@ -848,6 +852,17 @@
}
java_library {
+ name: "framework",
+ defaults: ["framework-aidl-export-defaults"],
+ installable: true,
+ static_libs: [
+ "framework-minus-apex",
+ "jobscheduler-framework",
+ ],
+ sdk_version: "core_platform",
+}
+
+java_library {
name: "framework-annotation-proc",
defaults: ["framework-defaults"],
installable: false,
@@ -1371,8 +1386,9 @@
":updatable-media-srcs-without-aidls",
"test-mock/src/**/*.java",
"test-runner/src/**/*.java",
+ ":jobscheduler-framework-source",
],
- srcs_lib: "framework",
+ srcs_lib: "framework-minus-apex",
srcs_lib_whitelist_dirs: frameworks_base_subdirs,
srcs_lib_whitelist_pkgs: packages_to_document,
libs: framework_docs_only_libs,
@@ -1428,8 +1444,9 @@
":opt-net-voip-srcs",
":core_public_api_files",
":updatable-media-srcs-without-aidls",
+ ":jobscheduler-framework-source",
],
- srcs_lib: "framework",
+ srcs_lib: "framework-minus-apex",
srcs_lib_whitelist_dirs: frameworks_base_subdirs,
srcs_lib_whitelist_pkgs: packages_to_document,
local_sourcepaths: frameworks_base_subdirs,
diff --git a/apex/jobscheduler/framework/Android.bp b/apex/jobscheduler/framework/Android.bp
new file mode 100644
index 0000000..bdb5248
--- /dev/null
+++ b/apex/jobscheduler/framework/Android.bp
@@ -0,0 +1,29 @@
+filegroup {
+ name: "jobscheduler-framework-source",
+ srcs: [
+ "java/**/*.java",
+ "java/android/app/job/IJobCallback.aidl",
+ "java/android/app/job/IJobScheduler.aidl",
+ "java/android/app/job/IJobService.aidl",
+ ],
+ path: "java",
+}
+
+java_library {
+ name: "jobscheduler-framework",
+ installable: true,
+ sdk_version: "core_platform",
+
+ srcs: [
+ ":jobscheduler-framework-source",
+ ],
+
+ aidl: {
+ export_include_dirs: [
+ "java",
+ ],
+ },
+ libs: [
+ "framework-minus-apex",
+ ],
+}
diff --git a/core/java/android/app/JobSchedulerImpl.java b/apex/jobscheduler/framework/java/android/app/JobSchedulerImpl.java
similarity index 95%
rename from core/java/android/app/JobSchedulerImpl.java
rename to apex/jobscheduler/framework/java/android/app/JobSchedulerImpl.java
index 924a708..f59e7a4 100644
--- a/core/java/android/app/JobSchedulerImpl.java
+++ b/apex/jobscheduler/framework/java/android/app/JobSchedulerImpl.java
@@ -14,7 +14,6 @@
* limitations under the License.
*/
-// in android.app so ContextImpl has package access
package android.app;
import android.app.job.IJobScheduler;
@@ -27,10 +26,12 @@
import java.util.List;
-// APEX NOTE: Class path referred to by robolectric, so can't move it.
-
/**
* Concrete implementation of the JobScheduler interface
+ *
+ * Note android.app.job is the better package to put this class, but we can't move it there
+ * because that'd break robolectric. Grr.
+ *
* @hide
*/
public class JobSchedulerImpl extends JobScheduler {
diff --git a/core/java/android/app/job/IJobCallback.aidl b/apex/jobscheduler/framework/java/android/app/job/IJobCallback.aidl
similarity index 100%
rename from core/java/android/app/job/IJobCallback.aidl
rename to apex/jobscheduler/framework/java/android/app/job/IJobCallback.aidl
diff --git a/core/java/android/app/job/IJobScheduler.aidl b/apex/jobscheduler/framework/java/android/app/job/IJobScheduler.aidl
similarity index 100%
rename from core/java/android/app/job/IJobScheduler.aidl
rename to apex/jobscheduler/framework/java/android/app/job/IJobScheduler.aidl
diff --git a/core/java/android/app/job/IJobService.aidl b/apex/jobscheduler/framework/java/android/app/job/IJobService.aidl
similarity index 100%
rename from core/java/android/app/job/IJobService.aidl
rename to apex/jobscheduler/framework/java/android/app/job/IJobService.aidl
diff --git a/core/java/android/app/job/JobInfo.aidl b/apex/jobscheduler/framework/java/android/app/job/JobInfo.aidl
similarity index 100%
rename from core/java/android/app/job/JobInfo.aidl
rename to apex/jobscheduler/framework/java/android/app/job/JobInfo.aidl
diff --git a/core/java/android/app/job/JobInfo.java b/apex/jobscheduler/framework/java/android/app/job/JobInfo.java
similarity index 100%
rename from core/java/android/app/job/JobInfo.java
rename to apex/jobscheduler/framework/java/android/app/job/JobInfo.java
diff --git a/core/java/android/app/job/JobParameters.aidl b/apex/jobscheduler/framework/java/android/app/job/JobParameters.aidl
similarity index 100%
rename from core/java/android/app/job/JobParameters.aidl
rename to apex/jobscheduler/framework/java/android/app/job/JobParameters.aidl
diff --git a/core/java/android/app/job/JobParameters.java b/apex/jobscheduler/framework/java/android/app/job/JobParameters.java
similarity index 97%
rename from core/java/android/app/job/JobParameters.java
rename to apex/jobscheduler/framework/java/android/app/job/JobParameters.java
index ecc859d..150cdbc 100644
--- a/core/java/android/app/job/JobParameters.java
+++ b/apex/jobscheduler/framework/java/android/app/job/JobParameters.java
@@ -52,6 +52,11 @@
/**
* All the stop reason codes. This should be regarded as an immutable array at runtime.
+ *
+ * Note the order of these values will affect "dumpsys batterystats", and we do not want to
+ * change the order of existing fields, so adding new fields is okay but do not remove or
+ * change existing fields. When deprecating a field, just replace that with "-1" in this array.
+ *
* @hide
*/
public static final int[] JOB_STOP_REASON_CODES = {
diff --git a/core/java/android/app/job/JobScheduler.java b/apex/jobscheduler/framework/java/android/app/job/JobScheduler.java
similarity index 100%
rename from core/java/android/app/job/JobScheduler.java
rename to apex/jobscheduler/framework/java/android/app/job/JobScheduler.java
diff --git a/core/java/android/app/job/JobSchedulerFrameworkInitializer.java b/apex/jobscheduler/framework/java/android/app/job/JobSchedulerFrameworkInitializer.java
similarity index 100%
rename from core/java/android/app/job/JobSchedulerFrameworkInitializer.java
rename to apex/jobscheduler/framework/java/android/app/job/JobSchedulerFrameworkInitializer.java
diff --git a/core/java/android/app/job/JobService.java b/apex/jobscheduler/framework/java/android/app/job/JobService.java
similarity index 100%
rename from core/java/android/app/job/JobService.java
rename to apex/jobscheduler/framework/java/android/app/job/JobService.java
diff --git a/core/java/android/app/job/JobServiceEngine.java b/apex/jobscheduler/framework/java/android/app/job/JobServiceEngine.java
similarity index 100%
rename from core/java/android/app/job/JobServiceEngine.java
rename to apex/jobscheduler/framework/java/android/app/job/JobServiceEngine.java
diff --git a/core/java/android/app/job/JobSnapshot.aidl b/apex/jobscheduler/framework/java/android/app/job/JobSnapshot.aidl
similarity index 100%
rename from core/java/android/app/job/JobSnapshot.aidl
rename to apex/jobscheduler/framework/java/android/app/job/JobSnapshot.aidl
diff --git a/core/java/android/app/job/JobSnapshot.java b/apex/jobscheduler/framework/java/android/app/job/JobSnapshot.java
similarity index 100%
rename from core/java/android/app/job/JobSnapshot.java
rename to apex/jobscheduler/framework/java/android/app/job/JobSnapshot.java
diff --git a/core/java/android/app/job/JobWorkItem.aidl b/apex/jobscheduler/framework/java/android/app/job/JobWorkItem.aidl
similarity index 100%
rename from core/java/android/app/job/JobWorkItem.aidl
rename to apex/jobscheduler/framework/java/android/app/job/JobWorkItem.aidl
diff --git a/core/java/android/app/job/JobWorkItem.java b/apex/jobscheduler/framework/java/android/app/job/JobWorkItem.java
similarity index 100%
rename from core/java/android/app/job/JobWorkItem.java
rename to apex/jobscheduler/framework/java/android/app/job/JobWorkItem.java
diff --git a/core/java/com/android/server/job/JobSchedulerInternal.java b/apex/jobscheduler/framework/java/com/android/server/job/JobSchedulerInternal.java
similarity index 100%
rename from core/java/com/android/server/job/JobSchedulerInternal.java
rename to apex/jobscheduler/framework/java/com/android/server/job/JobSchedulerInternal.java
diff --git a/location/lib/Android.bp b/location/lib/Android.bp
index 16f1428..ab01ddb 100644
--- a/location/lib/Android.bp
+++ b/location/lib/Android.bp
@@ -21,7 +21,7 @@
"androidx.annotation_annotation",
],
api_packages: ["com.android.location.provider"],
- srcs_lib: "framework",
+ srcs_lib: "framework-minus-apex",
srcs_lib_whitelist_dirs: ["location/java"],
srcs_lib_whitelist_pkgs: ["com.android.internal.location"],
}
diff --git a/media/lib/signer/Android.bp b/media/lib/signer/Android.bp
index 44f8725..f320397 100644
--- a/media/lib/signer/Android.bp
+++ b/media/lib/signer/Android.bp
@@ -18,7 +18,7 @@
name: "com.android.mediadrm.signer",
srcs: ["java/**/*.java"],
api_packages: ["com.android.mediadrm.signer"],
- srcs_lib: "framework",
+ srcs_lib: "framework-minus-apex",
srcs_lib_whitelist_dirs: ["media/java"],
srcs_lib_whitelist_pkgs: ["android.media"],
}
diff --git a/test-mock/Android.bp b/test-mock/Android.bp
index a5cd175..0129c4c 100644
--- a/test-mock/Android.bp
+++ b/test-mock/Android.bp
@@ -25,7 +25,7 @@
"android.test.mock",
],
- srcs_lib: "framework",
+ srcs_lib: "framework-minus-apex",
srcs_lib_whitelist_dirs: ["core/java"],
srcs_lib_whitelist_pkgs: ["android"],
compile_dex: true,