激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android App的運行環境及Android系統架構概覽

Android App的運行環境及Android系統架構概覽

2021-06-24 13:48iam_wingjay Android

這篇文章主要介紹了Android App的運行環境及Android系統架構概覽,并對應用程序進程間隔離機制等知識點作了介紹,需要的朋友可以參考下

android基于linux內核,面向移動終端的操作系統。主要包括以下幾個方面:

application framework:
這一層為應用開發者提供了豐富的應用編程接口,如 activity manager,content provider,notification manager,以及各種窗口 widget 資源等。所有的app都是運行在這一層之上。
dalvik 虛擬機:
dalvik vm采用寄存器架構,而不是jvm的棧架構,更適于移動設備。java源代碼經過編譯成為.class字節碼文件,然后由谷歌提供的 dx工具將其轉化為dalvik可識別的.dex文件。
linux kernel:
每個app應用程序由一個獨立的dalvik vm來解釋執行,而一個dalvik vm實例對應一個linux內核進程。
所以說,每個app之間完全隔離,資源獨立。使得每個app更加安全,但也不利于進程間通信

Android App的運行環境及Android系統架構概覽

android官方介紹

Android App的運行環境及Android系統架構概覽

android 系統架構

application framework
大部分開發者十分關心這一層。你必須要了解開發者會接觸到的所有api接口,大部分接口都與硬件抽象層(hal層)接口一一對應,而且它們會告訴你如何實現你自己的驅動。

binder ipc
binder進程間通信機制幫助application framework層能夠跨進程并且調用系統級服務。從根本上講,它幫助高級別的framework的api接口與android系統服務進行交互。

系統服務
大部分application framework api具備的功能都要依靠與某種系統服務進行通信從而操作底層硬件。系統服務根據不同的功能分成了若干模塊組件,例如window manager, search service, or notification manager。系統服務主要包含兩大塊:系統和媒體。前者對應的服務包含如window manager 或 notification manager,后者對應的服務都與播放或記錄媒體有關。
硬件抽象層hardware abstraction layer (hal)
硬件抽象層可以作為一個標準接口讓android系統調用設備驅動層而不用管這些驅動和硬件時如何實現的。


linux kernel
大多數情況下,你自己開發設備驅動和開發linux設備驅動時一樣的。android挑選了一個特定的linux內核版本,這個版本包含了如wakelocks(一個內存管理系統),binder ipc驅動和其他一些特征,這些特征對于像android一樣的移動嵌入式平臺都非常重要。你也可以根據自己的需求選擇合適的kernel版本,只要它能支持一些必要的屬性如binder ipc驅動等。但是,我們仍然推薦你使用最新版本的android內核。

相關知識點:
應用程序進程間隔離機制:

android系統包括四層架構:從底層往上依次是linux kernel層、c/c++函數庫與android運行時環境(dalvik vm等)層、android framwork框架層、應用程序層。其中,android運行時環境層類似java里的jre層,主要用來運行java程序,不過此處的虛擬機是dalvik虛擬機。每一個android應用程序都運行在單獨的davlik進程里,dalvik虛擬機針對同時高效運行多個虛擬機而優化,在這一層實現了應用程序的進程間隔離。

dalvik虛擬機與jvm區別:

jvm直接從.class或jar包中加載字節碼解釋運行,dalvik通過dx工具將.class文件編譯為.dex文件(dalvik executable)來運行。
jvm采用棧結構,而dalvik采用寄存器結構,更適于移動設備。
為何android要采用dalvik虛擬機而不是jvm呢?

大多數虛擬機(包括jvm)都是基于棧的,而dalvik虛擬機則是基于寄存器的,性能更好,不過也導致硬件通用性略差;
運行專有.dex文件。dx工具對.class文件編譯時,去除里面的冗余信息,并把所有.class文件整合到一個文件中,提高了性能。同時dx工具還會對.dex文件進行性能優化。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人在线视频播放 | 久久精品中文字幕一区二区 | 一级毛片在线看 | 国产亚洲美女精品久久久2020 | 欧美a级在线免费观看 | 色污视频 | 2021狠狠操| 深夜小视频在线观看 | 性明星video另类hd | 黄色aaa视频 | 午夜国产精品成人 | 欧美人与牲禽动交精品一区 | 天天看成人免费毛片视频 | 国产呻吟 | av影片在线观看 | 午夜网站视频 | 亚洲精品一区二区三区大胸 | 国产乱轮视频 | 成人免费av在线播放 | 成人免费在线视频播放 | 免费毛片在线视频 | 亚洲电影在线观看高清免费 | 欧美一区二区黄色 | 国产精品久久久久久久亚洲按摩 | 久草在线观看福利 | 国产69精品久久久久久久久久 | 国产精品视频一区二区三区四区五区 | 欧日一级片 | av资源在线天堂 | 性少妇chinesevideo | 懂色av懂色aⅴ精彩av | 久久久久国产一区二区三区不卡 | 意大利av在线| 亚洲精品成人久久久 | 日韩精品免费一区二区三区 | 美女擦逼 | 91看电影| lutube成人福利在线观看污 | 日韩在线播放中文字幕 | 久久91精品国产91久久yfo | a一级黄色毛片 |