Move package parsing to services.jar
This facilitates exposing the Parsed_ classes as
@SystemApi(client = SYSTEM_SERVER) while keeping everything inside
services.jar rather than having it split across both jars.
This reverts getPackageArchiveInfo to use legacy PackageParser, since
framework.jar can no longer access the moved classes.
Bug: 214038417
Test: presubmit, no logic changes
Change-Id: I152d70fb4f643d32efb012cfb20b0fbc5f88f2d8
diff --git a/apct-tests/perftests/packagemanager/Android.bp b/apct-tests/perftests/packagemanager/Android.bp
index fc70219..81cec91 100644
--- a/apct-tests/perftests/packagemanager/Android.bp
+++ b/apct-tests/perftests/packagemanager/Android.bp
@@ -10,7 +10,10 @@
android_test {
name: "PackageManagerPerfTests",
- srcs: ["src/**/*.java"],
+ srcs: [
+ "src/**/*.java",
+ "src/**/*.kt",
+ ],
static_libs: [
"platform-compat-test-rules",
@@ -21,6 +24,7 @@
"apct-perftests-utils",
"collector-device-lib-platform",
"cts-install-lib-java",
+ "services.core",
],
libs: ["android.test.base"],
diff --git a/apct-tests/perftests/core/src/android/os/PackageParsingPerfTest.kt b/apct-tests/perftests/packagemanager/src/android/os/PackageParsingPerfTest.kt
similarity index 92%
rename from apct-tests/perftests/core/src/android/os/PackageParsingPerfTest.kt
rename to apct-tests/perftests/packagemanager/src/android/os/PackageParsingPerfTest.kt
index f9ddf9a..e873514 100644
--- a/apct-tests/perftests/core/src/android/os/PackageParsingPerfTest.kt
+++ b/apct-tests/perftests/packagemanager/src/android/os/PackageParsingPerfTest.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020 The Android Open Source Project
+ * Copyright (C) 2022 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.
@@ -19,9 +19,6 @@
import android.content.pm.PackageParser
import android.content.pm.PackageParserCacheHelper.ReadHelper
import android.content.pm.PackageParserCacheHelper.WriteHelper
-import android.content.pm.parsing.ParsingPackageImpl
-import android.content.pm.parsing.ParsingPackageRead
-import android.content.pm.parsing.ParsingPackageUtils
import android.content.pm.parsing.result.ParseInput
import android.content.pm.parsing.result.ParseTypeImpl
import android.content.res.TypedArray
@@ -29,6 +26,8 @@
import android.perftests.utils.PerfStatusReporter
import androidx.test.filters.LargeTest
import com.android.internal.util.ConcurrentUtils
+import com.android.server.pm.pkg.parsing.ParsingPackageImpl
+import com.android.server.pm.pkg.parsing.ParsingPackageUtils
import libcore.io.IoUtils
import org.junit.Rule
import org.junit.Test
@@ -42,7 +41,7 @@
@LargeTest
@RunWith(Parameterized::class)
-class PackageParsingPerfTest {
+public class PackageParsingPerfTest {
companion object {
private const val PARALLEL_QUEUE_CAPACITY = 10
@@ -196,8 +195,12 @@
// For testing, just disable enforcement to avoid hooking up to compat framework
ParseTypeImpl(ParseInput.Callback { _, _, _ -> false })
}
- val parser = ParsingPackageUtils(false, null, null, emptyList(),
- object : ParsingPackageUtils.Callback {
+ val parser = ParsingPackageUtils(false,
+ null,
+ null,
+ emptyList(),
+ object :
+ ParsingPackageUtils.Callback {
override fun hasFeature(feature: String) = true
override fun startParsingPackage(
@@ -206,7 +209,12 @@
path: String,
manifestArray: TypedArray,
isCoreApp: Boolean
- ) = ParsingPackageImpl(packageName, baseApkPath, path, manifestArray)
+ ) = ParsingPackageImpl(
+ packageName,
+ baseApkPath,
+ path,
+ manifestArray
+ )
})
override fun parseImpl(file: File) =
@@ -268,6 +276,7 @@
* Re-implementation of the server side PackageCacher, as it's inaccessible here.
*/
class PackageCacher2(cacheDir: File) : PackageCacher<ParsingPackageImpl>(cacheDir) {
- override fun fromParcel(parcel: Parcel) = ParsingPackageImpl(parcel)
+ override fun fromParcel(parcel: Parcel) =
+ ParsingPackageImpl(parcel)
}
}