Android 開發實戰01(1 / 3)

走進Android

( 視頻講解:78分鍾)

在快速發展的移動開發領域,以Android的發展最為迅猛。短短幾年時間內,就撼動了諾基亞的霸主地位。通過其在線市場,程序員不僅能向全世界貢獻自己的程序,而且能通過銷售獲得不菲的收入。作為Android開發的起步,本章將通過Android開發環境的搭建和第一個Android程序的開發過程,帶領讀者進入Android程序開發的 世界。

通過閱讀本章,您可以:

( 了解Android的體係結構、特性及版本

( 掌握如何搭建Android開發環境

( 了解Android應用程序的開發流程

( 掌握使用Eclipse開發Android程序的方法

( 掌握如何創建模擬器

( 了解Android項目的運行和調試

1.1 認識Android

視頻講解:光盤\TM\Video\1\認識Android.exe

Android本義是指“機器人”,它是Google公司專門為移動設備開發的平台,其中包含操作係統、中間件和核心應用等。Android最早由Andy Rubin創辦,於2005年被搜索巨人Google收購。2007年11月5日,Google正式發布該平台。在2010年底,Android已經超越稱霸10年的諾基亞Symbian係統,成為全球最受歡迎的智能手機平台。采用Android平台的手機廠商主要有HTC、Samsung、Motorola、LG、Sony Ericsson等。

1.1.1 Android的體係結構

Android的主要組成部分包括APPLICATIONS、APPLICATION FRAMEWORK、LIBRARIES、ANDROID RUNTIME和LINUX KERNEL 5部分,如圖1.1所示。

圖1.1 Android的體係結構

1.Linux內核(LINUX KERNEL)

Android的核心係統服務是基於Linux 2.6內核的,如安全性、內存管理、進程管理、網絡協議棧和驅動模型等都依賴於該內核。Linux內核同時也作為硬件和軟件棧之間的抽象層,而Android更多的是需要一些與移動設備相關的驅動程序,主要驅動如下。

* Display Driver:顯示驅動,基於Linux的幀緩衝驅動。

* Camera Driver:照相機驅動,基於Linux的v412驅動。

* Bluetooth Driver:藍牙驅動,基於IEEE 802.15.1標準的無線傳輸技術。

* Flash Memory Driver:Flash閃存驅動,基於MTD的Flash驅動程序。

* Binder(IPC) Driver:Android的一個特殊的驅動程序,具有單獨的設備節點,提供進程間通信的 功能。

* USB Driver:USB接口驅動。

* Keypad Driver:鍵盤驅動,作為輸入設備的鍵盤驅動。

* WiFi Driver:基於IEEE 802.11標準的驅動程序。

* Audio Drivers:音頻驅動,基於ALSA(Advanced Linux Sound Architecture)的高級Linux聲音體係驅動。

* Power Management:電源管理,如電池電量等。

2.庫(LIBRARIES)

庫主要提供Android程序運行時需要的一些類庫,這些類庫一般是使用C/C++語言編寫的。主要包括以下類庫。

* libc:C語言標準庫,係統最底層的庫,通過Linux係統來調用。

* Surface Manager:主要管理多個應用程序同時執行時,各個程序之間的顯示與存取,並且為多個應用程序提供了2D和3D塗層的無縫融合。

* SQLite:關係數據庫。

* OpenGL|ES:3D效果的支持。

* Media Framework:Android係統多媒體庫,該庫支持多種常見格式的音頻、視頻的回放和錄製,如MPEG4、MP3、AAC、JPG和PNG等。

* WebKit:Web瀏覽器引擎。

* SGL:2D圖形引擎庫。

* SSL:位於TCP/IP協議與各種應用層協議之間,為數據通信提供支持。

* FreeType:位圖及矢量庫。

3.Android運行時(ANDROID RUNTIME)

Android運行時包括核心庫和Dalvik虛擬機兩部分。核心庫中提供了Java語言核心庫中包含的大部分功能,虛擬機負責運行程序。Dalvik虛擬機專門針對移動設備進行編寫,不僅效率更高,而且占用更少的內存。

4.應用框架(APPLICATION FRAMEWORK)

應用框架是編寫Google發布的核心應用時所使用的API框架,開發人員可以使用這些框架來開發自己的應用程序,這樣可以簡化程序開發的架構設計。Android應用框架層提供的主要API框架如下。

* Activity Manager:活動管理器,用來管理應用程序聲明周期,並提供常用的導航退回功能。

* Window Manager:窗口管理器,用來管理所有的窗口程序。

* Content Providers:內容提供器,它可以讓一個應用訪問另一個應用的數據,或共享它們自己的 數據。

* View System:視圖管理器,用來構建應用程序,如列表、表格、文本框及按鈕等。

* Notification Manager:通知管理器,用來設置在狀態欄中顯示的提示信息。

* Package Manager:包管理器,用來對Android係統內的程序進行管理。

* Telephony Manager:電話管理器,用來對聯係人及通話記錄等信息進行管理。

* Resource Manager:資源管理器,用來提供非代碼資源的訪問,如本地字符串、圖形及布局文件等。

* Location Manager:位置管理器,用來提供使用者的當前位置等信息,如GPRS定位。

* XMPP Service:Service服務。

5.應用層(APPLICATIONS)

應用層是用Java語言編寫的運行在Android平台上的程序,如Google默認提供的E-mail客戶端、SMS短信、日曆、地圖及瀏覽器等程序。作為Android開發人員,通常需要做的就是編寫在應用層上運行的應用程序,如大家所熟知的憤怒的小鳥、植物大戰僵屍、微博客戶端等程序。

1.1.2 Android的特性

Android是一種開源操作係統,其在手機操作係統領域的市場占有率已經超過了50%,是什麼原因讓Android操作係統如此受歡迎呢?本節將介紹Android的一些主要特性。

1.開放性

Android平台的顯著優勢就是其開放性,開放的平台允許任何移動終端廠商加入到Android聯盟中來,可以使其擁有更多的開發者,隨著用戶和應用的日益豐富,一個嶄新的平台也將很快走向成熟。

開放性對於Android的發展而言,有利於其積累人氣,這裏的人氣包括消費者和廠商,而對於消費者來講,最大的受益正是豐富的軟件資源。開放的平台也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。

2.掙脫束縛

在過去很長一段時間,手機應用往往受到運營商製約,特別是在歐美地區,使用什麼功能接入什麼網絡,幾乎都受到運營商的控製。自從Android上市後,用戶可以更加方便地連接網絡,運營商的製約減少。隨著EDGE、HSDPA這些2G至3G移動網絡的逐步過渡和提升,手機隨意接入網絡已不是運營商口中的笑談。

3.豐富的硬件

這一點還是與Android平台的開放性相關,由於Android的開放性,眾多的廠商會推出功能特色各異的多種產品。功能上的差異和特色,卻不會影響到數據同步,甚至軟件的兼容。這好比是你從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優秀的軟件帶到iPhone上使用,聯係人等資料更是可以方便地轉移。

4.開發商

Android平台提供給第三方開發商一個十分寬泛、自由的環境,沒有條條框框的限製,因此會有相當數量新穎別致的軟件誕生。但這也有其兩麵性,如何控製一些不良程序和遊戲正是留給Android的難題之一。

5.Google應用

如今叱吒互聯網的Google已經走過數十年曆史,從搜索巨人到全麵的互聯網滲透,Google服務,如地圖、郵件、搜索等已經成為連接用戶和互聯網的重要紐帶,而Android平台手機將無縫接合這些優秀的Google服務。

1.1.3 Android的版本

Android用甜點作為係統版本的代號,該命名方法開始於Android 1.5,作為每個版本代表的甜點名稱按字母順序排列:紙杯蛋糕、甜甜圈、鬆餅、凍酸奶、薑餅、蜂巢……Android迄今為止發布的主要版本及其發布時間如表1.1所示。

表1.1 Android的主要版本及發布時間

版 本

代 號

發 布 時 間

Android 1.1

發布於2008年9月

Android 1.5

Cupcake(紙杯蛋糕)

發布於2009年4月

Android 1.6

Donut(甜甜圈)

發布於2009年9月

續表

版 本

代 號

發 布 時 間

Android 2.0

?clair(鬆餅)

發布於2009年10月26日

Android 2.1

?clair(鬆餅)

發布於2009 年10月26日,Android 2.0版本的升級版

Android 2.2

Froyo(凍酸奶)

發布於2010年5月20日

Android 2.3

Gingerbread(薑餅)

發布於2010年12月7日

Android 3.0

Honeycomb(蜂巢)

發布於2011年2月3日

Android 3.1

Honeycomb(蜂巢)

發布於2011年5月10日

Android 3.2

Honeycomb(蜂巢)

發布於2011年7月13日

Android 4.0

Ice Cream Sandwich(冰淇淋三明治)

發布於2011年10月19日

Android 4.1

Jelly Bean(果凍豆)

發布於2012年6月28日

Android 4.2

Jelly Bean(果凍豆)

發布於2012年10月30日

1.1.4 Android市場

Android市場是Google公司為Android平台提供的在線應用商店,Android平台用戶可以在該市場中瀏覽、下載和購買第三方人員開發的應用程序。

對於開發人員,有兩種獲利的方式。第一種方式是賣軟件,開發人員可以獲得該應用售價的70%,其餘30%作為其他費用;第二種方式是加廣告,將自己的軟件定為免費軟件,通過增加廣告鏈接,靠點擊率掙錢。

1.2 搭建Android的開發環境

視頻講解:光盤\TM\Video\1\搭建Android的開發環境.exe

“工欲善其事,必先利其器”,在學習Android開發之前,必須先熟悉並搭建它所需要的開發環境。下麵將詳細介紹如何搭建Android開發環境。

1.2.1 係統需求

本節講述使用Android SDK進行開發所必需的硬件和軟件需求。對於硬件方麵,要求CPU和內存盡量大。Android 4.2 SDK全部下載大概需要7GB硬盤空間。由於開發過程中需要反複重啟模擬器,而每次重啟都會消耗幾分鍾的時間(視機器配置而定),因此使用高配置的機器能節約時間。

下麵重點講解軟件需求,這裏將介紹兩個方麵:操作係統和開發環境。

* 操作係統要求

支持Android SDK的操作係統及其要求如表1.2所示。

表1.2 Android SDK對操作係統的要求

操 作 係 統

要 求

Windows

Windows XP(32位)

Vista(32位或64位)

Windows 7(32位或64位)

續表

操 作 係 統

要 求

Mac OS

10.5.8或更新(僅支持x86)

Linux(在Ubuntu的10.04版測試)

需要GNU C Library (glibc) 2.7或更新

在Ubuntu係統上,需要8.04版或更新

64位版本必須支持32位應用程序 * 開發環境要求

在安裝Android應用程序之前,首先搭建好Android開發所需要的開發工具,本書以Windows 7操作係統為例講解Android的開發。Android開發所需的軟件及其下載地址如表1.3所示。

表1.3 Android開發所需的軟件及其下載地址

軟 件 名 稱

下 載 地 址

本書使用的版本

JDK

http://www.oracle.com

JDK 7 Update 10

Eclipse

http://www.eclipse.org

Eclipse IDE for Java Developers(4.2)

Android SDK

http://www.android.com

Android 4.2 SDK

ADT

http://dl-ssl.google.com/android/eclipse/或者https://dl-ssl.google. com/android/eclipse/

ADT 21.0.1

1.2.2 JDK的下載

由於Sun公司已經被Oracle收購,因此JDK可以在Oracle公司的官方網站(http://www.oracle.com/ cn/index.html)下載。下麵以目前最新的版本JDK 7 Update 10為例介紹下載JDK的方法,具體步驟如下:

(1)打開瀏覽器,進入Oracle官方主頁,地址是http://www.oracle.com/index.html,如圖1.2所示。

(2)選擇Downloads菜單下的Java for Developers子菜單,在跳轉的頁麵中找到如圖1.3所示的位置。

圖1.2 Oracle官方主頁 圖1.3 Java開發資源下載頁麵

(3)單擊JDK下方的DOWNLOAD按鈕,將進入如圖1.4所示的頁麵。

圖1.4 JDK下載頁麵

(4)選中Accept License Agreement單選按鈕,接受許可協議,並根據計算機硬件和係統選擇適當的版本進行下載,如圖1.5所示。

圖1.5 接受許可協議並下載

1.2.3 JDK的安裝與配置

下載完JDK的安裝文件後,就可以進行安裝了,具體的安裝步驟如下:

(1)雙擊剛剛下載的安裝文件,將彈出如圖1.6所示的歡迎對話框。

(2)單擊“下一步”按鈕,將彈出自定義安裝對話框,在該對話框中可以選擇安裝的功能組件,這裏選擇默認設置,如圖1.7所示。