android Studio中关于Gradle的使用注解
2015-12-28 11:34
441 查看
1。包package的唯一Id:
使用Gradle,可以轻松的修改app的包名,代码如下:productFlavors { pro { applicationId = "com.example.my.pkg.pro" } free { applicationId = "com.example.my.pkg.free" } } buildTypes { debug { applicationIdSuffix ".debug" } }
在正式打包时,会打包两个包,分别为包com.example.my.pkg.pro和包com.example.my.pkg.free,但是调试的时候会给包追加一个.debug字符!这个debug的可以不添加!
2。Gradle 基本编译命令:
a>assemble :输出debug.apk和release.apkb>assembleDebug :输出debug.apk
c>assembleRelease:输出release.apk
3.用Android Studio编译系统的逻辑
示例一:这个构建脚本展示了怎样用一个动态的函数往输出结果里注入一个动态versionCodedef getVersionCode() { def code = 1 //随便写的个值 return code } android { defaultConfig { versionCode getVersionCode() … } }
示例二:在调试过程中给package名和versionName名加个debug字符:
android { buildTypes { debug { packageNameSuffix ‘.debug’ versionNameSuffix ‘-DEBUG’ } beta { … } } }
4资源压缩:
注意:资源压缩要和类似Proguard的代码压缩工具相结合才有作用!为了能够使资源压缩,更新buildTypes脚本块,添加minifyEnabled、shrinkResources、proguardFiles属性,如下所示:
android { ... buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }
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. } ...
2. 过滤图片资源
下面的代码,本地化图片资源只限定MDPI和HDPI
android { defaultConfig { ... resConfigs "mdpi", "hdpi" } }
6.代码混淆
在Android Studio中,代码混淆写在build.gradle文件下,通过minifyEnabled属性设置是否支持混淆,代码如下:android { buildTypes { release { minifyEnabled true proguardFile getDefaultProguardFile('proguard-android.txt') } } productFlavors { flavor1 { } flavor2 { proguardFile 'some-other-rules.txt' } } }
分析: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 }
8.优化gradle的编译速度
可以通过两种途径:一种是:在build.gradle文件里,修改javaMaHeapSize 的值
dexOptions{ javaMaxHeapSize'6g' } ```意思是将JavaMaxHeapSize 的值扩大到6G 另一种是在运行gradle脚本时加上 --daemon ,例如: <div class="se-preview-section-delimiter"></div>
这里写代码片
“`
注:还有一部分,是关于资源合并(Resource merging)的,由于现在还没有弄懂,弄懂后会补上的,如果您了解,希望不吝赐教,多谢!
gradle build --daemon
意思是执行 build 任务
注:还有一部分,是关于资源合并(Resource merging)的,由于现在还没有弄懂,弄懂后会补上的,如果您了解,希望不吝赐教,多谢!
相关文章推荐
- (三)Android中Intent概念及应用
- android47
- android最近心得整理
- Android——友盟社会化分享集成【友盟4.3版本SDK】
- Android开发总结笔记 Btimap (上) 3-4
- Android中Service与Activity数据交互的简单理解
- Android开发者网址导航
- Android开发之多媒体编程之获取图片的副本
- android layout_gravity失效的问题
- Android 应用退出后销毁apk进程
- android资源选择器URI路径问题
- Android中的activity栈
- Android开发者网址导航
- 【转】android udp
- Android XML 通用解析方法
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- android permission 机制
- connect to a specific wifi network in Android programmatically
- Android关于软键盘的若干
- Android导入Android OpenCV Samples出错