Android Studio中关于Gradle的使用
来源:互联网 发布:c4d软件介绍 编辑:程序博客网 时间:2024/06/06 03:08
1。包package的唯一Id:
使用Gradle,可以轻松的修改app的包名,代码如下:
productFlavors { pro { applicationId = "com.example.my.pkg.pro" } free { applicationId = "com.example.my.pkg.free" }}buildTypes { debug { applicationIdSuffix ".debug" }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
在正式打包时,会打包两个包,分别为包com.example.my.pkg.pro和包com.example.my.pkg.free,但是调试的时候会给包追加一个.debug字符!这个debug的可以不添加!
2。Gradle 基本编译命令:
a>assemble :输出debug.apk和release.apk
b>assembleDebug :输出debug.apk
c>assembleRelease:输出release.apk
3.用Android Studio编译系统的逻辑
示例一:这个构建脚本展示了怎样用一个动态的函数往输出结果里注入一个动态versionCode
def getVersionCode() { def code = 1 //随便写的个值 return code}android { defaultConfig { versionCode getVersionCode() … }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
示例二:在调试过程中给package名和versionName名加个debug字符:
android { buildTypes { debug { packageNameSuffix ‘.debug’ versionNameSuffix ‘-DEBUG’ } beta { … } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
4资源压缩:
注意:资源压缩要和类似Proguard的代码压缩工具相结合才有作用!
为了能够使资源压缩,更新buildTypes脚本块,添加minifyEnabled、shrinkResources、proguardFiles属性,如下所示:
android { ... buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
5.过滤资源
1. 过滤语言资源
在build.gradle 文件中,使用resConfig属性,来针对app的本地化开发进行资源过滤。当app工程依赖appcompat-v7和google-play-services_lib时非常有用。
例如:本地化语言资源只限en, de, 和es:三种可以这么写:
apply plugin: 'android'android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { minSdkVersion 8 targetSdkVersion 22 versionCode 1 versionName "1.0" resConfigs "en", "de", "es" //Define the included language resources. }...
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
2. 过滤图片资源
下面的代码,本地化图片资源只限定MDPI和HDPI
android { defaultConfig { ... resConfigs "mdpi", "hdpi" }}
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
6.代码混淆
在Android Studio中,代码混淆写在build.gradle文件下,通过minifyEnabled属性设置是否支持混淆,代码如下:
android { buildTypes { release { minifyEnabled true proguardFile getDefaultProguardFile('proguard-android.txt') } } productFlavors { flavor1 { } flavor2 { proguardFile 'some-other-rules.txt' } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
分析:minifyEnabled 为true,即支持混淆,发布版本flavor1使用默认的混淆文件,发布版本flavor2使用some-other-rules.txt混淆文件
7.关于lint的部分
使用lint进行代码审查,这个功能在Eclipse也有!在进行gradle运行时,会展示出系统认为是错误的解决方案,这是非常有用的!但是,也可以在build.gradle 的脚本中设置lint的使用!
android { lintOptions { // set to true 通过lint,打印出一些分析报告! quiet true // if true, 如果发现错误,将停止编译 abortOnError false // if true, 仅仅报告错误的地方 ignoreWarnings true }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
8.优化gradle的编译速度
可以通过两种途径:
一种是:在build.gradle文件里,修改javaMaHeapSize 的值
dexOptions{ javaMaxHeapSize'6g' }```意思是将JavaMaxHeapSize 的值扩大到6G另一种是在运行gradle脚本时加上 --daemon ,例如:<div class="se-preview-section-delimiter"></div>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
这里写代码片
“`
注:还有一部分,是关于资源合并(Resource merging)的,由于现在还没有弄懂,弄懂后会补上的,如果您了解,希望不吝赐教,多谢!
gradle build --daemon
- 1
- 1
意思是执行 build 任务
注:还有一部分,是关于资源合并(Resource merging)的,由于现在还没有弄懂,弄懂后会补上的,如果您了解,希望不吝赐教,多谢!
- Android Studio中关于Gradle的使用
- 关于android studio中gradle的使用心得
- android Studio中关于Gradle的使用注解
- android studio 中 gradle的使用
- 关于Android Studio中安装和gradle的一些坑
- Android Studio中关于Gradle 的版本问题
- 关于Android Studio使用Gradle多渠道打包的一些记录
- Android Studio 中Gradle配置debug使用release的签名
- android studio 中gradle插件retrolambda的使用
- android studio中使用 aar 和gradle 的配置
- 对于gradle在android studio中使用的一点认识
- 关于Android Studio中build.gradle文件的gradle路径存在问题
- 关于Android Studio 的Gradle 的问题
- 关于Android Studio项目的Gradle构建
- 关于Android Studio里的Gradle
- 关于Android Studio里的Gradle文件
- 关于Android Studio的gradle sync错误
- 关于 android studio的一次 gradle
- mac系统PHP开发环境搭建
- Unreal Engine 4切换默认Camera实现
- 安卓压力测试
- android系统加速以及修改lanucher
- oracle中decode函数的使用
- Android Studio中关于Gradle的使用
- 彻底搞懂二维树状数组
- android 介绍Retrofit的简单使用
- Java设计模式——工厂设计模式
- tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案
- Connection Error in Apache Pig
- ORACLE 数据库,将日期更新为当前日期,时分秒不变
- Hbase 批量删除
- Unreal Engine 4 字符串转换