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的智能補全仍是很方便的。