文档章节

Android开发笔记之gradle的buildTypes内部配置

shzwork
 shzwork
发布于 07/05 23:47
字数 763
阅读 13
收藏 0

Android gradle的buildTypes内部配置

buildTypes {
        debug {
            // 服务器配置
            buildConfigField "String", "SERVERHEAD", "\"http://110.11.11.00/miaomiao/\""
            //是否混淆
            minifyEnabled false
            zipAlignEnabled true
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.debug

        }
        release {
            // 正式服务器
            buildConfigField "String", "SERVERHEAD", "\"http://miaomiao.com/miaomiao/\""
            //混淆
            minifyEnabled true
            zipAlignEnabled true//内存对齐
            // 移除无用的resource文件
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //签名
            signingConfig signingConfigs.release
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
配置属性说明:
minifyEnabled:

debug与release的默认值都为false,如果需要混淆需要手动配置为true;
混淆文件在proguardFiles后面配置,默认为app目录下的 “proguard-rules.pro”
shrinkResources:

配置true,移除无用的resource文件,可以减小apk包的大小,有瘦身效果;
Tor Norbye在Google+上还透露了Android Gradle插件清除无用资源的效果:在构建时,自动移除无用资源的功能能够大幅度减小APK文件的大小(最高可减小34%);当前能够移除的无用资源包括图片、布局、菜单等资源文件,但不包括value资源文件。
zipAlignEnabled:

是否对齐app所有资源,对齐后,会使得在运行时Android与应用程序间的交互更加有效率;
配置此属性必须要有足够的信息签名程序包,Ant才会执行对齐操作,因为对齐处理发生在签名之后。为了能够签名程序包,进而执行对齐操作,Ant必须知道keystore的位置以及build.properties中key的名字。相应的属性名为key.store和key.alias。如果这些属性为空,签名工具会在编译过程中提示输入store/key的密码,然后脚本会执行签名及apk文件的对齐。如果这些属性都没有,Release程序包不会进行签名,自然也就不会进行对齐了。
可以直接在android{}内配置签名信息,代码如下:

signingConfigs {
        debug {
            //miaomiao_keystore.jks文件最好放在项目app目录下
            storeFile file("miaomiao_keystore.jks")
            storePassword "123456"
            keyAlias "miaomiao"
            keyPassword "123456"
        }
        release {
            //miaomiao_keystore.jks文件最好放在项目app目录下
            storeFile file("miaomiao_keystore.jks")
            storePassword "123456"
            keyAlias "miaomiao"
            keyPassword "123456"
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
buildConfigField

字段参数配置,android的gradle会根据buildTypes的配置自动生成BuildConfig.java文件,直接在项目接口配置的java文件内通过类名调用获取,可以避免每次调试与正式打包时容易忘记切换服务器的问题,省去出错麻烦.

//服务器头字段
public static final String SERVER_HEADER = BuildConfig.SERVERHEAD;
1
2
以下一般为默认属性即可:

debuggable: debug模式默认为true, release模式默认是false

jniDebuggable: debug模式与release模式默认都是false

renderscriptDebuggable: debug模式与release模式默认都是false
--------------------- 
作者:Droidrzy 
来源:CSDN 
原文:https://blog.csdn.net/droidrzy/article/details/61200115 
版权声明:本文为博主原创文章,转载请附上博文链接!

本文转载自:https://blog.csdn.net/droidrzy/article/details/61200115

shzwork
粉丝 15
博文 817
码字总数 10675
作品 0
厦门
私信 提问
读书笔记--Android Gradle权威指南(下)

前言 最近看了一本书《Android Gradle 权威指南》,收获挺多,就想着来记录一些读书笔记,方便后续查阅。 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南(上) 上一篇中我们讲了:...

请叫我大苏
2018/05/27
0
0
Jenkins+Gradle+android+SonarQube

一、环境 ubuntu14.04(64位) jdk 1.7 ant 1.9 jenkins 1.606 tomcat 7.0.5 android sdk gradle nexus sonarqube 二、安装 JDK环境变量 gradle环境变量 Jenkins环境变量 android sdk 环境变量......

蓝桥书生
2015/04/19
2.8K
0
学习Android Studio里的Gradle

一直听说Gradle很强大,只是偶尔用Android Studio创建Demo的时候看到他一次,今天抽个时间完整记录一下。 1.gradle位置 Android Studio项目创建好之后,默认有3个gradle文件,分别位于: /s...

红豆与绿豆
2015/11/07
145
0
Android Gradle使用总结

Android Gradle Android项目使用 Gradle 作为构建框架,Gradle 又是以Groovy为脚本语言。所以学习Gradle之前需要先熟悉Groovy脚本语言。 Groovy是基于Java语言的脚本语言,所以它的语法和Jav...

北辰丨丶
03/07
3
0
Android Studio 2.3 到 3.0 (正式版)的项目迁移

前言 要迁移 先 看官网迁移策略 https://developer.android.google.cn/studio/build/gradle-plugin-3-0-0-migration.html 以下只是我个人的迁移思路和碰到的一些问题及解决方法,仅供参考。 ...

Bleoo
2017/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

常用正则表达式整理

本文转载于:专业的前端网站➩常用正则表达式整理 /*以下为亲自验证过,备用*/   数字,0-100,包含0和100,且小数点后最多有三位: /^(\d{1,2}(\.\d{1,3})?|100)$/ 匹配正整数:^[1-9]*[1-9][...

前端老手
29分钟前
5
0
Java 中可重入锁、不可重入锁的测试

Java 中可重入锁、不可重入锁的测试 可重入锁 指在同一个线程在外层方法获取锁的时候,进入内层方法会自动获取锁。 为了避免死锁的发生,JDK 中基本都是可重入锁。 下面我们来测试一下 sync...

ConstXiong
29分钟前
5
0
怎么给视频变音

怎么让录制视频中的声音变得可爱吗?其实方法非常的简单,只要进行视频变音制作就好了,那怎么给视频变音呢?下面就一起来看看视频变音的具体制作方法吧! 具体步骤如下: 第一步: 打开手机...

白米稀饭2019
34分钟前
4
0
学习记录(ECMAScript 6.0入门_day01重点总结)

课程目标 1、ECMAScript6和JAVAScript关系 ES6是JAVAScript的规格,JavaScript是ES6的一种实现。 变量声明: 局部变量:let 它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内...

庭前云落
45分钟前
4
0
springboot 源码SpringApplication的run方法解析

public ConfigurableApplicationContext run(String... args) {//记录启动应用启动时间StopWatch stopWatch = new StopWatch();stopWatch.start();ConfigurableApplicationCo......

dudu
48分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部