lambda是个好东西,配合rxjava能让代码看起来很是舒服,既减小了大量敲键盘的次数也让可读性变得更强(对于熟悉lambda的人来讲)。html
Android studio从2.2开始支持java8,也就意味着终于能够用上官方的lambda了。可是,坑来了…java
如何安装java8就不说了android
在Android studio中支持java8很简单,以下配置数组
android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } defaultConfig { ... jackOptions { enabled true } } ... }
问题就出在这个jackOptions上app
Android 新一代编译 toolchain Jack & Jill 简介工具
看起来很美好的东西,可目前却有不少坑测试
原来编译项目须要2m左右(i7-6700),开启了以后接近6mgradle
这是最坑的,最初出现乱码的时候还觉得文件编码搞乱了,查了半天才发现不是,是由于这玩意儿开启以后就会默认以本地编码编译文件(该说法可能有误)。ui
能够新建一个项目,依照上面配置好,而后Log.e("Test", "测试");编码
只要是中文,并且这个中文不是写在xml文件里(因为xml都标明utf-8),那么你会看到console里打印出来的是乱码(其实就是文字以gbk的编码打印出来了)。
在编译tinypinyin
这个开源库的时候,因为这个开源库有好多个超大型的数组,老是会爆出GC Overhead的错误…搞了半天,试了好多种方法。
发现须要做以下处理:
在app的build.gradle里这样添加
android { ... dexOptions { javaMaxHeapSize "4096M" } }
至于你要设置多少…反正我设了2G都会炸,干脆给4G了
jack看起来很美好,但在当下还只能算是一个半成品。与其为了用lambda忍受一堆问题打开jack,还不如老老实实地写一大坨一大坨代码来得舒服,毕竟as的智能补全仍是很方便的。