官术网_书友最值得收藏!

2.4 Android操作系統

2.4.1 Android操作系統概述

Android一詞的本義指“機器人”,是Google公司于2007年11月5日宣布的基于Linux平臺的開源手機操作系統的名稱。該平臺由操作系統、中間件、用戶界面和應用軟件組成。2012年7月,美國科技博客網站Business Insider評選出21世紀10款最重要的電子產品,Android操作系統和iPhone等榜上有名。

2.4.2 Android操作系統的體系結構

Android的系統架構和其操作系統一樣,采用分層結構,分為4層,從高到低分別是應用程序層、應用程序框架層、系統運行庫層和Linux核心層。

1.應用程序層

Android會同一系列核心應用程序包一起發布。該應用程序包包括客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯系人管理程序等。所有的應用程序都是用Java語言編寫的。

2.應用程序框架層

開發人員可以完全訪問核心應用程序使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布其功能塊,并且任何其他應用程序都可以使用其發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制使用戶可以方便地替換程序組件。

隱藏在每個應用后面的是一系列服務和系統,其中包括豐富而又可擴展的視圖(Views),用于構建應用程序,包括列表(lists)、網格(grids)、文本框(text boxes)、按鈕(buttons),甚至可嵌入的Web瀏覽器。

內容提供器(Content Providers)使得應用程序可以訪問另一個應用程序的數據(如聯系人數據庫),或者共享自己的數據。

資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串、圖形和布局文件(layout files)。

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

活動管理器(Activity Manager)用來管理應用程序生命周期,并提供常用的導航回退功能。

更多的細節和怎樣編寫應用程序,請參考第8章的內容。

3.系統運行庫層

Android包含C/C++庫。這些庫能被Android系統中不同的組件使用。它們通過Android應用程序框架為開發者提供服務。下面介紹一些核心庫。

(1)系統C庫:一個從BSD繼承來的標準C系統函數庫(libc),專門為基于embedded Linux的設備而定制。

(2)媒體庫:基于Packet Video Open CORE。該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態圖像文件。編碼格式包括MPEG4、H.264、MP3、AAC、AMR、JPG及PNG。

(3)Surface Manager:管理顯示子系統,并且為多個應用程序提供2D和3D圖層的無縫融合。

(4)Lib Web Core:一個最新的Web瀏覽器引擎,支持Android瀏覽器和一個可嵌入的Web視圖。

4.Linux核心層

Android運行于Linux kernel之上,但不是GNU/Linux。因為在一般GNU/Linux里支持的功能,Android大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等,都被移除了。Android以bionic取代Glibc,以Skia取代Cairo,以opencore取代FFmpeg等。Android為了達到商業應用,必須移除被GNU GPL授權證約束的部分,例如Android將驅動程序移到user space,使得Linux driver與Linux kernel徹底分開。bionic/libc/kernel/并非標準的kernel header files。Android的kernel header是利用工具由Linux kernel header產生的,這樣做是為了保留常數、數據結構與宏。

Android的Linux kernel控制包括安全(Security)、存儲器管理(Memory Management)、程序管理(Process Management)、網絡堆棧(Network Stack)、驅動程序模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具Repo來初始化源碼。Repo是Android用來輔助Git工作的一個工具。

2.4.3 Android操作系統的功能特性

1.開放性

在優勢方面,Android平臺首先就是有開放性,開發的平臺允許任何移動終端廠商加入Android聯盟。顯著的開放性使其擁有更多的開發者。隨著用戶和應用日益豐富,一個嶄新的平臺將很快成熟。

開放性對于Android的發展而言,有利于積累人氣。這里的人氣,包括用戶和廠商。對于用戶來講,最大的受益正是豐富的軟件資源。開放的平臺會帶來更大的競爭,如此一來,將用更低的價位購得心儀的手機。

2.掙脫運營商的束縛

在過去很長的一段時間,特別是在歐美地區,手機應用受到運營商制約,使用什么功能、接入什么網絡,幾乎都受到運營商的控制。從iPhone上市以來,用戶可以更加方便地連接網絡,運營商的制約減少。隨著EDGE、HSDPA這些2G或3G移動網絡逐步過渡和提升,手機隨意接入網絡不是運營商口中的笑談,通過手機IM軟件可以方便地實現即時聊天。

互聯網巨頭Google公司推動的Android終端天生就有網絡特色,讓用戶離互聯網更近。

3.豐富的硬件選擇

這一點與Android平臺的開放性相關。由于Android的開放性,眾多廠商推出各具特色的產品。功能上的差異和特色,不會影響數據同步,甚至軟件的兼容,如同從諾基亞Symbian風格手機一下改用蘋果iPhone,還可將Symbian中優秀的軟件帶到iPhone上使用,“聯系人”等資料可以方便地轉移。

