优化Android Studio/Gradle构建
2015-07-16 09:55
453 查看
优化Android Studio/Gradle构建
使用Android Studio进行开,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。
开启gradle单独的守护进程
在下面的目录下面创建gradle.properties文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
把下面配置复制gradle.properties文件也可以优化:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true
复制代码
[align=left]同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。[/align]
[align=left]上面的配置文件主要就是做, 增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。[/align]
1.申请大内存
installation path\studio64.exe.vmoptions or studio.exe.vmoptions
使用文本编辑器打开,找到起始两行,如下
-Xms128m
-Xmx750m
修改最小值和最大值,建议为
-Xms256m
-Xmx2048m
2 优化编译
file->setting->compile
勾选除第二项之外的其他选项,并在VM options里填入:
-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
经过测试,编译速度有很大提升,比较大的项目从之前的5-8分钟可以减少到1-2分钟。
用命令行Build
可以参考这个讨论串
https://plus.google.com/u/0/+RicardoAmaral/posts/e9PG6vSN5w3
gradle assembleDebug
实测速度快50%左右 原理不明
回头写个脚本 build完成再自动安装运行应该就好了
笔记总结:
1.要求JDK1.7以上,如果以下会报java文件找不到
2.可以加背景模板
3.findviewbyid手动操作,XML右键,contert android
layout xml-->选择ok (省了findviewbyid)
4.adapter中添加holder, xml右键-->create view holder
5.解析json 定义bean,在bean中右键-->Gson fromat将json串放进文本框中 自动生成类属性
6.toast插件,右键drawxx中图片,在drawable中实现图片的选择事件等等
安装基本的插件名称plus:
AndroidLayout ID Converter 自动生成fnidviewbyid
Androidpostix completion toast快捷键
Android Toolbox plugin 生成Viewholder
Selectchapek for Android 选择器(drawablexx中图片自动在drawable中生成选择事件)
GsonFormat 将json串转化为实体类中的参数
7. .Keystore 文件改为了 .jks
8.自动混淆代码,将build.gradle 中的 minifyEnabledfalse
改为 true可以实现代码混淆,打出的包比未混淆小
9.gradle 构建工具。
studio可以实现多渠道打包 Progext Structure -->flavora
build.gradle中生成一下代码:
使用Android Studio进行开,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。
开启gradle单独的守护进程
在下面的目录下面创建gradle.properties文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
把下面配置复制gradle.properties文件也可以优化:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true
复制代码
[align=left]同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。[/align]
[align=left]上面的配置文件主要就是做, 增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。[/align]
1.申请大内存
installation path\studio64.exe.vmoptions or studio.exe.vmoptions
使用文本编辑器打开,找到起始两行,如下
-Xms128m
-Xmx750m
修改最小值和最大值,建议为
-Xms256m
-Xmx2048m
2 优化编译
file->setting->compile
勾选除第二项之外的其他选项,并在VM options里填入:
-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
经过测试,编译速度有很大提升,比较大的项目从之前的5-8分钟可以减少到1-2分钟。
用命令行Build
可以参考这个讨论串
https://plus.google.com/u/0/+RicardoAmaral/posts/e9PG6vSN5w3
gradle assembleDebug
实测速度快50%左右 原理不明
回头写个脚本 build完成再自动安装运行应该就好了
笔记总结:
1.要求JDK1.7以上,如果以下会报java文件找不到
2.可以加背景模板
3.findviewbyid手动操作,XML右键,contert android
layout xml-->选择ok (省了findviewbyid)
4.adapter中添加holder, xml右键-->create view holder
5.解析json 定义bean,在bean中右键-->Gson fromat将json串放进文本框中 自动生成类属性
6.toast插件,右键drawxx中图片,在drawable中实现图片的选择事件等等
安装基本的插件名称plus:
AndroidLayout ID Converter 自动生成fnidviewbyid
Androidpostix completion toast快捷键
Android Toolbox plugin 生成Viewholder
Selectchapek for Android 选择器(drawablexx中图片自动在drawable中生成选择事件)
GsonFormat 将json串转化为实体类中的参数
7. .Keystore 文件改为了 .jks
8.自动混淆代码,将build.gradle 中的 minifyEnabledfalse
改为 true可以实现代码混淆,打出的包比未混淆小
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
9.gradle 构建工具。
studio可以实现多渠道打包 Progext Structure -->flavora
build.gradle中生成一下代码:
productFlavors { baidu { manifestPlaceholders (["NAME":"baidu"]) } _360 { manifestPlaceholders (["NAME":"360"]) } } }
Progext Structure -->Dependencies 网络加载jar包M 本地加载jar包
成功的标志:网络添加了Gson 在build.gradle中生成一下文件
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.netflix.feign:feign-gson:8.6.0' }
相关文章推荐
- Android多媒体高级编程(一)——Camera和简单的图像处理
- android之ScrollView里嵌套ListView
- android ndk jni 字符串 String jstring
- Android ListView滑动过程中控件显示重复/错误问题之原理分析...
- Android 自定义圆形图片和文本
- Android ant自动打包APK
- Android ListView滑动过程中图片显示重复错位闪烁问题解决
- Android Studio 设置内存大小及原理
- GitHub 优秀的 Android 开源项目
- Android HandlerThread 的使用及其Demo
- android 仿EF看视频弹出练习功能
- Android Studio
- 从设计到实现,一步步教你实现Android-Universal-ImageLoader-工具类
- Android Fragment使用
- Android中使用OnClickListener接口实现按钮点击的低级失误
- Android studio 解决libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
- Android 不规则封闭区域填充 手指秒变油漆桶
- Android view动画问题
- Android 输入管理服务-输入事件向具体应用的分发
- Android——coredump 配置