- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统架构Android应用程式框架Applicationframework
3.1系統架構
3.1.1Android 應用程式框架 (Application framework)
Android 為了節省開發者撰寫應用程式的時間、加速應用程式開發的速度。所以在應用程式與內部系統環境之間設置了一個讓程式更簡易溝通的界面,它稱之為應用程式框架(Application framework)。
對於應用程式的開發者來說,他得以透過Java程式呼叫應用程式框架所提供的應用程式界面(Application Programming Interface, API),來實作更底層的函式庫(Libraries)功能。
在這個應用程式框架之中,包含了活動管理者(Activity Manager)、視窗管理者(Window Manager)、內容提供者(Content Providers)、外觀元件系統(View System)、程式管理者(Package Manager)、電話功能管理者(Telephony Manager)、資源管理者(Resource Manager)、地理位置管理者(Location Manager)以及訊息管理者(Notification Manager)等服務或者系統。
總體來說,開發者通常只需要理解應用程式與應用程式框架之間的運作關係、以及如何透過Java程式語言實作的方法即可,並不太需要探究更內部的系統環境。
然而,假若是要移植Android至嵌入式系統的產品開發者,仍有必要理解Android系統內部的函式庫、Android執行環境與Linux核心的細節。
3.1.2 Dalvik 虛擬機器 (Dalvik virtual machine)
早期應用程式的原始程式碼,多半被組譯器或編譯器轉換成執行檔之後,便可以立即在作業系統當中執行。不過,這種方式常常會受限於作業系統環境的不同,而無法相容執行。
比如副檔名為.exe或.com的應用程式執行檔就只能在Microsoft Windows或者DOS作業系統當中執行。倘若,它要在Mac OS當中執行者,還需要將程式碼重新改寫並變成Mac OS可執行的檔案夾格式 .app,才得以在Mac Os作業系統當中執行。
隨後,Java的誕生為此帶來了觀念上的革新。當應用程式開發者在編寫Java原始程式碼後,會先透過Java程式語言的編譯器(Compiler)編譯成二進位碼形式(bytecode)的.class類別檔。這個類別檔並非是在作業系統當中”直接”執行,而是會在具有Java虛擬機器(Java virtual machine, JVM)的作業系統環境當中被”轉換””執行。
所以,無論是那種款式的作業系統,只要安裝含有Java虛擬機器(Java virtual machine, JVM)的Java平台(Java Platform),就可以執行以Java程式語言所開發的應用程式。因為,Android也是採行Java程式語言進行應用程式的開發,所以,它在觀念與架構上皆與Java平台相去不遠。然而,Android並非使用Java虛擬機器(Java virtual machine, JVM),而是自行發展的Dalvik虛擬機器(Dalvik virtual machine, Dalvik VM),所以它的檔案產生過程仍與Java應用程式檔案有所不同。:Andorid應用程式開發者在運用Java程式語言編寫完原始程式碼後,其儲存的檔案副檔名為 .java,.java檔案接著會被Java程式語言編譯器(Compiler)編譯成副檔名為 .class的檔案(其為二進位碼形式(bytecode))。如果是一般的Java應用程式,大概到這一步就可以直接透過Java虛擬機器(Java virtual machine, JVM)在作業系統之中執行。只不過,因為在Android系統之中並不是使用JVM,而是Dalvik虛擬機器(Dalvik virtual machine, Dalvik VM)。所以,副檔名.class的檔案還要再被Android SDK(軟體開發工具包)當中的dx工具再轉換成為Dalvik VM可以執行的檔案(副檔名為 .dex, Dalvik Executable,同為二進位碼形式)。最後,Android SDK會將所有檔案壓縮包裏成單一的Android封裝檔(副檔名為 .apk,Android application package),以供手機用戶直接下載執行。關於更詳盡Android應用程式檔案產生過說明,您可以延伸閱讀Understanding the Android Build Process一文。
文档评论(0)