@Override public Boolean call() throws Exception { return scope.getGlobalScope().getExtension().getAaptOptions() .getUseNewCruncher(); } });
public void setIgnoreAssets(@Nullable String ignoreAssetsPattern) { setIgnoreAssetsPattern(ignoreAssetsPattern); }
public void setNoCompress(String noCompress) { setNoCompress(new String[] { noCompress }); }
.getCruncherEnabled(); mergeResourcesTask.normalizeResources = scope.getGlobalScope().getExtension().getBuildToolsRevision()
/** * Creates a new {@link Aapt} instance based on project configuration. * * @param builder the android builder project model * @param crunchPng should PNGs be crunched? * @param scope the scope of the variant to use {@code aapt2} with * @param intermediateDir intermediate directory for aapt to use * @return the newly-created instance */ @NonNull public static Aapt make( @NonNull AndroidBuilder builder, boolean crunchPng, @NonNull VariantScope scope, @NonNull File intermediateDir) { return make( builder, new LoggedProcessOutputHandler(new FilteringLogger(builder.getLogger())), crunchPng, scope.getGlobalScope().getProject(), scope.getVariantConfiguration().getType(), intermediateDir, scope.getGlobalScope().getExtension().getAaptOptions().getCruncherProcesses()); }
@Override public void execute(@NonNull MergeSourceSetFolders mergeAssetsTask) { super.execute(mergeAssetsTask); final BaseVariantData<? extends BaseVariantOutputData> variantData = scope.getVariantData(); final GradleVariantConfiguration variantConfig = variantData.getVariantConfiguration(); variantData.mergeAssetsTask = mergeAssetsTask; final boolean includeDependencies = !variantConfig.getType() .equals(VariantType.LIBRARY); ConventionMappingHelper.map(mergeAssetsTask, "inputDirectorySets", () -> { ArrayList<File> generatedAssets = new ArrayList<>(); generatedAssets.add(scope.getShadersOutputDir()); if (variantData.copyApkTask != null) { generatedAssets.add(variantData.copyApkTask.getDestinationDir()); } List<AssetSet> assetSets = variantConfig.getAssetSets(generatedAssets, includeDependencies); AaptOptions options = scope.getGlobalScope().getExtension().getAaptOptions(); if (options != null && options.getIgnoreAssets() != null) { assetSets.forEach(as -> as.setIgnoredPatterns(options.getIgnoreAssets())); } return assetSets; }); mergeAssetsTask.setOutputDir(scope.getMergeAssetsOutputDir()); } }
mergeResourcesTask.setCrunchPng(extension.getAaptOptions().getCruncherEnabled());
@Override public void doFullTaskAction() throws IOException { AndroidBuilder builder = getBuilder(); MergingLog mergingLog = new MergingLog(getMergeBlameLogFolder()); ProcessOutputHandler processOutputHandler = new ParsingProcessOutputHandler( new ToolOutputParser(new AaptOutputParser(), getILogger()), new MergingLogRewriter(mergingLog, builder.getErrorReporter())); try { Aapt aapt = AaptGradleFactory.make( getBuilder(), processOutputHandler, true, variantScope.getGlobalScope().getProject(), VariantType.INSTANTAPP, FileUtils.mkdirs(new File(getIncrementalFolder(), "aapt-temp")), aaptOptions.getCruncherProcesses()); AaptPackageConfig.Builder config = new AaptPackageConfig.Builder() .setManifestFile(getManifestFile()) .setOptions(getAaptOptions()) .setResourceOutputApk(getOutputResourcePackage()) .setVariantType(getType()) .setDebuggable(getDebuggable()) .setPseudoLocalize(getPseudoLocalesEnabled()) .setBaseFeature(getBaseAtomResourcePackage()) .setPreviousFeatures(getAtomResourcePackages()); builder.processResources(aapt, config, true); } catch (IOException | InterruptedException | ProcessException e) { throw new RuntimeException(e); } }
variantScope.getVariantConfiguration().getType(), FileUtils.mkdirs(new File(getIncrementalFolder(), "aapt-temp")), aaptOptions.getCruncherProcesses());