Implement app downgrading.

Also:
- Filter the default package list by last active time and sort it in
  descending order.

Bug: 255565888
Test: atest ArtServiceTests
Test: -
  1. Fill the storage space by `fallocate`.
  2. adb shell setprop pm.dexopt.downgrade_after_inactive_days 1
  3. adb shell pm art bg-dexopt-job
  4. See some apps being downgraded and the other apps being optimized.
Ignore-AOSP-First: ART Services.
Change-Id: I8594f67aa10da5bc907c92bb7b0d1aaf095d3c33
diff --git a/libartservice/service/java/com/android/server/art/DexOptimizer.java b/libartservice/service/java/com/android/server/art/DexOptimizer.java
index c9b5f8d..6f3f7f1 100644
--- a/libartservice/service/java/com/android/server/art/DexOptimizer.java
+++ b/libartservice/service/java/com/android/server/art/DexOptimizer.java
@@ -652,6 +652,12 @@
 
         public Injector(@NonNull Context context) {
             mContext = context;
+
+            // Call the getters for various dependencies, to ensure correct initialization order.
+            getUserManager();
+            getDexUseManager();
+            getStorageManager();
+            ArtModuleServiceInitializer.getArtModuleServiceManager();
         }
 
         public boolean isSystemUiPackage(@NonNull String packageName) {