自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面向大眾的移動(dòng)技術(shù): Android 全面介紹

移動(dòng)開(kāi)發(fā) Android
移動(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)用程序。

進(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)用程序。

關(guān)于本系列移動(dòng)應(yīng)用程序發(fā)布正呈現(xiàn)爆炸式增長(zhǎng),移動(dòng)開(kāi)發(fā)技術(shù)正當(dāng)其時(shí)。本系列文章將向那些有編程經(jīng)驗(yàn)、剛剛接觸移動(dòng)領(lǐng)域的開(kāi)發(fā)人員介紹這個(gè)領(lǐng)域的發(fā)展情況。本系列首先使用 Java 代碼編寫(xiě)本機(jī)應(yīng)用程序,然后擴(kuò)展您的工具箱,包括 JVM 語(yǔ)言、腳本框架、HTML5/CSS/JavaScript、第三方工具等。您將逐步掌握所需的技能,以便滿足幾乎所有移動(dòng)開(kāi)發(fā)場(chǎ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ā)。

進(jìn)入移動(dòng)領(lǐng)域的三條途徑:從較高的層面來(lái)看,移動(dòng)生態(tài)系統(tǒng)有三個(gè)主要的開(kāi)發(fā)平臺(tái):本機(jī)、Web 和混合開(kāi)發(fā)平臺(tái)。

  • 與其他兩者相比,本機(jī)平臺(tái)可以生成外觀和性能都非常卓越的應(yīng)用程序。構(gòu)建本機(jī)應(yīng)用程序的缺點(diǎn)是您必須為每個(gè)平臺(tái)編寫(xiě)不同的代碼庫(kù)。

  • Web 移動(dòng)應(yīng)用程序通常使用 HTML5、CSS 和 JavaScript 編寫(xiě)。您可以編寫(xiě)一個(gè) Web 移動(dòng)應(yīng)用程序,并在多個(gè)平臺(tái)上運(yùn)行它,但是應(yīng)用程序的外觀和性能可能不如本機(jī)應(yīng)用程序。

  • 混合工具和框架彌補(bǔ)了這些缺憾,因?yàn)樗鼈儗?Web 應(yīng)用程序的編寫(xiě)簡(jiǎn)易性、普遍性與本機(jī)應(yīng)用程序的靚麗外表相結(jié)合。開(kāi)發(fā)人員總是爭(zhēng)論哪個(gè)平臺(tái)更好(有人稱之為 “移動(dòng)應(yīng)用程序大辯論”),但事實(shí)上每個(gè)平臺(tái)各有千秋。

本系列文章將討論這三個(gè)平臺(tái)。

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 的 IDE:當(dāng)為 Android 開(kāi)發(fā)移動(dòng)應(yīng)用程序時(shí),可以使用您已經(jīng)而非常熟悉的 Java 工具和框架。例如,最流行的兩個(gè) Java 開(kāi)發(fā) IDE 是 Eclipse 和 IntelliJ,它們都支持 Android。Android 與 Eclipse 的聯(lián)系很緊密,它提供的插件可以輕松實(shí)現(xiàn) Android 應(yīng)用程序的 “構(gòu)建-測(cè)試-部署” 周期。本文中的示例是使用 Eclipse 構(gòu)建的,但您也可以使用 IntelliJ 構(gòu)建它。

為 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

  1. ~/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

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è)備

在 SDK Manager 中創(chuàng)建新的 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ù)

向 Eclipse 添加 ADT 插件庫(kù)的選項(xiàng)的屏幕截圖

完成插件下載后,根據(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)目

創(chuàng)建新的 Android 項(xiàng)目的屏幕截圖

圖 7 所示的 New Android Application 對(duì)話框中執(zhí)行下面的步驟:

  1. 在 Target SDK 下拉列表中,選擇 API 17: Android 4.2 (Jelly Bean),然后單擊 Next。
  2. 在下一個(gè)對(duì)話框中,保留默認(rèn)設(shè)置,但是您可以將最終生成的代碼放到任意位置。單擊 Next。
  3. 保留 Configure Launcher Icon 對(duì)話框中的默認(rèn)設(shè)置并單擊 Next。
  4. 保留 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)目

Eclipse 中的默認(rèn)應(yī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)模擬器

  1. ~/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)目

