以下是我這個系列的相關文章,有興趣可以參考一下,可以給個喜歡或者關注我的文章。
[Android]如何做一個崩潰率少於千分之三噶應用app(1)-module工程架構
[Android]如何做一個崩潰率少於千分之三噶應用app(2)-完全退出App
[Android]如何做一個崩潰率少於千分之三噶應用app(3)-極速編譯
[Android]如何做一個崩潰率少於千分之三噶應用app(4)-極速編譯*續
[Android]如何做一個崩潰率少於千分之三噶應用app(5)-極速增量編譯
[Android]如何做一個崩潰率少於千分之三噶應用app(6)-動態創建
[Android]如何做一個崩潰率少於千分之三噶應用app(7)-跨module交互
[Android]如何做一個崩潰率少於千分之三噶應用app(8)-多渠道模塊
其實開發的初衷並沒想過要使用Small插件化
但是往後面開發功能模塊迭代越來越臃腫後,期望用戶每次升級這麼大容量的app是不科學的。
然後考慮到,我們的工程架構其實有點特殊,並不像其他單一module架構那樣。
然後我們發現了Small新型的這個插件化方式,跟我們工程架構不謀而合Small地址
Small優勢在於
(1)注意的地方建立module的時候,一定要注意lib和web、app命名是不同的。
(2)模板默認一個main的入口,需要自己再建立一個App.main的module,App.main的module移植自己的代碼相當於自己原app的入口。而本來模板生成的app 模塊,可以不用做任何操作。
(3)如果是需要添加成多個的Tab的Fragment,可以使用Small的接口Small.createObject
如果有看過我第6節動態創建的內容,可以明白,我是將每一個Fragment隔離爲一個module的。
(4)因爲我是將每個Fragment都定義爲lib的module,所以命名需要遵從Small的規範,需要命名爲lib.xxx(請注意一定要遵從命名規範)
app的asset裏面bundle.json添加聲明
可以看到sUris的需要重寫lib的地址
createObject是通過命名查詢創建的
(5)關於Activity之間的跳轉
如果是保內,直接可以使用startActivity
如果是包之間的跳轉,需要使用Small的接口
如果跳轉網頁,也是需要使用Small的接口
(6)然後我們需要完成編譯
使用./gradlew buildLib編譯lib的module
使用./gradlew buildBundle編譯一般的module
請注意,需要編譯的bundle一定要在bundle.json裏面聲明
這一節就介紹到這裏。
完成了Small的模塊編譯基礎,之後我去寫一個源碼分析的相關文章,至於會踩到什麼坑,我會在那邊文章裏面具體分析。
這個系列的相關文章,下一節的內容先保密羅。
敬請期待!!!