diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/dex/DexManager.java | 7 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java | 7 |
2 files changed, 10 insertions, 4 deletions
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 2213901b2049..ee6995b11430 100644 --- a/services/core/java/com/android/server/pm/dex/DexManager.java +++ b/services/core/java/com/android/server/pm/dex/DexManager.java @@ -228,8 +228,11 @@ public class DexManager { continue; } - mDexLogger.recordDex(loaderUserId, dexPath, searchResult.mOwningPackageName, - loadingAppInfo.packageName); + if (!primaryOrSplit) { + // Record loading of a DEX file from an app data directory. + mDexLogger.recordDex(loaderUserId, dexPath, searchResult.mOwningPackageName, + loadingAppInfo.packageName); + } if (classLoaderContexts != null) { diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java index 2ddc71f570b8..48ab8d6698bd 100644 --- a/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java +++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java @@ -141,7 +141,8 @@ public class DexManagerTests { assertIsUsedByOtherApps(mBarUser0, pui, true); assertTrue(pui.getDexUseInfoMap().isEmpty()); - assertHasDclInfo(mBarUser0, mFooUser0, mBarUser0.getBaseAndSplitDexPaths()); + // A package loading another package's APK is not DCL (it's not app data). + assertNoDclInfo(mBarUser0); } @Test @@ -334,7 +335,9 @@ public class DexManagerTests { notifyDexLoad(mFooUser0, newSplits, mUser0); PackageUseInfo pui = getPackageUseInfo(mBarUser0); assertIsUsedByOtherApps(newSplits, pui, true); - assertHasDclInfo(mBarUser0, mFooUser0, newSplits); + + // Primary and split APKs are not recorded as DCL. + assertNoDclInfo(mBarUser0); } @Test |