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

正文內(nèi)容

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

2025-06-13 14:02本頁(yè)面
  

【正文】 ifest. xml,該配置文件用于定義我們的應(yīng)用程序組件和組件的功能以及一些必要條件等。其中, Activity、Intent Receiver 和 Service 是 Android 最基本的三個(gè)組件。 Android 的應(yīng)用 Android 應(yīng)用的組成 任何一個(gè) Android 應(yīng)用程序,都可由四個(gè)部分組成,這四個(gè)組成部分分別是① Activity;② Intent Receiver;③ Service;④ Content Provider[ 5] 。 應(yīng)用程序?qū)? 回到 Android 系統(tǒng)構(gòu)架圖中,應(yīng)用程序?qū)影巳缑芾怼?Google maps、瀏覽器等本地應(yīng)用程序( native apps),如 、 MSN、 QuickOffice等第三方應(yīng)用程序( third part apps),以及 developer apps。⑤活動(dòng)管理器( activity manager),提供常用導(dǎo)航功能用來(lái)管理應(yīng)用程序生命周期的服務(wù)。③資源管理器( resource manager),使用資源管理器,我們?cè)趹?yīng)用程序中能夠訪問(wèn)到一些如圖形、布局文件等一些非代 碼資源。這些服務(wù)包括:①一個(gè)豐富并且可擴(kuò)展的視圖,通過(guò)這個(gè)視圖我們可以使用它提供的一些包括按鈕、文本框、列表、網(wǎng)格等甚至可嵌入的 web 瀏覽器的應(yīng)用程序來(lái)構(gòu)造我們的應(yīng)用程序。這樣的設(shè)計(jì)就使 Android 的構(gòu)件重用率提高了。應(yīng)用程序框架是能夠讓開(kāi)發(fā)者完全訪問(wèn)核心應(yīng)用程序所使用的 API( Application Programming Interface,應(yīng)用程序編程接口),該框架能夠讓組件軟件重用的工做簡(jiǎn)單化。這樣就能保證一些這六種進(jìn)程總是當(dāng)一種進(jìn)程被結(jié)束完了以后另外一種進(jìn)程才會(huì)被結(jié)束,同時(shí)只需要根據(jù)這個(gè)系統(tǒng)值就能輕易做到對(duì)內(nèi)存管理的定制。根據(jù)這種特性 該系統(tǒng)值至少由兩部分組成,一個(gè)是基值,另一個(gè)根據(jù) LRU(最近最久未 使用)調(diào)度算法產(chǎn)生的一個(gè)值。 相對(duì)于 Linux 的最近最早未使用的調(diào)度策略, Android 在其基礎(chǔ)上提供了一套獨(dú)特的進(jìn)程管理模塊,他能讓程序員使用腳本來(lái)對(duì)內(nèi)存管理進(jìn)行定制。一般的,前臺(tái)進(jìn)程的值 為 0,這表明前臺(tái)進(jìn)程不可能被系統(tǒng)選中并結(jié)束。在實(shí)際應(yīng)用中就是當(dāng)一個(gè)前臺(tái)進(jìn)程運(yùn)行時(shí)按 HOME 鍵后的進(jìn)程狀態(tài)⑸內(nèi)容供應(yīng)節(jié)點(diǎn)是沒(méi)有程序?qū)嶓w,而是僅僅提供內(nèi)容給別的程序使用的比如說(shuō)日歷節(jié)點(diǎn)⑹空進(jìn)程是沒(méi)有任何東西在運(yùn)行的進(jìn)程,在一個(gè)程序退出后會(huì)有一個(gè)沒(méi)有任何數(shù)據(jù)和代碼在運(yùn)行但是依然駐留在進(jìn)程空間中的進(jìn)程,該進(jìn)程僅僅是作為一個(gè)能夠提高該程序下次啟動(dòng)速度和記錄程序歷史記錄的進(jìn)程。⑵可見(jiàn)進(jìn)程則是那些雖然不在前臺(tái),但是用戶依然可見(jiàn)的進(jìn)程,如輸入法,時(shí)鐘等,這些進(jìn)程雖然不是在前臺(tái)運(yùn)行的,但是其存在和我們的使用卻是密切相關(guān)的,如果關(guān)閉了這些應(yīng)用程序?qū)⒔o我們的使用帶來(lái)非常大的不便⑶次要服務(wù)是一些與系統(tǒng)功能息息相關(guān)的服務(wù),如 Google 企業(yè)套件等。 ⑴前臺(tái)進(jìn)程是指一些系統(tǒng)進(jìn)程和當(dāng)前屏幕上正在顯示的進(jìn)程。直到系統(tǒng)資源不夠需要更多內(nèi)存或者當(dāng)某個(gè)結(jié)束進(jìn)程的事件發(fā)生時(shí)才將該進(jìn)程結(jié)束。 Android 的進(jìn)程管理機(jī)制 Android 雖然是基于 Linux,但是它卻采用了一種有別于 Linux 的一種管理機(jī)制。當(dāng)我們要執(zhí)行一個(gè)應(yīng)用而建立一個(gè)虛擬機(jī)時(shí),只需讓 Zygote 進(jìn)程自身復(fù)制,這樣就可 以減少虛擬機(jī)初始化等操作的時(shí)間。在 Dalvik 虛擬機(jī)中 Zygote 進(jìn)程 fork出所有的虛擬機(jī)進(jìn)程,每當(dāng)系統(tǒng)提出執(zhí)行一個(gè) Android 應(yīng)用時(shí),需要一個(gè) Dalvik 虛擬機(jī)是, Zygote 就會(huì) fork 出一個(gè)子進(jìn)程來(lái)執(zhí)行該應(yīng) 用。 說(shuō)到 Dalvik 虛擬機(jī),那就應(yīng)該說(shuō)說(shuō)虛擬機(jī)中的一個(gè)特殊的虛擬機(jī)進(jìn)程 Zygote,之前說(shuō)過(guò)一個(gè) Dalvik 虛擬機(jī)對(duì)應(yīng)一個(gè)進(jìn)程空間。另外 Dalvik 虛擬機(jī)線程機(jī)制中的一個(gè)線程對(duì)應(yīng)于 Linux中相應(yīng)的一個(gè)線程,這樣操作系統(tǒng)中的線程就能最大限度的為 Dalvik虛擬機(jī)服務(wù)。不同的應(yīng)用程序在不同的 Dalvik 虛擬機(jī)實(shí)例中運(yùn)行,不同的 Dalvik 虛擬機(jī)又對(duì)應(yīng)于不同的進(jìn)程空間,加之不同的應(yīng)用程序在 Linux 內(nèi)核中以不同的 Linux 用戶來(lái)執(zhí)行,這樣可以最大限度的保證應(yīng)用程度的獨(dú)立性和安全性。每一個(gè) Dalvik 虛擬機(jī)實(shí)例對(duì)應(yīng)于一個(gè)應(yīng)用程序,同時(shí)這個(gè)虛擬機(jī)實(shí)例還都 是一個(gè)進(jìn)程空間。 另外, Dalvik 虛擬機(jī)的設(shè)計(jì)方面也有其獨(dú)特的地方。另外, Dalvik 虛擬機(jī)雖然沒(méi)有 采用現(xiàn)在流行虛擬機(jī)技術(shù)例如 JIT( just in time,及時(shí)編譯)技術(shù),但是 Dalvik 虛擬機(jī)仍然是一個(gè)具有很高性能的虛擬機(jī),在這不得不說(shuō)一下, Dalvik 虛擬機(jī)是一個(gè)設(shè)計(jì)相當(dāng)不錯(cuò)的虛擬機(jī)。其次 從 Google 對(duì) Dalvik 虛擬機(jī)設(shè)計(jì)中采用的 16 個(gè)通用寄存器中可以看出Android 的發(fā)展方向是基于 ARM 的硬件平臺(tái),這也和 Google 的戰(zhàn)略方向相一致。我個(gè)人覺(jué)得這是和 Android 所搭載的平臺(tái)以及 Google 的戰(zhàn)略有關(guān)的。另外,基于棧設(shè)計(jì)的虛擬機(jī)采用的是零地址指令,這樣的話指令形式比較緊湊。虛擬機(jī)的設(shè)計(jì)中,為了執(zhí)行的效率,有時(shí)會(huì)把這些寄存器一一映射到物理寄存器上,但是由于平臺(tái)的不同,導(dǎo)致通用寄存器數(shù)量 不同造成如果基于寄存器設(shè)計(jì)的虛擬機(jī)很難做到一一映射,執(zhí)行效率就會(huì)大打折扣。 基于棧設(shè)計(jì)的虛擬機(jī)能夠使指令變得簡(jiǎn)單,不需要考慮程序中的源寄存器和目的寄存器,只需要開(kāi)辟??臻g而不需要為臨時(shí)變量再開(kāi)辟一個(gè)存儲(chǔ)空間。在 APK 應(yīng)用程序程序包發(fā)布到移動(dòng)終端設(shè)備后,應(yīng)用程序運(yùn)行前會(huì)對(duì)其中的 DEX 文件進(jìn)行優(yōu)化,優(yōu)化后的文件格式稱(chēng)之為 DEY, DEY 文件被保存到緩存區(qū)域,虛擬機(jī)會(huì)在緩存中執(zhí)行這些文件。 Android 應(yīng)用開(kāi)發(fā)和 Dalvik 虛擬機(jī)同樣都使用 Java 開(kāi)發(fā)語(yǔ)言,在應(yīng)用程序開(kāi)發(fā)好以后我們就需要將這個(gè)應(yīng)用發(fā)布到 Android 移動(dòng)終端設(shè)備。 通過(guò)上面的研究可以看出 DEX文件格式是一種專(zhuān)為 Dalvik 虛擬機(jī)設(shè)計(jì)的壓縮格式,該格式的高性能很適合內(nèi)存和處理器速度有限的平臺(tái),從中可以看出 Android 是定位于嵌入式平臺(tái)的一個(gè)操作系統(tǒng)。這樣一來(lái),對(duì)于同一個(gè)應(yīng)用程序來(lái)說(shuō),相對(duì)于 Java的字節(jié)碼文件 Android 的 DEX 文件格式在 I/O 操作中所需要的時(shí)間也減少了,同時(shí)也減少了查找類(lèi)所需要的時(shí)間。在 Java 中 當(dāng)一個(gè)應(yīng)用程序定義了多個(gè)類(lèi)后,通過(guò)編譯則會(huì)產(chǎn)生相應(yīng)數(shù)目的 class 字節(jié)碼文件,在這些字節(jié)碼文件中則必然會(huì)有冗余信息,例如一些相同的類(lèi)庫(kù)會(huì)冗余等。使用 Java語(yǔ)言編寫(xiě)好的 Android 程序代碼,同樣是先用 Java 編譯器編譯成為字節(jié)碼文件,但是在這之后還需通過(guò) Google 提供的一個(gè) DX 工具將編譯好的字節(jié)碼轉(zhuǎn)換成為DEX 文件,然后 Dalvik 虛擬機(jī)通過(guò) DEX 文件獲得執(zhí)行的代碼。在 Android 中不再使用字節(jié)碼文件而是一種 Android 所特有的 DEX( Dalvik EXecutable)文件。 Android 的上層應(yīng)用程序雖然是用 Java 開(kāi)發(fā)的,但是 Dalvik 虛擬機(jī)卻和傳統(tǒng)的 Java 虛擬機(jī)有著很大的區(qū)別,兩者是不兼容的。 Google 的工程師結(jié)合傳統(tǒng)的 Java 虛擬機(jī),根據(jù) Android 使用的平臺(tái)一般為移動(dòng)終端設(shè)備這樣一個(gè)特點(diǎn)重新設(shè)計(jì)的虛擬機(jī),這個(gè)虛擬機(jī)在 移動(dòng)終端設(shè)備上運(yùn)行效率上明顯比傳統(tǒng)的 Java 虛擬機(jī)應(yīng)用程序進(jìn)程 調(diào)用Runtime 中Android 函數(shù)庫(kù)函數(shù) Android Libraries Android Runtime Dalvik 虛擬機(jī) 交給 Dalvik虛擬機(jī)進(jìn)行處理 Libraries Dalvik 虛擬機(jī)調(diào)用 Libraries中相應(yīng)函 數(shù) 圖 22 應(yīng)用程序調(diào)用 Android Libraries 中函數(shù)的過(guò)程 要高許多。這樣的好處就在于那些使用 Java 語(yǔ)言很難實(shí)現(xiàn)但是在 C 或者 C++卻能很容易實(shí)現(xiàn)的功能也能通過(guò) Java 很容易等的實(shí)現(xiàn)。 也就是說(shuō)其實(shí) Android Libraries 中的函數(shù)只是 libraries 中的一些引用,當(dāng)一個(gè)上層的應(yīng)用程序調(diào)用 Dalvik 虛擬機(jī)中的核心庫(kù)函數(shù)時(shí),調(diào)用的其實(shí)只是一個(gè)函數(shù)名,并不是函數(shù)的具體實(shí)現(xiàn),然后 Dalvik 虛擬機(jī)對(duì)該函數(shù)進(jìn)行一些處理以后再通過(guò) Dalvik 虛擬機(jī)調(diào)用 libraries 中的相應(yīng)函數(shù),使之運(yùn)行。我們之前說(shuō)過(guò),我們開(kāi)發(fā)者可以調(diào)用 C和 C++的一些類(lèi)庫(kù)。 Android 函數(shù)庫(kù)和 Dalvik 虛擬機(jī)組成了 Android 的運(yùn)行時(shí)環(huán)境。 Dalvik虛擬機(jī)和傳統(tǒng)的 Java 虛擬機(jī)所不同之處的是傳統(tǒng)的 Java 虛擬機(jī)是一個(gè)虛擬機(jī)來(lái)為不同應(yīng)用程序提供服務(wù),而 Google 自己開(kāi)發(fā)的 Dalvik 虛擬機(jī)則是每一個(gè) Android 應(yīng)用程序都擁有一個(gè)其自身的 Dalvik 虛擬機(jī),換句話說(shuō)就是專(zhuān)屬于每一個(gè)應(yīng)用程序?qū)?yīng)著一個(gè) Dalvik 虛擬機(jī)而這個(gè) Dalvik 虛擬機(jī)相當(dāng)于一個(gè)執(zhí)行個(gè)體。在 Android 構(gòu)架圖中可以看到, 該系統(tǒng)采用的是一個(gè)叫 做 Dalvik 的虛擬機(jī)。 我們知道,對(duì)一個(gè)應(yīng)用程序而言,都采用一個(gè)屬于該應(yīng)用程序的進(jìn)程作為執(zhí)行的載體,同樣,對(duì)于 Android 也是,一個(gè)應(yīng)用程序也是有一個(gè)屬于它的進(jìn)程。這樣做的話能夠使 Android 的虛擬機(jī)的類(lèi)庫(kù)與 Java SE 的類(lèi)庫(kù)有非常大的相似性,進(jìn)而提高了 Java SE類(lèi)庫(kù)的兼容性,最大限度的降低了一個(gè)程序員從 Java 平臺(tái)開(kāi)發(fā)到 Andorid平臺(tái)開(kāi)發(fā)的難度,這樣就降低了對(duì) Android 開(kāi)發(fā)的準(zhǔn)備時(shí)間以及前期培訓(xùn)的費(fèi)用,從而降低了 Android 應(yīng)用程序開(kāi)發(fā)的周期以及開(kāi)發(fā)費(fèi)用, 這樣的話短時(shí)間內(nèi)就能讓 Google Android 系統(tǒng)能夠擁有大量的可執(zhí)行的應(yīng)用程序 。從 Android 的系統(tǒng)構(gòu)架圖中可以清楚的看到, Android Runtime 由 Android 函數(shù)庫(kù)( Android Libraries)和 Dalvik 虛擬機(jī)組成 [3]。 ⑧ SGL 底層的
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1