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

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

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