监听task
在build.gradle(:appp)
添加
class BuildTimeCostListener implements TaskExecutionListener, BuildListener {
private long startTime
private timeList = []
@Override
void beforeExecute(Task task) {
//task开始执行之前搜集task的信息
startTime = System.currentTimeMillis()
}
@Override
void afterExecute(Task task, TaskState taskState) {
//task执行完之后,记录结束时的时间
def ms = System.currentTimeMillis() - startTime
timeList.add([ms, task.path])
task.project.logger.warn("cost ${ms} ms")
}
@Override
void buildStarted(Gradle gradle) {
}
@Override
void settingsEvaluated(Settings settings) {
}
@Override
void projectsLoaded(Gradle gradle) {
}
@Override
void projectsEvaluated(Gradle gradle) {
}
@Override
void buildFinished(BuildResult result) {
println(">>>>>>>>>> Main Tasks:")
for (time in timeList) {
if (time[0] > 100) {
printf(">>>Task Cost: %8s ms %s\n", time)
}
}
}
}
gradle.addListener new BuildTimeCostListener()
-profile
./gradlew assembleDebug -profile
Gradle
支持增量构建,当您运行构建时,有些Task
被标记为UP-TO-DATE
,这就是增量编译生效了
参考
Android Gradle学习(八):统计Task执行时长
Android 编译优化 - SegmentFault 思否