在 Eclipse 中運(yùn)行應(yī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!

‘Hello World’應(yīng)用程序的屏幕截圖

#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)行分析。

Android 的特制 JVM:Android 應(yīng)用程序是使用 Java 代碼進(jìn)行編寫(xiě)的,但并沒(méi)有在標(biāo)準(zhǔn) JVM 上運(yùn)行它們。作為 Android 構(gòu)建的一部分,我們會(huì)對(duì) Java 字節(jié)代碼進(jìn)行轉(zhuǎn)換,并針對(duì)移動(dòng)設(shè)備的內(nèi)存和處理需求進(jìn)行特殊處理。詳細(xì)了解 Android 應(yīng)用程序的架構(gòu)和 Dalvik 虛擬機(jī)。

回到 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

  1. package com.example.hello; 
  2.  
  3. import android.os.Bundle; 
  4. import android.app.Activity; 
  5. import android.view.Menu; 
  6.  
  7. public class MainActivity extends Activity { 
  8.  
  9.  @Override 
  10.  protected void onCreate(Bundle savedInstanceState) { 
  11.   super.onCreate(savedInstanceState); 
  12.   setContentView(R.layout.activity_main); 
  13.  } 
  14.  
  15.  @Override 
  16.  public boolean onCreateOptionsMenu(Menu menu) { 
  17.   getMenuInflater().inflate(R.menu.activity_main, menu); 
  18.   return true
  19.  } 

清單 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. 原始布局的定義

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     xmlns:tools="http://schemas.android.com/tools" 
  3.     android:layout_width="match_parent" 
  4.     android:layout_height="match_parent" 
  5.     tools:context=".MainActivity" > 
  6.  
  7.   <TextView 
  8.     android:layout_width="wrap_content" 
  9.     android:layout_height="wrap_content" 
  10.     android:layout_centerHorizontal="true" 
  11.     android:layout_centerVertical="true" 
  12.     android:text="@string/hello_world" /> 
  13. </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 文件

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <resources> 
  3.  <string name="app_name">Hello 4.2</string> 
  4.  <string name="hello_world">Hello world!</string> 
  5.  <string name="menu_settings">Settings</string> 
  6. </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

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3.    package="com.example.hello" 
  4.    android:versionCode="1" 
  5.    android:versionName="1.0" > 
  6.  
  7.   <uses-sdk 
  8.    android:minSdkVersion="8" 
  9.    android:targetSdkVersion="17" /> 
  10.  
  11.   <application 
  12.    android:allowBackup="true" 
  13.    android:icon="@drawable/ic_launcher" 
  14.    android:label="@string/app_name" 
  15.    android:theme="@style/AppTheme" > 
  16.    <activity 
  17.     android:name="com.example.hello.MainActivity" 
  18.     android:label="@string/app_name" > 
  19.     <intent-filter> 
  20.      <action android:name="android.intent.action.MAIN" /> 
  21.      <category android:name="android.intent.category.LAUNCHER" /> 
  22.     </intent-filter>  
  23.    </activity> 
  24.   </application> 
  25. </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)用程序。

 

責(zé)任編輯:閆佳明 來(lái)源: ibm
相關(guān)推薦

2014-09-28 14:57:08

移動(dòng)技術(shù)Android簽名

2014-09-19 15:30:26

2014-09-28 14:30:27

移動(dòng)技術(shù)Android單詞

2010-06-17 18:17:36

UML面向?qū)ο蠹夹g(shù)

2009-08-14 16:01:22

C#面向?qū)ο?/a>

2018-09-20 10:37:56

RAID技術(shù)磁盤陣列

2010-01-14 16:35:35

VMPS介紹

2010-02-22 10:50:26

路由交換技術(shù)

2010-04-07 15:29:43

移動(dòng)無(wú)線接入技術(shù)

2023-03-01 00:18:45

2010-10-08 13:31:07

移動(dòng)開(kāi)發(fā)

2009-12-24 10:07:10

ADSL技術(shù)寬帶接入技

2009-07-21 13:30:59

JSP技術(shù)ASP.NET

2009-12-23 16:19:25

WPF UI自動(dòng)化技術(shù)

2020-02-27 11:41:54

IT安全網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2009-06-29 14:22:00

FSO光纖

2009-12-25 16:54:53

光接入網(wǎng)技術(shù)

2009-07-01 18:34:59

JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)

2009-12-25 16:09:14

NGN用戶接入技術(shù)

2015-12-30 10:24:21

云計(jì)算移動(dòng)視頻視頻云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)