首先祝你们圣诞快乐! :smile: :+1:javascript
该篇博客灵感来自以前的一片博客:java
和一个神库的issue:android
android-hidden-api
: 可让你使用安卓系统中 internal/hidden
的方法。好比, Activity
里有一个@hide的方法:github
/** * @hide */
public final boolean isResumed() {
return mResumed;
}复制代码
没用该库以前引用这个方法会报找不到该方法:api
可是使用该库后, 编译正常:app
编译经过了, 实际运行怎么样呢, 该方法可运行正常, 可是不保证全部系统, 同时也不能保证全部内部方法可运行。裤子不错, 不要贪用哦, 要多测试, 并加入异常处理。jvm
详细使用可参考鸿神以前的文章:编辑器
Android 轻松的查看与使用hide与internal API
1 经常使用的加速方法, 你们可能都配置好了, 主要下面几个:
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true复制代码
固然,上面的这些参数也能够配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对全部项目生效。
gradle.properties配置文件主要就是增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle能够平行的运行。
as安装目录/bin/studio64.vmoptions or studio.vmoptions(linux下,其余系统找相似文件)
使用文本编辑器打开,找到起始两行,以下
-Xms128m
-Xmx750m
修改最小值和最大值,建议为
-Xms256m
-Xmx2048m
在主APP模块的build.gradle文件中,添加下面的代码:
dexOptions {
incremental true
}复制代码
2 屏蔽部分Task
咱们知道, 编译的时候, 是有不少Task运行的, 可在右侧 gradle
标签下看到:
当咱们正常编译的时候, 这些Task都是会运行的, 咱们看下编译log:
不少Task后面都有 UP-TO-DATE
也就是Task已经是最新, 这些基本不耗时, 其余都耗时, 项目大, 同时依赖多个库, 那么慢是正常的了...
下面, 哦,,, 没错, 就是下面,
屏蔽不须要的Task, 好比一些测试Task, 中间含有Test
的一些Task, 把这些屏蔽掉:
在项目的根build.gradle脚本里添加屏蔽Task的代码:
allprojects {
repositories {
jcenter()
}
//skip Test tasks
gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("Test"))
{
task.enabled = false
}
}
}
}复制代码
这样sync, 编译, 见证奇迹的时刻:
Oh, 圣诞快乐 :smile: 没错, 好多Task后面被标记了SKIPPED
, 那这些Task都被无情的忽视了, 酸爽。
固然还能够屏蔽掉其余Task, 欢迎讨论。编译时间的提高效果仍是很明显的, 项目越大越明显。
到这里就差很少了, 固然, 网上还有不少加速编译的方法, 最好用的仍是阿里的
这个还没使用的, 赶忙用起来, 赶忙用起来, 赶忙用起来, 不解释。
到这里该说再见了, 有任何问题欢迎评论, 感谢您的阅读, 圣诞快乐!
掘金技术征文:
gold.xitu.io/post/58522d…