Android 建構結構

Android 專案包含許多建構相關檔案和目錄結構, 管理應用程式來源和資源深入課程前 設定詳細資料後,我們會探討整體架構和基本概念 每個部分代表的意義

下表列出 Android 專案中的一般檔案。每項方案的說明 檔案或目錄包含附註,指出其中包含哪些內容。最佳 實際做法會隨時間演變,且這些說明內容不一定符合專案需求 下載網址

編寫建構檔案時,採用宣告式方法。建構邏輯和工作 定義應該只出現在外掛程式中透過將建構邏輯限制為使用外掛程式 建構檔案變成資料宣告,讓使用者可以直接理解 編輯及編輯日後推出的版本可能會包含替代規格,例如 宣告式 Gradle,可防止 檔案。

資料夾/檔案

使用

.gradle/

Gradle 專案快取目錄

由 Gradle 管理,內含下載的 Gradle 發行版本、專案快取和設定檔。

請勿變更這個目錄中的檔案!

.idea/

Android Studio 專案中繼資料

請勿變更這個目錄中的檔案!

build.gradle(.kts)

根建構檔案

其中只能包含外掛程式宣告,以便設定不同子專案中的通用外掛程式類別路徑。

其他程式碼應位於設定或巢狀專案層級建構檔案中。

gradle.properties

Gradle 執行設定

包含 Gradle 屬性,可控管 Gradle 建構環境的各項設定,例如堆積大小、快取和平行執行。

這裡定義了一些暫時性 Android 屬性,以便在新增及移除 AGP DSL 時減少對 AGP DSL 所做的變更。

gradlew (linux、Mac)

gradlew.bat (Windows)

Gradle 包裝函式 檔案

下載 Gradle 發行版,然後將指令轉送至該版本,藉此啟動建構作業。這可讓您在不預先安裝 Gradle 的情況下執行建構作業。

local.properties

本機電腦設定

包含與本機電腦相關的屬性,例如 Android SDK 位置。

將這個檔案從原始碼控管機制中排除!

settings.gradle(.kts)

Gradle 建構初始化

包含 Gradle 初始化和專案設定的全域建構資訊,例如

  • 專案名稱
  • 要在這項建構作業中加入的子專案清單
  • 用於找出外掛程式和依附元件的存放區規格
  • 匯入外部版本目錄。

Gradle/

ꛭ libs.versions.toml

版本目錄

定義版本中使用的依附元件和外掛程式變數。您可以在這裡指定要使用的版本,確保專案中的所有子專案保持一致。

ꛭ 包裝函式/

🎨? gradle‐wrapper.jar

Gradle Bootstrapping 執行檔

下載指定的 Gradle 發行版 (如果沒有該發行版),然後執行該套件,再透過任何引數傳遞。

🎨? gradle‐wrapper.properties

Gradle 包裝函式的設定

指定 Gradle 發行版本的下載位置 (包括要使用的版本)。

應用程式/

子專案目錄

子專案 (在 Android Studio 中稱為「模組」) 可以建構應用程式或程式庫,並可能依附於其他子專案或外部依附元件。

app 是頂層應用程式子專案的傳統名稱 (但不是必要名稱)。其他子專案結構相似但名稱不同。

任何目錄都可以是子專案,且必須包含至少一個 build.gradle(.kts) 檔案,並透過 settings.gradle(.kts) 包含在建構作業中。

🎨? build.gradle(.kts)

子專案層級建構檔案

宣告這個子專案的建構方式。每項子專案都需要獨立的建構檔案,且應包含

  • 用於建構這個子專案的外掛程式
  • 外掛程式所需的設定區塊
  • 建構這項子專案時包含的依附元件 (程式庫和平台)

您不應在建構檔案中加入建構邏輯 (例如 Kotlin 函式定義或條件) 或工作宣告。建構邏輯和工作只應包含在外掛程式中

ꛭ src/

子專案來源檔案

將來源檔案 (應用程式程式碼和資源) 編入來源集main 來源集包含所有變化版本通用的來源檔案,而其他來源集則包含變化版本專屬的來源檔案。

🎨? main/

主要 來源集

所有建構變數通用的原始碼和資源。這個來源是所有版本的基礎,而其他更具體的來源集可新增或覆寫此來源。

Far java/

🎨? kotlin/

Kotlin 和 Java 原始碼

java 目錄可以混合 Java 和 Kotlin 原始碼。如果這個子專案包含 Kotlin 程式碼,您可以將這個目錄 kotlin.

Android
重新命名為 Kotlin 優先的平台。支援 Java 來源,但新的 API 支援 Kotlin 語言。我們建議一律使用 Kotlin 執行所有新的程式碼,並對現有程式碼進行重大更新。

🎨? res/

Android 資源檔案

包含應用程式資源,例如 XML 檔案和圖片。所有應用程式都會使用部分基本資源 (例如啟動器圖示),但其中許多資源 (例如版面配置和選單) 都只會用於以檢視區塊為基礎的應用程式。Compose 應用程式會使用此目錄中定義的 String 資源。

ꛭ AndroidManifest.xml

Android 應用程式中繼資料

由 Android 套件管理員讀取,告知系統

  • 應用程式定義的元件
  • 必要權限
  • 裝置相容性
  • Android 平台限制

ꛭ androidTest/

裝置測試 來源集

包含將在 Android 裝置或模擬器上執行的測試來源。這些測試可存取真實 Android 環境,但執行速度比主機測試慢。

main 來源集中的所有來源檔案都能供 androidTest 底下的來源使用。

pdf 測試/

主機測試 來源集

含有在 JVM 本機執行測試的來源,而不是在裝置上執行的測試。這類測試的執行速度比裝置測試更快。不過,任何系統呼叫 (包括執行應用程式的生命週期) 都必須經過模擬、虛假、虛設常式或其他模擬。

main 來源集中的所有來源檔案都可供受測試的來源使用

🎨? proguard-rules.pro

R8 設定規則

定義用於控制應用程式的縮減、最佳化和模糊處理規則。R8 會移除不需要的程式碼和資源,改善執行階段效能,並透過重新命名 ID 進一步將程式碼最小化。