private SplittingPipeline createApexImagesSplittingPipeline() { // We always split APEX image files by MultiAbi, regardless of OptimizationDimension. return new SplittingPipeline(ImmutableList.of(new AbiApexImagesSplitter())); }
@Test public void splittingBySingleAbi_oneImageFile() throws Exception { AbiApexImagesSplitter abiApexImagesSplitter = new AbiApexImagesSplitter(); ImmutableCollection<ModuleSplit> splits = abiApexImagesSplitter.split( ModuleSplit.forApex(createSingleImageModule("testModule", "x86"))); ModuleSplit x86Split = Iterables.getOnlyElement(splits.asList()); assertThat(x86Split.getApkTargeting()).isEqualTo(apkMultiAbiTargeting(X86)); assertThat(x86Split.getVariantTargeting()).isEqualTo(lPlusVariantTargeting()); assertThat(extractPaths(x86Split.getEntries())).containsExactly("apex/x86.img"); }
buildApexPathToEntryMap(allTargetedImages, moduleSplit);
@Test public void splittingBySingleAbi_twoImageFiles() throws Exception { ApexImages apexConfig = apexImages( targetedApexImage("apex/x86.img", apexImageTargeting("x86")), targetedApexImage("apex/x86_64.img", apexImageTargeting("x86_64"))); BundleModule bundleModule = new BundleModuleBuilder("testModule") .addFile("apex/x86.img") .addFile("apex/x86_64.img") .setApexConfig(apexConfig) .setManifest(androidManifest("com.test.app")) .build(); AbiApexImagesSplitter abiApexImagesSplitter = new AbiApexImagesSplitter(); ImmutableCollection<ModuleSplit> splits = abiApexImagesSplitter.split(ModuleSplit.forApex(bundleModule)); assertThat(splits).hasSize(2); assertThat(splits.stream().map(ModuleSplit::getVariantTargeting).collect(toImmutableSet())) .containsExactly(lPlusVariantTargeting()); ApkTargeting x86Targeting = apkMultiAbiTargeting(X86, ImmutableSet.of(X86_64)); ApkTargeting x64Targeting = apkMultiAbiTargeting(X86_64, ImmutableSet.of(X86)); ImmutableMap<ApkTargeting, ModuleSplit> splitsByTargeting = Maps.uniqueIndex(splits, ModuleSplit::getApkTargeting); assertThat(splitsByTargeting.keySet()).containsExactly(x86Targeting, x64Targeting); assertThat(extractPaths(splitsByTargeting.get(x86Targeting).getEntries())) .containsExactly("apex/x86.img"); assertThat(extractPaths(splitsByTargeting.get(x64Targeting).getEntries())) .containsExactly("apex/x86_64.img"); }
.build(); AbiApexImagesSplitter abiApexImagesSplitter = new AbiApexImagesSplitter(); ImmutableCollection<ModuleSplit> splits = abiApexImagesSplitter.split(ModuleSplit.forApex(bundleModule));