packageDebug和assembleDebug之间的差异

时间:2014-08-15 17:20:29

标签: android gradle android-gradle

gradlew packageDebuggradlew assembleDebug都会创建我的APK。 assembleDebug似乎依赖于packageDebug,那么它还有什么用呢?有什么理由我应该使用其中一个吗?

2 个答案:

答案 0 :(得分:2)

如果您运行gradle任务:

gradle packageDebug --info
gradle assembleDebug --info

执行的gradle任务的安全性是相同的,除了一个,最后一个:

zipalignDebug

引用zipalign,此任务对apk文件执行优化。此过程在生成并执行apk后执行。这就是为什么当你运行这两个任务时,你会看到一个生成的apk文件。

答案 1 :(得分:0)

使用assembleDebug,它不等同于packageDebugassembleDebug包含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