diff options
-rw-r--r-- | apex/jobscheduler/README_js-mainline.md | 51 | ||||
-rw-r--r-- | apex/jobscheduler/service/Android.bp | 15 | ||||
-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-classes | 1 | ||||
-rw-r--r-- | config/preloaded-classes-extra | 3 | ||||
-rw-r--r-- | core/java/android/app/JobSchedulerImpl.java | 5 | ||||
-rw-r--r-- | core/java/android/app/SystemServiceRegistry.java | 31 | ||||
-rw-r--r-- | core/java/android/app/job/JobSchedulerFrameworkInitializer.java | 35 | ||||
-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.java | 4 | ||||
-rw-r--r-- | services/tests/mockingservicestests/Android.bp | 1 | ||||
-rw-r--r-- | services/tests/servicestests/Android.bp | 1 | ||||
-rw-r--r-- | tests/JobSchedulerPerfTests/Android.bp | 1 |
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 9fe44dc7b2f0..8161ac90ae1c 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -102,7 +102,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; @@ -1575,8 +1574,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 0614b3a40cb2..b37e4602ed97 100644 --- a/services/tests/servicestests/Android.bp +++ b/services/tests/servicestests/Android.bp @@ -40,6 +40,7 @@ android_test { "hamcrest-library", "servicestests-utils", "xml-writer-device-lib", + "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", |