public static Builder builder() { return new AutoValue_ApkGenerationConfiguration.Builder() .setForInstantAppVariants(false) .setEnableNativeLibraryCompressionSplitter(false) .setEnableDexCompressionSplitter(false) .setInclude64BitLibs(true) .setAbisForPlaceholderLibs(ImmutableSet.of()) .setOptimizationDimensions(ImmutableSet.of()); }
@Test public void nativeSplits_lPlusTargeting_withDexCompressionSplitter() throws Exception { BundleModule testModule = new BundleModuleBuilder("testModule") .addFile("dex/classes.dex") .setManifest(androidManifest("com.test.app")) .build(); ModuleSplitter moduleSplitter = new ModuleSplitter( testModule, BUNDLETOOL_VERSION, ApkGenerationConfiguration.builder().setEnableDexCompressionSplitter(true).build(), lPlusVariantTargeting(), ImmutableSet.of("testModule"), NO_RESOURCES_PINNED_TO_MASTER); List<ModuleSplit> splits = moduleSplitter.splitModule(); assertThat(splits).hasSize(1); ModuleSplit moduleSplit = Iterables.getOnlyElement(splits); assertThat(moduleSplit.getSplitType()).isEqualTo(SplitType.SPLIT); assertThat(moduleSplit.getVariantTargeting()) .isEqualTo(variantMinSdkTargeting(ANDROID_L_API_VERSION)); assertThat(moduleSplit.findEntry("dex/classes.dex").get().shouldCompress()).isTrue(); }
@Test public void nativeSplits_pPlusTargeting_withDexCompressionSplitter() throws Exception { BundleModule testModule = new BundleModuleBuilder("testModule") .addFile("dex/classes.dex") .setManifest(androidManifest("com.test.app")) .build(); ModuleSplitter moduleSplitter = new ModuleSplitter( testModule, BUNDLETOOL_VERSION, ApkGenerationConfiguration.builder().setEnableDexCompressionSplitter(true).build(), variantMinSdkTargeting(ANDROID_P_API_VERSION), ImmutableSet.of("testModule"), NO_RESOURCES_PINNED_TO_MASTER); List<ModuleSplit> splits = moduleSplitter.splitModule(); assertThat(splits).hasSize(1); ModuleSplit moduleSplit = Iterables.getOnlyElement(splits); assertThat(moduleSplit.getSplitType()).isEqualTo(SplitType.SPLIT); assertThat(moduleSplit.getVariantTargeting()) .isEqualTo(variantMinSdkTargeting(ANDROID_P_API_VERSION)); assertThat(moduleSplit.findEntry("dex/classes.dex").get().shouldCompress()).isFalse(); }
.setEnableDexCompressionSplitter(false) .build(); generatedApksBuilder.setInstantApks(
ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .setEnableDexCompressionSplitter(true) .build(), NO_RESOURCES_PINNED_TO_MASTER)
ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .setEnableDexCompressionSplitter(true) .setForInstantAppVariants(true) .build(),
@Test public void variantsWithNativeLibsDexFiles_withNativeLibsAndDexOptimization() throws Exception { VariantGenerator variantGenerator = new VariantGenerator( createSingleLibraryDexModule(), ApkGenerationConfiguration.builder() .setEnableDexCompressionSplitter(true) .setEnableNativeLibraryCompressionSplitter(true) .build()); ImmutableCollection<VariantTargeting> splits = variantGenerator.generateVariants(); assertThat(splits) .containsExactly( lPlusVariantTargeting(), variantMinSdkTargeting(ANDROID_M_API_VERSION), variantMinSdkTargeting(ANDROID_P_API_VERSION)); }
@Test public void variantsGeneration_withoutDexFile_generatesNoVariant() throws Exception { DexCompressionVariantGenerator dexCompressionVariantGenerator = new DexCompressionVariantGenerator( ApkGenerationConfiguration.builder().setEnableDexCompressionSplitter(true).build()); BundleModule bundleModule = new BundleModuleBuilder("testModule") .addFile("assets/leftover.txt") .setManifest(androidManifest("com.test.app")) .build(); ImmutableCollection<VariantTargeting> splits = dexCompressionVariantGenerator.generate(bundleModule); assertThat(splits).isEmpty(); }
@Test public void variantsWithNativeLibsDexFiles_withInstantModule_withNativeLibsAndDexOptimization() throws Exception { VariantGenerator variantGenerator = new VariantGenerator( createSingleLibraryDexModule(), ApkGenerationConfiguration.builder() .setForInstantAppVariants(true) .setEnableDexCompressionSplitter(true) .setEnableNativeLibraryCompressionSplitter(true) .build()); ImmutableCollection<VariantTargeting> splits = variantGenerator.generateVariants(); assertThat(splits).containsExactly(lPlusVariantTargeting()); }
@Test public void variantsGeneration_withDexFile_generatesPVariant() throws Exception { DexCompressionVariantGenerator dexCompressionVariantGenerator = new DexCompressionVariantGenerator( ApkGenerationConfiguration.builder().setEnableDexCompressionSplitter(true).build()); ImmutableCollection<VariantTargeting> splits = dexCompressionVariantGenerator.generate(createModuleWithDexFile()); assertThat(splits).containsExactly(variantMinSdkTargeting(ANDROID_P_API_VERSION)); }
@Test public void variantsWithNativeLibsDexFiles_withDexOptimization() throws Exception { VariantGenerator variantGenerator = new VariantGenerator( createSingleLibraryDexModule(), ApkGenerationConfiguration.builder().setEnableDexCompressionSplitter(true).build()); ImmutableCollection<VariantTargeting> splits = variantGenerator.generateVariants(); assertThat(splits) .containsExactly(lPlusVariantTargeting(), variantMinSdkTargeting(ANDROID_P_API_VERSION)); }
@Test public void variantsGeneration_withInstantModule_generatesNoVariant() throws Exception { DexCompressionVariantGenerator dexCompressionVariantGenerator = new DexCompressionVariantGenerator( ApkGenerationConfiguration.builder() .setForInstantAppVariants(true) .setEnableDexCompressionSplitter(true) .build()); ImmutableCollection<VariantTargeting> splits = dexCompressionVariantGenerator.generate(createModuleWithDexFile()); assertThat(splits).isEmpty(); }