標籤:android style java c tar ext
一、Android系統構架
Android系統從底向上一共分了4層,每一層都把底層實現封裝,並暴露調用介面給上一層。
- Linux核心(Linux Kernel)
- Android運行在linux kernel 2.6之上,但是把linux內受GNU協議約束的部分做了取代,這樣在Android的程式可以用於商業目的。
- Linux 核心是硬體和軟體層之間的抽象層。
- 中介軟體
- 中介軟體包括兩部分:核心庫和運行時(libraries & Android runtime)
- 核心庫包括,SurfaceManager 顯示系統管理庫,負責把2D或3D內容顯示到螢幕;Media Framework 媒體庫,負責支援映像,支援多種視頻和音訊錄製和回放;SQLite 資料庫,一個功能強大的輕量級嵌入式關聯式資料庫;WebKit 瀏覽器引擎等。
- Dalvik虛擬機器:區別於Java虛擬機器的是,每一個Android 應用程式都在它自己的進程中運行,都有一個屬於自己的Dalvik 虛擬機器,這一點可以讓系統在運行時可以達到最佳化,程式間的影響大大降低。Dalvik虛擬機器並非運行Java位元組碼,而是運行自己的位元組碼。
- 應用程式架構(Application Framework)
- 豐富而又可擴充性的視圖(Views),可以用來構建應用程式, 它包括列表(lists),網格(grids), 文字框(text boxes),按鈕( buttons), 可嵌入的網頁瀏覽器。
- 內容提供者(Content Providers)使得應用程式可以訪問另一個應用程式的資料(如連絡人資料庫), 或者共用它們自己的資料。
- 資源管理員(Resource Manager)提供非代碼資源的訪問,如本地字串,圖形,和布局檔案( layoutfiles )。
- 通知管理器(Notification Manager) 使得應用程式可以在狀態列中顯示自訂的提示資訊。
- Active Manager( Activity Manager) 用來管理應用程式生命週期並提供常用的導航回退功能。
- 應用程式 (Applications)
- Android 系統會內建一些應用程式套件組合包括email 用戶端,SMS 短訊息程式,日曆,地圖,瀏覽器,連絡人管理程式等。所有的應用程式都是使用JAVA 語言編寫的。
二、Android應用程式結構分析
1. 我們看到Gen目錄下有個R.Java檔案,R檔案由ADT自動產生,程式員不需要也不要去修改它,R檔案負責調用應用程式中的非代碼資源。