频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
那些好玩的gradle
2017-04-05 09:27:47         来源:随风而去  
收藏   我要投稿

1.Apk拷贝
当我需要把编译出来的Apk统一放到服务器或者某个地方的时候,这个脚本就可以起到作用。

task('copyAll') {
    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            if (!output.outputFile.name.contains('unsigned')) {
                task("copy${variant.name.capitalize()}", type: Copy) {
                    from(output.outputFile)
                    into("/home/huanglei/Download/a/")
                }
                dependsOn("copy${variant.name.capitalize()}")
            }
        }
    }
}

2.编译后希望打开apk所在位置

task('openApk') {
    android.applicationVariants.all { variant ->
        variant.assemble.doLast {
            //If this is a 'release' build, reveal the compiled apk in finder/explorer
            if (variant.buildType.name.contains('debug')) {

                def path = null;
                variant.outputs.each { output ->
                    path = output.outputFile
                }

                exec {
                    if (System.properties['os.name'].toLowerCase().contains('mac os x')) {
                        ['open', '-R', path].execute()
                    } else if (System.properties['os.name'].toLowerCase().contains('windows')) {
                        ['explorer', '/select,', path].execute()
                    } else if (System.properties['os.name'].toLowerCase().contains('linux')) {
                        ['nautilus', path].execute()
                    }
                }
            }
        }
    }
}

3.根据git的计较次数作为VersionCode,可以通过 adb shell dumpsys package com.example.samples 来直接查看versionCode

defaultConfig {
    versionCode gitCommitCount() ?: 0
}

def gitCommitCount() {
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'rev-list', '--count', 'HEAD'
            standardOutput = stdout
        }
        def commitCount = stdout.toString().trim().toInteger()
        return commitCount
    }
    catch (ignored) {
        return 0;
    }
}

4.根据Git的tag description来设置versionName

defaultConfig {
    versionName getGitTagName() ?: "1.0.0"
}

def getGitTagName() {
    try {
        def branchout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'rev-parse', '--abbrev-ref', 'HEAD'
            standardOutput = branchout
        }
        def branch = branchout.toString().trim()

        if (branch.equals("master")) {
            def stdout = new ByteArrayOutputStream()
            exec {
                commandLine 'git', 'describe', '--dirty'
                standardOutput = stdout
            }
            return stdout.toString().trim()
        } else {
            return branch;
        }
    }
    catch (ignored) {
        return null;
    }
}
点击复制链接 与好友分享!回本站首页
上一篇:View的onFinishInflate和onViewAdded回调说明
下一篇:xUtils3 post方法传json参数
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站