2025-05-23

android體系結構介紹:如圖:

 

 

l  應用程序(application)

l  應用程序框架(Application Framework)

l  各種庫和android運行環境

l  操作層OS

Ø  應用程序(application):android的應用程序通常涉及用戶界面和交互;

Ø  應用程序框架(application Framework):

1.        一組view(UI組件):這些UI組件包括List、textbox、button;

2.        Content Provider:提供一種機制,通過這個機制應用程序可是實現數據庫共享和互訪;

3.        Resourse Manager:負責管理非代碼的訪問,如圖片、xml以及國際化資源文件;

4.        Notification Manager:讓程序將警示信息顯示在狀態欄上;

5.        Activity Manager:管理著應用程序的生命周期,提供瞭應用程序頁面的退出機制,一個應用程序由多個頁面你組成,而每個頁面的單位就是Activity,android應用程序是由多個activity的交互構成;

Ø  庫(Libraries)和運行環境(Run Time):

1.        系統C庫:一個從BSD 繼承來的標準C系統函數庫(LibC),他是專門基於嵌入式Linux的設備定制的;

2.        媒體庫:基於packet Video OpenCORE,該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態圖像文件;

3.        Surface Manager:對顯示子系統的管理,並且為多個應用提供瞭2D和3D圖層的無縫融合;

4.        Lib WebCore:一個最新的web瀏覽器引擎,    用來支持android瀏覽器和一個可嵌入的web試圖;

5.        SGL:底層的2D圖引擎;

6.        3D libraries:基於openGL ES 1.0 apis實現,該庫可以用硬件3d加速或者使用高度優化的3D軟加速;

7.        FreeType:位圖(bitmap)和vector字體顯示;

8.        Sqlite:關系型數據庫;

每個android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例,Dalvik被設計成一個設備,可以同時高效的運行多個虛擬機設備。Dalvik虛擬機執行的(.dex)Dalvik可執行文件,該格式文件針對小內存使用做瞭優化。同時虛擬機是基於寄存器的,所有的類都經過由Java 編譯器,然後通過sdk的“dx”工具轉化成dex格式,有虛擬機執行。

Android應用程序介紹:

一般android應用程序包括以下四個部分:

l  Activity

l  Broadcast Intent Receiver

l  Service

l  Content Provider

1.        Activity介紹:

Activity一般代表手機屏幕的一屏,相當於瀏覽器的一個頁面。當打開一個屏幕時,之前的那一個屏幕會被置為暫停狀態,並且壓入歷史堆棧中,用戶可以通過回退操作返回到以前打開過的屏幕。

開發時需要選擇行的移除沒有必要保留的屏幕,因為打開後的屏幕會保存在堆棧中

Android的生命周期:即“產生、運行、銷毀”

Intent和Intent Filter介紹:一個Intent就是一次對將要執行的操作的抽象描述,通過Intent可以在多個Activity之間進行跳轉,Intent兩個最重要的部分是動作(action)和動作對應的數據,典型的動作類型有,MAIN、view、pick、edit等,而動作對應的數據則以URI的形式表示;例如有兩個activity分別為A和B,要從A跳轉到B可以這樣寫

                   Intent intent = new Intent(A.this, B.class);

                   startActivity(intent);

與Intent有關聯的類叫做Intent Filters,如果Intent是一個請求,一個Intent Filters描述改組件所能相應Activity請求的能力。

2.        Broadcast Intent Receiver介紹:

可以使用BroadcastReceiver來讓應用對外一個外部的事件作出響應。BroadcastReceiver通過NotificationManager來通知用戶這些事情發生瞭,BroadcastReceiver註冊的有兩種方式,一種是可以在AndroidManifest.xml中註冊,另一種可以在運行時的代碼中使用Context.registerReceiver()進行註冊。用戶還可以通過Context.sendBroadcast()將他們自己的intent broadcasts廣播給其他的應用程序。

3.        Service介紹:

Service是一種程序,它可以運行很長的時間,相當於後臺的一個服務,通過startService(Intent service)可以啟動一個Service,通過Context.bindService()可以綁定一個Service

4.        Content Provider介紹:

數據在android當中是私有的,這些數據包括文件數據和數據庫數據以及其他類型的一些數據。兩個程序之間數據的交互是通過Content Provider來實現,一個Content Provider實現瞭一組標準的接口,能夠讓其他應用保存或讀取此Content Provider的各種數據類型。所以一個程序可以通過實現以個Content Provider的抽象接口將自己的數據暴露在外面,實現常見的接口有:

Query(URI,String[],String,String[],String):通過關鍵字查詢;

Insert(Uri,ContentValues):將一組數據插入到指定的地方 ;

Update(Uri,ContentValues,String,String[]):更新數據;

               Delete(Uri, String, Stringp[]) :刪除數據;

 
摘自  虛懷若谷

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *