
我們新建一個(gè) Android 工程之后,發(fā)現(xiàn)項(xiàng)目有很多文件夾和文件,對(duì)于初學(xué)者可能搞不清到底從哪里下手,哪些需要關(guān)注,哪些暫時(shí)不用理會(huì),以縮短學(xué)習(xí)成本。下面我們來(lái)一個(gè)個(gè)介紹下。
我們新建一個(gè) Android 工程,工程名叫 AndroidCourse,在 Android Studio 中展示如下:

AndroidCourse
項(xiàng)目名.gradle .idea
這兩個(gè)目錄項(xiàng)目構(gòu)建時(shí)生成的緩存文件,開(kāi)發(fā)者無(wú)需干預(yù)。app
開(kāi)發(fā)者需要操作的大多在這個(gè)目錄下面,里面包含了代碼文件、資源文件、jar 包等等,后面我們展開(kāi)這個(gè)目錄詳細(xì)講解。build
編譯時(shí)自動(dòng)生成的文件,開(kāi)發(fā)者無(wú)需干預(yù)。gradle
這個(gè)目錄下包含了 gradle wrapper 的配置文件。.gitignore
這個(gè)文件是用來(lái)將指定的目錄或文件排除在版本控制之外的,這樣你在 git 合并或者提交時(shí),并不會(huì)比對(duì)這些文件,也不會(huì)將這些文件的本地改動(dòng)提交。AndroidCourse.iml
iml文件是所有IntelliJ IDEA項(xiàng)目都會(huì)自動(dòng)生成的一個(gè)文件(Android Studio 是基于 IntelliJ IDEA 開(kāi)發(fā)的),用于標(biāo)識(shí)這是一個(gè) IntelliJ IDEA 項(xiàng)目,開(kāi)發(fā)者無(wú)需干預(yù)。build.gradle
這是項(xiàng)目全局的 gradle 構(gòu)建腳本,大多數(shù)情況不需要操作該文件。gradle.properties
這個(gè)文件是全局的 gradle 配置文件,在這里配置的屬性將會(huì)影響到項(xiàng)目中所有的 gradle 編譯腳本。gradlew gradlew.bat
這兩個(gè)文件是用來(lái)在命令行界面中執(zhí)行 gradle 命令的,其中 gradlew 是在 Linux 或 Mac 系統(tǒng)中使用的,gradlew.bat 是在 Windows 系統(tǒng)中使用的。local.properties
配置 Android SDK 的路徑,自動(dòng)生成的,也可以手動(dòng)修改路徑。README.md
markdown 文件,這是我自己添加的,用于備注一些信息。settings.gradle
配置項(xiàng)目的模塊。如果需要引入其它模塊的話,可以在這個(gè)文件里添加,通常項(xiàng)目不需要修改。
重點(diǎn)講解 app 文件夾
下面我們把 app 文件夾展開(kāi)重點(diǎn)講解,對(duì)于初學(xué)者,或者在大多數(shù)情況下,我們只需要在這里面操作。

libs
放一些 jar 包,比如你接入第三方平臺(tái)的話,例如微信分享、支付、QQ登陸等等,那么你可能需要把他們提供的 jar 包放在該目錄下,或者參照第三方平臺(tái)提供的 demo,讓你放在哪,就放在哪。src
這個(gè)文件夾就是存放各種資源了,包括代碼資源、圖片資源等等。src/androidTest
單元測(cè)試的代碼。src/main
(5顆星)最主要的文件夾。src/main/assets
放置一些不需要被編譯成二進(jìn)制的文件,比如內(nèi)置的db文件。src/main/java
java代碼都在這里。src/main/res/anim
默認(rèn)是沒(méi)有這個(gè)文件夾的,這個(gè)文件是我新建的,當(dāng)你需要存放動(dòng)畫(huà)xml資源的時(shí)候,你就需要新建這么一個(gè)文件夾 anim,大家先記著,用到時(shí)候就知道有這么回事了。src/main/res/drawable
存放自定義的背景xml文件,用來(lái)設(shè)置視圖的背景。注意,我這種說(shuō)法是實(shí)際開(kāi)發(fā)中就這么做的,當(dāng)然,你也可以把圖片放里面,不是不可以。src/main/res/drawable-xxhdpi
這個(gè)文件夾默認(rèn)也是沒(méi)有的,是我新建的,當(dāng)然實(shí)際上你還可以新建drawable-hdpi、drawable-xhdpi、drawable-xxxhdpi,用來(lái)存放不同尺寸的圖片資源。src/main/res/layout
存放布局 xml 文件,包括 Activity 的布局文件,自定義 View 的布局文件等等。src/main/res/mipmap-*
存放不同尺寸的 APP 的啟動(dòng)圖標(biāo)。src/main/res/values
存放顏色、單位、自定義屬性、樣式等 xml 文件。src/main/res/AndroidManifest.xml
每一個(gè) Activity 都需要在這個(gè)文件里面注冊(cè),還可以設(shè)置默認(rèn)啟動(dòng)的 Activity,設(shè)置權(quán)限等等。src/test
單元測(cè)試代碼。.gitignore
和外層 .gitignore 類(lèi)似,將制定目錄或文件排除在版本控制之外。app.iml
和外層 .iml 文件一樣,IntelliJ IDEA 項(xiàng)目自動(dòng)生成的文件,不需要干預(yù)。build.gradle
這個(gè)還是很重要的,當(dāng)然,初學(xué)者暫止也無(wú)需關(guān)心。Android Studio 通過(guò) Gradle 來(lái)構(gòu)建項(xiàng)目,我們可以在 build.gradle 配置很多信息,例如需要引入的庫(kù)、release 包和 debug 包的不同配置、各個(gè)渠道包的配置等等。Gradle 是一個(gè)知識(shí)體系,深入學(xué)習(xí)的話還是有很多內(nèi)容的。proguard-rules.pro
混淆文件。我們防止別人通過(guò)安裝包獲取到源代碼,所以通過(guò)此文件對(duì)代碼進(jìn)行混淆,從而破壞代碼的閱讀性??梢灾付ú糠职旅娴拇a混淆,或者指定部分文件混淆;也可以指定部分文件不混淆,任由你配置。
謝謝支持!
看完這篇,你就算精通TextView了
Android 布局優(yōu)化
Android 逐幀動(dòng)畫(huà)
Android 視頻教程