關於組件化的最初步

一個工程可能會有多個版本,有國際版、國內版、還有針對各類不一樣的渠道化的打包版本、這個屬於咱們平常常常見到的打包差別化版本需求。android

而對於工程的開發,好比之前的公司,分紅了有三大塊業務,一個是聽、一個是看、一個是唱,咱們可能會各自分紅不一樣的小組去作各自功能的開發,而後再把三塊的業務整合到一塊兒打包,這個就是不也涉及到了app的組件化分塊開發。針對這個需求,我有點好奇,瞭解了下市面上的組件化開發,大部分是使用到的是阿里開源的ARoute框架,加上基於gradle的dsl的構建,來知足愈來愈差別化的對於咱們開發成員按模塊進行分組開發的需求。針對之前公司由於沒具體接觸到,具體不詳。這兒只針對對於jimu的開源,感謝它的開源,讓咱們能夠了解更多的世界。app

       而這兒主要是想先涉及到到首先是gradle的構建,如何讓模塊能夠單獨運行而不須要去從編譯- 構建 運行整個工程而看到本身想要實現的一部分呢?框架

     這兒咱們能夠先從咱們android studio工程目錄的一個文件提及,gradle.properties提及組件化

在Android Studio 建立一個項目的時候,rootProject下面會生成gradle.properties和local.properties文件gradle

properties實際上是Java項目中的配置文件,不是Gradle首創的。又由於Gradle語法能夠和Java進行混合使用,因此在Java項目上面使用properties文件的方式,在Gradle上面也可使用。 
Gradle借用了這一點,因此內置了對gradle.properties的使用方式ui

properties的數據格式

properties裏面的數據格式採用鍵值對的方式,大概有如下幾種寫法: 
1. key=value 
2. key:value 
3. key :value 
4. # 做爲註釋 spa

 基於這個配置文件,咱們就能夠對其作些咱們本身須要作的配置,好比上面配置文件咱們定義多了一個變量,isRunAlone,是否能夠單獨運行,這個是後面可能會用到的一個變量,也是咱們能夠基於這個條件去作判斷,是否當前module是能夠單獨運行,更改其值,從新同步下,就能夠獲取,接着看咱們的定義的build.gradle文件插件

if(isRunAlone.toBoolean()){
    apply plugin: 'com.android.library'
}else{
    apply plugin: 'com.android.application'
}

這兒是定義給可能咱們模塊會給其餘模塊用到,針對gradle.properties的修改其值,咱們就能夠作到先最簡單的對於module的單獨能夠運行的條件了。blog

暫時先寫到這兒,其實這兒每次須要修改值和同步是個耗費時間的工程,後面其實咱們能夠針對proerties的是否單獨運行isRunAlone能夠爲其又作一層封裝,也是最近開始研究的基於groovy的gradle插件的建立,對其進行判斷,而後使用這個插件咱們能夠作到只要配置這個插件咱們就能夠在選擇咱們對應的module和一些參數值,就能夠自動的運行咱們想要獲得的結果,是不聽起來更強大了。開發

相關文章
相關標籤/搜索