Android Gradle 配置选项合集

//让gradle 引入构建安卓app的插件
apply plugin: ‘com.android.application‘

//自定义变量
customProp {
    minSdkVersion 15
    prop2 "foo"
}

//自定义变量
def customProp2 = ["targetSdkVersion":23, "prop2":"bar"];

//自定义变量
// 根据日期自动生成build号
def calendar = Calendar.getInstance();
def tt = String.format("%d%02d%02d%02d",
        calendar.get(Calendar.YEAR),
        calendar.get(Calendar.MONTH)+1,
        calendar.get(Calendar.DAY_OF_MONTH),
        calendar.get(Calendar.HOUR_OF_DAY));

// 读取local.properties文件
def Properties properties = new Properties()
properties.load(project.rootProject.file(‘local.properties‘).newDataInputStream())

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    //签名选项
    signingConfigs {
        demoSignCfg {
            keyAlias ‘demo‘
            //读取配置
            keyPassword properties.getProperty("key.password")
            storeFile file(‘demo.keystore‘)
            storePassword properties.getProperty("key.password")
        }
    }

    //编译选项
    compileOptions {
        //使用jdk1.8 编译
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    //代码检查选项
    lintOptions {
        //检查发布构建
        checkReleaseBuilds rootProject.ext.checkReleaseBuilds
        //遇到错误停止
        abortOnError false
    }

    //打包选项
    packagingOptions {
        //去除的文件
        exclude ‘META-INF/LICENSE‘
        exclude ‘META-INF/LICENSE.txt‘
        exclude ‘META-INF/NOTICE‘
        exclude ‘META-INF/NOTICE.txt‘
    }

    //资源打包选项
    aaptOptions {
        //不压缩的文件
        noCompress ‘foo‘, ‘bar‘
        //过滤文件
        ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }

    //编译dex选项
    dexOptions {
        //堆栈内存最多4g
        javaMaxHeapSize "4g"
    }

    //配置
    configurations {
        //去掉所有的 com.android.support:support-annotations 依赖
        all*.exclude group: ‘com.android.support‘, module: ‘support-annotations‘;
    }

    //默认全局配置选项
    defaultConfig {
        applicationId "com.example.gradle_test"
        minSdkVersion customProp.minSdkVersion
        targetSdkVersion customProp2.targetSdkVersion
        //使用生成的版本号
        versionCode Integer.parseInt(tt)
        versionName "1.0"

        //Manifest 里用的占位符: <... android:label="${activityLabel}" />
        manifestPlaceholders = [ activityLabel:"defaultName"]
    }

    //构建变种, flavor 和 defaultConfig类型相同
    productFlavors {
        //变种1
        flavor1 {
            packageName "com.example.flavor1"
            versionCode 20
        }

        flavor2 {

        }
    }

    //配置各种目录
    sourceSets {
        //主要
        main {
            manifest.srcFile ‘AndroidManifest.xml‘
            java.srcDirs = [‘src‘]
            resources.srcDirs = [‘src‘]
            aidl.srcDirs = [‘src‘]
            renderscript.srcDirs = [‘src‘]
            res.srcDirs = [‘res‘]
            assets.srcDirs = [‘assets‘]
            jniLibs.srcDirs = [‘libs‘]
        }

        //测试资源路径
        instrumentTest.setRoot(‘tests‘)

        debug.setRoot(‘build-types/debug‘)
        release.setRoot(‘build-types/release‘)
    }

    //构建类型
    buildTypes {
        //debug类型(只是个名字而已)
        debug {
            //app id 后缀: com.example.app.debug
            applicationIdSuffix ".debug"
        }

        //发布类型(只是个名字而已)
        release {
            //关闭混淆
            minifyEnabled false
            //使用的混淆文件
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘

            //签名选项
            signingConfig signingConfigs.demoSignCfg
       //移除无用资源       
            shrinkResources true 

            //版本名后缀
            versionNameSuffix ".0"

        //指定打包文件名
       applicationVariants.all { variant ->
         variant.outputs.each { output ->
         def outputFile = output.outputFile
           if (outputFile != null && outputFile.name.endsWith(‘.apk‘)) {
             //输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk
             def fileName = "apk_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
             output.outputFile = new File(outputFile.parent, fileName)
           }
         }
       }

           //过滤abi库
           ndk {
               //只打包如下平台的so
               abiFilters "x86", "armeabi-v7a", "armeabi", ‘mips‘
           }
        }

        //自定义
        jnidebug {
            // 继承自上面的debug.
            initWith debug

            applicationIdSuffix ".jnidebug"
            jniDebuggable true
        }
    }

    //依赖仓库
    repositories {
        maven { url "https://jitpack.io" }
    }
}

