轉載來自:https://segmentfault.com/a/1190000002963895
首先看下一個App的最簡單的目錄結構

【= = 好復雜的樣子】
OK,我們這么看,第一,把這么多文件先分成這么三塊
1. 編譯系統(Gradle)
2. 配置文件
3. 應用模塊
Gradle是Google推薦使用的一套基於Groovy的編譯系統腳本(當然,你也可以使用ant),具體的介紹和文檔可以參考這個傳送門:https://developer.android.com/tools/building/plugin-for-gradle.html
如果你學會之后,會對Android項目的編譯了如指掌(總之非常爽~),它的缺點目前是效率不高,然后因為有功夫網的存在,所以在bintray上下載依賴會比較慢。
上面那個圖中出現gradle字眼的就是gradle相關的一些文件。
Android中使用Gradle Wrapper對Gradle進行了一層包裝,我猜測這么做的原因是因為gradle更新速度實在太快,為了兼容性着想,才出了這么一套方案。(如果覺得這個猜想有問題請指正)gradlew相關的文件就是和Gradle Wrapper有關。我們對除了app文件夾以外的文件列一下。
| 文件(夾)名 | 用途 |
|---|---|
| .gradle | Gradle編譯系統,版本由wrapper指定 |
| .idea | Android Studio IDE所需要的文件 |
| build | 代碼編譯后生成的文件存放的位置 |
| gradle | wrapper的jar和配置文件所在的位置 |
| .gitignore | git使用的ignore文件 |
| build.gradle | gradle編譯的相關配置文件(相當於Makefile) |
| gradle.properties | gradle相關的全局屬性設置 |
| gradlew | *nix下的gradle wrapper可執行文件 |
| graldew.bat | windows下的gradle wrapper可執行文件 |
| local.properties | 本地屬性設置(key設置,android sdk位置等屬性),這個文件是不推薦上傳到VCS中去的 |
| settings.gradle | 和設置相關的gradle腳本 |
這些就是外部文件相關的一些文件的介紹。我們來看下更重要的app模塊里的文件

這是app模塊下的文件目錄結構,介紹下他們的用途
| 文件(夾)名 | 用途 |
|---|---|
| build | 編譯后的文件存在的位置(包括最終生成的apk也在這里面) |
| libs | 依賴的庫所在的位置(jar和aar) |
| src | 源代碼所在的目錄 |
| src/main | 主要代碼所在位置(src/androidTest)就是測試代碼所在位置了 |
| src/main/assets | android中附帶的一些文件 |
| src/main/java | 最最重要的,我們的java代碼所在的位置 |
| src/main/jniLibs | jni的一些動態庫所在的默認位置(.so文件) |
| src/main/res | android資源文件所在位置 |
| src/main/AndroidManifest.xml | AndroidManifest不用介紹了吧~ |
| build.gradle | 和這個項目有關的gradle配置,相當於這個項目的Makefile,一些項目的依賴就寫在這里面 |
| proguard.pro | 代碼混淆配置文件 |
以上就是對Android Studio目錄結構的簡單介紹~
