- Android開發:從0到1 (清華開發者書庫)
- 趙志榮
- 831字
- 2020-11-28 16:13:29
1.2 And roid架構
無論是從事Android哪個層面的開發和學習,都應該熟悉圖1-1所示的Android架構圖,這樣才能對整個Android系統有所了解。

圖1-1 Android架構
1.Linux Kernel(Linux內核)
Android系統是基于Linux操作系統之上的,采用Linux內核,Android很多底層管理,如安全性、內存管理、進程管理、網絡協議棧和驅動模型等管理是依賴于Linux。Linux內核也是硬件和軟件之間的硬件抽象層。運行于Android中的Linux是經過裁剪的,適合于低能耗的移動設備。
2.Libraries(本地庫)
Android本地庫包括一個被Android系統中各種組件所使用的C/C++庫集。該庫通過Android應用程序框架為開發者提供服務。這些庫很多都不是在Android系統下編寫的,大部分都是開源的庫。
? OpenGL ES:開發3D圖形技術。
? SQLite:嵌入式數據庫。
? WebKit:Web瀏覽器引擎。
? Media Framework:支持音頻視頻解碼,音頻視頻錄制等。
? Surface Manager:Android平臺繪制窗口和控件,以及繪制一些圖形和視頻輸出等。
3.Android Runtime(Android運行時)
雖然Android應用程序是用Java編寫的,但卻不是使用Java Runtime來執行程序,而是自行研發Android Runtime來執行程序。Runtime(運行時環境)主要是由兩部分組件組成——Core Libraries(核心庫)和VM(虛擬機)。JVM是由Sun開發的(現在是Oracle公司),由于版權問題谷歌自己編寫了VM,即Dalvik Virtual Machine(Dalvik VM)。編寫Dalvik VM除了版權的問題,更重要的是Dalvik VM是為低耗能、低內存等手持移動設備而設計的,在一臺設備上可以運行多個實例。Dalvik VM對于很多底層處理還要依賴于Linux操作系統。
4.Application Framework(應用程序框架)
Android應用程序框架提供了一套開發Android應用的API,其中包括:
? View System:一套用戶圖形界面開發組件,如Button、對話框等。
? ActivityManager:管理Activity的周期等。
? Content Providers:管理數據共享。
? Resource Manager:管理資源文件,如國際化、布局文件等。
? Location Manager:管理定位服務。
? TelephonyManager:管理電話服務。
5.Application(應用程序)
應用程序開發,在這里可以是自動編寫的應用程序、第三方開發的應用程序和谷歌自帶的應用程序,如通訊錄、短信息、瀏覽器等。一個應用可以全部用Java語言編寫,也可以是用Java編寫一部分,再用C或C++編寫一部分,然后使用Java JNI技術調用。例如,對于一個游戲應用程序,為了提高速度,有些處理使用C或C++編寫,再用JNI調用。不要簡單地認為所有應用都一定是Java語言編寫的。
- 多媒體CAI課件設計與制作導論(第二版)
- 新編Visual Basic程序設計上機實驗教程
- Spring 5.0 By Example
- PyTorch自動駕駛視覺感知算法實戰
- Three.js開發指南:基于WebGL和HTML5在網頁上渲染3D圖形和動畫(原書第3版)
- Raspberry Pi for Secret Agents(Third Edition)
- 重學Java設計模式
- SAP BusinessObjects Dashboards 4.1 Cookbook
- Creating Stunning Dashboards with QlikView
- 輕松上手2D游戲開發:Unity入門
- Web App Testing Using Knockout.JS
- JavaScript悟道
- Python預測分析與機器學習
- C語言程序設計教程
- C++服務器開發精髓