//依赖管理
dependencies {
    //编译/运行时依赖
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    //$rootProject.ext 指的是 项目的那个build.gradle里面定义了一个ext 变量
    compile ("com.android.support:design:$rootProject.ext.SupportVersion"){
        //不引用如下包
        exclude module: ‘support-v4‘
        exclude module: ‘appcompat-v7‘
        //不传递引用
        transitive false
    }
    //测试依赖
    testCompile ‘junit:junit:4.12‘
    //外部提供, 不打包
    provided ‘com.android.support:appcompat-v7:23.4.0‘

    //falvor1需要的依赖, f1Compile, f1Provided.....
    flavor1Compile ‘com.android.support:appcompat-v7:24.0.0‘
}

//清理构建后资源的task
task clean(type: Delete) {
    delete rootProject.buildDir
}

  以上配置如有错误, 还请指出

时间: 2024-10-13 01:26:27

Android Gradle 配置选项合集的相关文章

Android游戏源码合集(主要是AndEngine和Libgdx的)

近在网络上看到有网友抱怨Android游戏源码找不到,所以小弟收集了一些AndEngine和Libgdx的游戏源码,以Eclipse工程的形式配置好环境,再陆续发出(某引擎避嫌,不在此列). 虽说这些游戏,主要是由Libgdx与AndEngine开发的源码组成.但事实上,能算游戏的,开源的,举凡有点价值的Android游戏源码,小弟也会陆续收集(比如Replicaisland没用任何引擎,可代码有价值,所以这次也放进来了),更会在博客中一一给出. 不过,有两类游戏不在此列,一是游戏源码虽然乍看下

Android Gradle 配置 [转]

转载自:http://pybeta.com/2016/06/about-gradle/ Android Gradle配置 编译加速 在gradle.properties中配置 1 org.gradle.configureondemand=true #demand 2 org.gradle.daemon=true #单独的守护进程 3 org.gradle.parallel=true #串行编译 4 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

老李分享:android app自动化测试工具合集

老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200.我们从2016年8月开始不断升级测试开发工程师就业培训的班的课程,不断新增和优化课程内容,为了和当下企业的实际情况,提高学员的实战水平,在2016年稳定课程主题框架,做到每半年升级一版. 安卓应用自动化测试工具之一 - PerfectoMob

2015年Android学习视频完美合集

[2015年Android视频完美合集] [Stay教你变Android大神]框架合辑 [毕设项目]android电子市场 商城购物(iGou)App开发教程 菜鸟窝-新浪客户端 [IT客学院]神一样的模仿[2]–高仿拉手网,项目经验从这里起航(1) Android SlidingMenu菜单栏程序设计开发 Android(安卓)开发教程 Android通用下拉刷新控件的使用 Android实战开发租赁管理软件教程 酷蜂科技30万元安卓开发视频 尚学堂高明鑫全网最新.最牛.最全andriod视频

Android Gradle配置

解决问题 错误: Could not find the AndroidManifest.xml file, going up from path //打开app build.gradle文件加入以下代码 /** * AA注解Apt配置 */ apt { arguments { androidManifestFile variant.processResources.manifestFile resourcePackageName AppPackageName } } 错误:  Could not

Android模拟器配置选项说明

Memory Options是模拟器的运行内存大小,类比电脑内存大小,就是在设置->应用程序中,正在运行标签页下面显示的那个大小Internal storage是模拟器内置存储空间大小,用于存放安装程序和程序数据的,就是在设置->应用程序中,其它标签页下面显示的那个大小SD card就不用解释了吧?就是SD卡存储空间大小 其它的一项一项来:AVD Name就是你模拟器的名称,在你见多个模拟器的时候用于区分用的Device是根据一些实际手机配置提供的一些模拟器设置,包括分辨率和运行内存大小.内置

Android性能测试初探,合集粘贴版,转自Testerhome,卡斯著

Android 性能测试,跟 pc 性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试 一类为应用的性能测试 对于应用性能测试,包括很多测试项,如启动时间.内存.CPU.GPU.功耗.流量等. 但针对 rom 版本的性能测试,一般关注功耗. 先说说应用的性能测试,对于启动时间.内存.cpu 测试大家一般都使用外部提供的第三方工具来辅助测试,如GT.安测试等.这些工具的原理都是基于调用 android 底层的一些 api 来获取到测试所用到的值,当

android学习笔记 对话框合集

package com.zhangbz.dialog; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClick

Android编程实用代码合集

1.android dp和px之间转换public class DensityUtil { /** * 根据手机的分辨率从 dip 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5