Android Studio的Module/Projeck的概念

簡介

Project相當(dāng)于eclipse里面的工作區(qū)間,module相當(dāng)于其project。module可以作為狹義上的模塊,就是可以多個(gè)app公用的module,如果新建module就會(huì)看到不止有phone module這個(gè)項(xiàng),還有其他的庫什么的。

application的module的有一個(gè)手機(jī)圖標(biāo)

個(gè)人理解:project是應(yīng)用的樣式,module是應(yīng)用里面的具體模塊。

Module的新建

image.png

Module目錄結(jié)構(gòu)

image.png
 目錄文件   作用

build   module編譯時(shí)所生成文件的目錄

lib 第三方依賴庫所在目錄

src module源碼所在目錄

src\andrroidTest    android Studio生成的測試模塊,可刪除

src\main    module代碼目錄,結(jié)構(gòu)和Eclipse中的差不多了

src\test    單元測試模塊,可刪除

.gitignore  module中的git管理文件

app.iml module中的IDEA 項(xiàng)目文件

build.gradle    module自動(dòng)編譯的配置文件

proguard-rules.pro  module代碼混淆配置文件

module/build目錄

module的編譯文件目錄,編譯中生成的中間文件就在這里

image.png

我們編譯最終生成的apk就在build/outputs/apk目錄下,里面包含了app-debug.apk, app-debug-unaligned.apk,app-release-unaligned.apk三種apk, 另外app-release.apk是生成在module的根目錄下。

lib目錄

第三方庫存放目錄,我們可以把需要的第三方庫jar文件放到這里,*.so也同樣放在這里??梢栽赑roject Structure中管理它的依賴關(guān)系,也可以在build.gradle中直接修改。

src目錄

module源碼目錄,我們工作的主要地方

.gitignore文件

module模塊的git管理文件,可對module單獨(dú)管理。

app.iml文件

同Project中的*.iml一樣。管理module的配置

build.gradle文件

這個(gè)文件是Module的gradle配置文件,也可以算是整個(gè)項(xiàng)目最主要的gradle配置文件。

image.png
image.png

proguard-rules.pro文件

module中的代碼混淆配置文件,使用方式和Eclipse中一樣。在build.gradle中設(shè)置片斷用來啟用混淆。

創(chuàng)建

選擇第一個(gè),手機(jī)和平板都可以使用的模塊,第一個(gè)新建的module默認(rèn)為app。

image.png

新建一個(gè)module做為library


image.png
image.png

library/build/outputs下有個(gè)arr文件夾,里面存放這該模塊的arr壓縮文件,而MyApplication2項(xiàng)目的app/build/outputs下沒有arr,只有apk文件夾,看到apk文件瞬間也就了解兩者的區(qū)別了。
arr與java的jar類似,只是google為了封裝一些具有android特性的文件(例如xml配置文件、資源文件等)而創(chuàng)建的壓縮類型

image.png
image.png

上圖中,右鍵選中app,選擇“Open Module Settings”,彈出如下界面

image.png

依賴成功

image.png
image.png

新建一個(gè)module形式的第三方library的通用做法是

(1)新建一個(gè)library形式的module,刪掉這個(gè)module中src/main目錄里面的所有文件(包括刪掉java、res、AndroidManifest.xml)

(2)復(fù)制第三方庫的AndroidMainfest.xml、res、src文件(夾)到庫目錄的src/main目錄中

(3)將src/main目錄下的src目錄重命名(Shift+F6)為java

(4)刪除庫module中的build.gradle文件(注意不要修改錯(cuò)了地方)中的dependencies和release模塊

Module的刪除

點(diǎn)擊箭頭處的減號,就可以刪掉了。同時(shí)我們要去掉module對其他module的依賴

image.png

然后會(huì)發(fā)現(xiàn),StickyScrollView這個(gè)module的圖標(biāo)消失了,可以刪除,而且是從硬盤上直接delete掉。

image.png

Project的目錄

image.png
目錄文件    作用

.gradle gradle項(xiàng)目產(chǎn)生文件夾(自動(dòng)編譯工具產(chǎn)生的文件)

.idea   IDEA項(xiàng)目文件夾(開發(fā)工具產(chǎn)生的文件)

app module模塊

build   構(gòu)建時(shí)生成文件的地方

gradle  gradle環(huán)境支持文件夾

