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

正文內(nèi)容

基于安卓的繪圖軟件開發(fā)與設(shè)計(jì)論文-文庫(kù)吧

2025-10-05 04:47 本頁(yè)面


【正文】 roid根據(jù)自身的需要,添加了一些內(nèi)核驅(qū)動(dòng),比如觸屏驅(qū)動(dòng),Binder驅(qū)動(dòng)等。(2) 第二層本地框架和Java運(yùn)行環(huán)境(LIBRARIES 和 ANDROID RUNTIME)。該層分為兩個(gè)部分,分別為系統(tǒng)類庫(kù)和Android運(yùn)行時(shí)組件:第一部分:系統(tǒng)類庫(kù) 系統(tǒng)庫(kù)是由C/C++編寫,是連接應(yīng)用程序框架層與Linux內(nèi)核層的重要紐帶,它支撐著整個(gè)應(yīng)用程序框架,這些庫(kù)是Android系統(tǒng)中共用的,上層應(yīng)用都可以通過(guò)Android應(yīng)用層序框架來(lái)使用這些系統(tǒng)庫(kù),其主要分為如下幾個(gè)部分:a) Surface Manager:主要用于控制圖像合成和繪制,管理顯示的數(shù)據(jù)。b) Media Framework:以O(shè)penCore為基礎(chǔ)進(jìn)行開發(fā),主要用于對(duì)多媒體功能的支持。c) SQLite:輕量級(jí)的數(shù)據(jù)庫(kù),其特點(diǎn)在于輕量性的設(shè)計(jì)結(jié)構(gòu),適合在手機(jī)上使用、占用資源非常少,運(yùn)行高效可靠,可移植性好。d) OpenGL|ES:根據(jù)OpenGL ES ,該庫(kù)可以將硬件的3D功能進(jìn)行最佳化處理和現(xiàn)實(shí),能夠很好的使用硬件加速或者優(yōu)化后的軟件加速。OpenGL ES 是從 OpenGL 裁剪定制而來(lái)的,他去除了OpenGL中 glBegin/glEnd,四邊形(GL_QUADS)、多邊形(GL_POLYGONS)等復(fù)雜圖元等許多非絕對(duì)必要的特性,以使其更加適合移動(dòng)設(shè)備[4]。e) FreeType:提供點(diǎn)陣字與向量字的描繪與顯示。f) SSL:是Secure Socket Layer的縮寫,處理保護(hù)網(wǎng)頁(yè)通訊的協(xié)議。g) WebKit:一套網(wǎng)頁(yè)瀏覽器的軟件引擎。h) Libc:一套標(biāo)準(zhǔn)的C系統(tǒng)函數(shù)庫(kù),它繼承自BSD,并專門為基于Linux嵌入式移動(dòng)設(shè)備進(jìn)行優(yōu)化和定制。i) SGL:Skia圖形庫(kù),底層的2D圖形引擎。第二部分:Android 運(yùn)行時(shí)。 Android應(yīng)用程序在Android RunTime中執(zhí)行,其運(yùn)行時(shí)分為核心庫(kù)和優(yōu)化過(guò)的Java虛擬機(jī)Dalvik。a) 核心庫(kù):包含了Android運(yùn)行時(shí)所需要的庫(kù)函數(shù)。b) Dalvik虛擬機(jī):Google針對(duì)移動(dòng)平臺(tái)對(duì)Java虛擬機(jī)進(jìn)行了優(yōu)化,形成了Dalvik虛擬機(jī),它更加快速和高效,更適合移動(dòng)設(shè)備。當(dāng)Java程序通過(guò)編譯。(3) 第三層——應(yīng)用程序框架(Application Framework)。應(yīng)用程序框架是Android平臺(tái)專門為應(yīng)用程序開發(fā)而進(jìn)行設(shè)計(jì)的,他提供了豐富的應(yīng)用程序開發(fā)所需要的API,為開發(fā)者進(jìn)行快速敏捷開發(fā)Android軟件提供了可能。 隱藏在應(yīng)用后面的是一系列的服務(wù)和系統(tǒng)[5],其中包括:a) Activity Manager:管理著Activity的生命周期以及維護(hù)這Activity的棧結(jié)構(gòu)。b) Window Manager:管理Android系統(tǒng)中的所有窗口程序。c) Content Provider:可以使不同類型不同功能的Android應(yīng)用程序之間分享數(shù)據(jù),提高了可擴(kuò)展性。d) View System:它是Android界面中最基本的組件,大部分高級(jí)組件都是基于View進(jìn)行改造,它決定了應(yīng)用程序的樣式。e) Notification Manager:它也是Android的特色之一,開發(fā)者可以在Android的狀態(tài)欄中顯示自己的通知信息,方便了用戶獲取消息的步驟。f) Resource Manager:管理應(yīng)用程序中的所有資源文件,它可以根據(jù)不同的設(shè)備分辨率、大小、方向、當(dāng)前語(yǔ)言來(lái)加載不同資源文件,提高了Android的自適應(yīng)性[6]。g) Location Manager(位置管理器):提供Android的地理信息服務(wù),比如地圖應(yīng)用。(4) 第四層——應(yīng)用程序?qū)?Applications)。應(yīng)用層是Android應(yīng)用程序的集合,Android平臺(tái)的電子設(shè)備,包括Android手機(jī)、Android平板、Android MPAndroid GPS等一系列電子產(chǎn)品的火熱,很大程度上歸功于大量豐富方便的Android軟件[7]。這其中包括客戶端、短信、日歷、地圖、瀏覽器、聯(lián)系人管理程序等等。從上文中得知Android的架構(gòu)是分層的,非常清晰,分工很明確。Android本身是一種疊層架構(gòu),它主要分成三層:操作系統(tǒng)、中間件、應(yīng)用程序。在這三層中,用到了大量開源項(xiàng)目,體現(xiàn)出這些開源項(xiàng)目的價(jià)值。 Android應(yīng)用組件通常Android主要由以下幾個(gè)組件來(lái)構(gòu)建一個(gè)完整的Android程序。但是,并不是所有的Android應(yīng)用程序都必須全部包含以下幾個(gè)組件,也可以由下面的一個(gè)或者多個(gè)來(lái)構(gòu)成。 ,它用于配置一個(gè)應(yīng)用程序運(yùn)行時(shí)所需要的一些聲明,這些聲明包含程序所需的權(quán)限、Activity信息等,每個(gè)android程序都必須含有一個(gè)manifest文件。 ActivityActivity是Android程序中最基本的組件,他是為用戶操作而展示的可視化用戶界面,是Android程序的表現(xiàn)層,顯示可視化的用戶界面,并接收與用戶交互所產(chǎn)生的交互事件。由于Activity是整個(gè)Android幾大組件中最重要的一個(gè),下面將進(jìn)行詳細(xì)介紹。 Activity棧結(jié)構(gòu)Activity是遵循一種“先進(jìn)后出”的規(guī)則,他呈現(xiàn)一種棧的結(jié)構(gòu)。當(dāng)一個(gè)新的Activity出現(xiàn)時(shí),前一個(gè)Activity成為中斷狀態(tài)并被放入到一個(gè)堆棧當(dāng)中。用戶可使用返回鍵使前面一個(gè)Activity返回出來(lái)。當(dāng)一個(gè)Activity不需要時(shí),也可以將其從歷史堆棧中移除。一般情況下,Android會(huì)為每一個(gè)應(yīng)用程序保存一個(gè)從主界面開始的歷史堆棧。當(dāng)系統(tǒng)資源不足時(shí),被壓入棧的Activity可能會(huì)被系統(tǒng)殺掉。:圖 Acitvity棧結(jié)構(gòu) Activity生命狀態(tài) Activity作為Android應(yīng)用程序最重要的一部分,他主要有4種狀態(tài),分別如下:a) 活動(dòng)狀態(tài):一個(gè)新的Activity啟動(dòng)后,該Activity就會(huì)被壓入棧中,他呈現(xiàn)在屏幕的最前端,處于棧頂位置,此時(shí)他可以直接和用戶進(jìn)行交互。b) 暫停狀態(tài):當(dāng)Activity被另一個(gè)透明或者Dialog樣式的Activity覆蓋部分遮擋時(shí),此時(shí)它依然和窗口管理器相連,系統(tǒng)會(huì)繼續(xù)維護(hù)其內(nèi)部狀態(tài),但是他已失去焦點(diǎn),不能進(jìn)行UI交互。c) 停止?fàn)顟B(tài):當(dāng)Activity在界面上完全不能被用戶看到,完全被遮擋時(shí),此時(shí)就出去停止?fàn)顟B(tài)。處于停止?fàn)顟B(tài)的Activity會(huì)很容易被系統(tǒng)回收,所以處于停止?fàn)顟B(tài)時(shí),一定要保存當(dāng)前的數(shù)據(jù)變量和當(dāng)前的界面狀態(tài),否則一但Activity退出或者關(guān)閉,當(dāng)前的數(shù)據(jù)和界面狀態(tài)就會(huì)失去。d) 非活動(dòng)狀態(tài):不在以上三種狀態(tài)中的就是非活動(dòng)狀態(tài)。即Activity被殺掉以后和啟動(dòng)之前,要手動(dòng)終止Activity可以在程序中調(diào)用finish方法。這個(gè)狀態(tài)下Activity已經(jīng)從Activity堆棧中移除,要重新啟動(dòng)才能顯示和進(jìn)行交互。圖 Activity的四種狀態(tài)的變換關(guān)系圖 Activity生命周期 Android平臺(tái)是個(gè)多任務(wù)操作系統(tǒng),他能夠保證在當(dāng)前任務(wù)未完成時(shí)和隨時(shí)切換到其他應(yīng)用程序。他具有自己的生命周期。:圖 Activity生命周期:a) onCreat()方法:當(dāng)Activity被啟動(dòng)時(shí),會(huì)最先回調(diào)該方法,在該回調(diào)函數(shù)中我們常常進(jìn)行一些程序初始化的工作。在Eclipse中,創(chuàng)建Android項(xiàng)目時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)Activity,在這個(gè)Activity中,默認(rèn)重寫了onCreat(Bundle savedInstanceState)方法,用于該Activity初始化。b) onStart()方法:當(dāng)Activity顯示在屏幕上時(shí),該函數(shù)被回調(diào)。c) onRestart()方法:當(dāng)Activity從停止?fàn)顟B(tài)進(jìn)入活動(dòng)狀態(tài)前,調(diào)用該函數(shù),該方法總是在onStart()方法以后執(zhí)行。d) onPause()方法:暫停Activity時(shí)被回調(diào),一般用來(lái)保存持久的數(shù)據(jù)或釋放占用的資源。該方法需要被非??焖俚膱?zhí)行,因?yàn)橹钡竭@個(gè)方法執(zhí)行完畢以前,下一個(gè)Activity都不能被恢復(fù)。e) onResume()方法:當(dāng)Activity由于暫停狀態(tài)恢復(fù)為活動(dòng)狀態(tài)時(shí)調(diào)用。調(diào)用后,此時(shí)的Activity位于Activity棧的棧頂。f) onStop()方法:當(dāng)Activity進(jìn)入停止?fàn)顟B(tài)時(shí),該函數(shù)被回調(diào)。g) onDestroy()方法: 在Activity被銷毀前,該函數(shù)被毀掉,主要用于釋放當(dāng)前Activity的資源,表示該Activity即將消失。 ServiceService是Android系統(tǒng)中可以在后臺(tái)運(yùn)行的服務(wù)組件,一般使用Service時(shí)不提供用戶界面,但是如果有特別需要也可以使用WindowManager表現(xiàn)一個(gè)懸浮窗口界面。它可以長(zhǎng)期在后臺(tái)運(yùn)行,進(jìn)程優(yōu)先級(jí)較高,不會(huì)輕易被系統(tǒng)回收,也不受Activity切換的影響。其特點(diǎn)如下:a) 比Activity的優(yōu)先級(jí)高,在后臺(tái)運(yùn)行時(shí)不會(huì)非常容易被系統(tǒng)Kill掉。b) 它沒有UI界面,但是特殊情況可以使用WindowManager創(chuàng)建窗口。c) 可以在不同應(yīng)用中進(jìn)行通信。 BroadcastReceiverBroadcastReceiver是用于接收廣播的模塊,廣播是一種同時(shí)通知多個(gè)對(duì)象的事件通知機(jī)制[6]。類似日常生活中的廣播,可以允許多個(gè)人同時(shí)收聽,也運(yùn)行不收聽。,()來(lái)進(jìn)行注冊(cè)。當(dāng)一個(gè)BroadcastReceiver被出發(fā)時(shí),系統(tǒng)會(huì)根據(jù)選擇來(lái)啟動(dòng)相應(yīng)的程序。 本章小結(jié)本章首先對(duì)Android的系統(tǒng)架構(gòu)進(jìn)行詳細(xì)的層次化分析,對(duì)Android中常用的幾個(gè)組件進(jìn)行簡(jiǎn)單的介紹,特別對(duì)Android的Activity進(jìn)行詳細(xì)介紹,介紹了其生命周期和他的Activity棧結(jié)構(gòu)。10浙江大學(xué)碩士學(xué)位論文 第3章Error! No text of specified style in document.第3章 MyPaint筆刷引擎原理簡(jiǎn)介 MyPaint介紹MyPaint是一款開源的、為畫家開發(fā)軟件。他支持豐富的模擬自然繪畫的筆刷,性能非常的好,而且它可以很好的支持筆的壓力和角度,能最大程度上模擬出自然繪畫的效果。MyPaint筆刷引擎的高性能和出色的繪畫效果,其引擎已被很多其他繪圖軟件采用,如PostworkShop,Pixelmator等。圖 MyPaint常見的一些筆刷效果: MyPaint筆刷引擎主要結(jié)構(gòu)體介紹在MyPaint筆刷引擎中,含有兩個(gè)主要的結(jié)構(gòu),一個(gè)為MyPaintBrush,它負(fù)責(zé)更新當(dāng)前筆刷參數(shù)和加載新的筆刷參數(shù),另一個(gè)為MyPaintFixedTiledSurface,它主要維護(hù)當(dāng)前繪畫區(qū)域中數(shù)據(jù)。由于MyPaint的筆刷引擎是由C語(yǔ)言進(jìn)行開發(fā),為了實(shí)現(xiàn)C++中類和繼承的效果,它使用結(jié)構(gòu)體和函數(shù)指針來(lái)進(jìn)行描述。 MyPaintFixedTiledSurface結(jié)構(gòu)介紹 :圖 MyPaintFixedTiledSurface組成結(jié)構(gòu)在MyPaintFixedTiledSurface中,包含了名為_MyPaintTiledSurface的結(jié)構(gòu)體,而_MyPaintTiledSurface結(jié)構(gòu)體中又包含了_MyPaintSurface這個(gè)結(jié)構(gòu)體。下面將詳細(xì)介紹這3個(gè)結(jié)構(gòu)體的作用。a) MyPaintFixedTiledSurface MyPaintFixedTiledSurface維護(hù)了整個(gè)畫布區(qū)域的數(shù)據(jù),該數(shù)據(jù)主要包含用戶繪畫的內(nèi)容,畫布數(shù)據(jù)為寬為width,長(zhǎng)為height,數(shù)據(jù)類型為uint16_t的矩形區(qū)域,這塊數(shù)據(jù)由uint16_t 類型的指針tile_buffer進(jìn)行維護(hù)。 為了提高性能,將MyPaintFixedTiledSurface中的數(shù)據(jù)分割成個(gè)多個(gè)名為tile的小正方形進(jìn)行并行處理,小正方形的寬為tile_size,MyPaint中將tile_size大小默認(rèn)設(shè)置為64。tiles_width和tiles_height分別表示畫布寬含有小正方形的個(gè)數(shù)和高含有的個(gè)數(shù)。在處理畫布數(shù)據(jù)時(shí),都是以tile為最小處理單元。 :圖 MyPaintFixedTiledSurface數(shù)據(jù)抽象形式b) _MyPaintTiledSurface _MyPaintTiledSurface的職責(zé)為響應(yīng)外部請(qǐng)求。tile_request_start為函數(shù)指針。當(dāng)用戶需要操作某個(gè)tile內(nèi)的數(shù)據(jù)時(shí),調(diào)用tile_request_start,更新tile_buffer指針指向的位置,使其指向當(dāng)前需要更新的tile區(qū)域的首位置。當(dāng)前tile處理完畢時(shí)調(diào)用tile_request_end進(jìn)行相關(guān)請(qǐng)求執(zhí)行完畢的操作。 _OperationQueue為一個(gè)map,它的鍵為需要更新的tile在畫布中的x,y坐標(biāo),值為所操作的tile需要的外部參數(shù)。 在_MyPaintTiledSurface中還實(shí)現(xiàn)了_MyPaintSurface定義的一些抽象接口。c) _MyPaintSurface _MyPaintSurface是一個(gè)抽象數(shù)據(jù)結(jié)構(gòu),他定義了一些筆刷引擎中基本的數(shù)據(jù)處理方法draw_dab和get_color,并在_MyPaintTiledSurface中進(jìn)行了實(shí)現(xiàn)。 draw_dab主要負(fù)責(zé)單個(gè)筆觸在畫布中的渲染。它被定義為一個(gè)函數(shù)指針,其函數(shù)原型為:int mypaint_surface_draw_dab(MyPaintSurface *self, float x, float y, float radius, float color_r, float color_g, float color_b, float opaque, float hardness, float al
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1