Android Studio 項(xiàng)目
本節(jié)課程主要介紹 Android Studio 項(xiàng)目的概念及項(xiàng)目相關(guān)操作。什么是 Android Studio 項(xiàng)目?項(xiàng)目模塊的概念是什么? Android Studio 項(xiàng)目的目錄結(jié)構(gòu)是怎樣的?如何新建一個(gè)項(xiàng)目,項(xiàng)目常用配置有哪些?
1. 什么是 Android Studio 項(xiàng)目?
Android Studio 中的項(xiàng)目包含應(yīng)用開(kāi)發(fā)所有內(nèi)容,包括源代碼和資源文件以及測(cè)試代碼和構(gòu)建配置。當(dāng)你開(kāi)始一個(gè)新項(xiàng)目時(shí),Android Studio 會(huì)為你的項(xiàng)目創(chuàng)建所需的所有文件結(jié)構(gòu),每個(gè)項(xiàng)目包含一個(gè)或多個(gè)模塊 Android Studio 不使用工作區(qū)的概念,因此各個(gè)項(xiàng)目在單獨(dú)的 Android Studio 窗口中打開(kāi)。
既然一個(gè)項(xiàng)目包含一個(gè)或多個(gè)模塊,那我們就先了解下項(xiàng)目模塊是什么?
2. 項(xiàng)目模塊
模塊是源文件和編譯設(shè)置的集合,可讓你將項(xiàng)目劃分為獨(dú)立的功能單元。你的項(xiàng)目可以包含一個(gè)或多個(gè)模塊,一個(gè)模塊可以將另一個(gè)模塊作為依賴(lài)項(xiàng),每個(gè)模塊都可以單獨(dú)編譯、測(cè)試和調(diào)試。
在以下情況下添加更多模塊通常會(huì)非常有用:
- 你的項(xiàng)目中需要?jiǎng)?chuàng)建代碼庫(kù)時(shí),一個(gè)模塊就相當(dāng)于一個(gè)庫(kù);
- 你希望為不同設(shè)備類(lèi)型(例如手機(jī)和穿戴式設(shè)備)創(chuàng)建不同的代碼和資源集,但所有文件都限定在同一個(gè)項(xiàng)目中并共享一些代碼時(shí),一個(gè)模塊就相當(dāng)于一種設(shè)備類(lèi)型。
下圖的項(xiàng)目中包含了兩個(gè)項(xiàng)目模塊:app 和 mylibrary:
- app 是一個(gè) Android 應(yīng)用模塊;
- mylibrary 是一個(gè)庫(kù)模塊。
2.1 Android 應(yīng)用模塊
Android 應(yīng)用模塊為應(yīng)用的源代碼、資源文件和應(yīng)用級(jí)設(shè)置(例如模塊級(jí)構(gòu)建文件和 Android 清單文件)提供容器。當(dāng)你創(chuàng)建新項(xiàng)目時(shí),默認(rèn)的模塊名稱(chēng)是“app”。
在 Create New Module 窗口中,Android Studio 提供了以下類(lèi)型的應(yīng)用模塊:
- 手機(jī)和平板電腦模塊;
- Wear OS 模塊;
- Android TV 模塊;
- Automotive 模塊。
Tips:其中每個(gè)模塊都提供適合相應(yīng)應(yīng)用或設(shè)備類(lèi)型的基本文件和一些代碼模板
2.2 庫(kù)模塊
庫(kù)模塊為可重用代碼提供容器,你可以將其作為依賴(lài)項(xiàng)用在其他應(yīng)用模塊中或?qū)⑵鋵?dǎo)入其他項(xiàng)目中。從結(jié)構(gòu)上講,庫(kù)模塊與應(yīng)用模塊相同,但在編譯時(shí),前者會(huì)創(chuàng)建代碼歸檔文件而不是 APK,因此它無(wú)法安裝在設(shè)備上。
在 Create New Module 窗口中,Android Studio 提供了以下庫(kù)模塊:
-
Android 庫(kù):這種類(lèi)型的庫(kù)可以包含 Android 項(xiàng)目中支持的所有文件類(lèi)型,包括源代碼、資源和清單文件。編譯結(jié)果是一個(gè) Android ARchive (AAR) 文件,你可以將其添加為 Android 應(yīng)用模塊的依賴(lài)項(xiàng)。
-
Java 庫(kù):這種類(lèi)型的庫(kù)只能包含 Java 源文件。編譯結(jié)果是一個(gè) Java 歸檔 (JAR) 文件,你可以將其添加為 Android 應(yīng)用模塊或其他 Java 項(xiàng)目的依賴(lài)項(xiàng)。
項(xiàng)目和模塊的概念都介紹了,那一個(gè)項(xiàng)目和一個(gè)模塊中的目錄結(jié)構(gòu)是怎樣的呢?各個(gè)文件夾又分別是什么作用的呢?
3. 項(xiàng)目結(jié)構(gòu)
在 Android Studio 中瀏覽項(xiàng)目時(shí)有多種視圖,包括 Android 視圖、Project 視圖、Package 視圖、Problems 視圖等。
Tips:其中最常用的是 Android 視圖和 Project 視圖。
3.1 Android 視圖
默認(rèn)情況下,Android Studio 會(huì)在 Android 視圖中顯示你的項(xiàng)目文件。此視圖并不能反映磁盤(pán)上的實(shí)際文件層次結(jié)構(gòu),而是按模塊和文件類(lèi)型進(jìn)行整理,以簡(jiǎn)化項(xiàng)目的關(guān)鍵源文件之間的導(dǎo)航方式,并隱藏某些不常用的文件或目錄。與磁盤(pán)上的結(jié)構(gòu)相比,一些結(jié)構(gòu)變化包括以下方面:
- 在頂級(jí) Gradle Script 組中顯示相應(yīng)項(xiàng)目的所有與編譯相關(guān)的配置文件;
- 在模塊級(jí)組中顯示每個(gè)模塊的所有清單文件(當(dāng)你針對(duì)不同的產(chǎn)品類(lèi)型和編譯類(lèi)型使用不同的清單文件時(shí));
- 在一個(gè)組(而非在每個(gè)資源限定符的單獨(dú)文件夾)中顯示所有備用資源文件。例如,你的啟動(dòng)器圖標(biāo)的所有密度版本都可以并排顯示。
在 Android 視圖下的項(xiàng)目結(jié)構(gòu)如下:
- manifests:包含 AndroidManifest.xml 文件;
- java:包含 Java 源代碼文件(以軟件包名稱(chēng)分隔各文件,包括 JUnit 測(cè)試代碼);
- res:包含所有非代碼資源(例如 XML 布局、界面字符串和位圖圖像),這些資源劃分到相應(yīng)的子目錄中。
3.2 Project 視圖
要查看項(xiàng)目的實(shí)際文件結(jié)構(gòu)(包括在 Android 視圖中隱藏的所有文件),就需要使用 Project 視圖。
在 Project 視圖下的項(xiàng)目結(jié)構(gòu)如下:
- build:包含構(gòu)建輸出;
- libs:包含專(zhuān)用庫(kù);
- src:包含相應(yīng)模塊在以下子目錄中的所有代碼和資源文件;
- androidTest:包含在 Android 設(shè)備上運(yùn)行的插樁測(cè)試的代碼。如需了解詳情,請(qǐng)參閱 Android 測(cè)試文檔;
- main:包含“主”源集文件:所有構(gòu)建變體共享的 Android 代碼和資源;
- AndroidManifest.xml:描述應(yīng)用及其各個(gè)組件的性質(zhì);
- java:包含 Java 代碼來(lái)源;
- res:包含應(yīng)用資源,例如可繪制對(duì)象文件、布局文件和界面字符串。詳情請(qǐng)參閱應(yīng)用資源;
- test:包含在主機(jī) JVM 上運(yùn)行的本地測(cè)試代碼;
- build.gradle(模塊):這定義了特定于模塊的構(gòu)建配置;
- build.gradle(項(xiàng)目):這定義了適用于所有模塊的構(gòu)建配置。
了解了項(xiàng)目的結(jié)構(gòu)之后,我們可以動(dòng)手嘗試新建一個(gè) Android 項(xiàng)目了。
4. 新建項(xiàng)目
利用 Android Studio,你可以輕松地為各種類(lèi)型的設(shè)備(例如手機(jī)、平板電腦、電視和可穿戴設(shè)備)創(chuàng)建 Android 應(yīng)用。
如果你未打開(kāi)項(xiàng)目,Android Studio 會(huì)顯示歡迎屏幕,你可在其中點(diǎn)擊 Start a new Android Studio project 創(chuàng)建新項(xiàng)目。
如果你已打開(kāi)項(xiàng)目,則可以從主菜單中依次選擇 File > New > New Project 開(kāi)始創(chuàng)建新項(xiàng)目。
系統(tǒng)會(huì)顯示 Create New Project 向?qū)В撓驅(qū)Э勺屇氵x擇要?jiǎng)?chuàng)建的項(xiàng)目類(lèi)型,然后填充代碼和資源幫助你開(kāi)始創(chuàng)建項(xiàng)目。
打開(kāi) Create New Project 向?qū)Ш笾恍鑳刹郊纯赏瓿身?xiàng)目創(chuàng)建:選擇項(xiàng)目類(lèi)型、配置項(xiàng)目。
4.1 選擇項(xiàng)目類(lèi)型
在向?qū)У?Choose your project 屏幕頂部,顯示了各種設(shè)備類(lèi)型對(duì)應(yīng)的項(xiàng)目類(lèi)別選項(xiàng)卡,你可以從中選擇要?jiǎng)?chuàng)建的項(xiàng)目類(lèi)型。
Tips:上圖的選擇會(huì)為所選的手機(jī)和平板電腦創(chuàng)建基本的 Android Activity。在你選擇要?jiǎng)?chuàng)建的項(xiàng)目類(lèi)型后,Android Studio 會(huì)填充示例代碼和資源,以幫助你開(kāi)始創(chuàng)建項(xiàng)目。
選擇后,點(diǎn)擊 Next。
4.2 配置項(xiàng)目
下一步就是配置一些設(shè)置并創(chuàng)建新項(xiàng)目。
主要的配置有如下這些:
- 指定項(xiàng)目名稱(chēng);
- 指定軟件包名稱(chēng)。默認(rèn)情況下,此軟件包名稱(chēng)也會(huì)成為你的應(yīng)用 ID。此名稱(chēng)以后可以更改;
- 指定項(xiàng)目的本地保存位置;
- 選擇你希望 Android Studio 在為新項(xiàng)目創(chuàng)建示例代碼時(shí)使用的語(yǔ)言;
- 選擇你希望應(yīng)用支持的最低 API 級(jí)別。當(dāng)你選擇較低的 API 級(jí)別時(shí),你的應(yīng)用可以依賴(lài)的現(xiàn)代 Android API 會(huì)更少,但能夠運(yùn)行應(yīng)用的 Android 設(shè)備的比例會(huì)更大。當(dāng)選擇較高的 API 級(jí)別時(shí),情況正好相反;
- 如果你選擇的項(xiàng)目類(lèi)型通過(guò) Google Play 免安裝體驗(yàn)支持免安裝體驗(yàn),并且你希望為該應(yīng)用啟用這種體驗(yàn),請(qǐng)選中 This project will support instant apps 旁邊的復(fù)選框;
- 如果你希望項(xiàng)目默認(rèn)使用 AndroidX 庫(kù),請(qǐng)選中 Use AndroidX artifacts 旁邊的復(fù)選框。AndroidX 庫(kù)是 Android 支持庫(kù)的改進(jìn)替換;
- 準(zhǔn)備好創(chuàng)建項(xiàng)目后,點(diǎn)擊 Finish。
至此,我們新建完成了一個(gè) Android 項(xiàng)目。
5. 小結(jié)
本節(jié)課程介紹了 Android 項(xiàng)目和模塊的概念,希望大家能熟悉項(xiàng)目的目錄結(jié)構(gòu),并且能夠獨(dú)自新建一個(gè) Android 項(xiàng)目。