androidStudio 中 gradle 常用功能

1. gradle 使用 svn 当前版本信息.

def getSvnRevision() {
    new ByteArrayOutputStream().withStream { os ->
        def result = exec {
            executable = ‘svn‘
            args = [‘info‘]
            standardOutput = os
        }
        def outputAsString = os.toString()
        def matchLastChangedRev = outputAsString =~ /Last Changed Rev: (\d+)/

        ext.svnRev = "${matchLastChangedRev[0][1]}".toInteger()
    }

    return svnRev
}

使用例子:

versionCode 1
versionName "0.${versionCode}." + getSvnRevision()

使用 git checkout 的 6位短版本信息.

task gitReversion {
    def cmd = "git rev-parse --short HEAD"   // git rev-list --all | wc -l 获取提交次
    def proc = cmd.execute()
    ext.revision = proc.text.trim()
}

使用例子:

versionCode 1
versionName "0.${versionCode}." + gitReversion.revision

  

gradle 拷贝文件:

task copyTaskWithPatterns(type: Copy) {
    from "${buildDir}/outputs/apk/"
    into "c:/apks/"

    // 不拷贝未签名的文件.
    exclude { details -> details.file.name.endsWith(‘-unaligned.apk‘) || details.file.name
            .endsWith(‘-unsigned.apk‘) }
    include "**/*.apk"

    println "apk copied. ${buildDir}"
}

build.doLast {
    tasks.copyTaskWithPatterns.execute()
}

其中注意的是 如果偷懒写法的话, exclude 在include之前.

如下的 build 文件指定输出的文件名.

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
            signingConfig signingConfigs.release
        }

        debug {
            runProguard false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
            debuggable true
            jniDebugBuild true
        }

        applicationVariants.all { variant ->

            def file = variant.outputFile
            if(variant.buildType.name.equals("release")){ // 判断编译的类型
                variant.outputFile = new File(
                        (String) file.parent,
                        (String) (project.archivesBaseName + "-" + variant.mergedFlavor.versionName
                                + ".apk")
                )
            }else{
                variant.outputFile = new File(
                        (String) file.parent,
                        (String) (project.archivesBaseName + "-" + variant.mergedFlavor.versionName
                                + ".apk")
                )
            }
        }
    }

  

另外

variant.baseName = {moduleName}-debug,
 project.archivesBaseName ={projectName}
 variant.name={moduleName}Debug

关于 android-studio中 gradle 的使用方式. 参见: http://tools.android.com/tech-docs/new-build-system/user-guide

时间: 2024-10-13 12:34:33

androidStudio 中 gradle 常用功能的相关文章

AndroidStudio中gradle异常:unexpected end of block data

原因:可能是Android buildTools版本不够高. 解决方法:打开build.gradle,将android中buildToolsVersion改为'20.0.0' (我使用的是gradle 2.1) 更多尝试后发现也可能是其他版本不够.如下是可行的: android { compileSdkVersion 18 buildToolsVersion '20.0.0' defaultConfig { minSdkVersion 19 targetSdkVersion 18 } ……

Androidstudio中gradle配置和使用

加速篇 GRADLE的构建过程通常会比较漫长,一个中等项目,10M左右大小的app,一次完整构建大概在5分钟左右,是不是很吓人,当然,如果是在调试阶段,采用Android Studuo 2.0,默认提供的Instant Run方式,每次修改都不会重新构建项目,从而加快了构建过程.恩,这是另一个故事,这里,我们先谈谈GRADLE脚本的加速姿势. 一般来说,GRADLE一次完整的构建过程通常分成三个部分,初始化,配置和执行任务,那么我们可以考虑从这三个部分分别尝试优化. 使用daemon 构建初始化

pthon中列表常用功能介绍

一.列表(list) 1.定义列表 names = [] #定义空列表 names = ['a','b','c'] #定义非空列表 2.访问列表中元素 >>> names = ['a','b','c','d'] >>> names[0] #访问第一个元素 'a' >>> names[1] #访问第二个元素 'b' >>> names[-1] #访问倒数第一个元素 'd' >>> names[-2] #访问倒数第二个元

Excel中的常用功能

Excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理.统计分析和辅助决策操作,广泛地应用于管理.统计财经.金融等众多领域. Excel删除公式保留数据 1.简单举例一个简单的公式数据,第三列对第一列的操作,当然,我们日常会有更多的复制的公式,但是原理是一样的,如图. 2.我们选中第一行,然后往下拖进行复制,主要是为了后面操作,如图. 3.我们选中,然后点击右键,复制后,在原先的列上右键,粘贴,在粘贴的时候,选择性粘贴,选择数据值的属性粘贴,如图.这样就去除公式,只保留数据

笔试题中的常用功能函数

1. 请编写一个C 函数,该函数将给定的一个整数转换成字符串. void IntToCharChange(int num,  char* pval) { char strval[100]; int i , j; int val0 = 0; int val1 = 0; val0 = num; for(i=0; i<100; i++) { val1 = val0 % 10; //取余val0 = val0 / 10; // 取整strval[i] = val1 + 48;  // 数字-字符if(v

jQuery实战的常用功能

最近看了<jQuery实战第二版>有所得,写下这篇随笔,这篇随笔主要介绍jQuery中的常用功能. jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发.如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网

SVN的安装与常用功能使用以及解决安装配置过程中的一些错误

SVN简介: SVN是Subversion的简称,是一个开放源代码的版本控制系统,将工程代码集中在服务器上进行一个统一的集中式管理,从而能够方便地控制代码版本,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,而且通过使用SVN开发人员之间[学Java,到凯哥学堂kaige123.com]能够很方便的更新.提交工程代码,并且如果工程的版本有冲突还

项目中常用功能,如:流媒体、健康数据(步数等)等-b

整理iOS开发中使用的各种流媒体和常用的高级功能.由于时间关系,目前只写了一部分功能,全部都采用的是系统方法,没用第三方,截图如下: screen1.png screen2.png 个人比较懒,不爱多写文字,直接上代码,哈哈. 视频 系统用AVFoundation与MediaPlayer框架实现播放视频的方案.其中AVFoundation扩展性好,都需自定义功能,而MediaPlayer集成简单,但是样式不可扩展. 1.AVFoundation使用AVPlayer播放视频,它属于view的lay

Unity中操作手机常用功能

最近在测试一个小Demo,用到很多手机功能.在这里一一贴出来,以供后期参考 备注:在打包发布时,Plugins下一定要导入如下dll文件,否则build后无法连接数据库<I18N,I18N.West,System.Data,Mysql.Data> 1.操作手机震动:  Handheld.Vibrate();  //震动前自己加条件判断 2.Input框 调用系统输入法:每个插件TextBox控件自带此功能,实用时开启即可,自动调用手机输入法. 3.退出应用程序<不完整>:if(In