@Test public void oneLVariant() throws Exception { ZipPath apkOne = ZipPath.create("apk_one.apk"); ImmutableList<Variant> variants = ImmutableList.of( createVariantForSingleSplitApk( variantSdkTargeting(sdkVersionFrom(21)), ApkTargeting.getDefaultInstance(), apkOne)); Path apksArchiveFile = createApksArchiveFile( BuildApksResult.newBuilder().addAllVariant(variants).build(), tmpDir.resolve("bundle.apks")); ImmutableMap<String, Long> sizeByApkPaths = getCompressedSizeByApkPaths(variants, apksArchiveFile); assertThat(sizeByApkPaths.keySet()).containsExactly("apk_one.apk"); assertThat(sizeByApkPaths.get("apk_one.apk")).isAtLeast(1L); }
private static BuildApksResult buildApksResult(Variant... variants) { return BuildApksResult.newBuilder().addAllVariant(Arrays.asList(variants)).build(); }
@Test public void multipleVariants() throws Exception { ZipPath apkOne = ZipPath.create("apk_one.apk"); ZipPath apkTwo = ZipPath.create("apk_two.apk"); ImmutableList<Variant> variants = ImmutableList.of( createVariantForSingleSplitApk( variantSdkTargeting(sdkVersionFrom(21), ImmutableSet.of(sdkVersionFrom(23))), ApkTargeting.getDefaultInstance(), apkOne), createVariantForSingleSplitApk( variantSdkTargeting(sdkVersionFrom(23), ImmutableSet.of(sdkVersionFrom(21))), ApkTargeting.getDefaultInstance(), apkTwo)); Path apksArchiveFile = createApksArchiveFile( BuildApksResult.newBuilder().addAllVariant(variants).build(), tmpDir.resolve("bundle.apks")); ImmutableMap<String, Long> sizeByApkPaths = getCompressedSizeByApkPaths(variants, apksArchiveFile); assertThat(sizeByApkPaths.keySet()).containsExactly("apk_one.apk", "apk_two.apk"); long apkOneSize = sizeByApkPaths.get("apk_one.apk"); long apkTwoSize = sizeByApkPaths.get("apk_two.apk"); assertThat(apkOneSize).isAtLeast(1L); assertThat(apkTwoSize).isAtLeast(1L); }
.addAllVariant(allVariantsWithTargeting) .setBundletool( Bundletool.newBuilder()
BuildApksResult buildApksResult = BuildApksResult.newBuilder().addAllVariant(variants).build();
splitApkDescription( apkDensityTargeting(XXXHDPI, ImmutableSet.of(MDPI)), screenXxxhdpiApk)))); BuildApksResult buildApksResult = BuildApksResult.newBuilder().addAllVariant(variants).build();
BuildApksResult buildApksResult = BuildApksResult.newBuilder().addAllVariant(variants).build();
ZipPath.create("toc.pb"), BuildApksResult.newBuilder().addAllVariant(variants).build()); Path apksArchiveFile = archiveBuilder.writeTo(tmpDir.resolve("bundle.apks"));
BuildApksResult.newBuilder().addAllVariant(variants).build(), tmpDir.resolve("bundle.apks"));
@Test public void getAllMatchingVariants_apexVariants_noMatch_throws() { ZipPath x86Apk = ZipPath.create("standalone-x86.apk"); ZipPath x64X86Apk = ZipPath.create("standalone-x86_64.x86.apk"); ImmutableSet<ImmutableSet<AbiAlias>> x86Set = ImmutableSet.of(ImmutableSet.of(X86)); ImmutableSet<ImmutableSet<AbiAlias>> x64X86Set = ImmutableSet.of(ImmutableSet.of(X86_64, X86)); MultiAbiTargeting x86Targeting = multiAbiTargeting(x86Set, x64X86Set); MultiAbiTargeting x64X86Targeting = multiAbiTargeting(x64X86Set, x86Set); Variant x86Variant = multiAbiTargetingStandaloneVariant(x86Targeting, x86Apk); Variant x64X86Variant = multiAbiTargetingStandaloneVariant(x64X86Targeting, x64X86Apk); BuildApksResult buildApksResult = BuildApksResult.newBuilder() .addAllVariant(ImmutableList.of(x86Variant, x64X86Variant)) .build(); CommandExecutionException e = assertThrows( CommandExecutionException.class, () -> new VariantMatcher(abis("x86_64", "armeabi-v7a")) .getAllMatchingVariants(buildApksResult)); assertThat(e) .hasMessageThat() .contains( "No set of ABI architectures that the app supports is contained in the ABI " + "architecture set of the device"); }
BuildApksResult buildApksResult = BuildApksResult.newBuilder() .addAllVariant(ImmutableList.of(x86Variant, x64X86Variant)) .build();
@Test public void multipleVariants_selectOneVariant() throws Exception { ZipPath apkOne = ZipPath.create("apk_one.apk"); ZipPath apkTwo = ZipPath.create("apk_two.apk"); Variant lVariant = createVariantForSingleSplitApk( variantSdkTargeting(sdkVersionFrom(21), ImmutableSet.of(sdkVersionFrom(23))), ApkTargeting.getDefaultInstance(), apkOne); Variant mVariant = createVariantForSingleSplitApk( variantSdkTargeting(sdkVersionFrom(23), ImmutableSet.of(sdkVersionFrom(21))), ApkTargeting.getDefaultInstance(), apkTwo); ImmutableList<Variant> variants = ImmutableList.of(lVariant, mVariant); Path apksArchiveFile = createApksArchiveFile( BuildApksResult.newBuilder().addAllVariant(variants).build(), tmpDir.resolve("bundle.apks")); ImmutableMap<String, Long> sizeByApkPaths = getCompressedSizeByApkPaths(ImmutableList.of(lVariant), apksArchiveFile); assertThat(sizeByApkPaths.keySet()).containsExactly("apk_one.apk"); assertThat(sizeByApkPaths.get("apk_one.apk")).isAtLeast(1L); } }