1. 程式人生 > >阿里Atlas元件化框架

阿里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