王勇 蘇州大學計算機科學與技術學院
Android由2007年發布至今約11年了。2007年,在IOS發布后,Google緊隨其后與眾多移動技術和無線應用領域公司合作,向世界公布了開源手機操作系統Android。其開源的特性,讓眾多開發者蜂擁而至,紛紛加入開發Android應用程序的隊伍中來。Android平臺借助本身良好的系統開放性和易用性,幾年內就迅速占領了手機行業,在移動領域得到了廣泛應用,如今已一度成為智能手機系統平臺的標準配備。在Android系統如此火熱的趨勢下,我們可以深入研究力求發現其更高的價值,從Android系統架構與應用開發的方向,爭取不斷取得新的進展。
概念化的系統內核,可以說是介于系統軟件和硬件兩者的一種的抽象層。系統內核一方面的功能是建立在硬件之上,隱藏系統硬件細節,提供用戶與硬件交互的接口;另一方面,內核也始終在給系統上層結構提供統一的服務。其特點就是能夠實現本體層與下層差異的屏蔽,也就是說,如果本身發生變化也不會對上層的運行產生影響。
但是深入分析其內核設計,我們要意識到內核層不是類GUN/Linux的系統,使用YAFFS2文件系統且不會生產虛擬內存文件[2]。Android的內核層比起Linux系統有多處擴展,設置了豐富的系統初始化接口與系統庫、程序接口等。Android本質上是以Linux2.6底層基礎開發的系統,于是其內核層還可以實現許多Linux核心系統服務,繼承了Linux優秀的網絡堆棧、硬件驅動程序、系統安全機制和內存管理功能。
Android系統架構中一項重要的部分就是系統函數庫。Android的函數庫中包含了C/C++原生庫,自身也具備了開放源碼的函數庫。由于Android系統的開源的應用程序框架,開發者可以充分利用函數庫實現各類功能,例如OpenSSL、C函數庫Libc等。軟件系統運行時,網頁函數庫負責網頁瀏覽器類應用的構建、OpenSSL提供媒體庫的運行支持。在這些函數庫的支持下,開發者能夠方便地實現音頻和視頻格式的播放和錄制、管理靜態圖像文件。
運行界面方面,Android含有的二維和三維圖形使子系統能夠快速顯示管理和并且與多個應用程序的無縫組合。系統運行工程中。庫與函數庫是處于迸發運行狀態下,Android的函數庫與Java函數庫時刻處理運行碼的轉換。Android的另一優勢就是Java語言的廣泛利用,在JAVA條件下,Dalvik虛擬機也可以支持編寫Android應用程序,并且兼顧多個應用程序的迸發運行。因為Dalvik虛擬機也是基于Linux內核開發的,能夠執行.dex格式的文件.在處理器速度和內存有限的系統中使用十分便利。
分析Android的應用軟件架構,我們可以發現架構是系統重點應用程序的總集合,架構可以幫助程序開發者能夠在設計應用時更加便利搭建應用程序。常見的應用程序中會提供包括消息方塊、內嵌式瀏覽器和按鈕的用戶交互功能,且提供了分享信息和訪問信息等消息提供功能,另外重要的是使系統支持了資源管理器功能和消息提示功能等豐富的基礎功能。總的來說,應用軟件架構就是以一組系統和服務構成了體系,開發者利用體系可以輕松地進行應用程序的開發,系統本身就內嵌了視圖結合和網絡瀏覽器,支持應用程序的訪問動作。另外一點。應用的軟件架構也能夠在系統狀態欄中報告程序的請,并管理程序的生命周期。
Android系統的系統級應用程序或者說是上層應用程序,例如,即時通信工具、通訊本、GoogleMaps等,都是使用Java語言進行開發的。
Android的多個組件一同構成了Android應用程序。應用程序中包含的主要有以下幾種組件:Activity、Service、ContentProvider、BroadcastReceiver和Intent組件。
Activity組件負責應用程序的表示層,在應用程序的需要進行屏幕顯示時調用。同時Activity組件有豐富的圖形化界面組件,開發者合理地配置可以給用戶實現GUI,借助GUI達到程序交互的效果。
Service組件控制程序的后臺運行,在應用程序長期在后臺運行時提供服務。
BroadcastReceiver組件的功能是接收用戶的廣播通知,例如電量不足、用戶系統設置更改和短信息等狀態信息和通知提示,相當于一個容器給不同的內容,所以說針對不同的信息都要對其設置對應的BroadcastReceiver組件。
ContentProvider則為系統內容提供儲存空間,也可以把系統應用程序的數據傳送到其他程序中,提供給用戶數據讀寫和存儲的功能。
最后,Intent組件屬于運行綁定機制。使用Intent組件必須向系統表達請求或意愿,系統才能夠參考其請求進行組件的分配。
Android應用程序開發分為應用程序開發和開發環境兩個部分。
以Windows系統環境下為例,Android應用程序開發普遍使用Eclipse+ADT作為開發工具。在下載JDK包后進行安裝,然后進行系統環境變量的添加與修改就完成了JAVA開發環境的搭建。另外,開發者還要下載AndroidSDK就可以進行模擬器的安裝,便于今后Android應用程序的調試。
總的來說,Android系統是一個基于Linux開發的,優秀的智能手機操作系統。其優秀而開源的系統加上豐富的系統組件,能夠給眾多開發人員在應用程序的開發得到更加流暢的體驗。今后,勢必會有更多的程序開發人員加入Android開發的隊伍,我們也將更加深入的發掘系統的價值,實現更加深度的智能化。