public ImmutableList<ModuleSplit> generateAssetSlices() { ImmutableList.Builder<ModuleSplit> splits = ImmutableList.builder(); for (BundleModule module : modules) { RemoteAssetModuleSplitter moduleSplitter = new RemoteAssetModuleSplitter(module, apkGenerationConfiguration); splits.addAll(moduleSplitter.splitModule()); } return splits.build(); } }
public ImmutableList<ModuleSplit> splitModule() { ImmutableList.Builder<ModuleSplit> splits = ImmutableList.builder(); // Assets splits. SplittingPipeline assetsPipeline = createAssetsSplittingPipeline(); splits.addAll(assetsPipeline.split(ModuleSplit.fromAssetBundleModule(module))); return splits.build(); }
@Test public void singleSlice() throws Exception { BundleModule testModule = new BundleModuleBuilder("testModule") .addFile("assets/image.jpg") .addFile("assets/image2.jpg") .setManifest(androidManifest("com.test.app", withTypeAttribute("remote-asset"))) .build(); assertThat(testModule.getModuleType()).isEqualTo(ModuleType.ASSET_MODULE); ImmutableList<ModuleSplit> slices = new RemoteAssetModuleSplitter(testModule, ApkGenerationConfiguration.getDefaultInstance()) .splitModule(); assertThat(slices).hasSize(1); ModuleSplit masterSlice = slices.get(0); assertThat(masterSlice.getSplitType()).isEqualTo(SplitType.ASSET_SLICE); assertThat(masterSlice.isMasterSplit()).isTrue(); assertThat(masterSlice.getApkTargeting()).isEqualToDefaultInstance(); assertThat(extractPaths(masterSlice.getEntries())) .containsExactly("assets/image.jpg", "assets/image2.jpg"); }
new RemoteAssetModuleSplitter( testModule, ApkGenerationConfiguration.builder() .setOptimizationDimensions(ImmutableSet.of(LANGUAGE)) .build()) .splitModule();