.gitignore  git源碼管理文件

build.gradle    gradle項(xiàng)目自動(dòng)編譯的配置文件

gradle.properties   gradle運(yùn)行環(huán)境配置文件

gradlew 自動(dòng)完成 gradle 環(huán)境的linux mac 腳本,配合gradle 文件夾使用

gradlew.bat 自動(dòng)完成 gradle 環(huán)境的windows 腳本,配合gradle 文件夾使用

local.properties    Android SDK NDK 環(huán)境路徑配置

MyApplication.iml   IDEA 項(xiàng)目文件

setting.gradle  gradle 項(xiàng)目的子項(xiàng)目包含文件

.gradle目錄

image.png

gradle 運(yùn)行時(shí)自動(dòng)生成的目錄,一般情況不做修改,不需要納入項(xiàng)目源代碼管理中。

.idea目錄

image.png

Intellij IDEA 運(yùn)行時(shí)候生成的文件目錄,一般情況不做修改,不需要納入項(xiàng)目源代碼管理中。
Intellij IDEA是JetBrains公司推出的Java集成開發(fā)環(huán)境,Android Studio是基于IDEA Commutity Edition開發(fā)的,Community 版本不僅是免費(fèi)的而且是開源的。

module(app)

image.png

每一個(gè)module可看成在Eclipse中的一個(gè)Project,里面的文件結(jié)構(gòu)與父類差不多。里面也能包含build.gradle、gradle.properties、setting.gradle 等相關(guān)gradle文件,若沒有定義,則在項(xiàng)目中使用父類的設(shè)置。

build目錄

image.png

編譯時(shí)產(chǎn)生文件,不需要修改,也不需要納入項(xiàng)目源代碼管理中

gradle目錄

image.png

可以看到里面wrapper目錄下有兩個(gè)文件,里面有一些項(xiàng)目對gradle的配置信息,我們來看下gradle-wrapper.properties里的內(nèi)容

image.png

可以看到里面聲明了gradle的目錄與下載路徑以及當(dāng)前項(xiàng)目使用的gradle版本

.gitignore文件

git對項(xiàng)目文件管理,可以在里面添加你不希望納入git管理的文件

image.png

Android Studio已經(jīng)自動(dòng)幫我們添加了一些不需要的文件,也可以按照同樣的格式來加入自己的文件。

build.gradle文件

項(xiàng)目的編譯環(huán)境配置,可以說是Gradle最主要的配置文件。

image.png

這里是對Project的配置,是最頂層的配置,在module中同樣有一個(gè)build.gradle文件,是對module的配置,如果module里沒有進(jìn)行配置,將使用這里的配置信息。一個(gè)是聲明倉庫的源,這里可以看到是指明的jcenter(), jcenter可以理解成是一個(gè)新的中央遠(yuǎn)程倉庫,兼容maven中心倉庫,而且性能更優(yōu)。

gradle.properties文件

配置gradle運(yùn)行環(huán)境的文件,比如配置gradle運(yùn)行模式,運(yùn)行時(shí)jvm虛擬機(jī)的大小。在創(chuàng)建的項(xiàng)目中,暫時(shí)是沒有內(nèi)容的。

image.png

gradlew & gradlew.bat 文件

分別是linux下的shell腳本和windows下的批處理文件,它們的作用是根據(jù)gradle-wrapper.properties文件中的distributionUrl下載對應(yīng)的gradle版本。這樣就可以保證在不同的環(huán)境下構(gòu)建時(shí)都是使用的統(tǒng)一版本的gradle,即使該環(huán)境沒有安裝gradle也可以,因?yàn)間radle wrapper會(huì)自動(dòng)下載對應(yīng)的gradle版本。

image.png

local.properties文件

配置android NDK,SDK的地方,非android項(xiàng)目可能沒有這個(gè)文件,這個(gè)路徑根據(jù)不同想電腦不同

image.png

MyApplication.iml文件

編譯項(xiàng)目時(shí)生成的文件,其名為‘項(xiàng)目名.iml’,iml文件是Android Studio識別項(xiàng)目的配置文件,跟Eclipse里面的.project文件作用類似。

image.png

setting.gradle文件

聲明當(dāng)前項(xiàng)目中含有什么module。如果有多個(gè)module會(huì)以‘,’分開,如:include ‘:app’, ‘:app2’

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容