成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android 秒級編譯 Freeline

開發(fā) 開發(fā)工具
我們知道 Android 的編譯很慢,尤其是項目大點的時候,那編譯速度簡直難以忍受,極大的降低了我們的開發(fā)效率,之前的文章「」給大家介紹過,但是是付費的,用起來不是那么自由,而今天給大家介紹另外一個強大的工具 -- Freeline,絕對秒級編譯。

 Freeline

我們知道 Android 的編譯很慢,尤其是項目大點的時候,那編譯速度簡直難以忍受,極大的降低了我們的開發(fā)效率,之前的文章「」給大家介紹過,但是是付費的,用起來不是那么自由,而今天給大家介紹另外一個強大的工具 -- Freeline,絕對秒級編譯。

GitHub:https://github.com/alibaba/freeline

什么是 Freeline?

Freeline 是螞蟻金服旗下平臺螞蟻聚寶 Android 團隊開發(fā)的一款針對 Android 平臺的增量編譯工具,它可以充分利用緩存文件,在幾秒鐘內(nèi)迅速地對代碼的改動進行編譯并部署到設(shè)備上,有效地減少了日常開發(fā)中的大量重新編譯與安裝的耗時,現(xiàn)已開源。

穩(wěn)定性方面:完善的基線對齊,進程級別異常隔離機制。

性能方面:內(nèi)部采用了類似 Facebook 的開源工具 buck 的多工程多任務(wù)并發(fā)思想:端口掃描,代碼掃描,并發(fā)編譯,并發(fā) dx,并發(fā) merge dex 等策略,在多核機器上有明顯加速效果,另外在 class 及 dex,resources 層面作了相應(yīng)緩存策略,做到真正增量開發(fā),另外引入并優(yōu)化 buck 的部分加速組件 dx,DexMerger,資源編譯方面,深入改造了 Aapt 資源編譯流程,當資源發(fā)生改變時候,秒級完成增量包編譯,其中增量包僅含最小的變更集合(10Kb~數(shù)百Kb內(nèi)),后期也被運用到線上進行資源/代碼動態(tài)替換。相比目前 instant-run,buck,layoutcast 等方案快數(shù)倍速度。

有何優(yōu)勢?

1. 真增量,構(gòu)建過程快且增量包體積小,極大提升更改代碼部署到手機速度,較 Android studio 2.0 及 LayoutCast 快 3~5 倍

2. 跨平臺 Linux,mac,windows

3. 全版本覆蓋 2.x ~ 6.x版本均支持

4. 部署流程簡化,更改代碼后,構(gòu)建過程中,與手機建立了 tcp 長連接,一行命令即可完成增量部署,毋需到各自子 bundle 所在的目錄構(gòu)建完成后再進入 portal/launcher 進行打包再安裝到手機的過程

5. 事務(wù)支持,在開發(fā)過程引入的異常不會破壞工作空間

6. 無縫支持 mPass,解決了類似 maven 各個節(jié)點需 merge 合并等與常規(guī)開發(fā)流程不一致的問題

7. 進程級別異常隔離,開發(fā)體驗持續(xù)穩(wěn)定

支持的功能

  • 支持標準的多模塊 Gradle 工程的增量構(gòu)建
  • 并發(fā)執(zhí)行增量編譯任務(wù)
  • 進程級別異常隔離機制
  • 支持 so 動態(tài)更新
  • 支持 resource.arsc 緩存
  • 支持 retrolambda
  • 支持 DataBinding
  • 支持各類主流注解庫
  • 支持 Windows,Linux,Mac 平臺

如何使用?

首先你的電腦上應(yīng)該安裝 Python,如果沒有安裝,請自行搜索安裝,相信你可以搞得定。

