android 模塊化開發(fā)

在偏外包的公司做APK開發(fā),很多時(shí)候,一個(gè)版本的代碼復(fù)制來復(fù)制去,資源文件等復(fù)制過程中會(huì)很混亂。所以就提出,能不能模塊化,通過module的方式進(jìn)行模塊化開發(fā)。

使用module的原因,代碼可修改性強(qiáng),又可以根據(jù)需求,進(jìn)行模塊集成。

module模塊化開發(fā)很簡(jiǎn)單,前提是擁有扎實(shí)的Android開發(fā)技術(shù)。

首先,提出兩個(gè)概念。以菜單為模型,進(jìn)行說明。我們把一個(gè)菜單分成諾干個(gè)1級(jí)菜單,那么這諾干個(gè)1級(jí)菜單就是同級(jí)別的邏輯,這些1級(jí)菜單,我習(xí)慣叫橫向邏輯,或者并行邏輯。如果這個(gè)菜單,1級(jí)-->2級(jí)-->3級(jí),我習(xí)慣稱之為縱向,或者串行邏輯。

由此,根據(jù)這一概念,對(duì)業(yè)務(wù)邏輯進(jìn)行劃分。Android除基礎(chǔ)主界面外,其他界面,基本都是由一個(gè)按鈕或其他控件,進(jìn)行點(diǎn)擊,逐層進(jìn)入,也就是上述的縱向邏輯。由此可見,可以把自己的app分成很多的縱向邏輯,那么,每一個(gè)縱向邏輯都可以做成一個(gè)單獨(dú)的module。

以上就把APP的業(yè)務(wù)進(jìn)行了分割,并模塊化。執(zhí)行代碼的時(shí)候,用APP引用眾多module就可以實(shí)現(xiàn)集成。module的模式與集成相似。可以把module看成一個(gè)父類,而引用他的module看成子類。顧,數(shù)據(jù)傳遞時(shí),要注意關(guān)系,父類是無法使用子類方法的。如需要,可以嘗試provide,或者AIDL,或者receiver。

模塊開發(fā)中遇到的情況:

BaseModule父類的重要性。Android stdio中,如果掌握不好jar包,會(huì)造成jar重復(fù)的錯(cuò)誤。(這里有個(gè)問題,樓主也沒有想明白。但實(shí)踐了。多個(gè)module同時(shí)引用同一個(gè)jar包,會(huì)有jar沖突的錯(cuò)誤。但是多個(gè)module同時(shí)引用lib缺不會(huì)有問題。)如果多個(gè)module都需要引用同一JAR,可以把jar包放在BaseModule中,使其他module引用BaseModule來實(shí)現(xiàn)調(diào)用jar。

module引用方向

module的引用,基本上可以隨便引用,唯一不可能循環(huán)引用,例:A-->B,B-->A,此時(shí)就會(huì)報(bào)錯(cuò)。所以,分割module時(shí),注意業(yè)務(wù)不能循環(huán)。而對(duì)于代碼而言,無論是intent的傳值跳轉(zhuǎn),還是onResult都是可以使用的,并不會(huì)因?yàn)槟K化影響這些語法。

弊端,因?yàn)槊總€(gè)module都會(huì)有一個(gè)gradle,所以Android studio跑起來很慢,可以升級(jí)gradle和studio版本,爭(zhēng)取快一點(diǎn)。另一點(diǎn),做版本控制的時(shí)候,一定要注意忽略事件。樓主有一次就忘記了,整整3G的文件,git都不讓傳。。。。OOM了!

附加忽略文章:http://www.itdecent.cn/p/c5bd723c2b3c

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評(píng)論 25 709
  • 一、模塊化淺談 1. Android 模塊化開發(fā)介紹; 模塊化開發(fā)思路就是:?jiǎn)为?dú)開發(fā)每個(gè)模塊,用集成的方式把他們組...
    路Promenade閱讀 28,006評(píng)論 31 136
  • 剛接觸模塊化開發(fā)一段時(shí)間,還很亂,目前這個(gè)博客只是用來整理思緒,如果有不妥之處,請(qǐng)狠狠懟我,我會(huì)請(qǐng)你吃飯的...
    hai_phon閱讀 503評(píng)論 2 1
  • 如果你還未嘗試過Small,建議你可以先去github上看看怎么使用Small 。 由于github上的文檔較少,...
    黃怡菲閱讀 7,517評(píng)論 2 25
  • 枝椏拂動(dòng)寒風(fēng)的發(fā)絲 殘留夏季的溫度 而她卻漫步虛空 親吻了雪花 曼妙舞姿 留白中 雪與風(fēng)躺在枝椏的胸膛上 不留一絲溫度
    天空的指尖閱讀 75評(píng)論 0 0

友情鏈接更多精彩內(nèi)容