標籤:
Android Studio目錄結構淺析
轉自:1190000002963895
應各位朋友的要求,寫這篇文章,讓我們來簡單瞭解下Android Studio中不同目錄(檔案)的位置和用途。 首先看下一個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指令碼 |
1、gradle檔案夾:這裡面有兩個檔案,gradle-wrapper.jar和gradle-wrapper.properties,它們就是gradle wrapper。gradle項目都會有,你可以通過命令gradle init來建立它們(前提是本地安裝了gradle並且配置到了環境變數中)。
2、gradle.properties : 從名字上就知道它是一個設定檔,沒錯,這裡面可以定義一些常量供build.gradle使用,比如可以配置簽名相關資訊如keystore位置,密碼,keyalias等。
3、settings.gradle : 這個檔案是用來配置多模組的,比如你的項目有兩個模組 module-a,module-b,那麼你就需要在這個檔案中進行配置,格式如下:include ‘:module-a‘,‘:module-b‘ 。
4.gradlew和gradlew.bat:這分別是linux下的shell指令碼和windows下的批次檔,它們的作用是根據gradle-wrapper.properties檔案中的distributionUrl下載對應的gradle版本。這樣就可以保證在不同的環境下構建時都是使用的統一版本的gradle,即使該環境沒有安裝gradle也可以,因為gradle wrapper 會自動下載對應的gradle版本。gradlew的用法跟gradle一模一樣,比如執行構建gradle build命令,你可以用gradlew build。gradlew即gradle wrapper的縮寫。
1.匯入本地jar包:跟eclipse不太一樣,android studio匯入本地jar 除了將 jar 包放到模組的 libs 目錄中以外,還得在該模組的build.gradle 中進行配置,配置方式是在 dependencies 結點下進行如下聲明:compile files(‘libs/xxx.jar‘) 如果libs下有多個jar檔案,可以這樣聲明:
1 .compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) 2.匯入maven庫:compile ‘com.android.support:appcompat-v7:21.0.3‘ 可見,格式為compile ‘groupId:artifactId:version‘ 3.匯入某個project:
這些就是外部檔案相關的一些檔案的介紹。我們來看下更重要的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目錄結構的簡單介紹~
有問題可以直接留言,我會儘快回複。
歡迎關注我Github 以及 @Gemini
Android Studio目錄結構淺析!!!