【Gradle】配置详解(持续更正补充)

1、build.gradle 工程构建文件。 
顶级构建文件,为整个项目添加配置

// 声明gradle脚本自身需要使用的资源,包括依赖项、第三方插件、maven仓库地址等。
buildscript {// 声明仓库的源。之前这里用mavenCentral()repositories {jcenter()     // jCenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优}// 配置使用gradle所需要依赖的版本库dependencies {classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0' } } // 为所有的工程的repositories配置为jcenters allprojects { repositories { jcenter() // 支持Java 依赖库管理(maven/ivy) } } task clean(type: Delete) { delete rootProject.buildDir }

 

2、app/build.gradle module构建文件


// 声明要使用的插件。可以自己定制
apply plugin: 'com.android.application'     // 说明该module的构建类型。如果该moudle是个库,就写com.android.library
apply plugin: 'com.jakewharton.butterknife'     // 注解插件 apply plugin: 'com.google.gms.google-services'  // 谷歌服务插件  // 设置编译android项目的参数 android {  // SDK的一些声明 compileSdkVersion 25  // 编译使用的SDK版本(本地要有) buildToolsVersion "24.0.2"  // 编译使用的tools版本(在sdk目录/build-tools/下)  // 默认配置 defaultConfig { applicationId "com.neiliner.mymovie.xiaomi"  // 安装时依据该ID区分是否为同一个应用 minSdkVersion 14  //支持的最低版本 targetSdkVersion 25  //支持的目标版本 versionCode 1  // 版本号,用户能看到的版本号 versionName "1.0"  // 版本名,内部定义的版本名  // 单元测试相关的配置。扩展见<补充1> testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }  //关闭Android Studio的PNG合法性检查的 aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false  // 指定资源的路径。比如从Eclipse迁过来的代码,和AS的文件位置不同,就需要手动设置 sourceSets { main { manifest.srcFile 'AndroidManifest.xml'  //指定AndroidManifest文件 java.srcDirs = ['src']  //指定source目录 resources.srcDirs = ['src']  //指定source目录 aidl.srcDirs = ['src']  //指定source目录 renderscript.srcDirs = ['src']  //指定source目录 res.srcDirs = ['res']  //指定资源目录 assets.srcDirs = ['assets']  //指定assets目录 jniLibs.srcDirs = ['libs']  //指定lib库目录 } debug.setRoot('build-types/debug')  //指定debug模式的路径 release.setRoot('build-types/release')  //指定release模式的路径 }  //签名配置。需要与下面buildTypes配合使用 signingConfigs {  //发布版签名配置 release { storeFile file("fk.keystore")  // 密钥文件路径 storePassword "123"  // 密钥文件密码 keyAlias "fk"  // key别名 keyPassword "123"  // key密码 }  //debug版签名配置 debug { storeFile file("fk.keystore")  // 密钥文件路径 storePassword "123"  // 密钥文件密码 keyAlias "fk"  // key别名 keyPassword "123"  // key密码 } }  // build类型 buildTypes { debug { applicationIdSuffix ".debug"  //将包名设置为.debug,以便同时安装debug和release版本。 signingConfig signingConfigs.release  //设置上面signingConfigs的签名配置 } release { minifyEnabled false  // 是否进行混淆 zipAlignEnabled true  //是否支持zip shrinkResources true  // 移除无用的resource文件 debuggable false  //是否支持调试 signingConfig signingConfigs.debug  //设置签名信息 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  // 设置混淆文件的位置。扩展见<补充2> } }  // 打包时的相关配置。当项目中依赖的第三方库越来越多时,有可能会出现两个依赖库中存在同一个(名称)文件。如果这样,Gradle在打包时就会提示错误(警告)。那么就可以根据提示,然后使用以下方法将重复的文件剔除。 packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/MANIFEST.MF' }  // 程序在编译的时候会检查lint,有任何错误提示会停止build,我们可以关闭这个开关 lintOptions { abortOnError false  // 有错误是否停止build checkReleaseBuilds false  //打包release版本的时候是否进行检测 }  // multiDex的一些相关配置,这样配置可以让你的编译速度更快 dexOptions { preDexLibraries = false incremental true  // 让它不要对Lib做preDexing  // 开启incremental dexing,优化编译效率,这个功能android studio默认是关闭的。 javaMaxHeapSize "4g"  // 设置java堆内存大小 }  // 设置产品特性,即多渠道打包的东西,比如不同的应用名,图标、AndroidManifest.xml  // 配合manifest merger使用的时候就可以达成在一次编译过程中产生多个具有自己特性配置的版本。 productFlavors { xiaomi { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]  // 渠道包配置 manifest.srcFile 'exampleapk/AndroidManifest1.xml' applicationId "com.abc.def.xiaomi" } googlePlay { applicationId "com.abc.def.googleplay" } }  // productFlavors的批量方法,类似一个循序遍历作用。 productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }  // java版本 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } }  // 依赖。远程本地都在这儿配置 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs')  // 编译libs目录下的所有jar包 testCompile 'junit:junit:4.12'  // 编译单元测试框架 compile project(':library')  // 依赖本项目中名为library的库 compile 'com.github.bumptech.glide:glide:3.7.0'  // 编译第三方库 compile 'com.jakewharton:butterknife:8.4.0'  // 编译第三方库 annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'  // 指定处理Annotation的库。AS2.2以前版本这里用 apt。 } 

3、setting.gradle 工程配置

// 声明需要加入gradle的module,即告诉gradle项目中有哪些module需要处理
include ':app', ':extras:ShimmerAndroid'

补充


1、JUnit是一个Java单元测试框架,相关教程 http://www.yiibai.com/junit/eclise-junit-simple-demo.html 
谷歌推荐用这个,使用教程 http://blog.csdn.net/zhuhaiyizhi/article/details/47403723


2、proguardFiles getDefaultProguardFile(‘proguard-Android.txt’), ‘proguard-rules.pro’ 
前一部分代表系统默认的混淆文件,该文件包含了基本的混淆声明,目录在 /tools/proguard/proguard-android.txt ; 
后一部分是我们自定义的混淆文件,目录在 app/proguard-rules.txt,在这里可以声明一些第三方依赖的混淆规则; 
最终混淆的结果是这两部分文件共同作用的。


3、相关推荐 
http://blog.csdn.net/cai_iac/article/details/51909307 
http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html

转载于:https://www.cnblogs.com/fang1019/p/6163540.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙第一款手机,拿下“国内第一手机商”的OPPO,打算弃用华为鸿蒙?

在华为开发鸿蒙系统之前&#xff0c;我国是没有完全属于自己国家的手机系统&#xff0c;国内的操作系统一直被安卓ios系统所占据。尤其是在国产机中最主要的系统就是安卓&#xff0c;而安卓系统的所属方谷歌每年仅凭这一项系统就可以在中国净收数百亿的利益。许多国人也习惯了使…

namespace for c++

namespace中文意思是命名空间或者叫名字空间&#xff0c;传统的C&#xff0b;&#xff0b;只有一个全局的namespace&#xff0c;但是由于现在的程序的规模越来越大&#xff0c;程序的分工越来越细&#xff0c;全局作用域变得越来越拥挤&#xff0c;每个人都可能使用相同的名字来…

html5显示字母的值,使用HTML5 Canvas API控制字体的显示与渲染的方法

今天我们开始征战一个全新的内容——HTML5 Canvas的文本API&#xff01;要知道&#xff0c;艺术家通常同时也是一个书法家&#xff0c;所以我们要学习写字&#xff0c;而且是写出漂亮的字。是不是很有意思&#xff1f;好了&#xff0c;先预告一下Canvas 文本API有哪些。属性描述…

简易商品购物车

<html><head> <title>商品购物车</title><meta charset"utf-8"><style type"text/css"> body{ margin:0; padding:0; font-size:12px; line-height:20px; color:#333; } ul,li,ol,h1,dl,dd{ list-style:none; margin:…

html5 客户端数据缓存机制,深入理解HTML5离线缓存机制

TML5提供了一种离线应用缓存机制&#xff0c;使得网页应用可以离线使用&#xff0c;这种机制在移动端浏览器上支持度非常广&#xff0c;所有版本的android和ios浏览器都能很好的支持。我们可以放心的使用该特性来加速移动端页面的访问速度。开启离线缓存的步骤也非常简单&#…

安卓手机上运行 PC-E500 程序

目录 第1章安卓手机上运行 PC-E500 程序 1 1 PockEmul 1 2 下载 1 3 打包BASIC程序 2 4 配置PC-E500模拟器 5 5 载入e500.pkm 7 6 载入40000.bin 8 7 解包 10 第1章安卓手机上运行 PC-E500 程序 1 PockEmul 安卓手机上运行PC-E500程序&#xff0c;需要…

2021安徽省高考成绩怎么查询系统,2021年安徽省教育招生考试院成绩查询登录入口...

一、2020年安徽高考成绩查询登录入口二、安徽高考成绩查询新闻资讯最新消息!安徽高考预计7月23日划定各批次录取线并公布高考成绩!7月14日上午&#xff0c;记者跟随省人大代表、省政协委员们一同走进安徽省教育招生考试院网评现场。“今年&#xff0c;我省高考的网上评卷工作继…

Java Web之网上购物系统(提交订单、查看我的订单)

作业终于做完了&#xff0c;好开心。。。。。。虽然这一周经历不是那么顺利&#xff0c;但是觉得还是收获了不少&#xff0c;有过想哭的冲动&#xff0c;代码不会写&#xff0c;事情办不好&#xff0c;各种发愁。空间里发小发了带父母出去游玩的照片&#xff0c;瞬间能量值不知…

河北大学计算机专业调剂,【计算机考研调剂】河北大学2021级硕士研究生预调剂信息统计的通知...

广大考生&#xff1a;根据河北大学2021年硕士研究生招生计划&#xff0c;我院拟招收校内外调剂考生&#xff0c;欢迎广大考生调剂到我院。调剂要求&#xff1a;1、按照学校要求&#xff0c;申报我院调剂考生&#xff0c;初试总成绩和单科成绩不低于教育部公布的《2021年全国硕士…

撸表情开发过程中使用腾讯云存储的接入实例分享

推荐一下一个有趣的表情包收集网站&#xff0c;也可以在线制作表情包&#xff0c;欢迎访问&#xff1a;撸表情 撸表情&#xff08;http://www.lubiaoqing.com&#xff09;这个网站是业余时间开发的一个网站&#xff0c;涉及到大量表情包的检索和存储&#xff0c;个人服务器肯定…

html路径详解,详解HTML相对路径和绝对路径

相对路径&#xff1a;以引用文件之网页所在位置为参考基础&#xff0c;而建立出的目录路径。因此&#xff0c;当保存于不同目录的网页引用同一个文件时&#xff0c;所使用的路径将不相同&#xff0c;故称之为相对。绝对路径&#xff1a;以Web站点根目录为参考基础的目录路径。之…

#65279导致页面顶部空白一行解决方法

今天做了两个静态html页面&#xff0c;在浏览器中测试的时候&#xff0c;发现其中一个html页面的顶部多出了些许空白&#xff0c;而另一个页面显示正常。在浏览器中进行了审查对比&#xff0c;发现有空白的那个页面的head标签里面的元素全部跑到了body里面&#xff0c;而且body…

计算机应用技术自我分析,计算机应用*个人自我鉴定

第1篇&#xff1a;计算机应用*个人自我鉴定时光匆匆溜走&#xff0c;短短三年的大学生活即将过去。在菁菁校园中&#xff0c;老师的教诲&#xff0c;同学的友爱以及各方面&#xff0c;使我获得了许多知识&#xff0c;懂得了许多道理。为了更好地适应社会的需要&#xff0c;我在…

怎么把桌面计算机放到快速启动栏,怎么把桌面图标放到快速启动栏

1. 如何把桌面图标放于快速启动栏拖动图标到任务栏&#xff0c;之后删除桌面图标不行的话点击“开始”菜单→“运行”命令&#xff0c;在弹出的“运行”对话框中输入 regsvr32 /n /i:u shell32 后回车&#xff0c;丢失的图标便又重新回到快速启动栏了再不行的话在Windows操作系…

html5 自适应手机布局,科技常识:html5移动端自适应布局的实现

今天小编跟大家讲解下有关html5移动端自适应布局的实现 &#xff0c;相信小伙伴们对这个话题应该有所关注吧&#xff0c;小编也收集到了有关html5移动端自适应布局的实现 的相关资料&#xff0c;希望小伙伴们看了有所帮助。场景&#xff1a;为适应各种大小的屏幕自适应布局我知…

js 两个map合并为一个map_ArcGIS API for JS3.x教程二:构建第一个简单的程序

本文衔接上文&#xff1a;不睡觉的怪叔叔&#xff1a;ArcGIS API for JS3.x教程一&#xff1a;本地开发环境配置​zhuanlan.zhihu.com一、创建简单的HTML文档创建一个简单的HTML文档&#xff1a;<!DOCTYPE html> <html lang"en"> <head><meta c…

hibernate、easyui、struts2整合

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>学生表</title> <!-- 1jQuery的js包 --> <script type"text/javascript" src"jquery-easyui-1.4.4/jquery.min.js"></script&…

selinux= 为 disabled_CentOS7关闭防火墙和SELinux

关闭防火墙查看防火墙状态[rootlocalhost ~]# systemctl status firewalld临时关闭&#xff08;下次开机启动&#xff0c;自动启动防火墙&#xff09;[rootlocalhost ~]# systemctl stop firewalld永久关闭防火墙&#xff08;开机启动时不在启动&#xff09;[rootlocalhost ~]#…

selenium 基本的键盘方法

selenium 基本的键盘方法 今晚不想加班&#xff0c;于是赶紧回来看看书&#xff1a; 1.下了selenium的小工具&#xff1a;FireBug/FirePath。 2.确定了看书顺序&#xff0c;我觉得难度低点开始比较好&#xff0c;所以我还是先看基于Python的selenium&#xff0c;另一本书再看把…

计算机主机组成部分和功能,电脑的组成部分及作用

对于很多人来讲&#xff0c;电脑的使用似乎是一件很稀松平常的事情了。但是对于一些新手或者是一些初学者来说&#xff0c;电脑的相关组成部件还有相应的作用都不是很熟悉&#xff0c;那么电脑的组成部分及作用是什么呢?下面是学习啦小编收集的关于电脑的组成部分及作用&#…