public class AndroidBuilder
extends java.lang.Object
DefaultProductFlavors, DefaultBuildType and dependencies) and use them when doing specific
build steps.
To use:
create a builder with AndroidBuilder(String, String, ProcessExecutor, JavaProcessExecutor, ErrorReporter, ILogger, boolean)
then build steps can be done with
mergeManifestsForApplication(File, List, List, String, int, String, String, String, Integer, String, String, String, ManifestMerger2.MergeType, Map, List, File)
mergeManifestsForTestVariant(String, String, String, String, String, Boolean, Boolean, String, File, List, Map, File, File)
processResources(Aapt, AaptPackageConfig.Builder, boolean)
compileAllAidlFiles(List, File, File, Collection, List, DependencyFileProcessor, ProcessOutputHandler)
getDexByteCodeConverter()
Java compilation is not handled but the builder provides the boot classpath with
getBootClasspath(boolean).| Modifier and Type | Class and Description |
|---|---|
static class |
AndroidBuilder.MainDexListOption |
| Modifier and Type | Field and Description |
|---|---|
static com.android.repository.Revision |
MIN_BUILD_TOOLS_REV
Minimal supported version of build tools.
|
| Constructor and Description |
|---|
AndroidBuilder(java.lang.String projectId,
java.lang.String createdBy,
com.android.ide.common.process.ProcessExecutor processExecutor,
com.android.ide.common.process.JavaProcessExecutor javaProcessExecutor,
ErrorReporter errorReporter,
com.android.utils.ILogger logger,
boolean verboseExec)
Creates an AndroidBuilder.
|
| Modifier and Type | Method and Description |
|---|---|
void |
compileAidlFile(java.io.File sourceFolder,
java.io.File aidlFile,
java.io.File sourceOutputDir,
java.io.File packagedOutputDir,
java.util.Collection<java.lang.String> packageWhitelist,
java.util.List<java.io.File> importFolders,
DependencyFileProcessor dependencyFileProcessor,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Compiles the given aidl file.
|
void |
compileAllAidlFiles(java.util.List<java.io.File> sourceFolders,
java.io.File sourceOutputDir,
java.io.File packagedOutputDir,
java.util.Collection<java.lang.String> packageWhiteList,
java.util.List<java.io.File> importFolders,
DependencyFileProcessor dependencyFileProcessor,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Compiles all the aidl files found in the given source folders.
|
void |
compileAllRenderscriptFiles(java.util.List<java.io.File> sourceFolders,
java.util.List<java.io.File> importFolders,
java.io.File sourceOutputDir,
java.io.File resOutputDir,
java.io.File objOutputDir,
java.io.File libOutputDir,
int targetApi,
boolean debugBuild,
int optimLevel,
boolean ndkMode,
boolean supportMode,
java.util.Set<java.lang.String> abiFilters,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Compiles all the renderscript files found in the given source folders.
|
void |
compileAllShaderFiles(java.io.File sourceFolder,
java.io.File outputDir,
java.util.List<java.lang.String> defaultArgs,
java.util.Map<java.lang.String,java.util.List<java.lang.String>> scopedArgs,
java.io.File nkdLocation,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Compiles all the shader files found in the given source folders.
|
void |
compileShaderFile(java.io.File sourceFolder,
java.io.File shaderFile,
java.io.File outputDir,
java.util.List<java.lang.String> defaultArgs,
java.util.Map<java.lang.String,java.util.List<java.lang.String>> scopedArgs,
java.io.File nkdLocation,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Compiles the given aidl file.
|
void |
convertByteCode(java.util.Collection<java.io.File> inputs,
java.io.File outDexFolder,
boolean multidex,
java.io.File mainDexList,
DexOptions dexOptions,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Converts the bytecode to Dalvik format
|
void |
createJacocoReportWithJackReporter(java.io.File coverageFile,
java.io.File reportDir,
java.util.List<java.io.File> sourceDirs,
java.lang.String reportName,
java.io.File metadataFile) |
java.util.Set<java.lang.String> |
createMainDexList(java.io.File allClassesJarFile,
java.io.File jarOfRoots,
java.util.EnumSet<AndroidBuilder.MainDexListOption> options) |
com.android.ide.common.process.ProcessResult |
executeProcess(com.android.ide.common.process.ProcessInfo processInfo,
com.android.ide.common.process.ProcessOutputHandler handler) |
void |
generateApkData(java.io.File apkFile,
java.io.File outResFolder,
java.lang.String mainPkgName,
java.lang.String resName) |
static void |
generateApkDataEntryInManifest(int minSdkVersion,
int targetSdkVersion,
java.io.File manifestFile) |
void |
generateUnbundledWearApkData(java.io.File outResFolder,
java.lang.String mainPkgName) |
java.util.Set<java.io.File> |
getAdditionalPackagedJars(VariantConfiguration<?,?,?> variantConfiguration)
Returns the list of packaged jars for this config.
|
java.util.Set<java.io.File> |
getAllPackagedJars(VariantConfiguration<?,?,?> variantConfiguration)
Returns the list of packaged jars for this config.
|
java.util.List<java.io.File> |
getBootClasspath(boolean includeOptionalLibraries)
Helper method to get the boot classpath to be used during compilation.
|
java.util.List<java.lang.String> |
getBootClasspathAsStrings(boolean includeOptionalLibraries)
Helper method to get the boot classpath to be used during compilation.
|
com.android.sdklib.BuildToolInfo |
getBuildToolInfo()
Returns the build tools for this builder.
|
java.util.Set<java.io.File> |
getCompileClasspath(VariantConfiguration<?,?,?> variantConfiguration)
Returns the compile classpath for this config.
|
java.lang.String |
getCreatedBy()
Obtains the "created by" tag for the packaged manifest.
|
DexByteCodeConverter |
getDexByteCodeConverter() |
ErrorReporter |
getErrorReporter() |
com.android.ide.common.process.JavaProcessExecutor |
getJavaProcessExecutor() |
static java.util.List<java.io.File> |
getLeafFolders(java.lang.String extension,
java.util.List<java.io.File>... importFolders)
Computes and returns the leaf folders based on a given file extension.
|
com.android.utils.ILogger |
getLogger() |
com.android.ide.common.process.ProcessExecutor |
getProcessExecutor() |
java.io.File |
getRenderScriptSupportJar()
Returns the jar file for the renderscript mode.
|
SdkInfo |
getSdkInfo()
Returns the SdkInfo, if set.
|
java.io.File |
getSupportBlasLibFolder()
Returns the BLAS lib folder for renderscript support mode.
|
java.io.File |
getSupportNativeLibFolder()
Returns the native lib folder for the renderscript mode.
|
com.android.sdklib.IAndroidTarget |
getTarget()
Returns the compilation target, if set.
|
java.lang.String |
getTargetCodename() |
TargetInfo |
getTargetInfo()
Returns the TargetInfo, if set.
|
boolean |
isPreviewTarget()
Returns whether the compilation target is a preview.
|
void |
mergeManifestsForApplication(java.io.File mainManifest,
java.util.List<java.io.File> manifestOverlays,
java.util.List<? extends com.android.manifmerger.ManifestProvider> dependencies,
java.lang.String packageOverride,
int versionCode,
java.lang.String versionName,
java.lang.String minSdkVersion,
java.lang.String targetSdkVersion,
java.lang.Integer maxSdkVersion,
java.lang.String outManifestLocation,
java.lang.String outAaptSafeManifestLocation,
java.lang.String outInstantRunManifestLocation,
com.android.manifmerger.ManifestMerger2.MergeType mergeType,
java.util.Map<java.lang.String,java.lang.Object> placeHolders,
java.util.List<com.android.manifmerger.ManifestMerger2.Invoker.Feature> optionalFeatures,
java.io.File reportFile)
Invoke the Manifest Merger version 2.
|
void |
mergeManifestsForTestVariant(java.lang.String testApplicationId,
java.lang.String minSdkVersion,
java.lang.String targetSdkVersion,
java.lang.String testedApplicationId,
java.lang.String instrumentationRunner,
java.lang.Boolean handleProfiling,
java.lang.Boolean functionalTest,
java.lang.String testLabel,
java.io.File testManifestFile,
java.util.List<? extends com.android.manifmerger.ManifestProvider> manifestProviders,
java.util.Map<java.lang.String,java.lang.Object> manifestPlaceholders,
java.io.File outManifest,
java.io.File tmpDir)
Creates the manifest for a test variant
|
void |
packageCodeSplitApk(java.io.File androidResPkg,
java.util.Set<java.io.File> dexFiles,
com.android.builder.model.SigningConfig signingConfig,
java.io.File outApkLocation,
java.io.File incrementalDir,
com.android.apkzlib.zfile.ApkCreatorFactory apkCreatorFactory)
Creates a new split APK containing only code.
|
void |
preDexLibrary(java.io.File inputFile,
java.io.File outFile,
boolean multiDex,
DexOptions dexOptions,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Converts the bytecode to Dalvik format, using the
PreDexCache layer. |
com.google.common.collect.ImmutableList<java.io.File> |
preDexLibraryNoCache(java.io.File inputFile,
java.io.File outFile,
boolean multiDex,
DexOptions dexOptions,
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
Converts the bytecode to Dalvik format, ignoring the
PreDexCache layer. |
void |
processResources(com.android.builder.internal.aapt.Aapt aapt,
com.android.builder.internal.aapt.AaptPackageConfig.Builder aaptConfigBuilder,
boolean enforceUniquePackageName)
Process the resources and generate R.java and/or the packaged resources.
|
void |
setLibraryRequests(java.util.Collection<LibraryRequest> libraryRequests) |
void |
setSdkInfo(SdkInfo sdkInfo) |
void |
setTargetInfo(TargetInfo targetInfo)
Sets the SdkInfo and the targetInfo on the builder.
|
static void |
signApk(java.io.File in,
com.android.builder.model.SigningConfig signingConfig,
java.io.File out)
Signs a single jar file using the passed
SigningConfig. |
public static final com.android.repository.Revision MIN_BUILD_TOOLS_REV
public AndroidBuilder(@NonNull
java.lang.String projectId,
@Nullable
java.lang.String createdBy,
@NonNull
com.android.ide.common.process.ProcessExecutor processExecutor,
@NonNull
com.android.ide.common.process.JavaProcessExecutor javaProcessExecutor,
@NonNull
ErrorReporter errorReporter,
@NonNull
com.android.utils.ILogger logger,
boolean verboseExec)
verboseExec is needed on top of the ILogger due to remote exec tools not being able to output info and verbose messages separately.
createdBy - the createdBy String for the apk manifest.logger - the LoggerverboseExec - whether external tools are launched in verbose modepublic void setTargetInfo(@NonNull
TargetInfo targetInfo)
SdkLoaderpublic void setSdkInfo(@NonNull
SdkInfo sdkInfo)
public void setLibraryRequests(@NonNull
java.util.Collection<LibraryRequest> libraryRequests)
@Nullable public SdkInfo getSdkInfo()
@Nullable public TargetInfo getTargetInfo()
@NonNull public com.android.sdklib.BuildToolInfo getBuildToolInfo()
@NonNull public com.android.utils.ILogger getLogger()
@NonNull public ErrorReporter getErrorReporter()
@NonNull public com.android.sdklib.IAndroidTarget getTarget()
public boolean isPreviewTarget()
public java.lang.String getTargetCodename()
@NonNull public java.util.List<java.io.File> getBootClasspath(boolean includeOptionalLibraries)
includeOptionalLibraries - if true, optional libraries are included even if not
required by the project setup.@NonNull public java.util.List<java.lang.String> getBootClasspathAsStrings(boolean includeOptionalLibraries)
includeOptionalLibraries - if true, optional libraries are included even if not
required by the project setup.@Nullable public java.io.File getRenderScriptSupportJar()
setTargetInfo(TargetInfo)@NonNull
public java.util.Set<java.io.File> getCompileClasspath(@NonNull
VariantConfiguration<?,?,?> variantConfiguration)
@NonNull
public java.util.Set<java.io.File> getAllPackagedJars(@NonNull
VariantConfiguration<?,?,?> variantConfiguration)
@NonNull
public java.util.Set<java.io.File> getAdditionalPackagedJars(@NonNull
VariantConfiguration<?,?,?> variantConfiguration)
@Nullable public java.io.File getSupportNativeLibFolder()
setTargetInfo(TargetInfo)@Nullable public java.io.File getSupportBlasLibFolder()
setTargetInfo(TargetInfo)@NonNull public com.android.ide.common.process.ProcessExecutor getProcessExecutor()
@NonNull public com.android.ide.common.process.JavaProcessExecutor getJavaProcessExecutor()
@NonNull
public com.android.ide.common.process.ProcessResult executeProcess(@NonNull
com.android.ide.common.process.ProcessInfo processInfo,
@NonNull
com.android.ide.common.process.ProcessOutputHandler handler)
public void mergeManifestsForApplication(@NonNull
java.io.File mainManifest,
@NonNull
java.util.List<java.io.File> manifestOverlays,
@NonNull
java.util.List<? extends com.android.manifmerger.ManifestProvider> dependencies,
java.lang.String packageOverride,
int versionCode,
java.lang.String versionName,
@Nullable
java.lang.String minSdkVersion,
@Nullable
java.lang.String targetSdkVersion,
@Nullable
java.lang.Integer maxSdkVersion,
@NonNull
java.lang.String outManifestLocation,
@Nullable
java.lang.String outAaptSafeManifestLocation,
@Nullable
java.lang.String outInstantRunManifestLocation,
com.android.manifmerger.ManifestMerger2.MergeType mergeType,
java.util.Map<java.lang.String,java.lang.Object> placeHolders,
@NonNull
java.util.List<com.android.manifmerger.ManifestMerger2.Invoker.Feature> optionalFeatures,
@Nullable
java.io.File reportFile)
public void mergeManifestsForTestVariant(@NonNull
java.lang.String testApplicationId,
@NonNull
java.lang.String minSdkVersion,
@NonNull
java.lang.String targetSdkVersion,
@NonNull
java.lang.String testedApplicationId,
@NonNull
java.lang.String instrumentationRunner,
@NonNull
java.lang.Boolean handleProfiling,
@NonNull
java.lang.Boolean functionalTest,
@Nullable
java.lang.String testLabel,
@Nullable
java.io.File testManifestFile,
@NonNull
java.util.List<? extends com.android.manifmerger.ManifestProvider> manifestProviders,
@NonNull
java.util.Map<java.lang.String,java.lang.Object> manifestPlaceholders,
@NonNull
java.io.File outManifest,
@NonNull
java.io.File tmpDir)
throws java.io.IOException
testApplicationId - the application id of the test applicationminSdkVersion - the minSdkVersion of the test applicationtargetSdkVersion - the targetSdkVersion of the test applicationtestedApplicationId - the application id of the tested applicationinstrumentationRunner - the name of the instrumentation runnerhandleProfiling - whether or not the Instrumentation object will turn profiling on and offfunctionalTest - whether or not the Instrumentation class should run as a functional testtestLabel - the label for the teststestManifestFile - optionally user provided AndroidManifest.xml for testing applicationmanifestProviders - the manifest providersmanifestPlaceholders - used placeholders in the manifestoutManifest - the output location for the merged manifesttmpDir - temporary dir used for processingjava.io.IOExceptionVariantConfiguration.getApplicationId(),
VariantConfiguration.getTestedConfig(),
VariantConfiguration.getMinSdkVersion(),
VariantConfiguration.getTestedApplicationId(),
VariantConfiguration.getInstrumentationRunner(),
VariantConfiguration.getHandleProfiling(),
VariantConfiguration.getFunctionalTest(),
VariantConfiguration.getTestLabel(),
()public void processResources(@NonNull
com.android.builder.internal.aapt.Aapt aapt,
@NonNull
com.android.builder.internal.aapt.AaptPackageConfig.Builder aaptConfigBuilder,
boolean enforceUniquePackageName)
throws java.io.IOException,
java.lang.InterruptedException,
com.android.ide.common.process.ProcessException
aapt - the interface to the aapt toolaaptConfigBuilder - aapt command invocation parameters; this will receive some additional
data (build tools, Android target and logger) and will be used to request package invocation
in aapt (see Aapt.link(AaptPackageConfig))enforceUniquePackageName - if true method will fail if some libraries share the
same package namejava.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.process.ProcessException - failedpublic void generateApkData(@NonNull
java.io.File apkFile,
@NonNull
java.io.File outResFolder,
@NonNull
java.lang.String mainPkgName,
@NonNull
java.lang.String resName)
throws com.android.ide.common.process.ProcessException,
java.io.IOException
com.android.ide.common.process.ProcessExceptionjava.io.IOExceptionpublic void generateUnbundledWearApkData(@NonNull
java.io.File outResFolder,
@NonNull
java.lang.String mainPkgName)
throws com.android.ide.common.process.ProcessException,
java.io.IOException
com.android.ide.common.process.ProcessExceptionjava.io.IOExceptionpublic static void generateApkDataEntryInManifest(int minSdkVersion,
int targetSdkVersion,
@NonNull
java.io.File manifestFile)
throws java.lang.InterruptedException,
com.android.ide.common.internal.LoggedErrorException,
java.io.IOException
java.lang.InterruptedExceptioncom.android.ide.common.internal.LoggedErrorExceptionjava.io.IOExceptionpublic void compileAllAidlFiles(@NonNull
java.util.List<java.io.File> sourceFolders,
@NonNull
java.io.File sourceOutputDir,
@Nullable
java.io.File packagedOutputDir,
@Nullable
java.util.Collection<java.lang.String> packageWhiteList,
@NonNull
java.util.List<java.io.File> importFolders,
@Nullable
DependencyFileProcessor dependencyFileProcessor,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws java.io.IOException,
java.lang.InterruptedException,
com.android.ide.common.internal.LoggedErrorException,
com.android.ide.common.process.ProcessException
sourceFolders - all the source folders to find files to compilesourceOutputDir - the output dir in which to generate the source codepackagedOutputDir - the output dir for the AIDL files that will be packaged in an aarpackageWhiteList - a list of AIDL FQCNs that are not parcelable that should also be
packaged in an aarimportFolders - import foldersdependencyFileProcessor - the dependencyFileProcessor to record the dependencies
of the compilation.java.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.internal.LoggedErrorException - failedcom.android.ide.common.process.ProcessExceptionpublic void compileAidlFile(@NonNull
java.io.File sourceFolder,
@NonNull
java.io.File aidlFile,
@NonNull
java.io.File sourceOutputDir,
@Nullable
java.io.File packagedOutputDir,
@Nullable
java.util.Collection<java.lang.String> packageWhitelist,
@NonNull
java.util.List<java.io.File> importFolders,
@Nullable
DependencyFileProcessor dependencyFileProcessor,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws java.io.IOException,
java.lang.InterruptedException,
com.android.ide.common.internal.LoggedErrorException,
com.android.ide.common.process.ProcessException
aidlFile - the AIDL file to compilesourceOutputDir - the output dir in which to generate the source codeimportFolders - all the import folders, including the source folders.dependencyFileProcessor - the dependencyFileProcessor to record the dependencies
of the compilation.java.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.internal.LoggedErrorException - failedcom.android.ide.common.process.ProcessExceptionpublic void compileAllShaderFiles(@NonNull
java.io.File sourceFolder,
@NonNull
java.io.File outputDir,
@NonNull
java.util.List<java.lang.String> defaultArgs,
@NonNull
java.util.Map<java.lang.String,java.util.List<java.lang.String>> scopedArgs,
@Nullable
java.io.File nkdLocation,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws java.io.IOException,
java.lang.InterruptedException,
com.android.ide.common.internal.LoggedErrorException,
com.android.ide.common.process.ProcessException
sourceFolder - the source folder with the merged shadersoutputDir - the output dir in which to generate the outputjava.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.internal.LoggedErrorException - failedcom.android.ide.common.process.ProcessExceptionpublic void compileShaderFile(@NonNull
java.io.File sourceFolder,
@NonNull
java.io.File shaderFile,
@NonNull
java.io.File outputDir,
@NonNull
java.util.List<java.lang.String> defaultArgs,
@NonNull
java.util.Map<java.lang.String,java.util.List<java.lang.String>> scopedArgs,
@Nullable
java.io.File nkdLocation,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws java.io.IOException,
java.lang.InterruptedException,
com.android.ide.common.internal.LoggedErrorException,
com.android.ide.common.process.ProcessException
sourceFolder - the source folder containing the fileshaderFile - the shader file to compileoutputDir - the output dirjava.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.internal.LoggedErrorException - failedcom.android.ide.common.process.ProcessExceptionpublic void compileAllRenderscriptFiles(@NonNull
java.util.List<java.io.File> sourceFolders,
@NonNull
java.util.List<java.io.File> importFolders,
@NonNull
java.io.File sourceOutputDir,
@NonNull
java.io.File resOutputDir,
@NonNull
java.io.File objOutputDir,
@NonNull
java.io.File libOutputDir,
int targetApi,
boolean debugBuild,
int optimLevel,
boolean ndkMode,
boolean supportMode,
@Nullable
java.util.Set<java.lang.String> abiFilters,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws java.lang.InterruptedException,
com.android.ide.common.process.ProcessException,
com.android.ide.common.internal.LoggedErrorException,
java.io.IOException
sourceFolders - all the source folders to find files to compileimportFolders - all the import folders.sourceOutputDir - the output dir in which to generate the source coderesOutputDir - the output dir in which to generate the bitcode filetargetApi - the target apidebugBuild - whether the build is debugoptimLevel - the optimization levelndkMode - whether the renderscript code should be compiled to generate C/C++ bindingssupportMode - support mode flag to generate .so files.abiFilters - ABI filters in case of support modejava.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.internal.LoggedErrorException - failedcom.android.ide.common.process.ProcessException@NonNull
@SafeVarargs
public static java.util.List<java.io.File> getLeafFolders(@NonNull
java.lang.String extension,
java.util.List<java.io.File>... importFolders)
extension - the extension to search for.importFolders - an array of list of root folders.@NonNull public DexByteCodeConverter getDexByteCodeConverter()
public void convertByteCode(@NonNull
java.util.Collection<java.io.File> inputs,
@NonNull
java.io.File outDexFolder,
boolean multidex,
@Nullable
java.io.File mainDexList,
@NonNull
DexOptions dexOptions,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws java.io.IOException,
java.lang.InterruptedException,
com.android.ide.common.process.ProcessException
inputs - the input filesoutDexFolder - the location of the output folderdexOptions - dex optionsjava.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.process.ProcessException - failedpublic java.util.Set<java.lang.String> createMainDexList(@NonNull
java.io.File allClassesJarFile,
@NonNull
java.io.File jarOfRoots,
@NonNull
java.util.EnumSet<AndroidBuilder.MainDexListOption> options)
throws com.android.ide.common.process.ProcessException
com.android.ide.common.process.ProcessExceptionpublic void preDexLibrary(@NonNull
java.io.File inputFile,
@NonNull
java.io.File outFile,
boolean multiDex,
@NonNull
DexOptions dexOptions,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws java.io.IOException,
java.lang.InterruptedException,
com.android.ide.common.process.ProcessException
PreDexCache layer.inputFile - the input fileoutFile - the output file or folder if multi-dex is enabledmultiDex - whether multidex is enableddexOptions - dex optionsprocessOutputHandler - output handler to usejava.io.IOException - failedjava.lang.InterruptedException - failedcom.android.ide.common.process.ProcessException - failed@NonNull
public com.google.common.collect.ImmutableList<java.io.File> preDexLibraryNoCache(@NonNull
java.io.File inputFile,
@NonNull
java.io.File outFile,
boolean multiDex,
@NonNull
DexOptions dexOptions,
@NonNull
com.android.ide.common.process.ProcessOutputHandler processOutputHandler)
throws com.android.ide.common.process.ProcessException,
java.io.IOException,
java.lang.InterruptedException
PreDexCache layer.inputFile - the input fileoutFile - the output file or folder if multi-dex is enabled.multiDex - whether multidex is enabled.dexOptions - the dex optionscom.android.ide.common.process.ProcessException - failedjava.io.IOExceptionjava.lang.InterruptedExceptionpublic void createJacocoReportWithJackReporter(@NonNull
java.io.File coverageFile,
@NonNull
java.io.File reportDir,
@NonNull
java.util.List<java.io.File> sourceDirs,
@NonNull
java.lang.String reportName,
@NonNull
java.io.File metadataFile)
throws com.android.ide.common.process.ProcessException
com.android.ide.common.process.ProcessExceptionpublic void packageCodeSplitApk(@NonNull
java.io.File androidResPkg,
@NonNull
java.util.Set<java.io.File> dexFiles,
@Nullable
com.android.builder.model.SigningConfig signingConfig,
@NonNull
java.io.File outApkLocation,
@NonNull
java.io.File incrementalDir,
@NonNull
com.android.apkzlib.zfile.ApkCreatorFactory apkCreatorFactory)
throws com.android.ide.common.signing.KeytoolException,
PackagerException,
java.io.IOException
This is used for instant run cold swaps on N and above.
com.android.ide.common.signing.KeytoolExceptionPackagerExceptionjava.io.IOExceptionpublic static void signApk(@NonNull
java.io.File in,
@Nullable
com.android.builder.model.SigningConfig signingConfig,
@NonNull
java.io.File out)
throws com.android.ide.common.signing.KeytoolException,
SigningException,
java.security.NoSuchAlgorithmException,
ZipAbortException,
SigningException,
java.io.IOException
SigningConfig.in - the jar file to sign.signingConfig - the signing configurationout - the file path for the signed jar.java.io.IOException - failedcom.android.ide.common.signing.KeytoolException - failedSigningException - failedjava.security.NoSuchAlgorithmException - failedZipAbortException - failedSigningException - failed@Nullable public java.lang.String getCreatedBy()
null if no tag was defined