Merge "[pm] use list caches instead of real lists when snapshotting" into tm-qpr-dev

This commit is contained in:
Song Chun Fan
2022-11-03 17:35:17 +00:00
committed by Android (Google) Code Review

View File

@@ -456,19 +456,24 @@ public final class Settings implements Watchable, Snappable {
// The user's preferred activities associated with particular intent // The user's preferred activities associated with particular intent
// filters. // filters.
@Watched @Watched
private final WatchedSparseArray<PreferredIntentResolver> private final WatchedSparseArray<PreferredIntentResolver> mPreferredActivities;
mPreferredActivities = new WatchedSparseArray<>(); private final SnapshotCache<WatchedSparseArray<PreferredIntentResolver>>
mPreferredActivitiesSnapshot;
// The persistent preferred activities of the user's profile/device owner // The persistent preferred activities of the user's profile/device owner
// associated with particular intent filters. // associated with particular intent filters.
@Watched @Watched
private final WatchedSparseArray<PersistentPreferredIntentResolver> private final WatchedSparseArray<PersistentPreferredIntentResolver>
mPersistentPreferredActivities = new WatchedSparseArray<>(); mPersistentPreferredActivities;
private final SnapshotCache<WatchedSparseArray<PersistentPreferredIntentResolver>>
mPersistentPreferredActivitiesSnapshot;
// For every user, it is used to find to which other users the intent can be forwarded. // For every user, it is used to find to which other users the intent can be forwarded.
@Watched @Watched
private final WatchedSparseArray<CrossProfileIntentResolver> private final WatchedSparseArray<CrossProfileIntentResolver> mCrossProfileIntentResolvers;
mCrossProfileIntentResolvers = new WatchedSparseArray<>(); private final SnapshotCache<WatchedSparseArray<CrossProfileIntentResolver>>
mCrossProfileIntentResolversSnapshot;
@Watched @Watched
final WatchedArrayMap<String, SharedUserSetting> mSharedUsers = new WatchedArrayMap<>(); final WatchedArrayMap<String, SharedUserSetting> mSharedUsers = new WatchedArrayMap<>();
@@ -477,11 +482,12 @@ public final class Settings implements Watchable, Snappable {
// For reading/writing settings file. // For reading/writing settings file.
@Watched @Watched
private final WatchedArrayList<Signature> mPastSignatures = private final WatchedArrayList<Signature> mPastSignatures;
new WatchedArrayList<Signature>(); private final SnapshotCache<WatchedArrayList<Signature>> mPastSignaturesSnapshot;
@Watched @Watched
private final WatchedArrayMap<Long, Integer> mKeySetRefs = private final WatchedArrayMap<Long, Integer> mKeySetRefs;
new WatchedArrayMap<Long, Integer>(); private final SnapshotCache<WatchedArrayMap<Long, Integer>> mKeySetRefsSnapshot;
// Packages that have been renamed since they were first installed. // Packages that have been renamed since they were first installed.
// Keys are the new names of the packages, values are the original // Keys are the new names of the packages, values are the original
@@ -512,7 +518,8 @@ public final class Settings implements Watchable, Snappable {
* scanning to make it less confusing. * scanning to make it less confusing.
*/ */
@Watched @Watched
private final WatchedArrayList<PackageSetting> mPendingPackages = new WatchedArrayList<>(); private final WatchedArrayList<PackageSetting> mPendingPackages;
private final SnapshotCache<WatchedArrayList<PackageSetting>> mPendingPackagesSnapshot;
private final File mSystemDir; private final File mSystemDir;
@@ -584,6 +591,26 @@ public final class Settings implements Watchable, Snappable {
mInstallerPackagesSnapshot = mInstallerPackagesSnapshot =
new SnapshotCache.Auto<>(mInstallerPackages, mInstallerPackages, new SnapshotCache.Auto<>(mInstallerPackages, mInstallerPackages,
"Settings.mInstallerPackages"); "Settings.mInstallerPackages");
mPreferredActivities = new WatchedSparseArray<>();
mPreferredActivitiesSnapshot = new SnapshotCache.Auto<>(mPreferredActivities,
mPreferredActivities, "Settings.mPreferredActivities");
mPersistentPreferredActivities = new WatchedSparseArray<>();
mPersistentPreferredActivitiesSnapshot = new SnapshotCache.Auto<>(
mPersistentPreferredActivities, mPersistentPreferredActivities,
"Settings.mPersistentPreferredActivities");
mCrossProfileIntentResolvers = new WatchedSparseArray<>();
mCrossProfileIntentResolversSnapshot = new SnapshotCache.Auto<>(
mCrossProfileIntentResolvers, mCrossProfileIntentResolvers,
"Settings.mCrossProfileIntentResolvers");
mPastSignatures = new WatchedArrayList<>();
mPastSignaturesSnapshot = new SnapshotCache.Auto<>(mPastSignatures, mPastSignatures,
"Settings.mPastSignatures");
mKeySetRefs = new WatchedArrayMap<>();
mKeySetRefsSnapshot = new SnapshotCache.Auto<>(mKeySetRefs, mKeySetRefs,
"Settings.mKeySetRefs");
mPendingPackages = new WatchedArrayList<>();
mPendingPackagesSnapshot = new SnapshotCache.Auto<>(mPendingPackages, mPendingPackages,
"Settings.mPendingPackages");
mKeySetManagerService = new KeySetManagerService(mPackages); mKeySetManagerService = new KeySetManagerService(mPackages);
// Test-only handler working on background thread. // Test-only handler working on background thread.
@@ -624,6 +651,26 @@ public final class Settings implements Watchable, Snappable {
mInstallerPackagesSnapshot = mInstallerPackagesSnapshot =
new SnapshotCache.Auto<>(mInstallerPackages, mInstallerPackages, new SnapshotCache.Auto<>(mInstallerPackages, mInstallerPackages,
"Settings.mInstallerPackages"); "Settings.mInstallerPackages");
mPreferredActivities = new WatchedSparseArray<>();
mPreferredActivitiesSnapshot = new SnapshotCache.Auto<>(mPreferredActivities,
mPreferredActivities, "Settings.mPreferredActivities");
mPersistentPreferredActivities = new WatchedSparseArray<>();
mPersistentPreferredActivitiesSnapshot = new SnapshotCache.Auto<>(
mPersistentPreferredActivities, mPersistentPreferredActivities,
"Settings.mPersistentPreferredActivities");
mCrossProfileIntentResolvers = new WatchedSparseArray<>();
mCrossProfileIntentResolversSnapshot = new SnapshotCache.Auto<>(
mCrossProfileIntentResolvers, mCrossProfileIntentResolvers,
"Settings.mCrossProfileIntentResolvers");
mPastSignatures = new WatchedArrayList<>();
mPastSignaturesSnapshot = new SnapshotCache.Auto<>(mPastSignatures, mPastSignatures,
"Settings.mPastSignatures");
mKeySetRefs = new WatchedArrayMap<>();
mKeySetRefsSnapshot = new SnapshotCache.Auto<>(mKeySetRefs, mKeySetRefs,
"Settings.mKeySetRefs");
mPendingPackages = new WatchedArrayList<>();
mPendingPackagesSnapshot = new SnapshotCache.Auto<>(mPendingPackages, mPendingPackages,
"Settings.mPendingPackages");
mKeySetManagerService = new KeySetManagerService(mPackages); mKeySetManagerService = new KeySetManagerService(mPackages);
mHandler = handler; mHandler = handler;
@@ -700,24 +747,27 @@ public final class Settings implements Watchable, Snappable {
mBlockUninstallPackages.snapshot(r.mBlockUninstallPackages); mBlockUninstallPackages.snapshot(r.mBlockUninstallPackages);
mVersion.putAll(r.mVersion); mVersion.putAll(r.mVersion);
mVerifierDeviceIdentity = r.mVerifierDeviceIdentity; mVerifierDeviceIdentity = r.mVerifierDeviceIdentity;
WatchedSparseArray.snapshot( mPreferredActivities = r.mPreferredActivitiesSnapshot.snapshot();
mPreferredActivities, r.mPreferredActivities); mPreferredActivitiesSnapshot = new SnapshotCache.Sealed<>();
WatchedSparseArray.snapshot( mPersistentPreferredActivities = r.mPersistentPreferredActivitiesSnapshot.snapshot();
mPersistentPreferredActivities, r.mPersistentPreferredActivities); mPersistentPreferredActivitiesSnapshot = new SnapshotCache.Sealed<>();
WatchedSparseArray.snapshot( mCrossProfileIntentResolvers = r.mCrossProfileIntentResolversSnapshot.snapshot();
mCrossProfileIntentResolvers, r.mCrossProfileIntentResolvers); mCrossProfileIntentResolversSnapshot = new SnapshotCache.Sealed<>();
mSharedUsers.snapshot(r.mSharedUsers); mSharedUsers.snapshot(r.mSharedUsers);
mAppIds = r.mAppIds.snapshot(); mAppIds = r.mAppIds.snapshot();
WatchedArrayList.snapshot(
mPastSignatures, r.mPastSignatures); mPastSignatures = r.mPastSignaturesSnapshot.snapshot();
WatchedArrayMap.snapshot( mPastSignaturesSnapshot = new SnapshotCache.Sealed<>();
mKeySetRefs, r.mKeySetRefs); mKeySetRefs = r.mKeySetRefsSnapshot.snapshot();
mKeySetRefsSnapshot = new SnapshotCache.Sealed<>();
mRenamedPackages.snapshot(r.mRenamedPackages); mRenamedPackages.snapshot(r.mRenamedPackages);
mNextAppLinkGeneration.snapshot(r.mNextAppLinkGeneration); mNextAppLinkGeneration.snapshot(r.mNextAppLinkGeneration);
mDefaultBrowserApp.snapshot(r.mDefaultBrowserApp); mDefaultBrowserApp.snapshot(r.mDefaultBrowserApp);
// mReadMessages // mReadMessages
WatchedArrayList.snapshot( mPendingPackages = r.mPendingPackagesSnapshot.snapshot();
mPendingPackages, r.mPendingPackages); mPendingPackagesSnapshot = new SnapshotCache.Sealed<>();
mSystemDir = null; mSystemDir = null;
// mKeySetManagerService; // mKeySetManagerService;
mPermissions = r.mPermissions; mPermissions = r.mPermissions;