軟件體系結構---安卓系統架構之應用程序框架層分析---1


本博客只介紹安卓系統架構中的應用程序框架層

  • 什么是應用程序框架?

        應用程序框架可以說是一個應用程序的核心,是所有參與開發的程序員共同使用和遵守的約定,大家在其約定上進行必要的擴展,但程序始終保持主體結構的一致性。其作用是讓程序保持清晰和一目了然,在滿足不同需求的同時又不互相影響。 

       而對於安卓來說:Android系統提供給應用開發者的本身就是一個框架,所有的應用開發都必須遵守這個框架的原則。我們在開發應用時就是在這個框架上進行擴展。在這個框架中我們可以完全訪問核心應用程序所使用的API框架,即我們要實現某個功能就可以調用安卓系統自己身提供的功能;如果不想調用系統功能,我們也可以通過繼承而實現個性化擴展。可以說安卓應用程序框架層的主要作用就是:采用重用機制,方便高效的使用安卓平台本身的組件或者替換平台本身的各種應用程序組件。

       

  • 安卓應用程序框架包含什么?

        應用程序框架層包括活動管理器、窗口管理器、內容提供者、視圖系統、包管理器、電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務十個部分。

        Activity Manager(活動管理器):管理各個應用程序的生命周期以及通常的導航回退功能。

           作用:負責一新ActivityThread進程創建,Activity生命周期的維護。其自身也存在一個框架,本文就不再討論,有興趣的可以看一看。

        Window Manager(窗口管理器):管理所有的窗口程序

          在安卓應用框架中窗口主要分為兩種:一是應用窗口(一個activity有一個主窗口,彈出的對話框也有一個窗口,Menu菜單也是一個窗口。在同一個activity               中,主窗口、對話框、Menu窗口之間通過該activity關聯起來。)二是公共界面的窗口(系統級別的窗口如:最近運行對話框、關機對話框、狀態欄下拉欄、           鎖屏界面等)

          窗口管理系統是基於C/S模式的。整個窗口系統分為服務端和客戶端兩大部分,客戶端負責請求創建窗口和使用窗口,服務端完成窗口的維護,窗口顯示等

        Content Provider(內容提供器):使得不同應用程序之間存取或者分享數據。

        就是可以配置自己的Content Provider去存取其他的應用程序或者通過其他應用程序暴露的Content Provider去存取它們的數據,總的來說就是提供了一個數         據共享機制。

        View System(視圖系統):構建應用程序的基本組件

        就是文本框、按鈕等。

        Notification Manager(通告管理器):使得應用程序可以在狀態欄顯示自定義的提示信息。

        通過NotificationManager 、 Notification這兩個類可以完成在狀態欄顯示提示的信息。

        Package Manager(包管理器):安卓系統內的程序管理

        Package Manger是一個實際上管理應用程序安裝、卸載和升級的API。當我們安裝APK文件時,Package Manager會解析APK包文件和顯示確認信息。

        Telephony Manager(電話管理器):管理所有的移動設備功能

        用於管理手機通話狀態、獲取電話信息(設備、sim卡、網絡信息),監聽電話狀態以及調用電話撥號器撥打電話。

        Resource Manager(資源管理器):提供應用程序使用的各種非代碼資源。

        提供應用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等

        Location Manager(位置管理器):提供位置服務

        LocationManager系統服務是位置服務的核心組件,它提供了一系列方法來處理與位置相關的問題,包括查詢上一個已知位置、注冊和注銷來自某個                     LocationProvider的周期性的位置更新、注冊和注銷接近某個坐標時對一個已定義的Intent的觸發等。總的來說就是提供有關位置的操作。

        XMPP Service(XMPP服務):例如提供Google Talk 服務

        XMPP(Extensible Messageing and Presence Protocol:可擴展消息與存在協議):是一種即時消息協議

        用於信息的傳輸


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM