日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

《OpenGL ES 3.x游戏开发(上卷)》一1.5 Android应用程序运行的机制

發(fā)布時間:2025/3/20 Android 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《OpenGL ES 3.x游戏开发(上卷)》一1.5 Android应用程序运行的机制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本節(jié)書摘來異步社區(qū)《OpenGL ES 3.x游戲開發(fā)(上卷)》一書中的第1章,第1.5節(jié),作者: 吳亞峰 責編: 張濤,更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號查看。

1.5 Android應(yīng)用程序運行的機制

前面介紹了如何搭建Android開發(fā)環(huán)境、如何開發(fā)Hello Android應(yīng)用程序以及Android應(yīng)用程序的調(diào)試,接下來在本節(jié)中將簡要地介紹Android應(yīng)用程序的運行機制。

1.5.1 應(yīng)用程序的系統(tǒng)架構(gòu)

Android平臺由應(yīng)用程序、應(yīng)用程序框架、Android運行時、系統(tǒng)庫以及底層Linux內(nèi)核構(gòu)成,詳細結(jié)構(gòu)如圖1-68所示。


說明

應(yīng)用程序?qū)永锩姘木褪切枰x者去發(fā)揮創(chuàng)意開發(fā)的、各種各樣豐富多彩的應(yīng)用程序,這也是一般Android應(yīng)用開發(fā)人員工作的層次。

1.5.2 應(yīng)用程序框架

Android應(yīng)用程序框架是開發(fā)Android應(yīng)用的基礎(chǔ),開發(fā)者在開發(fā)時有大部分的時間用在調(diào)用這一層。Android應(yīng)用程序框架包含活動管理器、窗口管理器、內(nèi)容提供者、視圖系統(tǒng)、包管理器、電話管理器、位置管理器、資源管理器以及通知管理器等,如圖1-69所示。


應(yīng)用程序框架層各部分的具體功能如下所列。

  • 活動管理器(Activity Manager):管理所有應(yīng)用程序的生命周期并提供相應(yīng)的應(yīng)用程序?qū)Ш椒祷貤!?/li>
  • 窗口管理器(Window Manager):管理所有的應(yīng)用程序窗口。
  • 內(nèi)容提供者(Content Providers):用來在應(yīng)用程序之間互相讀取或者分享數(shù)據(jù)。
  • 視圖系統(tǒng)(View System):主要包含用來構(gòu)建應(yīng)用程序界面的基本控件,- 包含普通按鈕、列表、文本框和單選按鈕、復選框等。
  • 包管理器(Package Manager):用來進行Android系統(tǒng)內(nèi)的程序管理。
  • 電話管理器(Telephony Manager):用來管理所有與移動電話相關(guān)的功能。
  • 位置管理器(Location Manager):提供位置服務(wù)。
  • 資源管理器(Resource Manager):為應(yīng)用程序提供各種資源,如圖片、布局文件以及本地化字符串等。
  • 通知管理器(Notification Manager):用于管理顯示在狀態(tài)欄的應(yīng)用程序中的通知信息。狀態(tài)欄通常在手機的頂部,如短信、語音郵件提示以及剩余電量等全部會在這里顯示。

1.5.3 Android運行時

Android運行時包括核心庫(Core Libraires)以及Dalvik虛擬機(Dalvik Virtual Machine)兩部分,如圖1-70所示。


  • 核心庫(Core Libraires)主要包括兩部分,一部分是來自于JavaSE中的核心Java部分,如集合框架、多線程等。另一部分由Android核心庫,如an- droid.os以及android.media等組成。
  • Dalvik虛擬機(Dalvik Virtual Machine)是一種基于寄存器的Java虛擬機,主要依靠轉(zhuǎn)換工具dx將Java字節(jié)碼轉(zhuǎn)換為dex格式(.dex)。基于寄存器的Java虛擬機的優(yōu)點是所需資源相對較少,同時使用硬件實現(xiàn)虛擬機也會比較容易。

說明

與傳統(tǒng)的JavaME不同的是,每個Android應(yīng)用程序都有一個自己特有的進程,每個應(yīng)用程序都是使用一個自己持有的Dalvik虛擬機來執(zhí)行的,而不像在大部分JavaME實現(xiàn)中,多個JavaME應(yīng)用程序共享一個Java虛擬機進程。

1.5.4 系統(tǒng)庫

應(yīng)用程序框架是最接近于應(yīng)用程序的軟件組件服務(wù),而更底層則是Android的系統(tǒng)函數(shù)庫(Libraries),這部分是應(yīng)用程序框架的支撐,其基本架構(gòu)如圖1-71所示。


  • Surface Manager管理對顯示子系統(tǒng)的訪問,并且負責將不同應(yīng)用程序2D及3D繪制的結(jié)果進行顯示合成。
  • Media Framework(媒體函數(shù)庫)是基于Packet Video公司的OpenCORE發(fā)展而成的,使用該函數(shù)庫可以方便地播放以及錄制多種常見格式的影音。這些格式主要包括:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等。
    SQLite是內(nèi)嵌到Android系統(tǒng)中的一套輕量級的關(guān)系數(shù)據(jù)庫引擎,支持關(guān)系數(shù)據(jù)庫的各項功能。

OpenGL ES:Android是根據(jù)OpenGL ES1.0、1.1、2.0、3.0或3.1的 API標準來實現(xiàn)其3D繪圖函數(shù)庫的,該函數(shù)庫可以以硬件加速方式執(zhí)行,也可以用軟件模擬方式執(zhí)行(僅限OpenGL ES 1.0與1.1),不過在沒有硬件加速的情況下性能會有明顯差距。

  • FreeType負責點陣字體以及向量字體的繪圖顯示。
  • WebKit本身是一個開源項目,許多瀏覽器也都是用WebKit引擎所開發(fā)的,Android下原生自帶的瀏覽器就是基于其實現(xiàn)的。Android將其引入到系統(tǒng)庫,大大方便了開發(fā)人員HTTP相關(guān)功能的開發(fā)。
  • SGL庫為Android在2D繪圖方面提供繪圖引擎。
  • SSL位于TCP/IP與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通信提供支持。
  • Libc提供了一套針對于移動設(shè)備優(yōu)化后的C標準庫。

1.5.5 底層Linux內(nèi)核

Android平臺開放性的基礎(chǔ)是因為其采用了Linux內(nèi)核,如圖1-72所示。Android平臺中的操作系統(tǒng)采用了Linux 2.6版的內(nèi)核,其包括顯示驅(qū)動、攝像頭驅(qū)動、Flash內(nèi)存驅(qū)動、Binder(IPC)驅(qū)動、鍵盤驅(qū)動、WIFI驅(qū)動、視頻驅(qū)動及電源驅(qū)動等。

-Linux內(nèi)核層是軟件層與硬件層之間的橋梁,軟件開發(fā)人員不必關(guān)心底層Linux內(nèi)核的實現(xiàn)細節(jié),只需將全部精力投入到上層的軟件開發(fā)中。而實現(xiàn)底層Linux內(nèi)核的工作是由Google和手機廠商來完成,如驅(qū)動的更新或者新驅(qū)動的編寫等。


總結(jié)

以上是生活随笔為你收集整理的《OpenGL ES 3.x游戏开发(上卷)》一1.5 Android应用程序运行的机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。