這個程式碼研究室是 Android Kotlin 基礎知識課程的一部分。如果您按部就班完成程式碼研究室,就能充分體驗到本課程的價值。所有課程程式碼研究室都列在 Android Kotlin 基礎知識程式碼研究室到達網頁。
簡介
在本程式碼研究室中,您將在模擬器和實體裝置上建立並執行第一個 Android 應用程式「HelloWorld」。此外,您也會瞭解 Android 專案的樣貌。
須知事項
- 您應瞭解使用 IDE (整合開發環境,例如 Android Studio) 開發物件導向應用程式的一般軟體開發程序。
- 你應具備至少一年的物件導向程式設計經驗,並至少瞭解 Java 和 Kotlin。
課程內容
- 瞭解如何在 Android Studio 中建構基本的 Android 應用程式。
- 如何使用範本建立 Android 專案。
- 如何尋找 Android 專案的主要元件。
- 瞭解如何在模擬器或實體裝置上執行 Android 應用程式。
做法
- 建立新的 Android 專案和名為 HelloWorld 的預設應用程式。
- 建立模擬器 (虛擬裝置),以便在電腦上執行應用程式。
- 在虛擬和實體裝置上執行 HelloWorld 應用程式。
- 探索專案版面配置。
- 瀏覽
AndroidManifest.xml
檔案。
HelloWorld 應用程式會在 Android 虛擬裝置或實體裝置的螢幕上顯示「Hello World」字串。應用程式如下所示:
在這項工作中,您將建立新的應用程式專案,確認 Android Studio 已正確安裝。
- 開啟 Android Studio (如果尚未開啟)。
- 在主要的「Welcome to Android Studio」對話方塊中,按一下「Start a new Android Studio project」。
- 系統會顯示「Choose your project」 對話方塊。如下所示選取「Empty Activity」,然後點選「Next」。
「活動」Activity
是使用者可執行的單一專注事項。每個應用程式都必須至少有一個活動做為進入點。您可以將這個進入點活動視為其他程式中的main()
函式。活動通常會與版面配置建立關聯,定義使用者介面 (UI) 元素在畫面上的顯示方式。Android Studio 提供多種Activity
範本,可協助您快速上手。 - 在「設定專案」對話方塊中,輸入「HelloWorld」做為名稱。
- 接受「公司網域」的預設值 android.example.com,或建立專屬公司網域。這個值加上應用程式名稱,就是應用程式的套件名稱。如果您不打算發布應用程式,請接受預設值。您日後可以變更應用程式的套件名稱,但需要額外作業。
- 確認預設的「Save location」(儲存位置) 是您要儲存應用程式的位置。如果不是,請將位置變更為偏好的目錄。
- 確認「Language」(語言) 為 Kotlin。
- 請確認最低 API 級別為「API 19:Android 4.4 (KitKat)」。撰寫本程式碼研究室時,Android Studio 指出,如果使用這個 API 級別,應用程式約可在 95.3% 的裝置上執行。
(您會在後續的程式碼研究室中,進一步瞭解最低 API 級別。如要立即瞭解詳情,請按一下「幫我選擇」,開啟含有 API 級別資訊的視窗。) - 勾選「Use AndroidX artifacts」(使用 AndroidX 構件) 核取方塊。
- 將其他核取方塊全部取消勾選,然後按一下「完成」。如果專案需要更多元件才能使用所選目標 SDK,Android Studio 會自動安裝這些元件,這可能需要一段時間。按照提示操作並接受預設選項。
Android Studio 現在會建立專案,這可能需要一些時間。您不應收到任何錯誤訊息。如有警告,可全數忽略。
在這項工作中,您將在 Android Studio 中探索 HelloWorld 專案,並瞭解使用 Android Studio 開發應用程式的基本概念。
步驟 1:探索「專案」窗格
- 如果尚未選取「專案」分頁,請選取該分頁。「Project」分頁位於 Android Studio 視窗左側的直向分頁欄中。「專案」窗格隨即開啟。
- 如要以標準 Android 專案階層檢視專案,請從「Project」窗格頂端的下拉式選單中選取「Android」Android。(預設為 Android)。您可以透過多種方式查看專案檔案,包括查看檔案在檔案系統階層中的顯示方式。不過,使用 Android 檢視畫面處理專案會比較容易。
步驟 2:瀏覽應用程式資料夾
應用程式的所有程式碼和資源都位於 app
資料夾中。
- 在「Project」>「Android」窗格中,展開「app」資料夾。
app
資料夾內有四個子資料夾:manifests
、java
、generatedJava
和res
。 - 展開「java」資料夾,然後展開「com.example.android.HelloWorld」資料夾,即可看到「MainActivity」 Kotlin 檔案。
「java」java資料夾包含 Android 應用程式的所有主要 Kotlin 程式碼。Kotlin 程式碼出現在 java 資料夾中,是基於歷史因素。這項慣例可讓 Kotlin 與以 Java 程式設計語言編寫的程式碼順暢互通,即使是在同一個專案和應用程式中也一樣。
如上圖所示,應用程式的類別檔案包含在三個子資料夾中。com.example.hello.helloworld (或您指定的網域名稱) 資料夾包含應用程式套件的所有檔案。特別是MainActivity
類別,這是應用程式的主要進入點。您會在下一個程式碼研究室中進一步瞭解MainActivity
。java
資料夾中的其他兩個資料夾用於與測試相關的程式碼,例如單元測試。
- 請注意 generatedJava 資料夾。這個資料夾包含 Android Studio 建構應用程式時產生的檔案。請勿編輯這個資料夾中的任何內容,因為您重建應用程式時,系統可能會覆寫變更。不過,在偵錯期間需要查看這些檔案時,瞭解這個資料夾就很有幫助。
步驟 3:瀏覽 res 資料夾
- 在「Project」>「Android」窗格中,展開「res」資料夾。
「res」資料夾包含資源。Android 中的資源是指應用程式使用的靜態內容,資源包括圖片、文字字串、畫面版面配置、樣式和值,例如十六進位顏色或標準尺寸。
Android 應用程式會盡可能將 Kotlin 程式碼和資源分開。這樣一來,您就能更輕鬆地找出應用程式 UI 中使用的所有字串或圖示。此外,變更其中一個資源檔案時,應用程式中所有使用該檔案的位置都會套用變更。 - 在「res」資料夾中展開「layout」資料夾,即可看到
activity_main.xml
檔案。
您的 Activity
通常會與 UI 版面配置檔案建立關聯,該檔案定義為 res/layout
目錄中的 XML 檔案。該版面配置檔案通常會以活動命名。在本例中,活動名稱為 MainActivity
,因此相關聯的版面配置為 activity_main
。
步驟 4:探索資訊清單資料夾和 AndroidManifest.xml
manifests
資料夾包含的檔案會向 Android 系統提供應用程式的基本資訊。
- 展開「manifests」資料夾,然後按兩下「AndroidManifest.xml」開啟檔案。
AndroidManifest.xml
檔案包含 Android 系統執行應用程式所需的詳細資料,包括應用程式包含哪些活動。 - 請注意,
MainActivity
是在<activity>
元素中參照。應用程式中的所有Activity
都必須在資訊清單中宣告。以下是MainActivity
的範例:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
- 請注意
<activity>
內的<intent-filter>
元素。這個意圖篩選器中的<action>
和<category>
元素會告知 Android,使用者點選啟動器圖示時,應從何處啟動應用程式。我們會在後續的程式碼研究室中,進一步說明意圖篩選器。
您也可以在 AndroidManifest.xml
檔案中定義應用程式所需的任何權限。權限包括允許應用程式讀取手機聯絡人、透過網際網路傳送資料,或存取裝置相機等硬體。
Gradle 是一套建構自動化系統,使用網域專屬語言來描述應用程式的專案結構、設定和依附元件。編譯及執行應用程式後,即可查看 Gradle 建構作業執行的相關資訊。您也會看到所安裝 Android 套件組合 (APK) 的相關資訊。(APK 是 Android 作業系統用來發布及安裝行動應用程式的套件檔案格式)。
探索 Gradle 系統:
- 展開「Gradle Scripts」資料夾。在「Project」>「Android」窗格中,這個資料夾包含建構系統所需的所有檔案。
- 找出 build.gradle(Project: HelloWorld) 檔案。
這個檔案包含專案中所有模組共用的設定選項。每個 Android Studio 專案都包含單一頂層 Gradle 建構檔案。這個檔案定義專案中所有模組共用的 Gradle 存放區和依附元件。 - 找出 build.gradle(Module:app) 檔案。
除了專案層級的build.gradle
檔案,每個模組都有自己的build.gradle
檔案。模組層級build.gradle
檔案可讓您設定每個模組的建構設定。(HelloWorld 應用程式只有一個模組,也就是應用程式本身的模組)。變更應用程式層級的建構設定時,您最常編輯的就是這個build.gradle
檔案。舉例來說,當您變更應用程式支援的 SDK 層級,或在dependencies
區段中宣告新的依附元件時,就會編輯這個build.gradle
檔案。您將在後續的程式碼研究室中進一步瞭解這兩項功能。
在這項工作中,您會使用 Android 虛擬裝置 (AVD) 管理工具建立虛擬裝置 (模擬器)。虛擬裝置會模擬特定 Android 裝置類型的設定。然後,您就能使用該虛擬裝置執行應用程式。
Android Emulator 是一款獨立應用程式,有自己的系統需求。虛擬裝置可能會占用大量磁碟空間。如果遇到任何問題,請參閱「在 Android Emulator 上執行應用程式」。
步驟 1:建立 Android 虛擬裝置 (AVD)
如要在電腦上執行模擬器,必須建立描述虛擬裝置的設定。
- 在 Android Studio 中,依序選取「Tools」>「AVD Manager」,或按一下工具列中的「AVD Manager」圖示
。系統會顯示「Your Virtual Devices」(您的虛擬裝置) 對話方塊。如果您已建立虛擬裝置,對話方塊會顯示這些裝置 (如下圖所示)。否則,您會看到空白清單。
- 按一下對話方塊左下方的「+Create Virtual Device」。系統會顯示「Select Hardware」對話方塊,內含預先設定的硬體裝置清單。表格中,每種裝置的「螢幕尺寸」(Size)、以像素為單位的螢幕解析度 (Resolution) 和「密度」(Density) 各列於一欄。
- 選取裝置 (例如 Nexus 5x 或 Pixel XL),然後按一下「Next」。系統會隨即顯示「System Image」 對話方塊。
- 按一下「Recommended」(推薦) 分頁標籤,然後選擇要在虛擬裝置上執行的 Android 系統版本 (例如「Pie」)。
- 選擇系統映像檔後,按一下「下一步」。系統會開啟「Android Virtual Device (AVD)」對話方塊。檢查設定,然後按一下「完成」。
步驟 2:在虛擬裝置上執行應用程式
在這項工作中,您將執行新應用程式。
- 在 Android Studio 中,依序選取「Run」>「Run app」,或按一下工具列的「Run」圖示「Run app」或按一下工具列中的「Run」圖示 [ICON HERE]。[IMAGEINFO]:ic_run.png,Android Studio 執行圖示" style="width: 24.00px" src="img/6c65750f2ce7f651.png"> 工具列中的圖示。畫面上會顯示「Select Deployment Target」對話方塊,並警告您沒有可用的裝置。如果開發電腦未連線至實體裝置,或您尚未啟動虛擬裝置,系統就會顯示這則警告。
- 在「Select Deployment Target」對話方塊的「Available Virtual Devices」下方,選取您建立的虛擬裝置。按一下「確定」。
模擬器的啟動方式與實體裝置相似。視電腦速度而定,這項程序可能需要一段時間才能完成。應用程式會開始建構,模擬器準備就緒後,Android Studio 會將應用程式 APK 上傳至模擬器並執行。
您應該會看到 HelloWorld 應用程式,如下圖所示。
在這項工作中,您會在實體行動裝置 (例如手機或平板電腦) 上執行應用程式 (如有)。請務必在虛擬和實體裝置上測試應用程式。
必要條件:
- Android 裝置,例如手機或平板電腦。
- USB 資料傳輸線,可透過 USB 連接埠將 Android 裝置連接到電腦。
- 如果您使用 Linux 或 Windows 系統,可能需要執行額外步驟。請參閱「在硬體裝置上執行應用程式」文件。您可能還需要為裝置安裝適當的 USB 驅動程式。如需 Windows USB 驅動程式,請參閱「安裝原始設備製造商 (OEM) USB 驅動程式」。
步驟 1:開啟 USB 偵錯
如要允許 Android Studio 與 Android 裝置通訊,必須在裝置的「開發人員選項」設定中啟用 USB 偵錯功能。
在 Android 4.2 (Jellybean) 以上版本中,開發人員選項設定會預設為隱藏。如要顯示開發人員選項並啟用 USB 偵錯功能:
- 在裝置上開啟「設定」,搜尋「關於手機」,輕觸「關於手機」,然後輕觸「版本號碼」七次。
- 返回上一頁 (「設定」/「系統」)。清單中會顯示「開發人員選項」。輕觸「開發人員選項」。
- 選取「USB 偵錯」。
步驟 2:在 Android 裝置上執行應用程式
現在,您可以透過 Android Studio 連結裝置,並執行應用程式。
- 使用 USB 傳輸線將 Android 裝置連接至您的開發機器。裝置上應會出現一個對話方塊,要求允許進行 USB 偵錯。
- 選取「Always allow」選項,即可記住這部電腦。接著輕觸「OK」。
- 在電腦上,按一下 Android Studio 工具列中的「Run」按鈕
。「Select Deployment Target」對話方塊隨即開啟,列出可用的模擬器和已連線的裝置。您應該會看到實體裝置和所有模擬器。
- 選取裝置,然後按一下「OK」。Android Studio 會在裝置上安裝並執行應用程式。
疑難排解
如果 Android Studio 無法辨識您的裝置,請嘗試下列做法:
- 拔除 USB 傳輸線,然後重新插入。
- 重新啟動 Android Studio。
如果電腦還是找不到裝置,或是宣告裝置「未經授權」,請按照下列步驟操作:
- 拔除 USB 傳輸線。
- 在裝置上開啟「設定」應用程式中的「開發人員選項」。
- 輕觸「撤銷 USB 偵錯授權」。
- 將裝置重新連接至電腦。
- 收到系統提示後,請同意授權。
您可能需要為裝置安裝適當的 USB 驅動程式。請參閱「在硬體裝置上執行應用程式」。
挑戰: 您已完成設定,並熟悉基本開發工作流程,現在請執行下列操作:
- 在 Android Studio 中建立新專案。
- 將「Hello World」問候語變更為「祝」和最近生日的人名。
- 如要安裝 Android Studio,請前往 Android Studio,然後按照指示下載及安裝。
- 如要在「Project」窗格中查看應用程式的 Android 階層,請按一下直向分頁欄中的「Project」分頁標籤。然後在頂端的下拉式選單中選取「Android」Android。
- 如要在專案中新增依附元件或變更依附元件版本,請編輯
build.gradle(Module:app)
檔案。 - 應用程式的所有程式碼和資源都位於
app
和res
資料夾中。java
資料夾包含 Kotlin 或 Java 原始碼 (或兩者) 中的活動、測試和其他元件。res
資料夾包含版面配置、字串和圖片等資源。 - 如要為 Android 應用程式新增功能、元件和權限,請編輯
AndroidManifest.xml
檔案。所有應用程式元件 (例如額外活動) 都必須在這個 XML 檔案中宣告。 - 如要建立 Android 虛擬裝置 (模擬器) 來執行應用程式,請使用 AVD 管理工具。
- 如要使用 Android Studio 在實體 Android 裝置上執行應用程式,請在裝置上啟用 USB 偵錯功能。如要啟用這項功能,請依序開啟「設定」>「關於手機」,然後輕觸「版本號碼」七次。然後開啟「設定」 >「開發人員選項」,選取「USB 偵錯」。
Udacity 課程:
Android Studio 說明文件:
其他:
本節列出的作業可由課程講師指派給學習本程式碼研究室的學員。講師可自由採取以下行動:
- 視需要指派作業。
- 告知學員如何繳交作業。
- 為作業評分。
講師可以視需求使用全部或部分建議內容,也可以自由指派任何其他合適的作業。
如果您是自行學習本程式碼研究室,不妨利用這些作業驗收學習成果。
建構並執行應用程式
- 使用空白範本建立新的 Android 專案。
- 開啟
res/strings.xml
檔案。 - 將
app_name
字串的值變更為「My Dice Roller」。這個名稱會顯示在標題列中。 - 為裝置建立模擬器,指定任何 Android 版本,然後執行應用程式。請注意應用程式的標題如何變更。
回答問題
第 1 題
主要活動的版面配置檔案名稱為何?
MainActivity.java
AndroidManifest.xml
activity_main.xml
build.gradle
第 2 題
指定應用程式名稱的字串資源名稱為何?
app_name
xmlns:app
android:name
applicationId
第 3 題
您使用哪種工具建立新的模擬器?
- Android Device Monitor
- AVD Manager
- SDK Manager
- 主題編輯器
提交應用程式以供評分
請確認應用程式具備下列功能:
- 在畫面上顯示「Hello World」的
Activity
。 - 標題列顯示「My Dice Roller」。
開始下一個課程:
如要查看本課程其他程式碼研究室的連結,請參閱 Android Kotlin 基礎知識程式碼研究室登陸頁面。