其次配置 project-level 的 build.gradle,加入 freeline-gradle 的依賴:

  1. buildscript { 
  2.     repositories { 
  3.         jcenter() 
  4.     } 
  5.     dependencies { 
  6.         classpath 'com.antfortune.freeline:gradle:0.8.2' 
  7.     } 

然后,在你的主 module 的 build.gradle 中,一般也就是你 app 目錄下的 build.gradle 文件,應(yīng)用 freeline 插件的依賴,記得點擊 Sync 按鈕進行同步下載。

  1. apply plugin: 'com.antfortune.freeline' 
  2.  
  3. android { 
  4.     ... 

***,在命令行執(zhí)行以下命令來下載 freeline 的 python 和二進制依賴,注意切換到項目目錄執(zhí)行:

  • Windows[CMD]: gradlew initFreeline
  • Linux/Mac: ./gradlew initFreeline

對于國內(nèi)的用戶來說,如果你的下載的時候速度很慢,你也可以加上參數(shù),執(zhí)行g(shù)radlew initFreeline -Pmirror,這樣就會從國內(nèi)鏡像地址來下載。

下載完成之后,在命令行輸入 python freeline.py 即可進行編譯運行。

當然如果每次都輸入也挺麻煩的,最簡單的用法是直接安裝 Android Studio 插件。

在 Android Studio 中,通過以下路徑 Preferences → Plugins → Browse repositories,搜索“freeline”,并安裝,之后你會看到工具欄有如下按鈕:

 Android Studio工具欄

直接點擊 Run Freeline 的按鈕,本質(zhì)上也就是幫你在命令行輸入上述命令而已。

使用體驗

自己在項目上親自體驗了,綜合使用下來確實很爽,真正實現(xiàn)了秒級編譯,不管你是更改了代碼文件還是資源文件,直接編譯運行真正是秒級的,而在之前可能得等上個一兩分鐘。但是使用下來有以下注意事項:

  • ***次增量資源編譯的時候有點慢,不過也就在***次的時候慢,后面速度蹭蹭的;
  • 如果設(shè)備上之前有安裝不是用 Freeline 編譯打包的 apk,請先卸載,之后再用 Freeline 編譯打包;
  • ***次 Freeline 編譯安裝之后不會自動啟動 App,這點請大家注意下,因為***次我一直在等待,等了好久以為沒成功,后來才發(fā)現(xiàn)其實安裝成功了的,只是沒有打開而已;
  • 不支持多設(shè)備同時連接,也就是說不管是模擬器還是真機,只允許同時一臺設(shè)備連接,否則會失敗;
  • 不支持刪除帶 id 的資源,否則可能導(dǎo)致 aapt 編譯出錯;
  • 如果你的項目有使用 Kotlin 語言,那么 Freeline 不支持;
  • 如果你的項目又想用 Freeline,又想使用 Gradle,記得執(zhí)行 Gradle 腳本之前先執(zhí)行 ./gradlew clean,否則會編譯失敗;

總體而已 Freeline 會有一些限制,以及兼容性可能也會有點問題,但是試用下來沒遇到多大的問題,而且對于調(diào)試的效率提升簡直太大了,值得推薦給大家!

【本文為51CTO專欄作者“stormzhang”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者(微信號:googdev)】

責(zé)任編輯:趙寧寧 來源: AndroidDeveloper
相關(guān)推薦

2019-05-27 09:56:00

數(shù)據(jù)庫高可用架構(gòu)

2017-06-09 17:35:07

Zerto災(zāi)備

2020-01-13 08:43:20

Elasticsear分布式搜索

2021-02-02 08:32:46

日志系統(tǒng) 高性能

2022-06-13 09:45:51

Hook技術(shù)移動應(yīng)用響應(yīng)速度

2021-03-26 07:58:34

數(shù)據(jù)秒級查詢

2021-11-24 15:16:02

Quick阿里云操作系統(tǒng)

2020-08-19 12:29:35

留存分析數(shù)據(jù)工具

2024-10-09 10:46:41

springboot緩存redis

2024-01-23 12:56:00

數(shù)據(jù)庫微服務(wù)MySQL

2023-08-31 08:28:13

Java應(yīng)用

2018-01-09 09:45:02

秒級監(jiān)控阿里

2020-03-18 07:11:24

實時同步搜索

2022-09-06 09:29:43

監(jiān)控系統(tǒng)

2022-05-12 14:34:14

京東數(shù)據(jù)

2016-08-24 15:50:18

騰訊云梯級計費云服務(wù)商

2018-01-10 09:10:10

數(shù)據(jù)庫阿里實時監(jiān)控

2013-05-28 10:52:07

Android開發(fā)移動開發(fā)移動應(yīng)用

2025-05-14 08:00:00

Android應(yīng)用簽名編譯系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91久久精品一区二区二区 | 国产一级精品毛片 | 亚洲欧美国产毛片在线 | 午夜天堂精品久久久久 | 人人干人人爽 | 日本视频在线播放 | 成人精品一区二区户外勾搭野战 | 亚洲午夜精品一区二区三区他趣 | 日韩精品在线免费观看视频 | 午夜精品久久 | 超碰在线播 | 在线观看视频一区 | 91xxx在线观看 | 亚洲91视频 | 成人在线小视频 | 日本网站免费在线观看 | 欧美日韩精品免费观看 | 欧美在线日韩 | 久久日韩粉嫩一区二区三区 | 国产美女精品 | 在线观看涩涩视频 | 亚洲一区二区三区高清 | 99久久久无码国产精品 | 成人国产免费视频 | 欧美精品一区二区三区在线 | 欧美1区2区| 欧美一区二区三区在线看 | 久久激情网 | 亚洲精品成人av久久 | 亚洲人人 | 日日日日日日bbbbb视频 | 国产免费av在线 | 成人精品视频在线 | 久久6视频| 一区二区高清在线观看 | 一区在线视频 | 国久久| 免费特级黄毛片 | 欧美激情精品久久久久久 | 精品一区二区视频 | 免费黄色av网站 |