面向大眾的移動(dòng)技術(shù): Android 全面介紹
進(jìn)入 Android 的移動(dòng)世界并構(gòu)建您的第一個(gè)應(yīng)用程序
移動(dòng)領(lǐng)域是一個(gè)充滿希望的領(lǐng)域,對(duì)于希望進(jìn)入這一領(lǐng)域的開(kāi)發(fā)人員來(lái)說(shuō),Android 是一個(gè)令人興奮的平臺(tái)。本系列將首先對(duì) Android 進(jìn)行介紹,并專門針對(duì)那些希望涉足移動(dòng)領(lǐng)域的 Java™ 開(kāi)發(fā)人員進(jìn)行了修改。我們將了解 Android 的分為三層的版本系統(tǒng)(并了解其重要性),然后設(shè)置您的開(kāi)發(fā)環(huán)境并構(gòu)建您的第一個(gè) Android 應(yīng)用程序。
近來(lái),移動(dòng)技術(shù)的迅猛發(fā)展勢(shì)頭甚至讓業(yè)內(nèi)人士都感到驚訝。在 2012 年 9 月的訪談中,Apple CEO Tim Cook 在討論 iPad 的成功時(shí)表達(dá)了這一點(diǎn)。在短短兩年內(nèi)賣出 6700 萬(wàn)個(gè) iPad,這絕對(duì)是一個(gè)驕人的業(yè)績(jī)。Cook 根據(jù)歷史銷售情況比較了這個(gè)數(shù)字,“這一銷售量相當(dāng)于我們的 Mac 24 年的銷售量,iPod 5 年的銷售量,以及 iPhone 三年的銷售量”。
如 果說(shuō) iOS 獲得了巨大成功的話,那么以 Java 為中心的 Android 平臺(tái)自然也表現(xiàn)不俗。根據(jù) Google 最近的一項(xiàng)聲明,自 Android 于 2008 年正式發(fā)布以來(lái),已有 5 億臺(tái) Android 設(shè)備被激活,每天約有 130 萬(wàn)設(shè)備激活。據(jù)報(bào)道,Apple 的 iTunes App Store 和 Google Play 總共有至少 1400000 個(gè)應(yīng)用程序和超過(guò) 60,000,000,000 個(gè)移動(dòng)應(yīng)用程序被下載。
激活所有這些移動(dòng)設(shè)備意味著存在新的應(yīng)用程序銷售機(jī)會(huì),以及會(huì)有更大的移動(dòng)開(kāi)發(fā)技術(shù)市場(chǎng)。對(duì)于想要快速構(gòu)建移動(dòng)技能的開(kāi)發(fā)人員而言,Android 是一個(gè)不錯(cuò)的起點(diǎn)。如果您可以編寫(xiě) Java 代碼和其他 JVM 語(yǔ)言,那么您可以將最初的學(xué)習(xí)曲線集中到移動(dòng)部署需求上面。Android 的多樣性意味著您可以輕松地采用和嘗試一些較新的技術(shù),如 HTML5 和 PhoneGap。并且其平臺(tái)的普遍性(附帶 Google Play)將確保您的生產(chǎn)應(yīng)用程序可以得到廣泛發(fā)布。
面向大眾的移動(dòng)技術(shù)系列的第一篇文章將簡(jiǎn)單介紹 Android。我們首先會(huì)了解 Android 非常精巧的版本系統(tǒng),然后設(shè)置一個(gè)開(kāi)發(fā)環(huán)境,開(kāi)始構(gòu)建您的第一個(gè)應(yīng)用程序。
Android 熱潮
Android 設(shè)備的分發(fā)速度超過(guò)了其他任何移動(dòng)平臺(tái),這使得 Android 成為您首次移動(dòng)開(kāi)發(fā)之旅的不二選擇,尤其當(dāng)您是一名 Java 開(kāi)發(fā)人員的時(shí)候。Android 的大量采用帶來(lái)的一個(gè)缺點(diǎn)是存儲(chǔ)碎片,這為應(yīng)用程序的測(cè)試帶來(lái)了巨大挑戰(zhàn)。大多數(shù)開(kāi)發(fā)人員面對(duì)的殘酷現(xiàn)實(shí)是無(wú)法為所有 Android 設(shè)備和 OS 版本配置文件的組合測(cè)試應(yīng)用程序。(事實(shí)上,以一種經(jīng)濟(jì)高效的方式進(jìn)行測(cè)試正逐漸成為一種新興的服務(wù)行業(yè))。后續(xù)文章將會(huì)探討一些技術(shù)問(wèn)題,包括移植到多 個(gè) Android 配置文件,以及測(cè)試 Android 移動(dòng)應(yīng)用程序的基于 Java 的工具。本文將了解 Android 的版本控制方面,您可以通過(guò)了解版本控制對(duì)這個(gè)平臺(tái)進(jìn)行開(kāi)發(fā)。
Android 版本控制
Android OS 的版本號(hào)是連續(xù)的,比如 1.6、2.1、4.2 等。版本的命名效仿甜點(diǎn)菜單中的名稱:Donut、Eclair 和 Jelly Bean。當(dāng)有人在 Android 環(huán)境下引用 Jelly Bean 時(shí),其實(shí)指的是 Android 版本 4.2。Android 版本也可以在 API 級(jí)別上進(jìn)行描述,使用連續(xù)的升序整數(shù)表示。因此 Android API level 17 就是指 Android 版本 4.2,也就是 Jelly Bean。
如果您覺(jué)得這些命名不容易理解,您不是惟一有這種想法的人。但是,理解這些命名非常重要,因?yàn)檫@三種版本名經(jīng)?;Q使用。
在 支持不同 Android 版本方面,大多數(shù) Java 開(kāi)發(fā)人員必須徹底改變他們以前的思維。Java 平臺(tái)被認(rèn)為是一項(xiàng)服務(wù)器端技術(shù),用戶對(duì)這項(xiàng)技術(shù)的接觸通常是通過(guò) Web 頁(yè)面。如果 Web 頁(yè)面是可瀏覽的,那么 Web 頁(yè)面的訪問(wèn)者并不會(huì)關(guān)心您的應(yīng)用程序究竟運(yùn)行的是哪一個(gè) Java 版本。然而,對(duì)于 Android,這意味著應(yīng)用程序離開(kāi)了服務(wù)器的保護(hù),運(yùn)行在您無(wú)法控制的設(shè)備上。
應(yīng)用程序的許多潛在使用者只在舊設(shè)備不能使用后才會(huì)升級(jí)到新版的 Android OS。到底支持哪一個(gè) Android 操作系統(tǒng)非常重要。雖然最新的 Android 版本是 4.2,但是差不多有半數(shù) Android 設(shè)備仍然支持 Android 2.3.x。為 Android 3.1 編寫(xiě)的應(yīng)用程序可以在 4.2 等新版本上運(yùn)行,但是無(wú)法在 2.3 等老版本上運(yùn)行。因此,按理說(shuō),如果您希望實(shí)現(xiàn)更廣范圍的發(fā)布,那么最好的選擇是針對(duì)較舊的操作系統(tǒng)。
以舊的系統(tǒng)為目標(biāo)的、更廣泛發(fā)布的平臺(tái)的一個(gè)弊端是新的版本總是會(huì)推出新特性,您可能希望將這些特性用到自己的應(yīng)用程序中。如果幸運(yùn)的話,Android 開(kāi)發(fā)團(tuán)隊(duì)將會(huì)發(fā)布兼容庫(kù),您可以在舊版本上使用這些新特性。
使用 Android 和 Eclipse ADT 創(chuàng)建并運(yùn)行應(yīng)用程序
在 Android 簡(jiǎn)介的開(kāi)始部分,我將幫助您盡可能快地創(chuàng)建一個(gè)簡(jiǎn)單的 Android 應(yīng)用程序。您將使用 Android 4.2 和 Eclipse Android Development Tools (ADT) 插件來(lái)創(chuàng)建一個(gè)基于 Java 的 Hello World 應(yīng)用程序。
為 Android 建立開(kāi)發(fā)環(huán)境的途徑有兩種。剛接觸 Eclipse 和 Android 的開(kāi)發(fā)人員可以先下載 ADT (Android Developer Tools) Bundle。ADT Bundle 捆綁了一個(gè) Android SDK 和一個(gè) Eclipse 版本,其中已經(jīng)安裝了 ADT 插件。這個(gè)程序包可幫助您快速、輕松地使用 Android。
如果 Eclipse 已經(jīng)安裝在臺(tái)式機(jī)上并設(shè)置好,那么請(qǐng)手動(dòng)下載并安裝 Android SDK?;A(chǔ) Android SDK 包含一些可簡(jiǎn)化 Android 開(kāi)發(fā)的系統(tǒng)工具,但它缺乏 開(kāi)發(fā)特定 Android 版本所需的 Android 庫(kù)。為您的操作系統(tǒng)下載基礎(chǔ) Android SDK 后,可以訪問(wèn) SDK 安裝目錄的工具目錄,并運(yùn)行 清單 1 中的 Android 腳本。
清單 1. 啟動(dòng) Android SDK Manager
- ~/Development/tools/android/android-sdk-mac_x86/tools$>./android
該腳本啟動(dòng)了 Android SDK Manager,您可以下載 Android 的各種版本和庫(kù),并創(chuàng)建模擬程序或虛擬設(shè)備實(shí)例。Android SDK Manager 打開(kāi)了一個(gè)窗口,其中顯示一個(gè)很長(zhǎng)的要下載的選項(xiàng)的列表,如 圖 1 所示。
圖 1. SDK Manager
在左側(cè)復(fù)選框中,選擇 Tools,然后選擇 Android 4.2 (API 17)。該文件夾將會(huì)顯示許多選項(xiàng)。選擇 SDK Platform 和 ARM EABI v7a System 圖片,如 圖 2 所示。
圖 2. SDK Manager 中的選擇
單擊 Install packages 并接受任何必要許可;管理器將完成其余步驟。
創(chuàng)建一個(gè)模擬器
接下來(lái),創(chuàng)建一個(gè)模擬器實(shí)例,這是一個(gè)運(yùn)行應(yīng)用程序的虛擬設(shè)備。模擬器必須以 Android 的特定版本為目標(biāo),因此我們將創(chuàng)建一個(gè)運(yùn)行 Android 4.2 的模擬器實(shí)例。
再次啟動(dòng) SDK Manager(如果已關(guān)閉的話)。如果 Android SDK 工具或平臺(tái)工具已更新,則重啟 SDK Manager。在 SDK Manager 頂層菜單中,選擇 Tools > Manage AVDs 會(huì)打開(kāi)關(guān)于 Android Virtual Device Manager 的新對(duì)話框,如 圖 3 所示。
圖 3. Android Virtual Device Manager
該對(duì)話框列出了您的機(jī)器上定義的所有模擬器。模擬器列表在創(chuàng)建模擬器之前是空的。單擊 New 打開(kāi) Create a new Android Virtual Device (AVD) 對(duì)話框,在其中可以定義一個(gè)模擬器。在 Target 下拉列表中選擇 Android version 4.2。在 AVD Name 文件夾中,為模擬器命名,我使用的名稱是 Android_4.2。當(dāng)您準(zhǔn)備好測(cè)試應(yīng)用程序時(shí),就可以使用該名稱從命令行啟動(dòng)模擬器。
圖 4. 創(chuàng)建一個(gè)新的 Android 虛擬設(shè)備
在 圖 4 中,您可以看到一些 AVD 選項(xiàng),包括設(shè)備類型、攝像頭設(shè)置、內(nèi)存和存儲(chǔ)。在我的示例中,選擇了 Galaxy Nexus,對(duì)它使用了一個(gè) 200MB 的 SD 卡。最后,我選中了 Use Host GPU 模擬選項(xiàng),這可以提高模擬器實(shí)例的性能。
單擊 OK,在 AVD 對(duì)話框中查看列出的新的虛擬設(shè)備。選擇該設(shè)備并單擊 Start,這將打開(kāi)一個(gè)帶有啟動(dòng)選項(xiàng)的對(duì)話框。現(xiàn)在,使用默認(rèn)值并單擊 Launch。模擬器實(shí)例的啟動(dòng)時(shí)間較長(zhǎng),因此這個(gè)時(shí)候可以去喝一杯咖啡,瀏覽一下 Facebook 或更新您的 Twitter 狀態(tài)。
圖 5. 新的 Android 設(shè)備!
過(guò)一會(huì)后,一個(gè)閃亮的模擬器設(shè)備(類似 圖 5)將會(huì)顯示在您的主屏幕上,這意味著您可以開(kāi)始創(chuàng)建 Android 4.2 應(yīng)用程序了。
#p#
設(shè)置 Eclipse ADT
如果 Eclipse 已經(jīng)安裝到系統(tǒng)中,那么您必須在繼續(xù)后面的操作之前添加 Android Development Tools (ADT) 插件庫(kù)。
在 Eclipse 菜單中,打開(kāi) Help > Find New Software。單擊 Add 和 ADT 插件的 URL:https://dl-ssl.google.com/android/eclipse/(參見(jiàn) 圖 6)。
圖 6. 添加 ADT 插件庫(kù)
完成插件下載后,根據(jù)操作說(shuō)明完成安裝。將 ADT 插件配置為可以使用您剛才安裝的 SDK?,F(xiàn)在,您的項(xiàng)目已針對(duì) Android 4.2 平臺(tái)完成了設(shè)置,并使用了您配置好的模擬器。
使用 Android 4.2!
要在 Eclipse 中創(chuàng)建 Android 應(yīng)用程序,請(qǐng)選擇創(chuàng)建 Android Application Project 的選項(xiàng)。在 New Android Application 對(duì)話框中,提供應(yīng)用程序名稱、項(xiàng)目名稱和包名稱。應(yīng)用程序名稱 是用戶在設(shè)備圖標(biāo)中看到的內(nèi)容;而項(xiàng)目名稱 是您的項(xiàng)目在 Eclipse 中的名稱。
圖 7. 創(chuàng)建一個(gè)新的 Android 項(xiàng)目
在 圖 7 所示的 New Android Application 對(duì)話框中執(zhí)行下面的步驟:
- 在 Target SDK 下拉列表中,選擇 API 17: Android 4.2 (Jelly Bean),然后單擊 Next。
- 在下一個(gè)對(duì)話框中,保留默認(rèn)設(shè)置,但是您可以將最終生成的代碼放到任意位置。單擊 Next。
- 保留 Configure Launcher Icon 對(duì)話框中的默認(rèn)設(shè)置并單擊 Next。
- 保留 Create Activity 對(duì)話框和最終對(duì)話框中的默認(rèn)設(shè)置,這些設(shè)置用于選擇應(yīng)用程序的行為。單擊 Finish。
如果項(xiàng)目創(chuàng)建成功,您會(huì)看到一個(gè)新的項(xiàng)目,其用戶界面類似 圖 8 中所示的界面。
圖 8. Eclipse 中的樣例啟動(dòng)項(xiàng)目
在 Android 模擬器中運(yùn)行應(yīng)用程序
默認(rèn)情況下,使用 ADT 項(xiàng)目向?qū)?chuàng)建的 Android 項(xiàng)目將創(chuàng)建一個(gè)簡(jiǎn)單的 Hello World 移動(dòng)應(yīng)用程序(參見(jiàn) 圖 8)。在開(kāi)始修飾這個(gè)應(yīng)用程序之前,讓我們來(lái)看一看在模擬器上運(yùn)行這個(gè)基本應(yīng)用程序會(huì)發(fā)生什么。
如果 Android 4.2 模擬器處于關(guān)閉狀態(tài),請(qǐng)打開(kāi)它。這一次不會(huì)在 AVD Manager 中啟動(dòng)模擬器,而是通過(guò)命令行啟動(dòng)它。您可以從 SDK 的 tools 目錄訪問(wèn) emulator 腳本。在啟動(dòng)腳本時(shí),系統(tǒng)會(huì)要求您提供您的模擬器的名稱。我的模擬器的名稱為 Android_4.2,因此我在 清單 2 中運(yùn)行腳本來(lái)啟動(dòng)我的模擬器實(shí)例:
清單 2. 在命令行中訪問(wèn)模擬器
- ~/Development/tools/android/android-sdk-mac_x86/tools$>./emulator -avd Android_4.2
啟動(dòng)您的模擬器實(shí)例,返回 Eclipse,然后選擇您的項(xiàng)目。右鍵單擊并選擇 Run As > Android Application。
圖 9. 從 Eclipse 中運(yùn)行項(xiàng)目
默認(rèn)情況下,Eclipse 將在目前正運(yùn)行的模擬器上部署您的應(yīng)用程序(圖 9)。您的模擬器實(shí)例現(xiàn)在顯示了一個(gè)白色的屏幕,其中顯示了所有 Java 開(kāi)發(fā)人員都喜歡的問(wèn)候語(yǔ)!如果 Eclipse 因?yàn)槟撤N原因在模擬器上運(yùn)行應(yīng)用程序時(shí)出現(xiàn)故障,則需要返回到 Run As 選項(xiàng)并選擇 Run Configurations。在 Target 選項(xiàng)卡中,重新選擇 Automatically select compatible device,并確保您的模擬器也被選中。
圖 10. Hello World!
#p#
基本 Android 應(yīng)用程序
您現(xiàn)在有了一個(gè)基本的 Hello World 應(yīng)用程序,可以在任何與 4.2 兼容的 Android 設(shè)備上運(yùn)行它。最后,您可能希望定制這個(gè)應(yīng)用程序,以便添加更多的功能。目前,我希望對(duì) Android 應(yīng)用程序進(jìn)行分析。
回到 Eclipse IDE。在項(xiàng)目的 src 目錄中,導(dǎo)航到項(xiàng)目的 .java 文件。如果您保留了所有默認(rèn)值,那么該文件的名稱應(yīng)為 MainActivity。Activity 類是 Android 移動(dòng)應(yīng)用程序的驅(qū)動(dòng)引擎,類似于 servlets 對(duì)于 Java 服務(wù)器端應(yīng)用程序的意義。每個(gè) Activity 都有一個(gè)生命周期,類似于 Java applet 的生命周期。
Hello World 應(yīng)用程序只包含基本的架構(gòu),因此其 Activity 非常簡(jiǎn)單。首先,該類將從 Android 的 Activity 類擴(kuò)展。activity 的入口點(diǎn)是 onCreate 方法,它在應(yīng)用程序加載時(shí)由平臺(tái)啟動(dòng)。這個(gè)方法中的關(guān)鍵代碼是 setContentView 調(diào)用。清單 3 顯示了默認(rèn)的 MainActivity 類。
清單 3. MainActivity
- package com.example.hello;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
- }
在 清單 3 中,setContentView 加載了 activity_main 布局,它是您在第一次打開(kāi)項(xiàng)目時(shí)在 Eclipse 中看到的視圖的名稱。該名稱與 res/layout 目錄中的 activity_main.xml 文件對(duì)應(yīng)。打開(kāi)該文件,查看應(yīng)用程序的圖形化表示。在視圖的左下方的選項(xiàng)卡中,有一個(gè)查看原始 XML 文件的選項(xiàng),可以單擊該選項(xiàng)來(lái)查看原始文件,內(nèi)容類似于 清單 4。
清單 4. 原始布局的定義
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".MainActivity" >
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_centerVertical="true"
- android:text="@string/hello_world" />
- </RelativeLayout>
Android 視圖是在 XML 文件中定義的。每個(gè)視圖都有一個(gè)布局,您可以向其中添加小部件,比如按鈕或文本字段。目前,樣例應(yīng)用程序有一個(gè) RelativeLayout 和一個(gè)小部件: TextView。如果仔細(xì)觀察這個(gè)小部件,您會(huì)發(fā)現(xiàn)一個(gè)文本字段,它被設(shè)置為一個(gè)引用:@string/hello_world。
該變量是指向?qū)嶋H字符串的指針,您可以在 res/values/strings.xml 文件中找到它。打開(kāi)該文件。要查看原始 XML,請(qǐng)單擊左下方區(qū)域的 strings.xml 選項(xiàng)卡。
清單 5. strings.xml 文件
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="app_name">Hello 4.2</string>
- <string name="hello_world">Hello world!</string>
- <string name="menu_settings">Settings</string>
- </resources>
清單 5 中的第二個(gè)字符串定義將 hello_world 映射到 Hello World!。
Android manifest
您目前已經(jīng)了解了 Android 應(yīng)用程序的三個(gè)重要元素是如何聯(lián)系起來(lái)的:行為、布局和資源文件。在應(yīng)用程序啟動(dòng)時(shí),Android OS 將調(diào)用 MainActivity 的 onCreate 方法。onCreate 方法隨后會(huì)加載布局,該布局從另一個(gè) XML 資源文件獲取一些值。在本例中,結(jié)果是一個(gè)顯示了 “Hello World!” 的簡(jiǎn)單的 UI。
但是,設(shè)備如何知道應(yīng)該調(diào)用哪個(gè) Activity?現(xiàn)在是 AndroidManifest.xml 發(fā)揮作用的時(shí)候了。在項(xiàng)目根目錄中查看這個(gè)文件。單擊該文件,Eclipse 會(huì)加載一個(gè)簡(jiǎn)潔的定制視圖,視圖左下角有一些選項(xiàng)卡。單擊標(biāo)簽為 AndroidManifest.xml 的選項(xiàng)卡將會(huì)顯示 清單 6 所示的原始 XML。
清單 6. AndroidManifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.example.hello"
- android:versionCode="1"
- android:versionName="1.0" >
- <uses-sdk
- android:minSdkVersion="8"
- android:targetSdkVersion="17" />
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <activity
- android:name="com.example.hello.MainActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
該文件的作用是向底層設(shè)備解釋您的應(yīng)用程序。它包含一個(gè)名為 application 的 XML 塊,其中定義了 activity。您的 MainActivity 將被引用,action 被定義并包含一個(gè) category。action 會(huì)告訴設(shè)備要啟動(dòng)哪一個(gè) Activity。在本例中,action 將您的 Activity 描述為 MAIN。
AndroidManifest.xml 文件中的其他重要聲明包括 uses-sdk 部分,它表示 min 版本為 8(即 Android 2.2.x),目標(biāo)版本為 17,即 Android 4.2。我在后面的文章中將會(huì)介紹這些細(xì)節(jié)?,F(xiàn)在,只需明白 Android 平臺(tái)提供了可以兼容早期版本的庫(kù)就足夠了。
結(jié)束語(yǔ)
您的第一個(gè) Android 應(yīng)用程序已經(jīng)成功創(chuàng)建。在這個(gè)過(guò)程中,您了解了有關(guān) Android(和移動(dòng)開(kāi)發(fā))的一些重要內(nèi)容。您安裝了 Android 的 SDK,下載了 Android 版本 4.2,并創(chuàng)建了一個(gè) AVD(即模擬器)來(lái)模擬應(yīng)用程序在設(shè)備上的運(yùn)行。如果使用的是 Eclipse,那么需要將 IDE 配置為可以構(gòu)建并將 Android 應(yīng)用程序部署到所選的 AVD 中。要在 Android 中創(chuàng)建應(yīng)用程序,必須執(zhí)行所有這些設(shè)置。
您還看到了將 Android 應(yīng)用程序關(guān)聯(lián)起來(lái)是多么簡(jiǎn)單,可以使用 Activity 類完成大部分工作,使用 AndroidManifest.xml 為底層設(shè)備定義 Activity 類。您會(huì)看到最終結(jié)果:一個(gè)簡(jiǎn)單的 Hello World 應(yīng)用程序,并對(duì)它繼續(xù)進(jìn)行定制。
我們?cè)谙乱黄恼轮袑⑸钊胗懻?Android。同時(shí),我建議您研究一下目前完成的應(yīng)用程序設(shè)置。添加一些小部件或修改 XML 文件中的某些值。如果您還意猶未盡,那么可以嘗試創(chuàng)建一個(gè)不包含默認(rèn)值的新的 Hello World 應(yīng)用程序。