Android 平臺上的秒級編譯方案 - Freeline

hihihi222 7年前發布 | 4K 次閱讀 安卓開發 Android開發 移動開發

Freeline是什么?

Freeline是螞蟻金服旗下一站式理財平臺螞蟻聚寶團隊15年10月在Android平臺上的量身定做的一個基于動態替換的編譯方案,5月阿里集團內部開源,穩定性方面:完善的基線對齊,進程級別異常隔離機制。性能方面:內部采用了類似非死book的開源工具buck的多工程多任務并發思想:端口掃描,代碼掃描,并發編譯,并發dx,并發merge dex等策略,在多核機器上有明顯加速效果,另外在class及dex,resources層面作了相應緩存策略,做到真正增量開發,另外引入并優化buck的部分加速組件dx,DexMerger,資源編譯方面,深入改造了Aapt資源編譯流程,當資源發生改變時候,秒級完成增量包編譯,其中增量包僅含最小的變更集合(10Kb~數百Kb內),后期也被運用到線上進行資源/代碼動態替換。相比目前instant-run,buck,layoutcast等方案快數倍速度。

使用教程

  • 配置

    project-build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.antfortune.freeline:gradle:0.8.6'
    }
}

module’s build.gradle:

apply plugin: 'com.antfortune.freeline'

注:以上配置只是追加上去就行,不用把gradle相關的去除。

dependencies {
  debugCompile 'com.antfortune.freeline:runtime:0.8.6'
  releaseCompile 'com.antfortune.freeline:runtime-no-op:0.8.6'
  testCompile 'com.antfortune.freeline:runtime-no-op:0.8.6'
}
android {
…
  freeline {
      hack true
      productFlavor "znds"
      autoDependency false
  }
}
  • 插件安裝

studio中安裝插件:Freeline Plugin。安裝后工具欄,如圖:

  • 代碼植入

    Application中植入代碼:

public void onCreate() {
    FreelineCore.init(this);    
    super.onCreate();
    …
}

之后,點擊工具欄上的那個藍色按鈕,就可以運行項目了。

參考資料:

Freeline - Android平臺上的秒級編譯方案 —— https://yq.aliyun.com/articles/59122

 

來自:http://blog.csdn.net/jjwwmlp456/article/details/59109851

 

 本文由用戶 hihihi222 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!