Android組件化探索

組件化的優勢

組件化簡單的說就是:能任意使用項目中的module來合併一個app.
實際開發中,遇到業務很複雜,且業務線較多時,我們往往會將項目模塊化。但是有時候僅僅模塊化,依然解決不了更深城的需求,舉個栗子來說下:
剛進項目組時,我們開發的項目,主要包含IM、朋友圈和豬行業(養殖、買賣)的一個app.後來業務擴展,我司行業也在變多,有了漁、田、驢、狐狸、蛋、企、柑橘…有些行業公司組織分公司運營,有些行業外包,這時就衍生出一堆app了,如果不考慮組件化,想想都頭大…

組件化的步驟

1.創建config.gradle,在項目下的build.gradle中引入

apply from: "config.gradle"

config.gradle簡單代碼

ext {
    //版本統一配置
    compileSdkVersion = 27
    minSdkVersion = 17
    targetSdkVersion = 27
    supportVersion = '27.1.1'

    //my_view是否爲module
    myViewIsModule = true
}

2.module中根據參數myViewIsModule 的值,配置爲application或者library.注意統一繼承baseLib,有共性的庫都放在baseLib中引用。
如果module作爲application,我們需要額外配置一個清單文件和application。在module的bulid.gradle中區分引用不同的清單文件。這裏我們把作爲module時,創建的清單文件放在main下的module文件中。
在這裏插入圖片描述

3.不同module之間Activity跳轉傳參,通過ARouter操作。Android中默認不同module間頁面不可跳轉,藉助阿里的路由框架,可以完成任意跳轉。

4.在app的build.gradle 中配置需要集成的module.

    if (Boolean.valueOf(rootProject.ext.myViewIsModule)) {
        implementation project(':review_my_view')
    }

每個module配置一個參數,這樣就可以自由打包module了。

組件化的注意事項

1.config.gradle中配置的參數,每次修改後需要同步,方可生效。

2 資源文件的衝突。類名、xml、drawable等名稱都不可重複,建議不同module下資源,加上module名作爲前綴。

3.baseLib中配置共性的混淆文件,每個module的proguard-rules.pro中配置對應自己的混淆內容,集成打包時會自動合併。

4.權限。baseLib中配置常見的權限,每個module在自己的兩個清單文件中,對應配置,不要遺漏。

代碼地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章