OSDN Git Service

[PM] Clean up logic for secondary dex oat files
authorCalin Juravle <calin@google.com>
Wed, 25 Jan 2017 09:05:50 +0000 (01:05 -0800)
committerCalin Juravle <calin@google.com>
Thu, 2 Mar 2017 21:12:21 +0000 (13:12 -0800)
commite69fba3f7fbc8e4fc6c02b80c8fac097804b97f7
treebdbdf394aed7febbe94932b66638af05b7c5c9dd
parent7218363a92d15cc1854cf298ef77e1ed2aeafa3b
[PM] Clean up logic for secondary dex oat files

Add logic in DexManager to reconcile secondary dex records with the
actual files on disk. If secondary dex files are moved or removed then
DexManager will remove the generated oat files during the call to
reconcileSecondaryOdex() and update its internal state.

Add 'adb shell cmd package reconcile-secondary-dex packageName' which
will force DexManager to sync its data with the actual secondary dex
files.

Test: devices bots
      runtest -x .../PackageDexUsageTests.java
      runtest -x .../DexManagerTests.java
      adb shell cmd package reconcile-secondary-dex
com.android.google.gms (after artificially/temporarily renaming some
dex files)

Bug: 32871170

(cherry picked from commit c22c30ed1c05c5c24185dc4d380d1c5026923d46)

Change-Id: Ied9fcbfe367ed3a8250a9ba8d202518b264c64e8

Merged-In: Id2d72dc89995f89cf1ddf79ae4e992afd3f3c127
core/java/android/content/pm/IPackageManager.aidl
services/core/java/com/android/server/pm/Installer.java
services/core/java/com/android/server/pm/PackageManagerService.java
services/core/java/com/android/server/pm/PackageManagerShellCommand.java
services/core/java/com/android/server/pm/dex/DexManager.java
services/core/java/com/android/server/pm/dex/PackageDexUsage.java
services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java
services/tests/servicestests/src/com/android/server/pm/dex/PackageDexUsageTests.java