summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apex/jobscheduler/README_js-mainline.md51
-rw-r--r--apex/jobscheduler/service/Android.bp15
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java (renamed from services/core/java/com/android/server/job/GrantedUriPermissions.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobCompletedListener.java (renamed from services/core/java/com/android/server/job/JobCompletedListener.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java (renamed from services/core/java/com/android/server/job/JobConcurrencyManager.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobPackageTracker.java (renamed from services/core/java/com/android/server/job/JobPackageTracker.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java (renamed from services/core/java/com/android/server/job/JobSchedulerService.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobSchedulerShellCommand.java (renamed from services/core/java/com/android/server/job/JobSchedulerShellCommand.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java (renamed from services/core/java/com/android/server/job/JobServiceContext.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobStore.java (renamed from services/core/java/com/android/server/job/JobStore.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/StateChangedListener.java (renamed from services/core/java/com/android/server/job/StateChangedListener.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/BackgroundJobsController.java (renamed from services/core/java/com/android/server/job/controllers/BackgroundJobsController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/BatteryController.java (renamed from services/core/java/com/android/server/job/controllers/BatteryController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java (renamed from services/core/java/com/android/server/job/controllers/ConnectivityController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java (renamed from services/core/java/com/android/server/job/controllers/ContentObserverController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/DeviceIdleJobsController.java (renamed from services/core/java/com/android/server/job/controllers/DeviceIdleJobsController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java (renamed from services/core/java/com/android/server/job/controllers/IdleController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java (renamed from services/core/java/com/android/server/job/controllers/JobStatus.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java (renamed from services/core/java/com/android/server/job/controllers/QuotaController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java (renamed from services/core/java/com/android/server/job/controllers/StateController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/StorageController.java (renamed from services/core/java/com/android/server/job/controllers/StorageController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java (renamed from services/core/java/com/android/server/job/controllers/TimeController.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java (renamed from services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java (renamed from services/core/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/idle/IdlenessListener.java (renamed from services/core/java/com/android/server/job/controllers/idle/IdlenessListener.java)0
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/idle/IdlenessTracker.java (renamed from services/core/java/com/android/server/job/controllers/idle/IdlenessTracker.java)0
-rw-r--r--config/preloaded-classes1
-rw-r--r--config/preloaded-classes-extra3
-rw-r--r--core/java/android/app/JobSchedulerImpl.java5
-rw-r--r--core/java/android/app/SystemServiceRegistry.java31
-rw-r--r--core/java/android/app/job/JobSchedulerFrameworkInitializer.java35
-rw-r--r--core/java/com/android/server/job/JobSchedulerInternal.java (renamed from services/core/java/com/android/server/job/JobSchedulerInternal.java)0
-rw-r--r--services/java/com/android/server/SystemServer.java4
-rw-r--r--services/tests/mockingservicestests/Android.bp1
-rw-r--r--services/tests/servicestests/Android.bp1
-rw-r--r--tests/JobSchedulerPerfTests/Android.bp1
36 files changed, 134 insertions, 14 deletions
diff --git a/apex/jobscheduler/README_js-mainline.md b/apex/jobscheduler/README_js-mainline.md
new file mode 100644
index 000000000000..b5fea5e0a4df
--- /dev/null
+++ b/apex/jobscheduler/README_js-mainline.md
@@ -0,0 +1,51 @@
+# Making Job Scheduler into a Mainline Module
+
+## TODOs
+
+See also:
+- http://go/moving-js-code-for-mainline
+- http://go/jobscheduler-code-dependencies-2019-07
+
+- [ ] Move client code
+ - [ ] Move code
+ - [ ] Make build file
+ - [ ] "m jobscheduler-framework" pass
+ - [ ] "m framework" pass
+ - [ ] "m service" pass
+- [ ] Move proto
+ - No, couldn't do it, because it's referred to by incidentd_proto
+- [ ] Move service
+ - [X] Move code (done, but it won't compile yet)
+ - [X] Make build file
+ - [X] "m service" pass
+ - [X] "m jobscheduler-service" pass
+ - To make it pass, jobscheduler-service has to link services.jar too. Many dependencies.
+- [ ] Move this into `frameworks/apex/jobscheduler/...`. Currently it's in `frameworks/base/apex/...`
+because `frameworks/apex/` is not a part of any git projects. (and also working on multiple
+projects is a pain.)
+
+
+## Problems
+- Couldn't move dumpsys proto files. They are used by incidentd_proto, which is in the platform
+ (not updatable).
+ - One idea is *not* to move the proto files into apex but keep them in the platform.
+ Then we make sure to extend the proto files in a backward-compat way (which we do anyway)
+ and always use the latest file from the JS apex.
+
+- There are a lot of build tasks that use "framework.jar". (Examples: hiddenapi-greylist.txt check,
+ update-api / public API check and SDK stub (android.jar) creation)
+ To make the downstream build modules buildable, we need to include js-framework.jar in
+ framework.jar. However it turned out to be tricky because soong has special logic for "framework"
+ and "framework.jar".
+ i.e. Conceptually, we can do it by renaming `framework` to `framework-minus-jobscheduler`, build
+ `jobscheduler-framework` with `framework-minus-jobscheduler`, and create `framework` by merging
+ `framework-minus-jobscheduler` and `jobscheduler-framework`.
+ However it didn't quite work because of the special casing.
+
+- JS-service uses a lot of other code in `services`, so it needs to link services.core.jar e.g.
+ - Common system service code, e.g. `com.android.server.SystemService`
+ - Common utility code, e.g. `FgThread` and `IoThread`
+ - Other system services such as `DeviceIdleController` and `ActivityManagerService`
+ - Server side singleton. `AppStateTracker`
+ - `DeviceIdleController.LocalService`, which is a local service but there's no interface class.
+ - `XxxInternal` interfaces that are not in the framework side. -> We should be able to move them.
diff --git a/apex/jobscheduler/service/Android.bp b/apex/jobscheduler/service/Android.bp
new file mode 100644
index 000000000000..ca6dc45a356a
--- /dev/null
+++ b/apex/jobscheduler/service/Android.bp
@@ -0,0 +1,15 @@
+// Job Scheduler Service jar, which will eventually be put in the jobscheduler mainline apex.
+// jobscheduler-service needs to be added to PRODUCT_SYSTEM_SERVER_JARS.
+java_library {
+ name: "jobscheduler-service",
+ installable: true,
+
+ srcs: [
+ "java/**/*.java",
+ ],
+
+ libs: [
+ "framework",
+ "services.core",
+ ],
+}
diff --git a/services/core/java/com/android/server/job/GrantedUriPermissions.java b/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java
index 005b1892f6a6..005b1892f6a6 100644
--- a/services/core/java/com/android/server/job/GrantedUriPermissions.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java
diff --git a/services/core/java/com/android/server/job/JobCompletedListener.java b/apex/jobscheduler/service/java/com/android/server/job/JobCompletedListener.java
index 34ba753b3daa..34ba753b3daa 100644
--- a/services/core/java/com/android/server/job/JobCompletedListener.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobCompletedListener.java
diff --git a/services/core/java/com/android/server/job/JobConcurrencyManager.java b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
index bec1947df228..bec1947df228 100644
--- a/services/core/java/com/android/server/job/JobConcurrencyManager.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
diff --git a/services/core/java/com/android/server/job/JobPackageTracker.java b/apex/jobscheduler/service/java/com/android/server/job/JobPackageTracker.java
index e28e5bd6c53d..e28e5bd6c53d 100644
--- a/services/core/java/com/android/server/job/JobPackageTracker.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobPackageTracker.java
diff --git a/services/core/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
index e44e9022bf5d..e44e9022bf5d 100644
--- a/services/core/java/com/android/server/job/JobSchedulerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
diff --git a/services/core/java/com/android/server/job/JobSchedulerShellCommand.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerShellCommand.java
index e3614413121a..e3614413121a 100644
--- a/services/core/java/com/android/server/job/JobSchedulerShellCommand.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerShellCommand.java
diff --git a/services/core/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java
index 7da128f9d3ec..7da128f9d3ec 100644
--- a/services/core/java/com/android/server/job/JobServiceContext.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java
diff --git a/services/core/java/com/android/server/job/JobStore.java b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java
index d69faf37397c..d69faf37397c 100644
--- a/services/core/java/com/android/server/job/JobStore.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java
diff --git a/services/core/java/com/android/server/job/StateChangedListener.java b/apex/jobscheduler/service/java/com/android/server/job/StateChangedListener.java
index 87bfc27a715f..87bfc27a715f 100644
--- a/services/core/java/com/android/server/job/StateChangedListener.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/StateChangedListener.java
diff --git a/services/core/java/com/android/server/job/controllers/BackgroundJobsController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/BackgroundJobsController.java
index b698e5bf4403..b698e5bf4403 100644
--- a/services/core/java/com/android/server/job/controllers/BackgroundJobsController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/BackgroundJobsController.java
diff --git a/services/core/java/com/android/server/job/controllers/BatteryController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/BatteryController.java
index 46658ad33b85..46658ad33b85 100644
--- a/services/core/java/com/android/server/job/controllers/BatteryController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/BatteryController.java
diff --git a/services/core/java/com/android/server/job/controllers/ConnectivityController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java
index f8cf6ae04950..f8cf6ae04950 100644
--- a/services/core/java/com/android/server/job/controllers/ConnectivityController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java
diff --git a/services/core/java/com/android/server/job/controllers/ContentObserverController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java
index a775cf5a671c..a775cf5a671c 100644
--- a/services/core/java/com/android/server/job/controllers/ContentObserverController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java
diff --git a/services/core/java/com/android/server/job/controllers/DeviceIdleJobsController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/DeviceIdleJobsController.java
index 127a5c876657..127a5c876657 100644
--- a/services/core/java/com/android/server/job/controllers/DeviceIdleJobsController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/DeviceIdleJobsController.java
diff --git a/services/core/java/com/android/server/job/controllers/IdleController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java
index e3c311f9e327..e3c311f9e327 100644
--- a/services/core/java/com/android/server/job/controllers/IdleController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java
diff --git a/services/core/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
index 6f2b33453891..6f2b33453891 100644
--- a/services/core/java/com/android/server/job/controllers/JobStatus.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
diff --git a/services/core/java/com/android/server/job/controllers/QuotaController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
index b8cfac4d4206..b8cfac4d4206 100644
--- a/services/core/java/com/android/server/job/controllers/QuotaController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
diff --git a/services/core/java/com/android/server/job/controllers/StateController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java
index 51be38be990d..51be38be990d 100644
--- a/services/core/java/com/android/server/job/controllers/StateController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java
diff --git a/services/core/java/com/android/server/job/controllers/StorageController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/StorageController.java
index 51187dff4d59..51187dff4d59 100644
--- a/services/core/java/com/android/server/job/controllers/StorageController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/StorageController.java
diff --git a/services/core/java/com/android/server/job/controllers/TimeController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java
index 4c11947212f9..4c11947212f9 100644
--- a/services/core/java/com/android/server/job/controllers/TimeController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java
diff --git a/services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java
index 82c33f548c15..82c33f548c15 100644
--- a/services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java
diff --git a/services/core/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java
index a85bd4066ad3..a85bd4066ad3 100644
--- a/services/core/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java
diff --git a/services/core/java/com/android/server/job/controllers/idle/IdlenessListener.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/IdlenessListener.java
index 7ffd7cd3e2e0..7ffd7cd3e2e0 100644
--- a/services/core/java/com/android/server/job/controllers/idle/IdlenessListener.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/IdlenessListener.java
diff --git a/services/core/java/com/android/server/job/controllers/idle/IdlenessTracker.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/IdlenessTracker.java
index 09f01c2e4113..09f01c2e4113 100644
--- a/services/core/java/com/android/server/job/controllers/idle/IdlenessTracker.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/IdlenessTracker.java
diff --git a/config/preloaded-classes b/config/preloaded-classes
index 03e3b82c75f7..ea50999e9d56 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -563,6 +563,7 @@ android.app.job.JobInfo
android.app.job.JobParameters$1
android.app.job.JobParameters
android.app.job.JobScheduler
+android.app.job.JobSchedulerFrameworkInitializer
android.app.job.JobService$1
android.app.job.JobService
android.app.job.JobServiceEngine$JobHandler
diff --git a/config/preloaded-classes-extra b/config/preloaded-classes-extra
index 09f393ad4844..94849fb97433 100644
--- a/config/preloaded-classes-extra
+++ b/config/preloaded-classes-extra
@@ -1,3 +1,6 @@
+# JobSchedulerFrameworkInitializer must always be preloaded because it registers the job scheduler
+# service wrapper to SystemServiceRegistry.
+android.app.job.JobSchedulerFrameworkInitializer
android.icu.impl.coll.CollationRoot
android.icu.impl.IDNA2003
android.icu.impl.number.Parse
diff --git a/core/java/android/app/JobSchedulerImpl.java b/core/java/android/app/JobSchedulerImpl.java
index e8770185305c..924a70809747 100644
--- a/core/java/android/app/JobSchedulerImpl.java
+++ b/core/java/android/app/JobSchedulerImpl.java
@@ -26,6 +26,9 @@ import android.os.RemoteException;
import java.util.List;
+
+// APEX NOTE: Class path referred to by robolectric, so can't move it.
+
/**
* Concrete implementation of the JobScheduler interface
* @hide
@@ -33,7 +36,7 @@ import java.util.List;
public class JobSchedulerImpl extends JobScheduler {
IJobScheduler mBinder;
- /* package */ JobSchedulerImpl(IJobScheduler binder) {
+ public JobSchedulerImpl(IJobScheduler binder) {
mBinder = binder;
}
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index cfe2cf09ae19..5034b535944c 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -23,8 +23,6 @@ import android.app.admin.DevicePolicyManager;
import android.app.admin.IDevicePolicyManager;
import android.app.contentsuggestions.ContentSuggestionsManager;
import android.app.contentsuggestions.IContentSuggestionsManager;
-import android.app.job.IJobScheduler;
-import android.app.job.JobScheduler;
import android.app.prediction.AppPredictionManager;
import android.app.role.RoleControllerManager;
import android.app.role.RoleManager;
@@ -198,12 +196,15 @@ import com.android.internal.os.IDropBoxManagerService;
import com.android.internal.policy.PhoneLayoutInflater;
import java.util.Map;
+import java.util.function.Function;
/**
* Manages all of the system services that can be returned by {@link Context#getSystemService}.
* Used by {@link ContextImpl}.
+ *
+ * @hide
*/
-final class SystemServiceRegistry {
+public final class SystemServiceRegistry {
private static final String TAG = "SystemServiceRegistry";
// Service registry information.
@@ -979,14 +980,6 @@ final class SystemServiceRegistry {
return new NetworkStatsManager(ctx.getOuterContext());
}});
- registerService(Context.JOB_SCHEDULER_SERVICE, JobScheduler.class,
- new StaticServiceFetcher<JobScheduler>() {
- @Override
- public JobScheduler createService() throws ServiceNotFoundException {
- IBinder b = ServiceManager.getServiceOrThrow(Context.JOB_SCHEDULER_SERVICE);
- return new JobSchedulerImpl(IJobScheduler.Stub.asInterface(b));
- }});
-
registerService(Context.PERSISTENT_DATA_BLOCK_SERVICE, PersistentDataBlockManager.class,
new StaticServiceFetcher<PersistentDataBlockManager>() {
@Override
@@ -1324,6 +1317,22 @@ final class SystemServiceRegistry {
}
/**
+ * APEX modules will use it to register their service wrapper.
+ *
+ * @hide
+ */
+ public static <T> void registerStaticService(String serviceName, Class<T> serviceClass,
+ Function<IBinder, T> serviceFetcher) {
+ registerService(serviceName, serviceClass,
+ new StaticServiceFetcher<T>() {
+ @Override
+ public T createService() throws ServiceNotFoundException {
+ IBinder b = ServiceManager.getServiceOrThrow(serviceName);
+ return serviceFetcher.apply(b);
+ }});
+ }
+
+ /**
* Base interface for classes that fetch services.
* These objects must only be created during static initialization.
*/
diff --git a/core/java/android/app/job/JobSchedulerFrameworkInitializer.java b/core/java/android/app/job/JobSchedulerFrameworkInitializer.java
new file mode 100644
index 000000000000..cf2979c96191
--- /dev/null
+++ b/core/java/android/app/job/JobSchedulerFrameworkInitializer.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app.job;
+
+import android.app.JobSchedulerImpl;
+import android.app.SystemServiceRegistry;
+import android.content.Context;
+
+/**
+ * This class needs to be pre-loaded by zygote. This is where the job scheduler service wrapper
+ * is registered.
+ *
+ * @hide
+ */
+public class JobSchedulerFrameworkInitializer {
+ static {
+ SystemServiceRegistry.registerStaticService(
+ Context.JOB_SCHEDULER_SERVICE, JobScheduler.class,
+ (b) -> new JobSchedulerImpl(IJobScheduler.Stub.asInterface(b)));
+ }
+}
diff --git a/services/core/java/com/android/server/job/JobSchedulerInternal.java b/core/java/com/android/server/job/JobSchedulerInternal.java
index 425ec473bc8e..425ec473bc8e 100644
--- a/services/core/java/com/android/server/job/JobSchedulerInternal.java
+++ b/core/java/com/android/server/job/JobSchedulerInternal.java
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index a04875f1a283..565ba671a6c4 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -101,7 +101,6 @@ import com.android.server.incident.IncidentCompanionService;
import com.android.server.input.InputManagerService;
import com.android.server.inputmethod.InputMethodManagerService;
import com.android.server.inputmethod.MultiClientInputMethodManagerService;
-import com.android.server.job.JobSchedulerService;
import com.android.server.lights.LightsService;
import com.android.server.media.MediaResourceMonitorService;
import com.android.server.media.MediaRouterService;
@@ -1569,8 +1568,9 @@ public final class SystemServer {
mSystemServiceManager.startService(ColorDisplayService.class);
t.traceEnd();
+ // TODO(aml-jobscheduler): Think about how to do it properly.
t.traceBegin("StartJobScheduler");
- mSystemServiceManager.startService(JobSchedulerService.class);
+ mSystemServiceManager.startService(JOB_SCHEDULER_SERVICE_CLASS);
t.traceEnd();
t.traceBegin("StartSoundTrigger");
diff --git a/services/tests/mockingservicestests/Android.bp b/services/tests/mockingservicestests/Android.bp
index 2baa4d81515a..ad94e6159b87 100644
--- a/services/tests/mockingservicestests/Android.bp
+++ b/services/tests/mockingservicestests/Android.bp
@@ -20,6 +20,7 @@ android_test {
static_libs: [
"services.core",
"services.net",
+ "jobscheduler-service",
"androidx.test.runner",
"mockito-target-extended-minus-junit4",
"platform-test-annotations",
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index 869913dec646..856e67c4eb4f 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -39,6 +39,7 @@ android_test {
"platformprotosnano",
"hamcrest-library",
"servicestests-utils",
+ "jobscheduler-service",
],
aidl: {
diff --git a/tests/JobSchedulerPerfTests/Android.bp b/tests/JobSchedulerPerfTests/Android.bp
index 22308076d4ff..c51b811f0735 100644
--- a/tests/JobSchedulerPerfTests/Android.bp
+++ b/tests/JobSchedulerPerfTests/Android.bp
@@ -19,6 +19,7 @@ android_test {
"androidx.test.rules",
"apct-perftests-utils",
"services",
+ "jobscheduler-service",
],
platform_apis: true,
certificate: "platform",