在上一章節中我們建立了第一個 Android 專案,本篇我們會一一介紹每個檔案的作用。
如果從根目錄 dump 出所有檔案你會得到類似以下的結果。
├── My Application.iml (1)
├── app
│ ├── app.iml (1)
│ ├── build (2)
│ │ ├── generated
│ │ │ └── source
│ │ │ └── buildConfig
│ │ │ └── debug
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ │ └── BuildConfig.java
│ │ └── intermediates
│ │ └── check_manifest_result
│ │ └── debug
│ │ └── checkDebugManifest
│ │ └── out
│ ├── build.gradle (3)
│ ├── libs (4)
│ ├── proguard-rules.pro (5)
│ └── src (6)
│ ├── main
│ │ ├── AndroidManifest.xml (7)
│ │ ├── java (8)
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ │ └── MainActivity.kt
│ │ └── res (9)
│ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ ├── layout
│ │ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ ├── androidTest (10)
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── myapplication
│ │ └── ExampleInstrumentedTest.kt
│ └── test (11)
│ └── java
│ └── com
│ └── example
│ └── myapplication
│ └── ExampleUnitTest.kt
├── build.gradle (3)
├── gradle (12)
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties (13)
├── gradlew (14)
├── gradlew.bat (14)
├── local.properties (15)
└── settings.gradle (16)
檔案很多,但或許不是每個細節我們都必須現在了解,我們先分門別類來大致介紹一番。
- *.iml:Android Studio 用來儲存 module 相關的資訊的,我們不用特別關注。因為目前共有二個 *.iml 檔案在專案裡,所以我們可以知道我們有二個 module,一個是由根目錄開始的 root module、一個是名為 app 的 submodule。
- build/:用來儲存 build 後產生的檔案的資料夾,我們也可以忽略。
- build.gradle:gradle 是基於 groovy 語言的 build config 檔。
- libs/:放第三方提供的 jar library 的資料夾。
- proguard-rules.pro:打包程式時混淆程式碼的規則檔案。
- src/:程式碼的根目錄
- AndroidManifest.xml:Android 相關的設定檔,載明所有入口點、app icon、所需權限等的檔案。
- java/:所有 java/kotlin 檔案的根目錄,以內的檔案必須依據 package name 格式放好,例如:
package com.example.myapplication
的目錄就是com/example/myapplication
。- res/:所有排版、圖像、語言或是其他非程式碼的設定檔案根目錄。
- androidTest/:跟 Android ui 相關的測試程式碼跟目錄。
- test/:跟 Android ui 無關的測試程式碼跟目錄。
- gradle/:gradle wrapper 的 jar 目錄跟設定檔(gradle-wrapper.properties)。
- gradle.properties:Project 內的 gradle 參數設定,
- gradlew(gradlew.bat):gradle wrapper 的執行檔。
- local.properties:本機的設定,如:sdk 位置或是帳號密碼等個人化無需上傳到 CVS 的設定。
- settings.gradle:一般紀錄 module 資訊的地方,在這個檔案我們也可以發現目前我們只有一個 module。
以上就是一個完整的 Android Project 的長相囉,雖然看起來很複雜但其實只要按步就班,相信很快就能掌握其中的奧妙呢!
其中,AndroidManifest.xml
、java/
跟 res/
會是我們主要撰寫程式的地方,我們也會在下一章節開始介紹相關的資訊。我們明天見囉~
Android 十全大補已經正式出書上架囉!
有興趣的讀者歡迎參考:
https://www.tenlong.com.tw/products/9789864345786