From: Calin Juravle Date: Fri, 28 Jul 2017 23:13:35 +0000 (-0700) Subject: Save PackageDexUsage on PMS shutdown X-Git-Tag: android-x86-9.0-r1~339^2^2~6^2~4^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c1fe2ce8493b0750aaa210531fda0766b73bad16;p=android-x86%2Fframeworks-base.git Save PackageDexUsage on PMS shutdown This ensures that we persist the in memory data between restarts (makes testing much easier). (cherry picked from commit 14876bd21a4a4e7d78d36f910493269f14b2e905) Bug: 64151900 Test: Manual, flash + restart + check the dex usage file (cherry picked from commit 6ef7f0b8c6e72e849a220513425a9fd37804af90) Merged-In: I7bd99fc03c3a40cbbf5d615886f857b5f84f438c Change-Id: I7bd99fc03c3a40cbbf5d615886f857b5f84f438c --- diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 6b8a41536487..8f4e8de987e9 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -9755,6 +9755,7 @@ public class PackageManagerService extends IPackageManager.Stub public void shutdown() { mPackageUsage.writeNow(mPackages); mCompilerStats.writeNow(); + mDexManager.savePackageDexUsageNow(); } @Override diff --git a/services/core/java/com/android/server/pm/dex/DexManager.java b/services/core/java/com/android/server/pm/dex/DexManager.java index 3d2d4833175b..b2851d7cbeab 100644 --- a/services/core/java/com/android/server/pm/dex/DexManager.java +++ b/services/core/java/com/android/server/pm/dex/DexManager.java @@ -562,6 +562,13 @@ public class DexManager { return existingValue == null ? newValue : existingValue; } + /** + * Saves the in-memory package dex usage to disk right away. + */ + public void savePackageDexUsageNow() { + mPackageDexUsage.writeNow(); + } + public static class RegisterDexModuleResult { public RegisterDexModuleResult() { this(false, null); diff --git a/services/core/java/com/android/server/pm/dex/PackageDexUsage.java b/services/core/java/com/android/server/pm/dex/PackageDexUsage.java index f7dd174847a1..be7f7320889f 100644 --- a/services/core/java/com/android/server/pm/dex/PackageDexUsage.java +++ b/services/core/java/com/android/server/pm/dex/PackageDexUsage.java @@ -178,8 +178,12 @@ public class PackageDexUsage extends AbstractStatsBase { * Convenience method for async writes which does not force the user to pass a useless * (Void) null. */ - public void maybeWriteAsync() { - maybeWriteAsync((Void) null); + /*package*/ void maybeWriteAsync() { + maybeWriteAsync(null); + } + + /*package*/ void writeNow() { + writeInternal(null); } @Override