[選載]Google Android開發入門與實踐
本文介紹Android的體繫結構,Android應用程式的組成和Android應用的邏輯組成。
1. Android體繫結構
Android的軟體階層包括一個作業系統,中介軟體,應用程式。其軟體階層自上而下可分為:
- 應用程式
- 應用程式架構
- 各種庫和Android的運行時環境
- 作業系統層
應用程式:以java語言編寫,設計使用者介面互動設計。Android本身提供了案頭,連絡人,電話,瀏覽器等很多核心的應用。
應用程式架構:為應用程式提供系統的API。通過Android的應用程式架構,開發人員可重用各種組件和服務。應用程式的架構組成部分:
- UI組件:包括列表,文字框,按鈕等UI組件,是使用者可視的部分。
- Content Providers:提供了一種應用程式程式可實現資料的訪問和共用的機制。
- Notification Manager:能讓應用程式將自己的警告資訊顯示在狀態列上,如顯示收到新簡訊,提示電池資訊。
- Activity Manager:管理應用程式的生命週期,並提供應用程式頁面退出的機制。
Android庫和運行時環境
Android包含一些核心的C/C++庫,這些庫能通過JNI技術供系統的各種組件使用。
這些庫包括:
- 系統C庫:從BSD繼承來的標準C庫。
- 媒體庫:包括多種常用的音頻,視頻格式回放和錄製。同時支援靜態影像檔,支援MPEG4,MP3,AAC,JPG,PNG,H.264,AMR等多種編碼格式。
- Surface Manager:管理顯示子系統,並為多個應用程式提供2D和3D的無縫融合。
- LibWebCore:瀏覽器引擎。
- SGL:底層的2D圖形引擎。
- 3D librarie:提供3D加速。
- FreeType:提供位位元影像和向量的字型顯示。
- SQLite:資料庫應用。
Android包含了一個核心庫,該核心庫提供了java語言核心庫的大多數功能。
每一個Android應用程式都在自己的進程空間內運行,都擁有一個獨立的dalvik虛擬機器實現。Dalvik被設計成一個裝置,可同時高效的運行多個虛擬系統。dalvik虛擬機器依賴於linux核心的一些功能,如線程調度,記憶體管理。
2. Android應用程式組成
Android程式包括以下四部分:
- Activity
- Broadcast Intent Receiver
- Server
- Content Provider
Activity,一般代表手機螢幕的一屏,相當於瀏覽器的一個頁面。在Activity中添加view,實現應用介面和使用者互動。一個應用程式一般由多個Activity構成,這些Activity之間可互相跳轉,可進行頁面間的資料傳遞。每個Activity都有自己的生命週期。
Intent Receiver,Intent是一次對將要執行的操作的抽象描述。通過Intent,可實現Activity與Activity之間的跳轉。Intent最重要的組成部分是Intent的動作(Action)和動作對應的資料(data)。與Intent相關的一個類叫Intent Filters。它用來描述Intent能夠用來處理哪些操作。
Broadcast Intent Receiver,用於響應外來事件。BroadcastReceiver不能產生UI,所以對使用者來說是不可見的。
Service,運行在背景應用程式。
Content Provider:一個Content Provider提供了一組標準的介面,從而能夠讓應用程式儲存或讀取Content Provider的各種資料類型。一個應用程式可通過它將自己的資料暴露出去。對於外界的應用程式來說,它不需要關心這些資料的儲存方式,儲存地方,只需要通過Content Provide提供的r介面訪問這些資料即可。當然這涉及到資料訪問的許可權問題。
3. Android工程檔案組成
Android的開發使用eclipse+ADT。
工程檔案包括:
- 源檔案:使用java語言編寫的代碼,包括各種Activity的實現。
- R.java:由eclipse自動產生,包含了應用程式所使用到的資源ID。
- Android library:Android庫檔案。
- assets:放置多媒體檔案等。
- res:應用程式所需的資源檔,標,動畫,顏色等。
- drawable:圖片資源
- layout:描述了Activity的布局。
- values:定義字串,顏色等
- Android Manifest.xml:應用程式的設定檔。在該檔案中聲明應用程式的名稱,使用到的Activity,Service,Receive,許可權等。