阿里Atlas元件化框架
一、前言:
幾天前手淘終於把雲棲大會上說的Atlas開源了,此處應歡聲雷動:clap:。官網地址、GitHub地址。
今天不說原理性的東西(後續或許會寫),有興趣可以看官方文件:官方教程,鑑於初步跑官方給出的Demo時遇到了不少坑稍微總結下,讓在準備探索的小夥伴不在迷茫的踩坑。
:warning:注:轉載請註明原文地址、謝謝!
二、下載Demo匯入到Android Studio
1、atlas-demo下有兩個專案:
FistBundle:當它是一個獨立開的元件;
app是實際的工程,用於整合元件,最終打包成我們要的apk。
Demo結構
2、匯入專案
Android Studio:File->New->Import Project->分別匯入FirstBundle和app工程,現在AS已經是2.3版本了,gradle也已經更新到3.3版本了,根據文件說明我們暫時不去動工程的其他配置,目的是讓工程跑通,在此基礎上進一步探索。
匯入專案
3、配置gradle版本匯入時gradle可能會被更新到最新版本,先改回這個2.14.1版本:
http\://services.gradle.org/distributions/gradle-2.14.1-all.zip
配置gradle版本
4、構建FirstBundle工程
若本地未下載2.14.1版本的gradle可能要等好久,或者直接報錯(Error:Cause: zip file is empty),OS系統可以到gradle資料夾:/Users/使用者名稱/.gradle/wrapper/dists 檢視有沒有下好,如下因為依賴的是第三個資料夾下的gradle 然後一直下載不了,最後我是copy上面資料夾下的檔案。也可以下載完放到對應目錄
gradle
5、修改FirstBundle的builde.gradle
否則執行不了,修改完用命令構建,最終生成依賴包放在本地,FirstBundle的配置就到此為止, mavenlocal位置:/Users/使用者/.m2/repository/
publishing { publications { maven(MavenPublication) { artifact "${project.buildDir}/outputs/awb/${project.name}-release.awb" artifact sourcesJar } } repositories { mavenLocal() // maven { // url "url" // credentials { // username = "xxx" // password = "xxx" // } // } } }
修改完成執行shell構建
./gradlew clean assembleRelease publishMavenPublicationToMavenLocal
6、app工程
修改builde.gradle 大概在37行,很奇怪阿里團隊一個簡單的Demo搞這麼多么蛾子。把firstbundle改成駝峰FirstBundle就好,因為FirstBundle工程生成的awb是FirstBundle。
修改依賴
三、構建
1、關鍵在於app專案下兩個sh指令碼
構建、更新
2、修改buildApk.sh
在檔案內容最後新增:adb install -r build/outputs/apk/app-debug.apk,或者構建完成執行安裝apk,因為buildApk.sh內不是執行命令,是echo "列印、列印、列印"
Terminal執行命令sh buildApk.sh,執行成功後apk已經包含了app和FirstBundle專案
sh buildApk.sh
3、sh buildTpatch.sh
Terminal執行:sh buildTpatch.sh,把資源推到手機上,具體看buildTpatch.sh檔案的命令。再點選“動態部署”更新包內容,至此就完成了:整合元件、快速更新的簡單演示。
Demo介面
四、總結
微笑臉:),花了整整一天才摸清楚一個Demo,成本有點高。但願Atlas團隊在優化框架的同時也豐富下Demo,畢竟入手還是要從文件和Demo開始,倘若成千上萬的小夥伴花時間在解決這些坑真是浪費生命。有疑惑請留言,謝謝!
來自:http://www.jianshu.com/p/bb9bacad678a