國內有Android技術團隊在使用facebook的buck進行代碼構建嗎?
buck官網:https://buckbuild.com/
微信之前用Ant,後來全mac,切換到buck,增量編譯1min以內!
應該沒有,因為國內都幾乎沒人說到,相比於maven, ant, gradle,資料太少。android程序員幾乎都沒有學習過,公司沒那麼多時間給你學這個,雖然它可能會快一點,但是Android build次數沒那麼多吧。
最重要的是不支持windows系統。
Buck 的侵入性太強了,從 Gradle 切換過去的成本挺高的,現在 Android Studio 2.0 Preview 版已經出了,支持 Instant Run Feature!!!麻麻再也不用擔心我的編譯速度了。
buck 就項目入侵性太大了。但是因為是並發的,所以速度確實很快,國內有微信在用。其次的憤方案還有以下:
1.Instant run
android studio 2.0 後推出的 Instant run,支持三種 swap,各有特點,但是功能最強大的 cold swap 僅僅支持 5.0以上版本。具體參考官網地址:https://developer.android.com/studio/run/index.html?hl=zh-cn
其次,我集成項目的時候,發現幾個坑。文件路徑太長,導致報錯,文件無法映射到操作區域,如果是文件名太長 aapt 就直接報錯了,這裡是加了路徑。所以坑!其次,gradle plugins 版本要和 as 版本一致才能支持 Instant run,例如我 as 是2.2 的,使用 2.1.3 的 gradle plugins,卻不能使用 Instant run。
當然還有其他坑或者介紹,大家可以 google 一下。2. Layoutcast
增量更新是特點,具體的優勢和缺點,類似與 instant run。因為僅僅支持 art 虛擬機,所以局限也是很大,而且部署也是略有入侵性。github 地址: GitHub - mmin18/LayoutCast: Cast android code and resource changes to the running application through ADB.
3. 阿里 Freeline
目前正在用的動態編譯,八月份開源的,非常強大,github 地址:GitHub - alibaba/freeline: Freeline is a fast build and deployment tool for Android 具體的內容可以參考github 主頁。個人碰到的問題就是,需要稍微改動一下 gradl 文件,我是直接改了他們框架的讀取 sourceset 的邏輯,因為我這裡的項目結構比較亂,不敢動 gradle 或者項目結構。
個人推薦使用 Freeline 把,畢竟是 阿里粑粑,而且各平台通用,更新維護也還給力。最近用nuclide接觸了buck,想用到Android和RN項目上試試,好像集成的工作量有點大啊
項目大了gradle編譯速度確實蛋疼
如果是自己的項目可以用,編譯速度會快很多,這個我已用過。
如果是將來要被別人接手的項目,要考慮到不要給對方增加負擔,要用 buck 的話也要同時配置一份 gradle 兼容的方案。正在打算在持續集成系統上切換到buck。可能的潛在風險可能是增量編譯的可靠性(沒有啥資料,不知道如何)。切換完成後會來冒個泡。 另外,buck安裝有點兒坑。brew的源被GFW了,得找梯子,這也是國內接受度不高的原因吧。
推薦閱讀:
※有什麼好的、實用性強的Gradle教程 或 經驗心得?
※求比較好的gradle的入門指引?
※在 AndroidStudio 工程點擊 Run 按鈕, 實際上做了什麼操作呢?