1. 程式人生 > >Android Studio工程目錄結構分析(上)

Android Studio工程目錄結構分析(上)

Android Studio工程目錄

我們這裡以一個簡單的HelloWorld工程來分析:
1、.gradle和.idea
        這兩個目錄下放置的都是Android Studio自動生成的一些檔案,我們無須關心,也不要去手動編輯。
2、app         專案中的程式碼、資源等內容幾乎都是放置在這個目錄下的,我們後面的開發工作也基本都是在這個目錄下進行的,待會兒還會對這個目錄單獨展開進行講解。 3、build         這個目錄你也不需要過多關心,它主要包含了一些在編譯時自動生成的檔案。 4、gradle         這個目錄下包含了gradle wrapper的配置檔案,使用gradle wrapper的方式不需要提前將gradle下載好,而是會自動根據本地的快取情況決定是否需要聯網下載gradle。Android Studio預設沒有啟動gradle wrapper的方式,如果需要開啟,可以點選Android Studio導航欄 --> File --> Settings --> Build,Execution,Deployment --> Gradle,進行配置更改。
5、.gitignore         這個檔案是用來將指定的目錄或檔案排除在版本控制之外的。 6、build.gradle         這是專案全域性的gradle構建指令碼,通常這個檔案中的內容是不需要修改的。下面會詳細分析gradle構建指令碼中的具體內容。 7、gradle.properties         這個檔案是全域性的gradle配置檔案,在這裡配置的屬性將會影響到專案中所有的gradle編譯指令碼。 8、gradlew和gradlew.bat         這兩個檔案是用來在命令列介面中執行gradle命令的,其中gradlew是在Linux或Mac系統中使用的,gradlew.bat是在Windows系統中使用的。
9、HelloWorld.iml         iml檔案是所有IntelliJ IDEA專案都會自動生成的一個檔案(Android Studio是基於IntelliJ IDEA開發的),用於標識這是一個IntelliJ IDEA專案,我們不需要修改這個檔案中的任何內容。 10、local.properties         這個檔案用於指定本機中的Android SDK路徑,通常內容都是自動生成的,我們並不需要修改。除非你本機中的Android SDK位置發生了變化,那麼就將這個檔案中的路徑改成新的位置即可。 11、settings.gradle         這個檔案用於指定專案中所有引入的模組。由於HelloWorld專案中就只有一個app模組,因此該檔案中也就只引入了app這一個模組。通常情況下模組的引入都是自動完成的,需要我們手動去修改這個檔案的場景可能比較少。

app目錄結構

        現在整個專案的外層目錄結構已經介紹完了。你會發現,除了app目錄之外,大多數的檔案和目錄都是自動生成的,我們並不需要進行修改。想必你已經猜到了,app目錄下的內容才是我們以後的工作重點,展開之後結構如下:
        那麼下面我們就來對app目錄下的內容進行更為詳細的分析。 1、build         這個目錄和外層的build目錄類似,主要也是包含了一些在編譯時自動生成的檔案,不過它裡面的內容會更多更雜,我們不需要過多關係。 2、libs         如果你的專案中使用到了第三方jar包,就需要把這些jar包都放在libs目錄下,放在這個目錄下的jar包都會被自動新增到構建路徑裡去。 3、AndroidTest         此處是用來編寫Android Test測試用例的,可以對專案進行一些自動化測試。 4、java         毫無疑問,java目錄是放置我們所有java程式碼的地方,展開該目錄,你將看到我們剛才建立的HelloWorldActivity檔案就在裡面。 5、res         這個目錄下的內容就有點多了。簡單點說,就是你在專案中使用到的所有圖片,佈局,字串等資源都要存放在這個目錄下。當然這個目錄下還有很多子目錄,圖片放在drawable目錄下,佈局放在layout目錄下,字串放在values目錄下,所以你不用擔心會把整個res目錄弄得亂糟糟的。 6、AndroidManifest.xml         這是你整個Android專案的配置檔案,你在程式中定義的所以四大元件都需要在這個檔案裡註冊,另外還可以在這個檔案中給應用程式新增許可權宣告。 7、test         此處是用來編寫Unit Test測試用例的,是對專案進行自動化測試的另一種方式。 8、.gitignore         這個檔案用於將app模組內的指定的目錄或檔案排除在版本控制之外,作用和外層的.gitignore檔案類似。 9、app.iml     IntelliJ IDEA專案自動生成的檔案,我們不需要關心或修改這個檔案中的內容。 10、build.gradle         這是app模組的gradle構建指令碼,這個檔案中會指定很多專案構建相關的配置。 11、proguard-rules.pro         這個檔案用於指定專案程式碼的混淆規則,當代碼開發完成後打成安裝包檔案,如果不希望程式碼被別人破解,通常會將程式碼混淆,從而讓破解者難以閱讀。

專案中的資源

如果你展開res目錄看一下,其實裡面的東西還是挺多的,很容易讓人看得眼花繚亂,如下圖:
        看到這麼多的資料夾也不用害怕,其實歸納一下,res目錄就變得非常簡單了。 所以以drawable開頭的資料夾都是用來放圖片的, 所有以mipmap開頭的資料夾都是用來放應用圖示的, 所有以values開頭的資料夾都是用來放字串、樣式、顏色等配置的, layout資料夾是用來放佈局檔案的。