public ModuleSplitter( BundleModule module, Version bundleVersion, ApkGenerationConfiguration apkGenerationConfiguration, VariantTargeting variantTargeting, ImmutableSet<String> allModuleNames, Predicate<ResourceTableEntry> pinResourceToMaster) { this.module = checkNotNull(module); this.bundleVersion = checkNotNull(bundleVersion); this.apkGenerationConfiguration = checkNotNull(apkGenerationConfiguration); this.variantTargeting = checkNotNull(variantTargeting); this.abiPlaceholderInjector = new AbiPlaceholderInjector(apkGenerationConfiguration.getAbisForPlaceholderLibs()); this.allModuleNames = allModuleNames; this.pinResourceToMaster = pinResourceToMaster; }
@Test public void addPlaceholderNativeEntries_noAppAbis_noEntriesAdded() throws Exception { ModuleSplit moduleSplit = ModuleSplit.forModule( new BundleModuleBuilder("base").setManifest(androidManifest("com.test")).build()); AbiPlaceholderInjector abiPlaceholderInjector = new AbiPlaceholderInjector(ImmutableSet.of()); ModuleSplit actualModuleSplit = abiPlaceholderInjector.addPlaceholderNativeEntries(moduleSplit); assertThat(actualModuleSplit).isEqualTo(moduleSplit); } }
private ModuleSplit addPlaceHolderNativeLibsToBaseModule(ModuleSplit moduleSplit) { if (!apkGenerationConfiguration.getAbisForPlaceholderLibs().isEmpty() && moduleSplit.isBaseModuleSplit() && moduleSplit.isMasterSplit()) { return abiPlaceholderInjector.addPlaceholderNativeEntries(moduleSplit); } else { return moduleSplit; } }
@Test public void addPlaceholderNativeEntries_newEntriesAdded() throws Exception { ModuleSplit moduleSplit = ModuleSplit.forModule( new BundleModuleBuilder("base").setManifest(androidManifest("com.test")).build()); AbiPlaceholderInjector abiPlaceholderInjector = new AbiPlaceholderInjector(ImmutableSet.of(toAbi(AbiAlias.ARMEABI_V7A))); ModuleSplit actualModuleSplit = abiPlaceholderInjector.addPlaceholderNativeEntries(moduleSplit); assertThat(extractPaths(actualModuleSplit.getEntries())) .contains("lib/armeabi-v7a/libplaceholder.so"); }