Update modules-utils-package-state to fit ART's use cases.

- Change min_sdk_version to 31.
- Make methods static.
- Rename "isOptimizable" to "isDexoptable".

Bug: 177273468
Bug: 265248684
Test: atest ArtServiceTests
Ignore-AOSP-First: ART Services.
Change-Id: I26c3bd60c78367ae01391049283c75c63789f432
diff --git a/java/com/android/modules/utils/pm/Android.bp b/java/com/android/modules/utils/pm/Android.bp
index 39f498b..1b705ca 100644
--- a/java/com/android/modules/utils/pm/Android.bp
+++ b/java/com/android/modules/utils/pm/Android.bp
@@ -22,6 +22,8 @@
     srcs: ["PackageStateModulesUtils.java"],
     defaults: ["modules-utils-defaults"],
     sdk_version: "system_server_current",
-    min_sdk_version: "UpsideDownCake",
-    libs: ["framework-annotations-lib"],
+    min_sdk_version: "31",
+    libs: [
+        "androidx.annotation_annotation",
+    ],
 }
diff --git a/java/com/android/modules/utils/pm/PackageStateModulesUtils.java b/java/com/android/modules/utils/pm/PackageStateModulesUtils.java
index ec4b39f..34fd16b 100644
--- a/java/com/android/modules/utils/pm/PackageStateModulesUtils.java
+++ b/java/com/android/modules/utils/pm/PackageStateModulesUtils.java
@@ -17,19 +17,24 @@
 package com.android.modules.utils.pm;
 
 import android.annotation.NonNull;
+import android.os.Build;
 import android.text.TextUtils;
 
+import androidx.annotation.RequiresApi;
+
 import com.android.server.pm.pkg.AndroidPackageSplit;
 import com.android.server.pm.pkg.PackageState;
 
 import java.util.List;
 
 public class PackageStateModulesUtils {
+    private PackageStateModulesUtils() {}
 
     /**
-     * @return True if the package is optimizable by dexopt.
+     * @return True if the package is dexoptable.
      */
-    public boolean isOptimizable(@NonNull PackageState packageState) {
+    @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
+    public static boolean isDexoptable(@NonNull PackageState packageState) {
         if (packageState.isApex() || "android".equals(packageState.getPackageName())
                 || packageState.getAppId() <= 0) {
             return false;
@@ -59,8 +64,9 @@
      * @param codeOnly Whether to filter to only code usages, ignoring resource only usages.
      * @return True if the package is loadable.
      */
-    public boolean isLoadableInOtherProcesses(@NonNull PackageState packageState,
-            boolean codeOnly) {
+    @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
+    public static boolean isLoadableInOtherProcesses(
+            @NonNull PackageState packageState, boolean codeOnly) {
         var pkg = packageState.getAndroidPackage();
         if (pkg == null) {
             return false;