gradlew packageDebug
和gradlew assembleDebug
都会创建我的APK。 assembleDebug
似乎依赖于packageDebug
,那么它还有什么用呢?有什么理由我应该使用其中一个吗?
答案 0 :(得分:2)
如果您运行gradle任务:
gradle packageDebug --info
gradle assembleDebug --info
执行的gradle任务的安全性是相同的,除了一个,最后一个:
zipalignDebug
引用zipalign,此任务对apk文件执行优化。此过程在生成并执行apk后执行。这就是为什么当你运行这两个任务时,你会看到一个生成的apk文件。
答案 1 :(得分:0)
使用assembleDebug
,它不等同于packageDebug
。 assembleDebug
包含packageDebug
并执行其他任务。
下面列出了assembleDebug
中包含的所有任务,其中一项是packageDebug
。
app:assembleDebug - Assembles all Debug builds
app:checkDebugManifest
app:compileDebugAidl
app:compileDebugJava
app:compileDebugNdk
app:compileDebugRenderscript
app:dexDebug
app:generateDebugAssets
app:generateDebugBuildConfig
app:generateDebugResValues
app:generateDebugResources
app:generateDebugSources
app:mergeDebugAssets
app:mergeDebugResources
app:packageDebug
app:preBuild
app:preDebugBuild
app:preDexDebug
app:preReleaseBuild
app:prepareComAndroidSupportSupportV132000Library - Prepare com.android.support:support-v13:20.0.0
app:prepareComAndroidSupportSupportV42000Library - Prepare com.android.support:support-v4:20.0.0
app:prepareDebugDependencies
app:processDebugJavaRes
app:processDebugManifest
app:processDebugResources
app:validateDebugSigning
app:zipalignDebug
此外,从Gradle Plugin文档:
Android项目至少有两个输出:调试APK和发布 APK。每个都有自己的锚任务,以方便构建它们 单独:
- assemble
- assembleDebug
- assembleRelease
它们都依赖于执行所需多个步骤的其他任务 建立一个APK。汇编任务取决于两者,所以调用它 建立两个APK