文章目錄
- 一、元件化簡介
- 二、建立元件化應用
- 1、建立工程及殼應用子產品
- 2、建立業務元件子產品
- 3、建立功能元件子產品
- 4、建立基礎元件子產品
- 三、依賴庫子產品 / 應用子產品 切換設定
- 1、build.gradle 建構腳本切換設定
- 2、AndroidManifest.xml 清單檔案切換設定
GitHub 位址 : https://github.com/han1202012/Componentization
一、元件化簡介
在 元件化專欄 中 , 詳細介紹了元件化的實作 , 本系列部落格繼續對元件化中 Gradle 建構過程 進行優化 ;
Android 應用常用架構 :
- 子產品化 : 預設的 Android Studio 中的工程 就是子產品化設計的 , Project 下的每個 Module 項目 都是一個子產品 ;
- 元件化 : 在子產品化的基礎上 , 每個子產品都可以獨立運作 , 子產品 需要在 Library 子產品 和 Application 子產品
- 插件化 : 開發一個 宿主應用 , 在宿主應用中內建 插件化架構 , 在該架構中運作 插件 Apk ;
元件化開發中 , 一般将應用劃分為若幹子產品 , 如分層結構 :
- 應用殼子產品 : 應用子產品
- 業務元件子產品 : 依賴庫子產品 / 應用子產品 互相切換
- 功能元件子產品 : 依賴庫子產品 / 應用子產品 互相切換
- 基礎元件子產品 : 依賴庫子產品
特别注意 : 建立 依賴庫子產品 / 應用子產品 互相切換的子產品 , 建議建立時建立為 應用子產品 , 因為依賴庫子產品比應用子產品少很多檔案 , 都需要自己補齊 ;
分層結構 , 可以很好的避免 , 代碼全部寫在一個子產品中 , 一撸到底 , 一般單人開發的時候很容易這麼幹 ;
二、建立元件化應用
GitHub 位址 : https://github.com/han1202012/Componentization
1、建立工程及殼應用子產品
在 " 應用殼子產品 " 中 , 隻實作 自定義 Application 類 和 啟動頁 ;
實作自定義 Application 類 :
package kim.hsl.componentization
import android.app.Application
class MyApplication: Application() {
override fun onCreate() {
super.onCreate()
}
}
在 AndroidManifest.xml 清單檔案中注冊該 Application :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kim.hsl.componentization">
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Componentization">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
MainActivity 作為啟動頁使用 ;
2、建立業務元件子產品
右鍵點選工程名 , 在彈出的菜單中選擇 " New / Module " 選項 ,
選擇建立 " Phone & Tablet " 類型的 Module 子產品 , 作為 業務元件子產品 ;
選擇預設的空白界面 ;
選擇預設的 Activity ;
3、建立功能元件子產品
右鍵點選工程名 , 在彈出的菜單中選擇 " New / Module " 選項 ,
選擇建立 " Phone & Tablet " 類型的 Module 子產品 , 作為 功能元件子產品 ;
選擇預設的空白界面 ;
選擇預設的 Activity ;
4、建立基礎元件子產品
右鍵點選工程名 , 在彈出的菜單中選擇 " New / Module " 選項 ,
選擇建立 " Android Library " 類型的 Module 子產品 , 作為 基礎子產品 ;
三、依賴庫子產品 / 應用子產品 切換設定
在 Gradle 建構腳本中 , 需要實作如下兩個功能 :
- build.gradle 建構腳本切換設定
- AndroidManifest.xml 清單檔案切換設定
1、build.gradle 建構腳本切換設定
應用子產品 ( " Phone & Tablet " 類型的 Module 子產品 ) 是 無法設定為依賴庫的
plugins {
id 'com.android.application'
}
修改為 :
plugins {
id 'com.android.library'
}
同時去掉 " android#defaultConfig " 腳本塊 中的 applicationId 配置 ,
android {
defaultConfig {
//applicationId "kim.hsl.componentization"
}
}
此時 , 再次 Sync 同步 Gradle 建構 , 該子產品就會變為 依賴庫子產品 ( " Android Library " 類型的 Module 子產品 ) ;
此時這個 依賴庫子產品 才可以作為依賴庫使用 ;
2、AndroidManifest.xml 清單檔案切換設定
- 應用子產品 ( " Phone & Tablet " 類型的 Module 子產品 ) : 必須有啟動 Activity ;
- 依賴庫子產品 ( " Android Library " 類型的 Module 子產品 ) : 不能有啟動 Activity ;