4.不受任何限制的開發商

Android平臺提供給第三方開發商一個十分寬泛、自由的環境,不會受到各種條條框框的阻撓。可想而知,會有多少新穎、別致的軟件誕生。但也有其兩面性,如何控制血腥、暴力、色情方面的程序和游戲,是留給Android的難題之一。

5.無縫結合的Google應用

在互聯網的Google已經有十多年的歷史,從搜索巨人到全面的互聯網滲透,Google服務,如地圖、郵件、搜索等成為連接用戶和互聯網的重要紐帶。Android平臺手機將無縫地結合這些優秀的Google服務。

2.4.4 Android操作系統支持的多媒體功能

多媒體框架在整個Android系統所處的位置如圖2-2所示。

圖2-2 多媒體框架圖

從圖中可以看出,Media Framework處于Libraries層。這一層的Library不是用Java實現,一般由C/C++實現,它們通過Java的JNI方式調用。

1.多媒體架構

基于第三方Packet Video公司的Open CORE platform實現多媒體架構,支持所有通用的音頻、視頻、靜態圖像格式。

CODEC(編解碼器)使用OpenMAX 1L interface接口進行擴展,可以方便地支持hardware/software codec plug-ins(硬件/軟件編解碼器插件),支持的格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等,其特點如下所述。

Open Core多媒體框架有一套通用、可擴展的接口針對第三方的多媒體遍解碼器、輸入/輸出設備等。

多媒體文件的播放、下載,包括3GPP、MPEG-4、AAC和MP3 containers。流媒體文件的下載、實時播放,包括3GPP、HTTP和RTSP/RTP。動態視頻和靜態圖像的編碼、解碼,例如MPEG-4, H.263和AVC(H.264)、JPEG。語音編碼格式AMR-NB和AMR-WB。音樂編碼格式MP3、AAC、AAC+。視頻和圖像格式3GPP、MPEG-4和JPEG。視頻會議,基于H324-M標準。圖2-3中用線圈出的是Media Framework。

圖2-3 Media Framework

2.Open Core介紹

Open Core是Android多媒體框架的核心,所有Android平臺的音/視頻采集、播放操作都是通過它實現的。它也被稱為PV(Packet Video)。Packet Video是一家專門提供多媒體解決方案的公司。

通過Open Core,程序員可以方便、快速地開發出想要的多媒體應用程序,例如音/視頻的采集、回放,視頻會議,實時的流媒體播放等應用。

3.代碼結構

Open Core的代碼在Android代碼的External/Opencore目錄中。該目錄是OpenCore的根目錄,其中包含的子目錄如下所述。

(1)android:這里面是一個上層的庫,它實現了一個為Android使用的音/視頻采集、播放的接口,以及DRM數字版權管理的接口。

(2)baselibs:包含數據結構和線程安全等內容的底層庫。

(3)codecs_v2:音/視頻的編/解碼器,基于OpenMAX實現。

(4)engines:核心部分,多媒體引擎的實現。

(5)extern_libs_v2:包含khronos的OpenMAX的頭文件。

(6)fileformats:文件格式的解析(parser)工具。

(7)nodes:提供一些PVMF的NODE,主要是編/解碼和文件解析方面的。

(8)oscl:操作系統兼容庫。

(9)pvmi:輸入/輸出控制的抽象接口。

(10)protocols:主要是與網絡相關的RTSP、RTP、HTTP等協議的相關內容。

(11)pvcommon:pvcommon庫文件的Android.mk文件,沒有源文件。

(12)pvplayer:pvplayer庫文件的Android.mk文件,沒有源文件。

(13)pvauthor:pvauthor庫文件的Android.mk文件,沒有源文件。

(14)tools_v2:編譯工具以及一些可注冊的模塊。

4.Open Core上層代碼結構

在實際開發中,人們不會過多地研究Open Core的實現。Android提供了上層Media API給開發人員使用。實際調用過程如圖2-4所示。

圖2-4 Media API

2.4.5 Android操作系統支持的增值業務

理論上,采用Android操作系統的移動終端,基本上全部支持目前各大移動運營商開設的各種增值業務。

移動增值業務是移動運營商在移動基本業務(話音業務)的基礎上,針對不同的用戶群和市場需求開通的供用戶選擇使用的業務。移動增值業務是市場細分的結果,它充分挖掘了移動網絡的潛力,滿足用戶的多種需求,因此在市場上取得了巨大成功。如預付費業務(神州行、如意通)、短消息增值業務(移動夢網、聯通在信),都擁有眾多用戶,成為運營商的主要品牌。移動增值業務成為移動運營商價值鏈最重要的組成部分,市場前景廣闊,需求極大。據預測,中國移動增值業務市場將以每年超過30%的速度增長。

移動商務是指通過移動通信網絡傳輸數據,同時利用移動增值業務移動終端參與各種商務經營活動的一種新型電子商務模式。企業移動商務服務不僅包括移動銀行、手機支付、移動營銷、移動新型查詢等,還包括為企業量身定做、能大幅提高企業運作效率和營銷能力的移動應用解決方案。

移動通信發展到今天,最能體現其勃勃生機的地方在于它豐富多彩的數據業務和增值業務。因為它適應了信息時代人們對移動業務的要求,給生活帶來了極大便利,這是發展的契機。移動位置業務正是在這一發展機遇下,作為移動通信網提供的一種增值業務,悄然興起。它通過一定的技術,得到用戶的位置信息(經緯度或當地街道的位置等),提供給該用戶本人或通信系統本身(用于計費),或者提供給其他請求得到該用戶位置的機構或個人。由于該業務在緊急救援、汽車導航、智能交通、團隊管理等方面突出的作用,被越來越多的人接受,發展非常快。

美國聯邦通信委員會(FCC)早在1996年就規定美國的移動通信公司必須在2001年前為每位擁有手機的用戶提供位置業務,使這些用戶用手機撥打911緊急救援電話時,救援中心能快速得到該用戶的位置,開展救援活動。FCC還對所要提供的位置精度作出了規定。由于位置業務的深遠影響,GSM標準化組織ETSI委托美國的T1P1為GSM制定Phase2+LCS(位置業務)標準,并已納入ETSI標準。與此同時,AMPS、CDMA、尋呼系統等移動通信系統都積極開發位置業務,許多廠商開發出定位設備,向用戶提供精度越來越高的位置業務。

隨著社會發展,人們的活動范圍越來越大,而且越來越不確定。這種移動性和不確定性給移動通信帶來市場和挑戰的同時,為移動位置業務的開展和擴大提供了必要的條件,帶來了無限商機。另一方面,移動臺的位置信息對于通信本身來說,也是非常重要的信息。得到移動臺位置,也是通信網自身發展的需要。無論是用戶的需要,還是運營商或網絡供應商的需要,都為位置業務的發展注入了活力,使位置業務市場一片生機。鑒于此,Android的應用前景是非常廣闊的。

(1)緊急救援:用戶在不知道自己位置的情況下,只要其手機支持移動位置業務,就可以在撥打救援中心的電話,如中國的110、美國的911、日本的411,移動通信網絡在將該緊急呼叫發送到救援中心的同時,啟動支持移動位置業務的網元,得到用戶的具體位置,并將該位置信息和用戶的語音信息一起傳送給救援中心;救援中心接到呼叫后,根據位置信息,快速、高效地開展救援活動,提高救援的成功率。

(2)導航和定位:移動通信網提供的位置業務能滿足多山和多隧道地區的列車進行導航和跟蹤,以及城市商業區多建筑物的定位,只要為每一輛或每一列需要導航和跟蹤的汽車或列車安裝一個移動車載臺,在商業區提供較好的基站覆蓋,在隧道里安裝專門的基站,就可以解決覆蓋問題。通信網為這些車載臺提供位置信息,并將這些信息通過通信網本身傳輸給負責交通管理的調度中心,就可快速地在車和調度中心之間建立協調的運行管理和導航。

(3)工作制度:移動位置業務還廣泛應用在各行各業的工作調度和團隊管理中。例如地質勘探隊的野外作業、鐵路維修人員的日常維修活動、旅游團管理等,都可以借助移動通信網提供的位置業務,一方面用手機正常通話;另一方面享受其定位服務,遠距離作業時,可以輕松地與隊員取得聯系,得到自己和隊員的位置,不致迷失方向。

(4)移動黃頁查詢:互聯網的黃頁查詢是國外發展比較迅速的網絡培植業務,用戶可以在互聯網查詢自己所在區域范圍內的相關信息,包括附近有哪些飯店、商場,以及天氣情況、附近各公司的電話號碼和所在位置,等等。移動互聯網技術與移動位置業務相結合,可以輕而易舉地實現移動黃頁查詢。移動網絡首先定位出用戶所處的位置,然后在互聯網提供的信息中節選出用戶所在地的相關信息,供用戶查詢。固定黃頁查詢能夠得到的信息,移動黃頁查詢都可以得到。這種業務充實了移動互聯網的業務內涵,讓人們更真實地感受到移動互聯網帶來的全新生活。

(5)與位置有關的計費:計費一直是電信運營商和用戶非常關心的問題。要實現公正、有效的計費,不是件容易的事情。運營商和用戶之間總是不容易理順這一關系。計費問題的產生,本身是由于用戶占用了網絡資源,運營商需要就這一部分資源向用戶收取一定的費用。能否正確地界定用戶所占網絡資源的位置特征,是處于話務比較繁忙的商業區,還是處于相對比較空閑的郊區;是處于高速公路上,正快速地移動;還是在家中。這些特征不同,對于網絡來說,為這一次通話提供的服務量就不同。在高速公路上,由于移動臺要頻繁越區,網絡需要頻繁切換,涉及的網絡節點比較多。因此,運營商根據不同特征,對用戶的通話計費。目前的計費方式只有兩種:與時間有關的計費和與距離有關的計費。前者根據通信的時間段不同,計費價格不同;后者根據通信距離長短計費。它們基本反映了用戶以前兩種方式占用無線資源的情況。對于第三種方式,運營商在計費方面還沒有考慮。原因在于運營商不知道用戶的確切位置,無法判斷其所處位置的特征。隨著位置業務的發展,與位置有關的計費將發展起來。目前,美國有一些公司,如朗訊、康柏、Motorola為用戶提供與位置有關的計費。美國32%的無線用戶也愿意參與位置有關的計費。在家里通話和在車上通話付同樣的費用,對于用戶來說是不公平的。在車上通話的費用應該高。這種計費方式充分體現了用戶為得到移動性服務應該付出的費用,同時為那些在家里用手機通話的用戶實現了公平計費。這種計費方式可以吸引那些移動性不是很大的用戶,無形之中增加了移動通信網用戶。

(6)增強網絡性能:通信網的移動性管理一直是網絡的難點問題,主要原因就是移動位置的不確定性。如果網絡本身知道移動中的精確位置,移動性管理就相對簡單了。另一方面,有助于對移動臺進行有效的信道分配,使無線資源的利用程度更高。另外,如果能夠實時地得到移動臺的位置信息,可以實現資源的動態、智能分配,增強網絡性能,提高網絡服務質量。

(7)靈活多樣的技術形式:移動位置業務的迅速發展與其具有靈活多樣的技術形式有很大關系。這些技術互相結合,相互補充,對位置業務的發展發揮了作用。采用簡單、方便的技術,原有通信網和用戶手機無須任何調整和改變,只需升級軟件。它們的存在使移動位置業務邁開了至關重要的第一步。其他較復雜的技術雖然需要調整網絡和移動臺,但能提供更高的定位精度。這為移動位置業務的發展提供了技術支持,使其具有更廣闊的市場前景。

2.4.6 Android操作系統的安全性

Android系統自身具備開放源碼的特征,所以其安全性能成為信息安全領域研究的重要課題,對現實工作有較大的借鑒作用,下面從系統和數據兩個方面簡單分析Android系統的安全性能。

1.Android安全性能現狀

Android的安全性能主要體現在兩個方面:Android的系統安全和數據安全。Android系統安全是指智能終端本身的安全,是對操作系統的保護,防止未授權的訪問及對授權用戶服務的拒絕,或對未授權用戶服務的允許,包括行為檢測、記錄等措施。Android的數據安全指確保存儲數據完整性、合法性兩個方面,要求做到系統正確地傳輸數據,授權程序順利地讀取數據。

1)Android系統安全的保障

Android采用的是經過定制的Linux 2.6內核,其系統安全繼承了Linux的設計思想。在Linux內核的基礎上,Android提供諸如安全、內存管理、進程管理、網絡管理、驅動模型等多種核心服務,內核部分實際上是一個介于硬件層和系統中其他軟件組之間的一個抽象層次。所以說,Android的系統層面是Linux,中間是Dalvik的Java虛擬機,表面層運行Android類庫。在實際操作中,每個Android應用都運行在自己的進程上,每個進程都獨享Dalvik虛擬機為它分配的專有實例,并且支持多個虛擬機在同一個系統上高效運行。Dalvik虛擬機執行的是Dalvik格式的可執行文件(.dex)。該格式經過優化,降低內存耗用到最低。Java編譯器將Java源文件轉為class文件,class文件又被內置的dx工具轉化為dex格式文件。這種文件在Dalvik虛擬機上注冊并運行。Android系統的應用軟件都是運行在Dalvik之上的Java軟件,而Dalvik運行在Linux中,在一些底層功能,比如線程和低內存管理方面,Dalvik虛擬機依賴Linux內核。

