1、前言
模塊化開發的優勢什么的這里就省略了,本文主要記錄自己 Android 模塊化開發的使用過程
2、新建一個模塊
上圖就是選擇新建模塊的時候,常用的兩個選項,第一個新建的是可以獨立運行的一個模塊應用程序,而第二個建立的只是一個 庫項目,不能獨立運行,必須依賴於一個應用程序來運行
3、將Model與當前項目關聯(引入模塊)
項目單擊右鍵,選擇 “Open Module Settings”,添加模塊的引用
添加模塊后,如果報 Support 版本不一致問題,可以選擇將版本號改為一樣(推薦),或者將 Module Support 庫的依賴方式改為 compileOnly
4、Android Studio 如何刪除模塊
① 選中要刪除的module 右鍵選擇open modules settings,然后選中要刪除的modules ,點擊減號。
② 上一步只是移除了 Module 的引用,但是文件還存在,如果想要移除文件,需要切換到 Project 瀏覽模式,刪除 模塊文件
5、Gradle依賴(以 AS 3.0為例)
我們平時在引入依賴的時候,常用的是 implementation ... ,但是Gradle提供的引入依賴的方式還有很多種,接來下,我們大概看一下各種發生有何區別:
①implementation
使用該命令編譯的依賴,僅僅對當前 Module 提供接口。如 Module A 依賴 Library B,而Library B又依賴 Library C,如果 Library B對C的依賴使用 implementation,那么在 Module A中是無法訪問 Library C提供的結構的
②api ( 等同於 AS 2.X 中的 compile )
和implementatioin 相對,如果 B 對 C使用 api 依賴,那么 Moudle A中 也能訪問到 C 提供的結果。
(注意:這種方式經常會導致依賴依賴沖突)
③compileOnly
只在編譯時有效,不會參與打包
(可以在自己的 Module 中使用該方式依賴一些 開發者 常用的庫,比如 gson,okhttp 等,避免沖突)
④runtimeOnly
只有生成 apk 是參與打包,編譯時不會參與。極少使用
⑤testImplementation
只有單元測試的代碼編譯時或最終打包測試 apk 時有效
⑥implementation fileTree
導入本地文件夾。例 implementation fileTree(dir: 'libs', include: ['*.jar']),這句話的意思是導入 libs 文件夾下所有以 .jar 后綴結尾的包
6、將 Android 項目導出為 Module 並引入其它工程