输出gradle执行task名称、输入输出文件和耗时
2016-03-30 17:19
302 查看
使用gradle编译android,很多时候,我们不清楚里面到底执行哪些操作及各个阶段的消耗的时间,
因此有个打印gradle的各个task的耗时及输入输出的文件对了解gradle很有帮助:
参考:
http://jiajixin.cn/2015/08/07/gradle-android/
因此有个打印gradle的各个task的耗时及输入输出的文件对了解gradle很有帮助:
class TimingsListener implements TaskExecutionListener, BuildListener { private Clock clock private timings = [] @Override void beforeExecute(Task task) { clock = new org.gradle.util.Clock() if (task.outputs.files.files) { task.project.logger.warn "taskName:${task.name} " task.project.logger.warn "inputs.files.files:-----------start------- " task.inputs.files.files.each { task.project.logger.warn "${it.absolutePath} " } task.project.logger.warn "inputs.files.files: -----------end---------- " } } @Override void afterExecute(Task task, TaskState taskState) { def ms = clock.timeInMs timings.add([ms, task.path]) task.project.logger.warn "${task.path} took ${ms}ms" if(task.outputs.files.files) { task.project.logger.warn "taskName:${task.name}" task.project.logger.warn "outputs.files.files: ------------start----------------- " task.outputs.files.files.each { task.project.logger.warn "${it.absolutePath} " } task.project.logger.warn "outputs.files.files: ---------------end------------------ " } } @Override void buildFinished(BuildResult result) { println "Task timings:" for (timing in timings) { if (timing[0] >= 50) { printf "%7sms %s\n", timing } } } @Override void buildStarted(Gradle gradle) {} @Override void projectsEvaluated(Gradle gradle) {} @Override void projectsLoaded(Gradle gradle) {} @Override void settingsEvaluated(Settings settings) {} } gradle.addListener new TimingsListener()
参考:
http://jiajixin.cn/2015/08/07/gradle-android/
相关文章推荐
- 机器人--机器视觉的魅力
- 【暑假】[网络流]网络流知识总结
- 【暑假】[基本数据结构]根据BFS与DFS确定树
- 【暑假】[基本数据结构]根据in_order与post_order构树
- 【暑假】[基本数据结构]基本的数据结构知识点总结梳理
- 【暑假】[实用数据结构]动态连续和查询问题
- 【暑假】[实用数据结构]范围最小值问题(RMQ)
- 【暑假】[实用数据结构]动态范围查询问题
- 【暑假】[实用数据结构]UVa11995 I Can Guess the Data Structure!
- 【暑假】[实用数据结构]UVa11991 Easy Problem from Rujia Liu?
- 【暑假】[实用数据结构]UVAlive 3135 Argus
- 【暑假】[实用数据结构]UVa11997 K Smallest Sums
- 【暑假】[实用数据结构]UVAlive 3644 X-Plosives
- 【暑假】[实用数据结构]UVAlive 3027 Corporative Network
- 【暑假】[实用数据结构]UVAlive 4329 Ping pong
- 【暑假】[实用数据结构]UVa11235 Frequent values
- 【暑假】[实用数据结构]前缀树 Trie
- 【暑假】[实用数据结构]KMP
- 阿里二面(3.28)
- Android 在代码中动态设置字体颜色需要注意的问题