@Override @NonNull public List<File> getSplitAbiResOutputFiles() { Set<String> filters = AbiSplitOptions.getAbiFilters( globalScope.getExtension().getSplits().getAbiFilters()); return filters.stream() .map(this::getOutputFileForSplit) .collect(Collectors.toList()); }
@Override @NonNull public List<File> getPackageSplitAbiOutputFiles() { ImmutableList.Builder<File> builder = ImmutableList.builder(); for (String split : globalScope.getExtension().getSplits().getAbiFilters()) { String apkName = getApkName(split); builder.add(new File(getSplitOutputDirectory(), apkName)); } return builder.build(); }
@NonNull @Override public Set<String> getAbiFilters() { return mGlobalScope.getExtension().getSplits().getAbiFilters(); }
@Override public Set<File> call() { if (variantData.getSplitHandlingPolicy() == BaseVariantData.SplitHandlingPolicy.PRE_21_POLICY) { return scope.getVariantScope().getJniFolders(); } Set<String> filters = AbiSplitOptions.getAbiFilters( scope.getGlobalScope().getExtension().getSplits().getAbiFilters()); return filters.isEmpty() ? scope.getVariantScope().getJniFolders() : Collections.<File>emptySet(); } });
new ApplicationVariantData(extension, variantConfiguration, taskManager); variant.calculateFilters(extension.getSplits()); variant.setCompatibleScreens(extension.getSplits().getDensity() .getCompatibleScreens()); if (abis.isEmpty() || (extension.getSplits().getAbi().isEnable() && extension.getSplits().getAbi().isUniversalApk())) { orderedAbis.add(NO_FILTER);
getExtension().getSplits().getAbiFilters()); if (filters.isEmpty()) { return;
getExtension().getSplits().getAbiFilters()); if (filters.isEmpty()) { return null;
variantData.calculateFilters(globalScope.getExtension().getSplits()); AndroidTask<ProcessAndroidResources> processAtomResources = getAndroidTasks().create(tasks, new ProcessAndroidResources.AtomConfigAction(
Collection<NativeLibrary> nativeLibraries = ImmutableList.of();; if (ndkHandler.getNdkDirectory() != null) { if (config.getSplits().getAbi().isEnable()) { nativeLibraries = createNativeLibraries( config.getSplits().getAbi().isUniversalApk() ? ndkHandler.getSupportedAbis() : createAbiList(config.getSplits().getAbiFilters()), scope); } else {
Collection<NativeLibrary> nativeLibraries = ImmutableList.of(); if (ndkHandler.isConfigured()) { if (config.getSplits().getAbi().isEnable()) { nativeLibraries = createNativeLibraries( config.getSplits().getAbi().isUniversalApk() ? ndkHandler.getSupportedAbis() : createAbiList(config.getSplits().getAbiFilters()), scope); } else {
@Override public void execute(@NonNull GenerateSplitAbiRes generateSplitAbiRes) { final VariantConfiguration config = scope.getVariantConfiguration(); Set<String> filters = AbiSplitOptions.getAbiFilters( scope.getGlobalScope().getExtension().getSplits().getAbiFilters()); generateSplitAbiRes.setAndroidBuilder(scope.getGlobalScope().getAndroidBuilder()); generateSplitAbiRes.setVariantName(config.getFullName()); generateSplitAbiRes.setOutputDirectory(scope.getGenerateSplitAbiResOutputDirectory()); generateSplitAbiRes.setSplits(filters); generateSplitAbiRes.setOutputBaseName(config.getBaseName()); generateSplitAbiRes.setApplicationId(config.getApplicationId()); generateSplitAbiRes.variantOutputData = (ApkVariantOutputData) scope.getVariantData().getMainOutput(); ConventionMappingHelper.map(generateSplitAbiRes, "debuggable", new Callable<Boolean>() { @Override public Boolean call() throws Exception { return config.getBuildType().isDebuggable(); } }); ConventionMappingHelper.map(generateSplitAbiRes, "aaptOptions", new Callable<AaptOptions>() { @Override public AaptOptions call() throws Exception { return scope.getGlobalScope().getExtension().getAaptOptions(); } }); } }
this.scope.getGlobalScope().getExtension().getSplits().getAbiFilters()); packageSplitAbiTask.setInputFiles(this.scope.getSplitAbiResOutputFiles()); packageSplitAbiTask.setSplits(filters);
public void createProcessResTask( @NonNull TaskFactory tasks, @NonNull VariantScope scope, @Nullable File symbolLocation, boolean generateResourcePackage) { BaseVariantData<? extends BaseVariantOutputData> variantData = scope.getVariantData(); variantData.calculateFilters(scope.getGlobalScope().getExtension().getSplits()); // loop on all outputs. The only difference will be the name of the task, and location // of the generated data. for (BaseVariantOutputData vod : variantData.getOutputs()) { final VariantOutputScope variantOutputScope = vod.getScope(); variantOutputScope.setProcessResourcesTask(androidTasks.create(tasks, new ProcessAndroidResources.ConfigAction(variantOutputScope, symbolLocation, generateResourcePackage))); variantOutputScope.getProcessResourcesTask().dependsOn(tasks, variantOutputScope.getManifestProcessorTask(), scope.getMergeResourcesTask(), scope.getMergeAssetsTask()); // TODO: Make it non-optional once this is not behind a flag. variantOutputScope.getProcessResourcesTask().optionalDependsOn(tasks, scope.getPreprocessResourcesTask()); if (vod.getMainOutputFile().getFilter(DENSITY) == null) { scope.setGenerateRClassTask(variantOutputScope.getProcessResourcesTask()); scope.getSourceGenTask().optionalDependsOn(tasks, variantOutputScope.getProcessResourcesTask()); } } }
BaseVariantData<? extends BaseVariantOutputData> variantData = scope.getVariantData(); variantData.calculateFilters(scope.getGlobalScope().getExtension().getSplits()); boolean useAaptToGenerateLegacyMultidexMainDexProguardRules = isLegacyMultidexMode(scope);