您的位置:首页 > 移动开发 > Android开发

优化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可以实现代码混淆,打出的包比未混淆小


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'
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: