freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的智能手機開發(fā)畢業(yè)設(shè)計-文庫吧資料

2025-01-24 14:09本頁面
  

【正文】 的最近最早未使用的調(diào)度策略,Android在其基礎(chǔ)上提供了一套獨特的進程管理模塊,他能讓程序員使用腳本來對內(nèi)存管理進行定制。一般的,前臺進程的值為0,這表明前臺進程不可能被系統(tǒng)選中并結(jié)束。在實際應(yīng)用中就是當一個前臺進程運行時按HOME鍵后的進程狀態(tài)⑸內(nèi)容供應(yīng)節(jié)點是沒有程序?qū)嶓w,而是僅僅提供內(nèi)容給別的程序使用的比如說日歷節(jié)點⑹空進程是沒有任何東西在運行的進程,在一個程序退出后會有一個沒有任何數(shù)據(jù)和代碼在運行但是依然駐留在進程空間中的進程,該進程僅僅是作為一個能夠提高該程序下次啟動速度和記錄程序歷史記錄的進程。⑵可見進程則是那些雖然不在前臺,但是用戶依然可見的進程,如輸入法,時鐘等,這些進程雖然不是在前臺運行的,但是其存在和我們的使用卻是密切相關(guān)的,如果關(guān)閉了這些應(yīng)用程序?qū)⒔o我們的使用帶來非常大的不便⑶次要服務(wù)是一些與系統(tǒng)功能息息相關(guān)的服務(wù),如Google企業(yè)套件等。 ⑴前臺進程是指一些系統(tǒng)進程和當前屏幕上正在顯示的進程。直到系統(tǒng)資源不夠需要更多內(nèi)存或者當某個結(jié)束進程的事件發(fā)生時才將該進程結(jié)束。 Android的進程管理機制 Android雖然是基于Linux,但是它卻采用了一種有別于Linux的一種管理機制。當我們要執(zhí)行一個應(yīng)用而建立一個虛擬機時,只需讓Zygote進程自身復(fù)制,這樣就可以減少虛擬機初始化等操作的時間。在Dalvik虛擬機中Zygote進程fork出所有的虛擬機進程,每當系統(tǒng)提出執(zhí)行一個Android應(yīng)用時,需要一個Dalvik虛擬機是,Zygote就會fork出一個子進程來執(zhí)行該應(yīng)用。 說到Dalvik虛擬機,那就應(yīng)該說說虛擬機中的一個特殊的虛擬機進程Zygote,之前說過一個Dalvik虛擬機對應(yīng)一個進程空間。另外Dalvik虛擬機線程機制中的一個線程對應(yīng)于Linux中相應(yīng)的一個線程,這樣操作系統(tǒng)中的線程就能最大限度的為Dalvik虛擬機服務(wù)。不同的應(yīng)用程序在不同的Dalvik虛擬機實例中運行,不同的Dalvik虛擬機又對應(yīng)于不同的進程空間,加之不同的應(yīng)用程序在Linux內(nèi)核中以不同的Linux用戶來執(zhí)行,這樣可以最大限度的保證應(yīng)用程度的獨立性和安全性。每一個Dalvik虛擬機實例對應(yīng)于一個應(yīng)用程序,同時這個虛擬機實例還都是一個進程空間。 另外,Dalvik虛擬機的設(shè)計方面也有其獨特的地方。另外,Dalvik虛擬機雖然沒有采用現(xiàn)在流行虛擬機技術(shù)例如JIT(just in time,及時編譯)技術(shù),但是Dalvik虛擬機仍然是一個具有很高性能的虛擬機,在這不得不說一下,Dalvik虛擬機是一個設(shè)計相當不錯的虛擬機。其次從Google對Dalvik虛擬機設(shè)計中采用的16個通用寄存器中可以看出Android的發(fā)展方向是基于ARM的硬件平臺,這也和Google的戰(zhàn)略方向相一致。我個人覺得這是和Android所搭載的平臺以及Google的戰(zhàn)略有關(guān)的。另外,基于棧設(shè)計的虛擬機采用的是零地址指令,這樣的話指令形式比較緊湊。虛擬機的設(shè)計中,為了執(zhí)行的效率,有時會把這些寄存器一一映射到物理寄存器上,但是由于平臺的不同,導(dǎo)致通用寄存器數(shù)量不同造成如果基于寄存器設(shè)計的虛擬機很難做到一一映射,執(zhí)行效率就會大打折扣?;跅TO(shè)計的虛擬機能夠使指令變得簡單,不需要考慮程序中的源寄存器和目的寄存器,只需要開辟??臻g而不需要為臨時變量再開辟一個存儲空間。在APK應(yīng)用程序程序包發(fā)布到移動終端設(shè)備后,應(yīng)用程序運行前會對其中的DEX文件進行優(yōu)化,優(yōu)化后的文件格式稱之為DEY,DEY文件被保存到緩存區(qū)域,虛擬機會在緩存中執(zhí)行這些文件。 Android應(yīng)用開發(fā)和Dalvik虛擬機同樣都使用Java開發(fā)語言,在應(yīng)用程序開發(fā)好以后我們就需要將這個應(yīng)用發(fā)布到Android移動終端設(shè)備。通過上面的研究可以看出DEX文件格式是一種專為Dalvik虛擬機設(shè)計的壓縮格式,該格式的高性能很適合內(nèi)存和處理器速度有限的平臺,從中可以看出Android是定位于嵌入式平臺的一個操作系統(tǒng)。這樣一來,對于同一個應(yīng)用程序來說,相對于Java的字節(jié)碼文件Android的DEX文件格式在I/O操作中所需要的時間也減少了,同時也減少了查找類所需要的時間。在Java中當一個應(yīng)用程序定義了多個類后,通過編譯則會產(chǎn)生相應(yīng)數(shù)目的class字節(jié)碼文件,在這些字節(jié)碼文件中則必然會有冗余信息,例如一些相同的類庫會冗余等。使用Java語言編寫好的Android程序代碼,同樣是先用Java編譯器編譯成為字節(jié)碼文件,但是在這之后還需通過Google提供的一個DX工具將編譯好的字節(jié)碼轉(zhuǎn)換成為DEX文件,然后Dalvik虛擬機通過DEX文件獲得執(zhí)行的代碼。在Android中不再使用字節(jié)碼文件而是一種Android所特有的DEX(Dalvik EXecutable)文件。Android的上層應(yīng)用程序雖然是用Java開發(fā)的,但是Dalvik虛擬機卻和傳統(tǒng)的Java虛擬機有著很大的區(qū)別,兩者是不兼容的。Google的工程師結(jié)合傳統(tǒng)的Java 虛擬機,根據(jù)Android使用的平臺一般為移動終端設(shè)備這樣一個特點重新設(shè)計的虛擬機,這個虛擬機在移動終端設(shè)備上運行效率上明顯比傳統(tǒng)的Java 虛擬機要高許多。這樣的好處就在于那些使用Java語言很難實現(xiàn)但是在C或者C++卻能很容易實現(xiàn)的功能也能通過Java很容易等的實現(xiàn)。也就是說其實Android Libraries中的函數(shù)只是libraries中的一些引用,當一個上層的應(yīng)用程序調(diào)用Dalvik虛擬機中的核心庫函數(shù)時,調(diào)用的其實只是一個函數(shù)名,并不是函數(shù)的具體實現(xiàn),然后Dalvik虛擬機對該函數(shù)進行一些處理以后再通過Dalvik虛擬機調(diào)用libraries中的相應(yīng)函數(shù),使之運行。我們之前說過,我們開發(fā)者可以調(diào)用C和C++的一些類庫。Android函數(shù)庫和Dalvik虛擬機組成了Android的運行時環(huán)境。Dalvik虛擬機和傳統(tǒng)的Java虛擬機所不同之處的是傳統(tǒng)的Java虛擬機是一個虛擬機來為不同應(yīng)用程序提供服務(wù),而Google自己開發(fā)的Dalvik虛擬機則是每一個Android應(yīng)用程序都擁有一個其自身的Dalvik虛擬機,換句話說就是專屬于每一個應(yīng)用程序?qū)?yīng)著一個Dalvik虛擬機而這個Dalvik虛擬機相當于一個執(zhí)行個體。在Android構(gòu)架圖中可以看到, 該系統(tǒng)采用的是一個叫做Dalvik的虛擬機。我們知道,對一個應(yīng)用程序而言,都采用一個屬于該應(yīng)用程序的進程作為執(zhí)行的載體,同樣,對于Android也是,一個應(yīng)用程序也是有一個屬于它的進程。這樣做的話能夠使Android的虛擬機的類庫與Java SE的類庫有非常大的相似性,進而提高了Java SE類庫的兼容性,最大限度的降低了一個程序員從Java平臺開發(fā)到Andorid平臺開發(fā)的難度,這樣就降低了對Android開發(fā)的準備時間以及前期培訓(xùn)的費用,從而降低了Android應(yīng)用程序開發(fā)的周期以及開發(fā)費用,這樣的話短時間內(nèi)就能讓Google Android系統(tǒng)能夠擁有大量的可執(zhí)行的應(yīng)用程序。從Android 的系統(tǒng)構(gòu)架圖中可以清楚的看到,Android Runtime由Android函數(shù)庫(Android Libraries)和Dalvik虛擬機組成[3]。⑧SGL 底層的2D圖形引擎。⑥SQLite 一個功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎,Android中所有應(yīng)用程序都可以調(diào)用它。⑤3D libraries 基于OpenGL ES APIs實現(xiàn)。③Surface Manager 對顯示子系統(tǒng)的管理,并且為多個應(yīng)用程序提 供了2D和3D圖層的無縫融合,提供如同類似iPhone的界面管理功能。②媒體庫 基于 PacketVideo公司的OpenCORE開發(fā)設(shè)計的。這些庫函數(shù)通過Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。例如Android的IPC(進程間通信機制)binder,使用這個能使運行的進程為其他進程提供服務(wù);Android的日志系統(tǒng)(Logger)和內(nèi)存控制臺(Ram_console);同時Google還重寫了電源管理(Power)⑷增加了新的共享方式Ashmem(匿名共享內(nèi)存),多個應(yīng)用程序可以這種方式共享內(nèi)存獲取信息,為進程間提供大量共享內(nèi)存,同時為內(nèi)核提供回收和管理這個內(nèi)存的機制。⑵增加了YAFFS2 FLASH系統(tǒng)文件,因此增加了對NANDFLASH支持。同時Android在Linux ,使Linux更加適應(yīng)ARM平臺。而另一個例子就是Linux系統(tǒng),在所有操作系統(tǒng)中,穩(wěn)定性和性能上能夠和Linux抗衡的系統(tǒng)不多吧,但是在智能手機市場上為什么Linux卻可以說是一敗涂地,其原因也和其第三方應(yīng)用少是脫不了關(guān)系的。我們知道,作為一個智能手機平臺,只有擁有了大量的源源不斷的應(yīng)用程序作為支持,才能受人們的歡迎,從而才能占領(lǐng)市場。在Android構(gòu)架中,可以很明顯的看到,底層的Linux內(nèi)核則采用的是C語言,libraries采用C或者C++,但是應(yīng)用程序?qū)?、?yīng)用程序框架層和運行時環(huán)境中的Android核心庫采用Java語言編寫,也就是說Android雖然底層用的是C或者C++但是應(yīng)用程序的開發(fā)則用的是Java。作為一個層次結(jié)構(gòu)的軟件集,一定有一個層次的系統(tǒng)構(gòu)架,下圖為Android的構(gòu)架圖:
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1