鍍金池/ 教程/ Android/ 概述
Dialog 顯示圖像
線程 Bezier 曲線
創(chuàng)建應用程序框架
引路蜂二維圖形庫簡介及顏色示例
Android 應用基本概念
Intents 和 Intent Filters
安裝開發(fā)環(huán)境
Option Menu 畫筆示例
自定義對話框 Transform
數(shù)據(jù)綁定 Data Binding
概述
Broadcast Receiver 短信觸發(fā)示例
發(fā)布應用
自定義 Adapter 顯示列表
RadioButton 多邊形及路徑繪制
訪問 Internet 繪製在線地圖
第一個應用 Hello World
Activities
Button 畫刷示例
使用資源 Resources
Context Menu 繪制幾何圖形
用戶界面設計
引路蜂二維圖形繪制實例功能定義

概述

自 Google 推出 Android 手機平臺以來,采用 Android 作為平臺的手機和平板電腦越來越普及。下圖是2010年9月和12月三個月幾個主流智能手機平臺在美國的市場占有率圖表。

http://wiki.jikexueyuan.com/project/android-development-tutorial/images/1.png" alt="" />

可以看到到2010年12月,Android 市場占有率在美國已超過 Apple 的 iPhone,而且由于 Android平臺的開放性,個人認為將來它會更加普及。相當于其它常見的手機開發(fā)平臺,如 Java ME,Windows Mobile ,BlackBerry, iPhone ,Winodws Phone 7。 Android 開發(fā)還是比較容易上手的。

什么是 Android?

Android 是一個專門針對移動設備的軟件集,它包括一個操作系統(tǒng),中間件和一些重要的應用程序。Android SDK 提供了在 Android 平臺上使用 JaVa 語言進行 Android 應用開發(fā)必須的工具和 API 接口。

Android 特性

  • 應用程序框架支持組件的重用與替換
  • Dalvik 虛擬機專為移動設備優(yōu)化
  • 集成的瀏覽器基于開源的WebKit 引擎
  • 優(yōu)化的圖形庫包括定制的 2D 圖形庫,3D 圖形庫基于 OpenGL ES 1.0(硬件加速可選)
  • SQLite 用作結構化的數(shù)據(jù)存儲
  • 多媒體支持包括常見的音頻、視頻和靜態(tài)圖像格式(如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG,GIF)
  • GSM 電話技術(依賴于硬件)
  • 藍牙 Bluetooth, EDGE, 3G,和 WiFi(依賴于硬件)
  • 照相機,GPS,指南針,和加速度計(accelerometer) (依賴于硬件)
  • 豐富的開發(fā)環(huán)境包括設備模擬器,調試工具,內存及性能分析圖表,和 Eclipse 集成開發(fā)環(huán)境插件。

應用程序框架

開發(fā)人員也可以完全訪問核心應用程序所使用的 API 框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。 隱藏在每個應用后面的是一系列的服務和系統(tǒng), 其中包括;

  • 豐富而又可擴展的視圖(Views),可以用來構建應用程序, 它包括列表(lists),網(wǎng)格(grids), 文本框(text boxes),按鈕(buttons), 甚至可嵌入的 web 瀏覽器。
  • 內容提供器(Content Providers)使得應用程序可以訪問另一個應用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫), 或者共享它們自己的數(shù)據(jù)
  • 資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(layoutfiles)。
  • 通知管理器(Notification Manager) 使得應用程序可以在狀態(tài)欄中顯示自定義的提示信息。
  • 活動管理器(Activity Manager) 用來管理應用程序生命周期并提供常用的導航回退功能。

程序庫

Android 包含一些 C/C++ 庫,這些庫能被 Android 系統(tǒng)中不同的組件使用。它們通過 Android 應用程序框架 為開發(fā)者提供服務。以下是一些核心庫:

  • 系統(tǒng) C 庫- 一個從 BSD 繼承來的標準 C 系統(tǒng)函數(shù)庫(libc), 它是專門為基于 embedded linux 的設備定制的。
  • 媒體庫- 基于 PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
  • SurfaceManager – 對顯示子系統(tǒng)的管理,并且為多個應用程序提供了 2D 和 3D 圖層的無縫融合。
  • LibWebCore – 一個最新的 web 瀏覽器引擎用,支持 Android 瀏覽器和一個可嵌入的 web 視圖。
  • SGL – 底層的 2D 圖形引擎
  • 3D libraries – 基于 OpenGL ES 1.0 APIs 實現(xiàn);該庫可以使用硬件 3D 加速(如果可用)或者使用高度優(yōu)化的 3D 軟加速。
  • FreeType -位圖(bitmap)和矢量(vector)字體顯示。
  • SQLite – 一個對于所有應用程序可用,功能強勁的輕型關系型數(shù)據(jù)庫引擎。

Android 運行庫

Android 包括了一個核心庫,該核心庫提供了 JAVA 編程語言核心庫的大多數(shù)功能。 每一個Android 應用程序都在它自己的進程中運行,都擁有一個獨立的 Dalvik 虛擬機實例。Dalvik 被設計成一個設備可以同時高效地運行多個虛擬系統(tǒng)。Dalvik 虛擬機執(zhí)行(.dex)的 Dalvik 可執(zhí)行文件,該格式文件針對小內存使用做了優(yōu)化。同時虛擬機是基于寄存器的,所有的類都經(jīng)由 JAVA 編譯器編譯,然后通過 SDK 中的”dx” 工具轉化成 .dex 格式由虛擬機執(zhí)行。 Dalvik 虛擬機依賴于 linux 內核的一些功能,比如線程機制和底層內存管理機制。

Linux 內核

Android 的核心系統(tǒng)服務依賴于 Linux 2.6 內核,如安全性,內存管理,進程管理, 網(wǎng)絡協(xié)議棧和驅動模型。 Linux 內核也同時作為硬件和軟件棧之間的抽象層。

Android 應用和框架

下圖顯示了 Android 系統(tǒng)的主要組成部分。

http://wiki.jikexueyuan.com/project/android-development-tutorial/images/2.png" alt="" />

核心應用,例如聯(lián)系人,電子郵件,電話,瀏覽器,日歷,地圖, … 充分訪問所有核心應用框架 API C/C++ 庫:被各種 Android 組件使用通過應用程序框架開發(fā)者可以使用其功能包括: 媒體庫:MPEG4 H.264 MP3 JPG PNG ….. WebKit/LibWebCore:Web 瀏覽引擎 SQLite 關系數(shù)據(jù)庫引擎 2D,3D 圖形庫、引擎

Android 使用 Java 作為開發(fā)語言,而且有很大一部分庫與 Java SE 共有,但不同于 Java ME,Dalvik 虛擬機也不是 Java 虛擬機。Eclipse 是 Android 推薦的開發(fā) IDE,Android 平臺自帶的各種應用如聯(lián)系人,電子郵件,電話,瀏覽器,日歷,地圖都可以重寫。