Open kangdawei opened 6 years ago
调试看看哪里花的时间最长
assembleDebug --profile
常用 配置 Gradle cache、Android build cache 、xmx:
org.gradle.jvmargs=-Xmx8192m -XX\:MaxPermSize\=1024m
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
android.enableBuildCache=true
启动的gradle 任务的时候选择性的 --configure-on-demand
和 --offline
以及 更新到最新的 Android plugin for Gradle
楼上说的很好, 补充一下:
@jp1017 引用 aar
是需要稳定的 module
不经常改变,非业务模块,例如:第三方库的包装 module
,若有修改的时候,需要手动生成
赞一个屏蔽task
@jp1017 有个非常麻烦的是 module 之间如果存在资源 res 互相调用的情况
借此贴提出来,希望有大神解答下:
dependencies
中使用 compile
来引用,并且都引用 support
模块R.color
,R.string
去访问别的模块的资源,其实就是将模块内的资源暴露出来了implementation
,compileOnly
,runtimeOnly
,api
,但是这些资源依赖导致 R 文件生成的问题怎么处理?根目录 gradle.build 添加如下配置
allprojects {
gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("Test")
|| task.name.contains("mockableAndroidJar")
|| task.name.contains("Lint")
|| task.name.contains("Aidl")
|| task.name.contains("Ndk")
|| task.name.contains("Jni")) {
task.enabled = false
}
}
}
}
去掉没有用的gradle task,可以减少很多时间
@biaomingzhong 既然A、B、C模块资源需要互相调用,那么这些资源直接放到大家都引用的support模块去不就可以了吗?
@csbz17027 普通资源图片之类的可以这样处理,若是自定义 View 需要 attrs
属性这些的引用就尴尬了,现在是按照官方推荐的使用 implementation
,不能使用 compileOnly
就算不是自己的模块,引入一个第三方库,第三方库包含了一些自定义 view 的 attrs
配置,也是只能使用 implementation
,不能使用 compileOnly
20几个module,运行或打包过慢的问题怎么解决?