Android Framework Application Framework層簡單介紹
引言
Android的四層架構相比大家都很清楚,老生常談的說一下分別為:Linux2.6內核層,核心庫層,應用框架層,應用層。我今天重點介紹一下應用框架層Framework,其實也是我自己的學習心得。
Framework層為我們開發(fā)應用程序提供了非常多的API,我們通過調用特殊的API構造我們的APP,滿足我們業(yè)務上的需求。寫APP的人都知道,學習Android開發(fā)的第一步就是去學習各種各樣的API,什么Activity,Service,Notification等。這些都是framework提供給我們的,那么我就詳細的講講Framework到底在整個Android架構中扮演著什么角色。
Framework功能
Framework其實可以簡單的理解為一些API的庫房,android開發(fā)人員將一些基本功能實現(xiàn),通過接口提供給上層調用,可以重復的調用
我們可以稱Framework層才真正是Java語言實現(xiàn)的層,在這層里定義的API都是用Java語言編寫。但是又因為它包含了JNI的方法,JNI用C/C++編寫接口,根據(jù)函數(shù)表查詢調用核心庫層里的底層方法,最終訪問到Linux內核。那么Framework層的作用就有2個。
1.用Java語言編寫一些規(guī)范化的模塊封裝成框架,供APP層開發(fā)者調用開發(fā)出具有特殊業(yè)務的手機應用。
2.用Java Native Interface調用core lib層的本地方法,JNI的庫是在Dalvik虛擬機啟動時加載進去的,Dalvik會直接去尋址這個JNI方法,然后去調用。
2種方式的結合達到了Java方法和操作系統(tǒng)的相互通信。Android為什么要用Java編寫Framework層呢?直接用C或C++不是更好?有關專家給出了如下解釋:
C/C++過于底層,開發(fā)者要花很多的經歷對C/C++的語言研究清楚,例如C/C++的內存機制,如果稍不注意,就會忘了開啟或者釋放。而Java的GC會自動處理這些,省去了很多的時間讓開發(fā)者專注于自己的業(yè)務。所以才會從C/C++的底層慢慢向上變成了JAVA的開發(fā)語言,該層通過JNI和核心運行庫層進行交互。
其實這些也是Java能發(fā)展這么迅速的原因,面對對象語言的優(yōu)勢。不用太關注內存,放心大膽的去做實現(xiàn),才有時間去創(chuàng)造新的事物。
Framework API

Activity Manager
用來管理應用程序生命周期并提供常用的導航回退功能。
Window Manager
提供一些我們訪問手機屏幕的方法。屏幕的透明度、亮度、背景。
Content Providers
使得應用程序可以訪問另一個應用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫), 或者共享它們自己的數(shù)據(jù)。
View System
可以用來構建應用程序, 它包括列表(Lists),網(wǎng)格(Grids),文本框(Text boxes),按鈕(Buttons), 甚至可嵌入的web瀏覽器。
Notification Manager
使得應用程序可以在狀態(tài)欄中顯示自定義的提示信息。
Package Manager
提供對系統(tǒng)的安裝包的訪問。包括安裝、卸載應用,查詢permission相關信息,查詢Application相關信息等。
Telephony Manager
主要提供了一系列用于訪問與手機通訊相關的狀態(tài)和信息的方法,查詢電信網(wǎng)絡狀態(tài)信息,sim卡的信息等。
Resource Manager
提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(Layout files )。
Location Manager
提供設備的地址位置的獲取方式。很顯然,GPS導航肯定能用到位置服務。
XMPP
可擴展通訊和表示協(xié)議。前身為Jabber,提供即時通信服務。例如推送功能,Google Talk。
。。。。
Framework層提供的服務還有很多,就不一一列出啦。
總結
從Android的整體框架開始,我們只詳細介紹了一下Framework層,對其作用和功能,以及在4層框架中所扮演的角色做了簡單的闡述。然后列舉出來它提供給上層的一些重要的服務。對Application Framework有了一個簡單的印象性了解,以此為開始,以后再對每個服務詳細研究。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Android實現(xiàn)連續(xù)點擊多次事件的代碼詳解
小編經常遇到這樣的需求類似進入開發(fā)者模式,即多次點擊后執(zhí)行操作。下面小編通過實例代碼給大家講解Android實現(xiàn)連續(xù)點擊多次事件的相關知識,感興趣的朋友跟隨小編一起學習吧2018-10-10
Kotlin 使用高階函數(shù)實現(xiàn)回調方式
這篇文章主要介紹了Kotlin 使用高階函數(shù)實現(xiàn)回調方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android判斷軟鍵盤的狀態(tài)和隱藏軟鍵盤的簡單實例
下面小編就為大家?guī)硪黄狝ndroid判斷軟鍵盤的狀態(tài)和隱藏軟鍵盤的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10
Android Studio / IDEA kotlin 顯示 var 真實類型操作
這篇文章主要介紹了Android Studio / IDEA kotlin 顯示 var 真實類型操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Android基于google Zxing實現(xiàn)二維碼的生成
這篇文章主要介紹了Android基于google Zxing實現(xiàn)二維碼的生成的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-06-06
Android?Studio實現(xiàn)音樂播放器2.0的全過程
音樂帶給人的聽覺享受是無可比擬的,動聽的音樂能夠愉悅人的身心,讓人更加積極地去熱愛生活,下面這篇文章主要給大家介紹了關于Android?Studio實現(xiàn)音樂播放器2.0的相關資料,需要的朋友可以參考下2022-02-02

