Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 開發入門 >> 用 Eclipse 開發 Android 應用程序(一)

用 Eclipse 開發 Android 應用程序(一)

編輯:開發入門

開始之前

本教程介紹如何在 Eclipse 環境中進行 android 應用程序開發,包括兩個示例應用程序。第一個示例是一個基本的應用程序,涉及構建和調試的所有階段。第二個應用程序示例涉及比較復雜的 Android 特性,包括聯系人搜索和 Google Maps 地址查找。要想從本教程獲得最大收益,具備移動開發經驗會有幫助,但不是必需的。開發 android 應用程序需要 Java™ 編程技能,但是對於本教程不是必需的。

關於本教程

我們為什麼要關注 Android?有兩個原因使 Android 成為重要的平台。首先,Google 引入了 Android,它在很短時間內就獲得了市場的關注。Google 正在進軍移動市場。它在這個市場上采取的第一個行動就是發布 Android 和 Open Handset Alliance,這是一個令人印象深刻的起點。第二,Android 不僅僅是另一種包含電話、菜單和觸摸屏功能的移動平台。您將在本教程中了解到,android 提供了一種不同的應用程序開發方法。由於可以對請求的操作和代碼進行運行時綁定,Android 的體系結構支持高度可定制的軟件環境。無論是考慮市場因素還是 android 的技術方面,它都是一個值得研究的平台。

本教程分為以下幾節:

  • android 基礎知識和必需的工具
  • android Software Developer Kit
  • 構建和調試 SaySomething android 應用程序
  • 創建內容提供器和 Google Maps 應用程序

系統需求

本教程需要結合使用幾種技術。

Eclipse 平台
Eclipse 是一個運行插件的平台。您應該安裝 Eclipse Classic 的最新版本(本教程使用 V3.3.1)。
android Developer Tools
按照 安裝 android SDK 中的說明安裝 android Developer Tools(Eclipse 插件)。
源代碼
本教程中的源代碼片段包括:
  • androidManifest.XML(片段)— 這個文件是 android 應用程序的應用程序部署描述符。
  • IntentReceiver — 演示 IntentReceiver 的實現,這個類處理 androidManifest.XML 文件中 IntentFilter 標記所公布的 intent。
  • SaySomething.Java — 實現一個 android 活動,這是本教程的示例應用程序的主要入口點。
  • Main.XML — 這個文件包含 android 活動所用的視覺元素或資源。
  • R.java — 這個文件是由 android Developer Tools 自動生成的,它把視覺資源 “連接” 到 Java 源代碼。
  • AndroidManifest.xml(完整)— 這是完整的 androidManfest.XML 文件,包含每個重要元素的描述。
  • MobileServiceCallContacts.Java — 這個文件包含的代碼顯示聯系人並對用戶輸入做出反應,執行 Google Maps 地址查找。

android 簡介

在討論 Eclipse 插件和開發 Android 應用程序之前,我們先看看 Android 的體系結構和一些重要的術語,這會對本教程後面的討論和您自己構建 android 應用程序有幫助。

android 術語

在 Eclipse 環境中開發 Android 應用程序需要了解 Eclipse 環境和 Android 平台的知識。了解以下術語會有助於用 Eclipse 插件開發 android 應用程序。

Open Handset Alliance
這是一個由 Google 公司主導的組織,它由許多公共和私人組織組成。
android
這是 Open Handset Alliance 的主打產品。它是一種針對移動設備的開放源碼操作環境。
模擬器
模擬另一個系統的軟件工具 — 這常常是在個人計算機(IBM®、Mac、Linux®)上運行的一個環境,它模擬另一個環境,比如移動計算設備。
Linux
一種開放源碼的操作系統內核,許多計算平台都使用這種操作系統,包括服務器、桌面計算機、網絡設備和移動計算設備。android 在 Linux 內核上運行。
Dalvik Virtual Machine
Dalvik VM 是 android 產品組合中的一種操作環境,它在運行時解釋應用程序代碼。Dalvik VM 與 Java VM 相似,但是兩者不兼容。

android 基礎知識和必需的工具

android 是一種針對移動平台的開放源碼操作系統。到編寫本教程時,它是一種純軟件的平台,沒有可用的硬件設備。

android 平台被稱為一個產品組合,因為它是一系列組件的集合,包括:

  • 基於 Linux 內核的操作系統
  • Java 編程環境
  • 工具集,包括編譯器、資源編譯器、調試器和模擬器
  • 用來運行應用程序的 Dalvik VM

簡要介紹了 android 平台的體系結構之後,我們來從市場的角度看看這個平台的一些重要特性。

android 為什麼很重要?

自從 Android 和最初的 SDK 發布以來,計算機技術新聞界一直非常關注 Android。android 之所以重要主要有兩個原因。

Android 是 Google 進軍移動市場的主要行動。移動應用程序領域競爭激烈,新的競爭者很難涉足。Google 擁有大量資源和強大的品牌實力,有能力涉足任何市場。Google 進軍移動市場已經好幾年了。Android 原來屬於另一家公司,Google 通過收購這家公司大大提高了在移動市場上的競爭力。Google 的任何行動都會受到關注,而且引入新平台也很引人注目。android 同時具備這兩個因素。

