新聞中心
進入 Android 的移動世界并構(gòu)建您的第一個應(yīng)用程序

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


咨詢
建站咨詢
