Loading services/core/java/com/android/server/pm/PackageDexOptimizer.java +2 −1 Original line number Diff line number Diff line Loading @@ -272,7 +272,8 @@ public class PackageDexOptimizer { dexMetadataPath, options.getCompilationReason(), newResult, ArtStatsLogUtils.getApkType(path), ArtStatsLogUtils.getApkType(path, pkg.getBaseApkPath(), pkg.getSplitCodePaths()), dexCodeIsa, path); } finally { Loading services/core/java/com/android/server/pm/dex/ArtStatsLogUtils.java +7 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.internal.art.ArtStatsLog; import com.android.server.pm.PackageManagerService; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; Loading @@ -41,8 +42,6 @@ public class ArtStatsLogUtils { private static final String TAG = ArtStatsLogUtils.class.getSimpleName(); private static final String PROFILE_DEX_METADATA = "primary.prof"; private static final String VDEX_DEX_METADATA = "primary.vdex"; private static final String BASE_APK= "base.apk"; private static final int ART_COMPILATION_REASON_INSTALL_BULK_SECONDARY = ART_DATUM_REPORTED__COMPILATION_REASON__ART_COMPILATION_REASON_INSTALL_BULK_SECONDARY; Loading Loading @@ -187,11 +186,14 @@ public class ArtStatsLogUtils { isa); } public static int getApkType(String path) { if (path.equals(BASE_APK)) { public static int getApkType(String path, String baseApkPath, String[] splitApkPaths) { if (path.equals(baseApkPath)) { return ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_BASE; } } else if(Arrays.stream(splitApkPaths).anyMatch(p->p.equals(path))) { return ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_SPLIT; } else{ return ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_UNKNOWN; } } private static long getDexBytes(String apkPath) { Loading services/tests/servicestests/src/com/android/server/pm/dex/ArtStatsLogUtilsTest.java +9 −4 Original line number Diff line number Diff line Loading @@ -51,8 +51,9 @@ public final class ArtStatsLogUtilsTest { private static final String PROFILE_DEX_METADATA = "primary.prof"; private static final String VDEX_DEX_METADATA = "primary.vdex"; private static final String INSTRUCTION_SET = "arm64"; private static final String BASE_APK = "base.apk"; private static final String SPLIT_APK = "split.apk"; private static final String BASE_APK_PATH = "/tmp/base.apk"; private static final String[] SPLIT_APK_PATHS = new String[]{"/tmp/split1.apk", "/tmp/split2.apk"}; private static final byte[] DEX_CONTENT = "dexData".getBytes(); private static final int COMPILATION_REASON = 1; private static final int RESULT_CODE = 222; Loading Loading @@ -248,12 +249,16 @@ public final class ArtStatsLogUtilsTest { @Test public void testGetApkType() { // Act int result1 = ArtStatsLogUtils.getApkType(BASE_APK); int result2 = ArtStatsLogUtils.getApkType(SPLIT_APK); int result1 = ArtStatsLogUtils.getApkType("/tmp/base.apk", BASE_APK_PATH, SPLIT_APK_PATHS); int result2 = ArtStatsLogUtils.getApkType("/tmp/split1.apk", BASE_APK_PATH, SPLIT_APK_PATHS); int result3 = ArtStatsLogUtils.getApkType("/tmp/none.apk", BASE_APK_PATH, SPLIT_APK_PATHS); // Assert Assert.assertEquals(result1, ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_BASE); Assert.assertEquals(result2, ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_SPLIT); Assert.assertEquals(result3, ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_UNKNOWN); } private void verifyWrites(int dexMetadataType) { Loading Loading
services/core/java/com/android/server/pm/PackageDexOptimizer.java +2 −1 Original line number Diff line number Diff line Loading @@ -272,7 +272,8 @@ public class PackageDexOptimizer { dexMetadataPath, options.getCompilationReason(), newResult, ArtStatsLogUtils.getApkType(path), ArtStatsLogUtils.getApkType(path, pkg.getBaseApkPath(), pkg.getSplitCodePaths()), dexCodeIsa, path); } finally { Loading
services/core/java/com/android/server/pm/dex/ArtStatsLogUtils.java +7 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.internal.art.ArtStatsLog; import com.android.server.pm.PackageManagerService; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; Loading @@ -41,8 +42,6 @@ public class ArtStatsLogUtils { private static final String TAG = ArtStatsLogUtils.class.getSimpleName(); private static final String PROFILE_DEX_METADATA = "primary.prof"; private static final String VDEX_DEX_METADATA = "primary.vdex"; private static final String BASE_APK= "base.apk"; private static final int ART_COMPILATION_REASON_INSTALL_BULK_SECONDARY = ART_DATUM_REPORTED__COMPILATION_REASON__ART_COMPILATION_REASON_INSTALL_BULK_SECONDARY; Loading Loading @@ -187,11 +186,14 @@ public class ArtStatsLogUtils { isa); } public static int getApkType(String path) { if (path.equals(BASE_APK)) { public static int getApkType(String path, String baseApkPath, String[] splitApkPaths) { if (path.equals(baseApkPath)) { return ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_BASE; } } else if(Arrays.stream(splitApkPaths).anyMatch(p->p.equals(path))) { return ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_SPLIT; } else{ return ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_UNKNOWN; } } private static long getDexBytes(String apkPath) { Loading
services/tests/servicestests/src/com/android/server/pm/dex/ArtStatsLogUtilsTest.java +9 −4 Original line number Diff line number Diff line Loading @@ -51,8 +51,9 @@ public final class ArtStatsLogUtilsTest { private static final String PROFILE_DEX_METADATA = "primary.prof"; private static final String VDEX_DEX_METADATA = "primary.vdex"; private static final String INSTRUCTION_SET = "arm64"; private static final String BASE_APK = "base.apk"; private static final String SPLIT_APK = "split.apk"; private static final String BASE_APK_PATH = "/tmp/base.apk"; private static final String[] SPLIT_APK_PATHS = new String[]{"/tmp/split1.apk", "/tmp/split2.apk"}; private static final byte[] DEX_CONTENT = "dexData".getBytes(); private static final int COMPILATION_REASON = 1; private static final int RESULT_CODE = 222; Loading Loading @@ -248,12 +249,16 @@ public final class ArtStatsLogUtilsTest { @Test public void testGetApkType() { // Act int result1 = ArtStatsLogUtils.getApkType(BASE_APK); int result2 = ArtStatsLogUtils.getApkType(SPLIT_APK); int result1 = ArtStatsLogUtils.getApkType("/tmp/base.apk", BASE_APK_PATH, SPLIT_APK_PATHS); int result2 = ArtStatsLogUtils.getApkType("/tmp/split1.apk", BASE_APK_PATH, SPLIT_APK_PATHS); int result3 = ArtStatsLogUtils.getApkType("/tmp/none.apk", BASE_APK_PATH, SPLIT_APK_PATHS); // Assert Assert.assertEquals(result1, ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_BASE); Assert.assertEquals(result2, ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_SPLIT); Assert.assertEquals(result3, ArtStatsLog.ART_DATUM_REPORTED__APK_TYPE__ART_APK_TYPE_UNKNOWN); } private void verifyWrites(int dexMetadataType) { Loading