第二個原因是 Android 的應用程序模型與眾不同。Android 應用程序並不是需要大量單擊操作的純粹的菜單式應用程序。Android 應用程序中確實有菜單和按鈕,但是 android 在體系結構中引入了一種新穎的設計元素 intent

intent

intent 是一種構造,應用程序可以通過它發出請求,這就像是發出求助信號。intent 可能像下面這樣:

"Wanted: An application to help me look up a contact" 或 "Wanted: An application to help me display this image" 或 "Wanted: An application to perform this geographic-based search"

應用程序可以按照相似或互補的方式進行注冊,表明它們有能力或有興趣執行各種請求或 intent。比如:

"Available: Application ready and willing to present contact records in clear, concise manner" 或 "Available: Application ready and willing to perform a geographic search"

這些是 IntentFilter 的示例,下面將要討論。

IntentFilter

應用程序通過一個稱為 IntentFilter 的構造聲明它們能夠執行某些類型的操作。IntentFilter 可以在運行時進行注冊,也可以在 androidManifest.XML 文件中設置。下面的代碼片段取自一個對 SMS(文本)消息進行響應的 android 應用程序:


清單 1. 對 SMS 進行響應的 android 應用程序

                    
       <receiver class=".MySMSMailBox" >
            <intent-filter>
            <action android:value="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
      </receiver>

 

簡要介紹 intent 和 IntentFilter 之後,下一節介紹 android 應用程序的四種主要類型。

android 應用程序 — 概述

我們來看看 android 應用程序的四種主要類型:活動、服務、接收器和 ContentProvider。我們還要看看顯示用戶界面(UI)元素的視圖。

活動

活動是最常用的 android 應用程序形式。活動在一個稱為視圖 的類的幫助下,為應用程序提供 UI。視圖類實現各種 UI 元素,比如文本框、標簽、按鈕和計算平台上常見的其他 UI 元素。

一個應用程序可以包含一個或多個活動。這些活動通常與應用程序中的屏幕形成一對一關系。

應用程序通過調用 startActivity() 或 startSubActivity() 方法從一個活動轉移到另一個活動。如果應用程序只需 “切換” 到新的活動,就應該使用前一個方法。如果需要異步的調用/響應模式,就使用後一個方法。在這兩種情況下,都需要通過方法的參數傳遞一個 intent。

由操作系統負責決定哪個活動最適合滿足指定的 intent。

服務和接收器

與其他多任務計算環境一樣,“在後台” 運行著一些應用程序,它們執行各種任務。Android 把這種應用程序稱為 “服務”。服務是沒有 UI 的 android 應用程序。

接收器是一個應用程序組件,它接收請求並處理 intent。與服務一樣,接收器在一般情況下也沒有 UI 元素。接收器通常在 androidManifest.XML 文件中注冊。清單 2 是接收器代碼的示例。注意,接收器的類屬性是負責實現這個接收器的 Java 類。


清單 2. 接收器代碼

                    
package com.msi.samplereceiver;

import android.content.Context;
import android.content.Intent;
import android.content.IntentReceiver;

public class myreceiver extends IntentReceiver 
{
  public void onReceiveIntent(Context arg0, Intent arg1) 
  {
    // do something when this method is invoked.
  }
}

 

用 ContentProvider 進行數據管理

ContentProvider 是 android 的數據存儲抽象機制。我們以移動設備上常見的一種數據為例:地址簿或聯系人數據庫。地址簿包含所有聯系人及其電話號碼,用戶在使用手機時可能需要使用這些數據。ContentProvider 對數據存儲的訪問方法進行抽象。ContentProvider 在許多方面起到數據庫服務器的作用。對數據存儲中數據的讀寫操作應該通過適當的 ContentProvider 傳遞,而不是直接訪問文件或數據庫。可能還有 ContentProvider 的 “客戶機” 和 “實現”。

下一節介紹 Android 視圖,這是 android 在移動設備屏幕上顯示 UI 元素的機制。

視圖

android 活動通過視圖顯示 UI 元素。視圖采用以下布局設計之一:

LinearVertical
後續的每個元素都排在前一個元素下面,形成一個單一列。
LinearHorizontal
後續的每個元素都排在前一個元素右邊,形成一個單一行。
Relative
後續的每個元素相對於前一個元素有一定的偏移量。
Table
與 Html 表相似的一系列行和列。每個單元格可以包含一個視圖元素。

選擇一種布局(或布局的組合)之後,就可以用各個視圖顯示 UI。

視圖元素由大家熟悉的 UI 元素組成,包括:

  • Button
  • ImageButton
  • EditText
  • TextVIEw(與標簽相似)
  • CheckBox
  • Radio Button
  • Gallery 和 ImageSwitcher(用來顯示多個圖像)
  • List
  • Grid
  • DatePicker
  • TimePicker
  • Spinner(與組合框相似)
  • AutoComplete(具有文本自動補全特性的 EditText)

視圖是在一個 XML 文件中定義的。清單 3 給出一個簡單的LinearVertical 布局示例。


清單 3. 簡單的 LinearVertical 布局

                    
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout XMLns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Activity 1!"
    />
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Activity 1, second text vIEw!"
    />
<Button
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Switch To Activity 2"
  id="@+id/switchto2"
  />    
</LinearLayout>

 

注意,每個元素有一個或多個屬於 android 名稱空間的屬性。

下一節討論如何獲取 android SDK 並在 Eclipse 環境中配置它。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved