Remove Class.forName uses from reflection-based wrappers.
Object.getClass returns the implementation class, which has all the
methods, so we don't need Class.forName.
Bug: 229268202
Test: adb shell pm art optimize-package -m speed -f \
com.google.android.youtube
Ignore-AOSP-First: ART Services.
Change-Id: If5deb179c84ad9ee617538627bccebb5535ea407
diff --git a/libartservice/service/java/com/android/server/art/wrapper/AndroidPackageApi.java b/libartservice/service/java/com/android/server/art/wrapper/AndroidPackageApi.java
index 66f82a6..a6431b0 100644
--- a/libartservice/service/java/com/android/server/art/wrapper/AndroidPackageApi.java
+++ b/libartservice/service/java/com/android/server/art/wrapper/AndroidPackageApi.java
@@ -70,9 +70,7 @@
@NonNull
public int[] getSplitFlags() {
try {
- Class<?> parsingPackageImplClass =
- Class.forName("com.android.server.pm.pkg.parsing.ParsingPackageImpl");
- return (int[]) parsingPackageImplClass.getMethod("getSplitFlags").invoke(mPkg);
+ return (int[]) mPkg.getClass().getMethod("getSplitFlags").invoke(mPkg);
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
diff --git a/libartservice/service/java/com/android/server/art/wrapper/PackageManagerLocal.java b/libartservice/service/java/com/android/server/art/wrapper/PackageManagerLocal.java
index 650d29c..d6afa8f 100644
--- a/libartservice/service/java/com/android/server/art/wrapper/PackageManagerLocal.java
+++ b/libartservice/service/java/com/android/server/art/wrapper/PackageManagerLocal.java
@@ -66,8 +66,7 @@
try {
int userId = (int) UserHandle.class.getMethod("getUserId", int.class)
.invoke(null, callingUid);
- Class<?> computerClass = Class.forName("com.android.server.pm.Computer");
- Object packageState = computerClass
+ Object packageState = snapshot.getClass()
.getMethod("getPackageStateForInstalledAndFiltered",
String.class, int.class, int.class)
.invoke(snapshot, packageName, callingUid, userId);
diff --git a/libartservice/service/java/com/android/server/art/wrapper/PackageState.java b/libartservice/service/java/com/android/server/art/wrapper/PackageState.java
index 2235514..c591274 100644
--- a/libartservice/service/java/com/android/server/art/wrapper/PackageState.java
+++ b/libartservice/service/java/com/android/server/art/wrapper/PackageState.java
@@ -85,9 +85,9 @@
+ ". This should never happen.");
}
- Class<?> androidPackageHiddenClass =
- Class.forName("com.android.server.pm.parsing.pkg.AndroidPackageHidden");
- return (String) androidPackageHiddenClass.getMethod("getPrimaryCpuAbi")
+ return (String) pkg.getRealInstance()
+ .getClass()
+ .getMethod("getPrimaryCpuAbi")
.invoke(pkg.getRealInstance());
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
@@ -113,9 +113,9 @@
+ ". This should never happen.");
}
- Class<?> androidPackageHiddenClass =
- Class.forName("com.android.server.pm.parsing.pkg.AndroidPackageHidden");
- return (String) androidPackageHiddenClass.getMethod("getSecondaryCpuAbi")
+ return (String) pkg.getRealInstance()
+ .getClass()
+ .getMethod("getSecondaryCpuAbi")
.invoke(pkg.getRealInstance());
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);