編輯:關於Android編程
你的AndroidStudio編譯時是否很卡?你的Gradle編譯時是否很慢,運行一次要等10分鐘?如果你還沒有遇到,那可能說明你的電腦配置夠好,或者項目還不夠大。
尤其像我這種公司電腦配置渣,還是機械硬盤的開發者肯定是忍不了的,太影響開發效率了,所以我們就想辦法加快編譯速度了,當然加快編譯的手段有很多種,在Android官方Instant Run出來之前,很多開發者是使用第三方的一些庫來提高開發效率,底層原理幾乎都是apk熱更新原理。在Instant Run出來之後,很多開發者都開始用這個被稱為閃電編譯的功能,但是它還是有很多不足的,具體大家可以看官網的說明:Instant Run。不過我相信Instant Run後來肯定會越來越好,我們就不用依賴什麼第三方了,比如Jack和apt就不能一起用,導致使用了apt的開發者使用lambda就得用retrolambda,這些都是需要官方來優化和改進的。廢話不多說下面正式開撸 。
今天向大家介紹一款Android平台的增量編譯工具:Freeline。Freeline是由阿裡巴巴螞蟻聚寶Android團隊開發的一款針對Android平台的增量編譯工具,它可以充分利用緩存文件,在幾秒鐘內迅速地對代碼的改動進行編譯並部署到設備上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。
Freeline代碼開源在Github:
https://github.com/alibaba/freeline
Freeline在雲棲社區的原理說明:
https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU
介紹這款工具也是我本人使用了好幾周以後覺得真心不錯,所以來分享給大家,有什麼使用上的問題歡迎來交流啊,自從使用了Freeline後真的省下了很多喝咖啡的時間,本人表示非常歡喜。
以下是從官網整理來的一些說明:
Freeline內部采用了類似Facebook的開源工具buck的多工程多任務並發思想:端口掃描,代碼掃描,並發編譯,並發dx,並發merge dex等策略,在多核機器上有明顯加速效果,另外在class及dex,resources層面作了相應緩存策略,做到真正增量開發,另外引入並優化buck的部分加速組件dx,DexMerger,資源編譯方面,深入改造了Aapt資源編譯流程,當資源發生改變時候,秒級完成增量包編譯,其中增量包僅含最小的變更集合(10Kb~數百Kb內),後期也被運用到線上進行資源/代碼動態替換。
當然每個事物都有自己的不足,現在已經Freeline的一些不足:
第一次增量資源編譯的時候可能會有點慢 不支持刪除帶id的資源,否則可能導致aapt編譯出錯 暫不支持抽象類的增量編譯 不支持開啟 Jack 編譯 不支持 Kotlin/Groovy/Scala看了上面的這些介紹後不知道你有沒有心動?什麼,已經心動了?那麼下面我們來看看它到底怎麼用?
1、在項目level的build.gradle中添加插件依賴
gradle initFreeline
如果你系統沒有配置gradle的環境,將會提示你命令不存在,由於AndroidStudio已經為項目配置了默認的gredle,所以輸入以下命名也是一樣的:
gradlew initFreeline
先別急著輸入:因為默認是從國外鏡像地址下載,由於眾所周知的原因,你很可能下載不到,所以我們可以使用國內鏡像,所以如果上述命令沒有通過,那麼咱們在命令後面加一個-Pmirror:
gradlew initFreeline -Pmirror
大概一分鐘左右就下載好了,下載好之後你的項目結構大概是這樣子:
vc+zpKOsyfXWwbHIZ3JhZGxlseDS67u50qqzpKOstavKx7rzxtq1xNTL0NC74brcv+yhozxiciAvPg0KtdrSu7TOyKvBv7Hg0uujrNTaw/zB7tDQyuTI66O6IDwvY29kZT48L2NvZGU+PC9wPg0KPHByZSBjbGFzcz0="brush:java;">
python freeline.py -f
如果我們後期修改了代碼,秒秒鐘就可以熱更新到手機:
python freeline.py
如果你要調試應用,在命令行輸入:
python freeline.py -d
常用命令幫助
python freeline.py -f —— cleanBuild 強制執行一次 clean build
python freeline.py -d —— 調試 打開debug模式
python freeline.py -h —— 幫助 顯示幫助信息並退出
python freeline.py -v —— 版本 顯示版本信息
python freeline.py -w —— 等待 讓應用程序等待 debugger
python freeline.py -a —— 全部 在所有工程上強制執行clean build 並執行-f全量編譯
python freeline.py -c —— 清空 清空緩存目錄和工作空間
python freeline.py -i —— 初始化 對工程進行進行freeline初始化配置Android Studio Freeline插件
一般我們開發的時候,想要運行項目時就點一下綠色的
Run按鈕,幾乎不用命令運行項目,所以FreeLine也有這樣簡單的操作方式,我們需要為AndroidStudio安裝一個插件:
Setting → Plugins → 輸入freeline → 點擊Browse repositories → 點擊Install → 重啟AndroidStudio
下面來一個圖解:
安裝好之後根據提示重啟AndroidStudio,然後會在綠色的Run按鈕後面會多出來一個藍色白心的Freeline Run按鈕,如果要運行項目就點擊下圖中
Freeline Run按鈕即可,如下圖:
好啦到這裡就全部結束啦,快去試試吧。
玩過自定義View的小伙伴都知道,在View的繪制過程中,有一個類叫做Path,Path可以幫助我們實現很多自定義形狀的View,特別是配合xfermode屬性來使用的時
Android Studio 簡介Android Studio 是Google近年來推薦的Android開發IDE,相對於Eclipse,它針對Android開發做了各種
Android開發之向桌面添加快捷方式 對於一個希望擁有更多用戶的應用來說,用戶桌面可以說是所有軟件的必爭之地,如果用戶在手機桌面上建立了該軟件的快捷方式,用戶將會更頻繁
Interface to global information about an application environment. This is an abstrac