Android的數據安全機制涉及兩個概念:UID(用戶標識)和權限。UID是指安裝在Android中的每個程序都會被分配一個屬于自己的Linux用戶ID,并且為它創建一個沙箱,防止影響其他程序(或者受其他程序影響)。用戶ID在程序安裝時被分配,并且在系統中永久保持。權限是指為Android允許用戶或者程序限定可以執行的操作,包括打開數據文件、發送信息和調用Android組件等。權限是Android為保障安全而設定的安全標識,也是程序實現某些特殊操作(比如申請系統Service)的基礎。

2)Android數據安全的保障

數據安全主要依賴軟件簽名機制來保障。Android和應用程序都需要簽名,發布時首先通過development/tools/make_key生成公鑰和私鑰,具體由Android中提供的工具./out/host/linux-x86/framework/signapk.jar來簽名。簽名的主要作用在于使對于程序的修改僅限于同一來源,系統中主要有兩種檢測方式。如果是安裝程序升級,檢查新、舊程序的簽名證書是否一致。如果不一致,安裝失敗。若申請權限的protected level為signature或者signatureorsystem,檢查權限申請者和權限聲明者的證書是否一致。

Android對權限的申請、審核以及確認相當嚴格。正是這樣的安全權限機制,保障了數據的安全性。

2.Android安全性能分析

針對上述Android安全性能現狀,從下面幾個方面進行研究、分析。

(1)Android內核存在大量漏洞。由于Android系統平臺自身開源性的特征,它已經成為黑客的重點攻擊目標。黑客針對現有漏洞,開發出漏洞利用工具,竊取用戶隱私、惡意扣費等行為的工具和木馬類型的惡意軟件占多數。運行此類程序,病毒會自動聯網,在系統后臺啟動惡意進程,竊取手機中的隱私內容,直接威脅用戶安全。

(2)Android缺乏功能強大的病毒防護或者防火墻。公眾的手機防病毒意識還不強,Android系統作為基于Linux的智能手機平臺,其病毒防護或防火墻功能較弱。目前基于Android平臺的病毒變種呈集群式爆發。從發現“給你米”“安卓吸費王”病毒到現在,其變種多達63個,波及用戶數超過90萬。Android平臺病毒的某些特征逐漸凸顯,病毒作者植入的軟件越來越有名,例如被查殺的“紅透透(HongTouTou)病毒”就偽裝在知名手機游戲軟件“機器人塔防”中,盜取用戶私人信息,已造成較大破壞。

(3)Android應用軟件缺乏安全審核及監管保護。Android用戶遠離惡意應用程序是一種基于“功能”的安全模式。每個Android應用程序必須告知手機的操作系統它需要的功能。安裝時,操作系統列出應用程序需要運行的功能。用戶應判斷這是否與其聲稱的相符。基于功能的系統具有由操作系統強制執行的優勢。應用程序根本不可能說一套做一套,也不依賴于人工篩選的警覺。這樣做的問題在于無法確保應用程序的行為與其被給予的信任相稱。

功能限制并不能保護用戶免受攻擊,因為流氓軟件要求的權限與合法應用程序是一樣的:接收用戶名和密碼,并通過互聯網與遠程服務器溝通這些信息的權限。基于功能系統的另一個問題在于,它需要用戶仔細考慮安全問題。許多用戶難以準確評估想要下載運行的軟件風險——即便懷疑可能是惡意軟件。Android手機系統自身的驗證機制相對薄弱,如其只能保證檢測下載程序的穩定性、數據完整性,無法驗證Android手機軟件的來源,以及判定安裝后程序可能存在的行為,將無法保證安全性。

(4)Android軟件開發工具包(SDK)存在較多安全隱患。Android SDK自測試階段就不斷暴露出例如遠程控制漏洞、整數溢出和瀏覽器在處理GIF、BMP和PNG圖像時的數據溢出等各種類型的漏洞。攻擊者利用這些漏洞執行惡意代碼,進而完全控制裝有Android軟件的手機。如果補丁未及時更新,極易造成較大危害。

主站蜘蛛池模板: 三都| 罗平县| 三江| 五寨县| 谢通门县| 宾川县| 长阳| 鸡西市| 沂源县| 莒南县| 高要市| 武宣县| 民和| 湾仔区| 平陆县| 四子王旗| 定远县| 济阳县| 浦东新区| 博野县| 永定县| 晋城| 沐川县| 南投市| 冷水江市| 乌兰察布市| 巴彦县| 丹江口市| 蚌埠市| 论坛| 阿克陶县| 大厂| 汨罗市| 桂东县| 灌南县| 合江县| 双桥区| 进贤县| 辉县市| 蓬溪县| 琼海市|