尝试理解发布和调试构建变体之间的Android Studio gradle构建任务

时间:2016-08-09 16:10:28

标签: android-studio android-gradle

使用Android Studio 2.1.2,Gradle 2.10和Android Gradle插件2.1.0,在一个项目和模块中构建一个库AAR。

我希望通过Android Studio模块自定义任务插入自己的行为。我在IDE中,在调试和发布变体之间翻转并执行构建/重建项目,观看Gradle控制台。

我的问题:
我理解为什么“按惯例配置”任务在运行罐装“调试”与“释放”任务之间切换,但我不明白为什么两个变体之间的固定任务序列在功能上是不同的。例如,在重建调试时,我看到执行了这些核心任务:
...
:LibraryModule:bundleDebug
:LibraryModule:compileDebugSources
:LibraryModule:assembleDebug
......

重建发布时,我看到执行了这些核心任务:
...
:LibraryModule:compileReleaseJavaWithJavac - 不是增量的(例如输出已更改,之前没有执行等)。
:LibraryModule:compileReleaseNdk UP-TO-DATE
:LibraryModule:compileReleaseSources
......

什么? bundleRelease和assembleRelease任务在哪里?我在发布版本中的哪个位置挂钩我的自定义任务(因为没有调用assembleRelease或bundleRelease)?

我可以使用Android Studio“编辑配置...”IDE功能来设置自定义构建配置,以便为AAR目标执行“制作项目(F7)”。如果是,怎么样?具体来说,我在“Gradle project:”字段中放置什么来定位特定模块的构建,以及我在“任务:”字段中确切地说,语义和语法是什么?

最后一个问题。完成重建库模块(生成.AAR文件)并将构建变量设置为debug后,我看到以下任务执行:
...
:LibraryModule:bundleDebug
:LibraryModule:compileDebugSources
:LibraryModule:assembleDebug
...

执行顺序似乎不对。我认为顺序是:
...
:LibraryModule:assembleDebug
:LibraryModule:compileDebugSources
:LibraryModule:bundleDebug
...

我是通过依赖链输出或什么来伪造的?

0 个答案:

没有答案