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

正文內(nèi)容

基于android的智能手機(jī)開(kāi)發(fā)畢業(yè)設(shè)計(jì)-wenkub.com

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

【正文】 有了 Google Android 這些很強(qiáng)勁的優(yōu)勢(shì),我想,在不久的將來(lái)伴隨著 3G的普及, Android 必定能改變現(xiàn)在只能手機(jī)市場(chǎng)的格局,開(kāi)辟出一個(gè)新的世界 。還有, Android 上層采用了 Java 語(yǔ)言作為開(kāi)發(fā),讓開(kāi)發(fā)更為簡(jiǎn)單,可以使 Java SE 陣營(yíng)的開(kāi)發(fā)者不需要花太多的時(shí)間便能轉(zhuǎn)投 Android 陣營(yíng),這樣自然的為 Android 開(kāi)發(fā)提供大量的人力資源。 游戲:此游戲是一款簡(jiǎn)單的坦克大戰(zhàn)游戲通過(guò)方向鍵控制己方坦克的移動(dòng)方向,確認(rèn)鍵發(fā)射子彈,并記錄消滅敵人的數(shù)量。 簡(jiǎn)單的幾步就將 Android 的開(kāi)發(fā)平臺(tái)搭建好了,雖然我使用的是Windows7 操作系統(tǒng),但是方法同樣適用于 Windows xp 等其他 Windows 平臺(tái)。 當(dāng)平臺(tái)搭建好以后需要?jiǎng)?chuàng)建一個(gè) Android Virtual Device,這一步是很關(guān)鍵的一步,如果不創(chuàng)建這個(gè) AVD 的話,在 Eclipse中編譯運(yùn)行 Android 應(yīng)用程序時(shí)就會(huì)提示找不到 AVD,從而無(wú)法編譯。有了 Eclipse 還不夠,因?yàn)槭褂?Java 語(yǔ)言進(jìn)行開(kāi)發(fā),應(yīng)該有由SUN 公司提供的 Java SDK(其中包含了 JRE: Java Runtime Environment)。 應(yīng)用程序?qū)印M瑫r(shí)Android Runtime 中的 Android Libraries 也存放在這個(gè)文件夾下,與其相對(duì)應(yīng)的文件為 \system\lib\。 Linux內(nèi)核層。 ⑦ \system\media:存放鈴聲的文件夾 ⑧ \system\sounds:用于 存放音樂(lè)文件。 ③ \system\etc:與 Linux 系統(tǒng)下的 \system\etc 文件夾沒(méi)有本質(zhì)的區(qū)別,都用于保存系統(tǒng)的配置文件。同時(shí)可以看到,該文件夾下的文件都是 APK 格式的文件。 對(duì)于 配置中還有“ receiver”,“ service”和“ provider”標(biāo)簽,分別對(duì)應(yīng)了剩下的 Intent Receiver、 Service 和 Content Provider 三個(gè)應(yīng)用的組成部分。 剩下的 8~11 行是一對(duì)定義了 Activity 性質(zhì)的“ intentfilter”標(biāo)簽以及“ intentfilter”包含的另外兩個(gè)標(biāo)簽“ action”和“ category”標(biāo)簽之所以這幾個(gè)標(biāo)簽一同說(shuō)是因?yàn)椤?intentfilter”標(biāo)簽的性質(zhì)是由“ action”和“ category”標(biāo)簽來(lái)說(shuō)明的。在上面給出的例子中,僅僅有一組“ activity”標(biāo)簽,這也說(shuō)明了給出的例子的應(yīng)用程序只有一個(gè) Activity。 第 6 行和第 13 行是一對(duì)“ application”標(biāo)簽,該標(biāo)簽中定義了所有應(yīng)用程序所使用的 Activity、 Intent Receiver、 Service 等。 第 1 行是一般 xml 文件都有的頭部信息說(shuō)明,其中包括 xml 的版本和文件編碼方式。但是在 Android 應(yīng)用程序開(kāi)發(fā)中,該文件是不可缺少的。 Content Provider Content Provider 提供給你的應(yīng)用程序與其他應(yīng)用程序共享數(shù)據(jù)的一個(gè)功能。但是當(dāng)播放器被切換到后臺(tái)以后,所有的 Activity 都放到歷史堆棧中了,而這時(shí)播放器任然繼續(xù)進(jìn)行播放,而當(dāng)一首歌曲播放完了以后,還會(huì)根據(jù)播放列表中的信息播放下一首歌曲。當(dāng)一個(gè)你所關(guān)注的時(shí)間發(fā)生時(shí),我們的應(yīng)用不需要主動(dòng)去調(diào)用 intent receiver,系統(tǒng)會(huì)在一個(gè)合適的時(shí)候去調(diào)用我們的程序的。當(dāng)你希望你的應(yīng)用能夠捕獲一個(gè)外部事件并作出響應(yīng)時(shí),比如手機(jī)快沒(méi)電了,收到一條新的短信息等。對(duì)于這些,每一個(gè)屏都是一個(gè) Activity。因此當(dāng)我們使用到任何一個(gè)組件時(shí)都需要在這個(gè)配置文件中進(jìn)行登記,否則就算是你在代碼中使用了這個(gè)組件,但是Android 系統(tǒng)也是找不到該組件的。對(duì)于一個(gè)應(yīng)用程序來(lái)說(shuō),不一定這四個(gè)部分都需要。通過(guò)這些應(yīng)用程序框架層提供的服務(wù)程序員能夠方便的開(kāi)發(fā)一個(gè)界面優(yōu)秀功能強(qiáng)大易于共享的的應(yīng)用程序。②內(nèi)容提供器( content providers),有了內(nèi)容提供器,一個(gè)應(yīng)用程序可以共享它自己的數(shù)據(jù)或者訪問(wèn)另外一個(gè)應(yīng)用程序中共享的數(shù)據(jù)。同時(shí)該框架中的任何一個(gè)功能模塊都是等價(jià)的,任何一個(gè)應(yīng)用程序都可以發(fā)布其功能模塊,該功能模塊可以替代當(dāng)前的任意一個(gè)功能模塊,但前提是必須遵循框架的安全限制 [ 4] ,另外,其他的任意應(yīng)用程序能夠使用這個(gè)發(fā)布的功能模塊。對(duì)于以上說(shuō)的六種進(jìn)程應(yīng)該分別有一系統(tǒng)給其賦予的值,其大小順序應(yīng)該是空進(jìn)程大于內(nèi)容供應(yīng)節(jié)點(diǎn)大于后臺(tái)進(jìn)程大于次要服務(wù)大于可見(jiàn)進(jìn)程大于前臺(tái)進(jìn)程,而這個(gè)系統(tǒng)賦予的值則是基值。當(dāng)進(jìn)程進(jìn)入后臺(tái)以后,系統(tǒng)將會(huì)分配一個(gè)更高的值給該進(jìn)程。⑷后臺(tái)進(jìn)程,可以這么說(shuō)后臺(tái)進(jìn)程就是一個(gè)前臺(tái)進(jìn)程被另一個(gè)前臺(tái)進(jìn)程替換后,進(jìn)程沒(méi)有結(jié)束,但是已經(jīng)不再 是前臺(tái)進(jìn)程的一個(gè)狀態(tài)。 在 Android 中進(jìn)程被分成了前臺(tái)進(jìn)程( foreground)、可見(jiàn)進(jìn)程( visible)、次要服務(wù)( secondary server)、后臺(tái)進(jìn)程( hidden)、內(nèi)容供應(yīng)節(jié)點(diǎn)( content provider)、空進(jìn)程 ( empty)六種。另外,對(duì)于一些只讀庫(kù)所有虛擬機(jī)實(shí)例都和 Zygote 進(jìn)程共享一塊內(nèi)存區(qū),這樣大大減少了對(duì)內(nèi)存的開(kāi)銷(xiāo)。 Zygote 進(jìn)程的功能有點(diǎn)類(lèi)似于 Linux 中的 1 號(hào)進(jìn)程,在 Linux 當(dāng)系統(tǒng)啟動(dòng)時(shí)即產(chǎn)生 1號(hào)進(jìn)程,而其他的進(jìn)程都由 1 號(hào)進(jìn)程創(chuàng)建。但 Dalvik虛擬機(jī)要實(shí)現(xiàn)如線程機(jī)制,內(nèi)存的分配和管理等操作的話,仍然需要底層操作系統(tǒng)的支持。它就是本著能夠并發(fā)執(zhí)行多個(gè)虛擬機(jī)的設(shè)計(jì)思路來(lái)編寫(xiě)的。雖然移植性降低了,但是使用二地址和三地址的指令,使得代碼執(zhí)行效率大大提高。 雖然基于棧結(jié)構(gòu)的虛擬機(jī)有上述的一些優(yōu)點(diǎn),但是為什么 Google 不采用基于棧的設(shè)計(jì)而采用基于寄存器結(jié)構(gòu)設(shè)計(jì) Dalvik 虛擬機(jī)呢。另外基于棧設(shè)計(jì)的虛擬機(jī)移植性比基于寄存器設(shè)計(jì)的虛擬機(jī)要高很多,從組成原理和嵌入式操作系統(tǒng)課程中我們知道,一般的 32 位 x86處理器的通用寄存器和 32位的 ARM 的通用寄存器數(shù)目是不同的。我們把一個(gè)開(kāi)發(fā)好的應(yīng)用的 Java代碼經(jīng)過(guò)編譯以后生成 .class的字節(jié)碼文件,通過(guò) Android 的 DX工具轉(zhuǎn)換成 .DEX格式的文件,最后使用 Android 的appt 打包工具把 DEX 文件,源文件以及 文件組合成一個(gè) APK 應(yīng)用程序包,然后就能發(fā)布到移動(dòng)終端設(shè)備上了。另外 DEX 使用等長(zhǎng)的指令,這樣的話能夠使得 DEX 文件盡量的簡(jiǎn)潔,從而提高了解析速度。 Google 棄用字節(jié)碼文件而采用特有的 DEX 文件格式,這表明在Android實(shí)際運(yùn)行中 DEX文件格式相對(duì)于字節(jié)碼文件格式應(yīng)該有一些獨(dú)特的優(yōu)勢(shì)。 首先,眾所周知在 Java 中,所有的程序代碼會(huì)被編譯器編譯成字節(jié)碼( .class)文件,然后再打包成 JAR 文件,在執(zhí)行時(shí) Java 虛擬機(jī)就從 JAR文件中提取出相應(yīng)的字節(jié)碼文件來(lái)執(zhí)行。 Dalvik 虛擬機(jī) Dalvik 虛擬機(jī)是 Android Runtime 的一個(gè)組成部分,之所以要把他拿出來(lái)單獨(dú)進(jìn)行研究是因?yàn)椋?Dalvik 虛擬機(jī)作為一個(gè) Java虛擬機(jī),但它和普通的 Java 虛擬機(jī)有著一些不同。其實(shí)就是這樣 Android Runtime 與 Libraries 在同一層的設(shè)計(jì)并同時(shí)讓 Android Runtime 中的Android Libraries 引用 libraries 中的函數(shù),而通過(guò) Dalvik虛擬機(jī)編譯以后再調(diào)用這些函數(shù)做到上面所述的功能。有關(guān) Dalvik 虛擬機(jī)的內(nèi)容將在下一個(gè)部分詳細(xì)說(shuō)明。之前說(shuō)過(guò) Android 采用 Java 作為開(kāi)發(fā)語(yǔ)言,在進(jìn)程執(zhí)行時(shí)應(yīng)該會(huì)有一個(gè) Java虛擬機(jī)來(lái)為進(jìn)程提供服務(wù)。 Android函數(shù)庫(kù)中里包含了大部分 Java程序語(yǔ)言所需要調(diào)用的函數(shù)庫(kù),如 data structure, work, utilities, file system 等,其中很多代碼是源于 2021 年的 Apache Harmony 項(xiàng)目。 ⑦ FreeType 位圖 (bitmap)和矢量 (vector)字體顯示。 ④ LibWebCore 一個(gè)支持 Android 瀏覽器和一個(gè)可嵌入的 web視圖的最新的 web 瀏覽器引擎。以下列舉了一些庫(kù)函數(shù) [2]: ①系統(tǒng) C 庫(kù) 一個(gè)專(zhuān)門(mén)為 Embedded Linux 設(shè)備定制的從 BSD( Berkeley Software Distribution 伯克利軟件套件)繼承來(lái)的標(biāo)準(zhǔn) C 系統(tǒng)函數(shù)庫(kù)。 ⑶增加了 Android 相關(guān)的驅(qū)動(dòng)。 內(nèi)核層 Google Android 作為一個(gè)開(kāi)源的操作系統(tǒng)其內(nèi)核采用了同樣開(kāi)源的被業(yè)界認(rèn)為是相當(dāng)穩(wěn)定的 Linux 作為其內(nèi)核,其中 Linux 內(nèi)核包括以下功能模塊:安全 (Security)、存儲(chǔ)器管理 (Memory Management)、進(jìn)程管理(Process Management)、網(wǎng)絡(luò)堆棧 (Network Stack)、驅(qū)動(dòng)程序模型 (Driver Model)等,另外也在給 其上層的軟件和下層硬件間建立起一個(gè)抽象層(Abstraction Layer)。 Google 采用這樣的模式可能是因?yàn)橄鄬?duì)于 C 或者 C++, Java 的開(kāi)發(fā)周期更短的緣故,這樣的話就能在短時(shí)間內(nèi)為 Android 提供大量的應(yīng)用軟件。 2 Android 的系統(tǒng)研究 Android 構(gòu)架 Android 的構(gòu)架綜述 Android 是一個(gè)包括操作系統(tǒng),中間件以及一些重要應(yīng)用程序的專(zhuān)門(mén)針對(duì)移動(dòng)設(shè)備的層次結(jié)構(gòu)的軟件集 [1]。雖然 Android 的應(yīng)用程序是用 Java語(yǔ)言開(kāi)發(fā)的,但是 Android 給應(yīng)用程序開(kāi)發(fā)者提供了一系列的 C/C++ 程序庫(kù),通過(guò) Android 的一些特殊的設(shè)計(jì),我們開(kāi)發(fā)者可以使用這些庫(kù),這在后面的敘述中將看到。其整個(gè)系統(tǒng)由應(yīng)用程序( Application),應(yīng)用程序框架( Application Framework),應(yīng)用程序庫(kù)( Libraries), Android運(yùn)行庫(kù)( Android Runtime), Linux 內(nèi)核( Linu
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1