public static Builder builder() { return new AutoValue_ApkGenerationConfiguration.Builder() .setForInstantAppVariants(false) .setEnableNativeLibraryCompressionSplitter(false) .setEnableDexCompressionSplitter(false) .setInclude64BitLibs(true) .setAbisForPlaceholderLibs(ImmutableSet.of()) .setOptimizationDimensions(ImmutableSet.of()); }
ApkGenerationConfiguration.builder() .setOptimizationDimensions(ImmutableSet.of(ABI)) .setEnableNativeLibraryCompressionSplitter(true) .build(), variantMinSdkTargeting(ANDROID_M_API_VERSION),
ApkGenerationConfiguration.builder() .setOptimizationDimensions(ImmutableSet.of(ABI)) .setEnableNativeLibraryCompressionSplitter(true) .build(), lPlusVariantTargeting(),
BUNDLETOOL_VERSION, ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .setEnableDexCompressionSplitter(true) .build(),
BUNDLETOOL_VERSION, ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .build(), NO_RESOURCES_PINNED_TO_MASTER)
BUNDLETOOL_VERSION, ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .setEnableDexCompressionSplitter(true) .setForInstantAppVariants(true)
@Test public void variantsWithoutNativeLibs() throws Exception { NativeLibsCompressionVariantGenerator nativeLibsCompressionVariantGenerator = new NativeLibsCompressionVariantGenerator( ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .build()); BundleModule bundleModule = new BundleModuleBuilder("testModule") .addFile("assets/leftover.txt") .addFile("dex/classes.dex") .setManifest(androidManifest("com.test.app")) .build(); ImmutableCollection<VariantTargeting> splits = nativeLibsCompressionVariantGenerator.generate(bundleModule); assertThat(splits).isEmpty(); }
@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)); }
private ApkGenerationConfiguration getCommonSplitApkGenerationConfiguration( AppBundle appBundle, BundleConfig bundleConfig, Version bundleToolVersion) { ApkOptimizations apkOptimizations = getApkOptimizations(bundleConfig); ApkGenerationConfiguration.Builder apkGenerationConfiguration = ApkGenerationConfiguration.builder() .setOptimizationDimensions(apkOptimizations.getSplitDimensions()); boolean enableNativeLibraryCompressionSplitter = apkOptimizations.getUncompressNativeLibraries(); apkGenerationConfiguration.setEnableNativeLibraryCompressionSplitter( enableNativeLibraryCompressionSplitter); if (appBundle.has32BitRenderscriptCode()) { apkGenerationConfiguration.setInclude64BitLibs(false); } return apkGenerationConfiguration.build(); }
@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 variantsWithNativeLibs_instantModule() throws Exception { NativeLibsCompressionVariantGenerator nativeLibsCompressionVariantGenerator = new NativeLibsCompressionVariantGenerator( ApkGenerationConfiguration.builder() .setForInstantAppVariants(true) .setEnableNativeLibraryCompressionSplitter(true) .build()); ImmutableCollection<VariantTargeting> splits = nativeLibsCompressionVariantGenerator.generate( createSingleLibraryModule("testModule", "x86", "lib/x86/libnoname.so")); assertThat(splits).isEmpty(); }
@Test public void variantsWithNativeLibs() throws Exception { NativeLibsCompressionVariantGenerator nativeLibsCompressionVariantGenerator = new NativeLibsCompressionVariantGenerator( ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .build()); ImmutableCollection<VariantTargeting> splits = nativeLibsCompressionVariantGenerator.generate( createSingleLibraryModule("testModule", "x86", "lib/x86/libnoname.so")); assertThat(splits).containsExactly(variantMinSdkTargeting(ANDROID_M_API_VERSION)); }
@Test public void variantsWithNativeLibsDexFiles_withNativeLibsOptimization() throws Exception { VariantGenerator variantGenerator = new VariantGenerator( createSingleLibraryDexModule(), ApkGenerationConfiguration.builder() .setEnableNativeLibraryCompressionSplitter(true) .build()); ImmutableCollection<VariantTargeting> splits = variantGenerator.generateVariants(); assertThat(splits) .containsExactly(lPlusVariantTargeting(), variantMinSdkTargeting(ANDROID_M_API_VERSION)); }