Android手機(jī)軟件開發(fā)設(shè)計(jì)說明書_第1頁
Android手機(jī)軟件開發(fā)設(shè)計(jì)說明書_第2頁
Android手機(jī)軟件開發(fā)設(shè)計(jì)說明書_第3頁
Android手機(jī)軟件開發(fā)設(shè)計(jì)說明書_第4頁
Android手機(jī)軟件開發(fā)設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、設(shè)計(jì)說明書目錄引言 1發(fā)展趨勢 2Android系統(tǒng)框架研究 3Android 架構(gòu)分析 4類庫5Android運(yùn)行日組 7Android解剖分析 8Android程序結(jié)解析 9游戲功能介9功能介紹10功能背景10功能簡介 11游戲策劃及準(zhǔn)備工作 12游戲的策劃 .12Android平臺(tái)下游戲白準(zhǔn)備工作 13Android平臺(tái)下游的框架 .13各類的簡要介紹 .14系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn) 14設(shè)計(jì)結(jié)構(gòu) 14設(shè)計(jì)思想 15總結(jié) 33參考文獻(xiàn) 34基于Android平臺(tái)的快樂數(shù)獨(dú)引言目前隨著移動(dòng)設(shè)備越來越普及以及移動(dòng)設(shè)備的硬件的提升,移動(dòng)設(shè)備的功能 越來越完善,移動(dòng)設(shè)備的系統(tǒng)平臺(tái)也日漸火熱起來。目前國內(nèi)最

2、常見的移動(dòng)開發(fā) 平臺(tái)有Symbian, iPhone , Windows Phone以及當(dāng)下正在逐步興起的 Android。 目前為止國內(nèi)已經(jīng)有很多 Android系統(tǒng)的用戶。截止2010年第二季度Android 系統(tǒng)的國內(nèi)市場占有率已經(jīng)過10%在西歐以及北美智能手機(jī)市場占有率也在20%fc右。可見Android系統(tǒng)正在崛起之中。但是對于 Android系統(tǒng)的應(yīng)用和開 發(fā)在國內(nèi)仍然屬于起步和探索階段。急需要大量的相關(guān)技術(shù)和人員的投入。下面首先介紹一下 Android系統(tǒng)。Android是基于Linux內(nèi)核的軟件平臺(tái)和 操作系統(tǒng),是Google在2007年11月5日公布的手機(jī)系統(tǒng)平臺(tái),早期由 G

3、oogle 開發(fā),后由(OpenHandset Alliance )開發(fā)。它采用了軟件堆層(Software stack , 又名以軟件疊層)的架構(gòu),主要分為三部分。低層以 Linux核心工作為基礎(chǔ),只 提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程式的一部分。本文對目前應(yīng)用的 Symbian、WindowsMobile、MacOS沏RIM等平臺(tái)的 現(xiàn)狀進(jìn)行了分析與比較。進(jìn)而研究分析了Android平臺(tái)的系統(tǒng)架構(gòu)和組件模型,接著解析了 Android中的重要API和應(yīng)用構(gòu)成,以Intent和生命周期的機(jī)制。 在此基礎(chǔ)上,基于Android平臺(tái)設(shè)計(jì)和開發(fā)校園資訊軟件。本系統(tǒng)

4、界面友好、操 作便捷,具有良好的可擴(kuò)展性和可維護(hù)性;系統(tǒng)經(jīng)過測試,可以穩(wěn)定運(yùn)行,能夠滿足手機(jī)用戶的基本需求發(fā)展趨勢隨著3G應(yīng)用的不斷開發(fā)推廣,用戶會(huì)越來越需要更加個(gè)性化、優(yōu)質(zhì)化的多媒 體數(shù)據(jù)服務(wù),用戶希望能夠隨時(shí)、隨地?zé)o縫利用3G網(wǎng)絡(luò)進(jìn)行辦公、網(wǎng)上交易、游戲娛樂、欣賞影視節(jié)目、收聽和下載音樂等。根據(jù)觀察,在不久的將來,移動(dòng) 手機(jī)終端將會(huì)在以下若干方面具有新的發(fā)展。首先,提供智能提醒服務(wù),手機(jī)能夠與用戶實(shí)現(xiàn)密切配合,并監(jiān)控用戶的個(gè) 性化設(shè)置(保持在本地或者云端),當(dāng)重要時(shí)間點(diǎn)或關(guān)鍵事物需要用戶注意時(shí), 手機(jī)會(huì)向用戶發(fā)出“提醒”服務(wù),服務(wù)包括日程提醒、交通狀況、最佳行車路線、 最佳泊位、優(yōu)惠活動(dòng)、

5、實(shí)時(shí)新聞、體育賽事、天氣情況、股市行情、好友活動(dòng)、 親友生日等。其次,提供虛擬現(xiàn)實(shí)體驗(yàn),手機(jī)可以借助傳感器、周邊設(shè)備了解到您的身邊 環(huán)境,并根據(jù)收集到的信息,智能的為您提供有用的信息,如在網(wǎng)絡(luò)世界養(yǎng)的寵 物,可以借助音頻設(shè)備表達(dá)叫聲,借助馬達(dá)和位置傳感器等傳遞其跳、 躍等行為 信息;也可以在用戶購物時(shí),提供相關(guān)的同類產(chǎn)品價(jià)格參考,提醒用戶附近的那 個(gè)賣場更物美價(jià)廉;根據(jù)實(shí)際場景,為用戶及時(shí)提供正在操控的產(chǎn)品的使用方法 提醒。接著,發(fā)揮物聯(lián)網(wǎng)的優(yōu)勢,借助無處不在的傳感器,可以感知并分享到周圍 世界的海量信息,這些信息將在“云端”得到整合,幫助用戶及時(shí)、準(zhǔn)確的獲得 氣息信息、交通路況。另外借助物聯(lián)

6、網(wǎng),用戶間可以方便、快速的分享資源,協(xié) 助和交互。如進(jìn)行端到端的多人游戲、照片分享、書籍分享、音樂分享等。然后,作為經(jīng)濟(jì)工具,在交通或者信息不發(fā)達(dá)的情況下,幫助用戶找到最佳 的市場,獲得有價(jià)值的幫助信息,幫助用戶從事的經(jīng)濟(jì)活動(dòng)的收益率。最后,更加智能、安全的設(shè)備,隨著智能手機(jī)的不斷普及和更加智能,手機(jī) 軟件的更新、升級將會(huì)變得越發(fā)簡單,并會(huì)為用戶提供工具或信息,讓用戶有能 力和權(quán)力決策那些內(nèi)容可以瀏覽、 下載或分享。在安全性上也將更加出色,能夠 十分有效的幫助用戶進(jìn)行獲取到的內(nèi)容的管理, 保護(hù)用戶的個(gè)人隱私和基于手機(jī) 的金融活動(dòng)如電子錢包、在線支付、在線貿(mào)易等。Android系統(tǒng)架構(gòu)研究And

7、roid 是一個(gè)包含操作系統(tǒng)、中介架構(gòu)層及應(yīng)用程序所產(chǎn)生出來的軟件堆棧架構(gòu)。由下而上,其核心為嵌入式Linux2.6 作業(yè)系統(tǒng),向上搭配Google 為Android 開發(fā)的類庫及Android 運(yùn)行時(shí),再配合應(yīng)用程序架構(gòu),來開發(fā)各種不同的應(yīng)用程序。Android 的功能特征(l) 應(yīng)用程序架構(gòu): 在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基礎(chǔ)組件,在開發(fā)應(yīng)用程序時(shí), 就可以直接調(diào)用這些組件來使用,可以節(jié)省開發(fā)應(yīng)用程序的心力及時(shí)間。(2)Dalvik 虛擬機(jī)器:在Android平臺(tái)上所使用Java虛擬機(jī),不是Sim公司的標(biāo) 準(zhǔn) Java 虛擬機(jī),而是使用Google 自主開發(fā)的代號為Dalvik 的虛

8、擬機(jī),它在保證 API 方面的兼容的同時(shí),針對移動(dòng)手機(jī)進(jìn)行了大幅優(yōu)化,占用資源更小,運(yùn)行效率更高。(3) 集成的瀏覽器: 集成的瀏覽器是Android 內(nèi)建的瀏覽器,是以WebKit 的瀏覽引擎為基礎(chǔ)所開發(fā)成的。WedKit 是一個(gè)開源瀏覽器網(wǎng)頁排版引擎,目前使用WebKit 引擎的瀏覽器主要有:Safari , Midori , Epiphany 等。 配合 Android 手機(jī)的功能,可以在瀏覽網(wǎng)頁時(shí),達(dá)到更好的效果,例如: 局部性的縮放網(wǎng)頁上的資訊、觸控式的操作等效果。(4) 優(yōu)化的繪圖能力: 在程序里可以用到的繪圖功能分為2D 與 3D 兩個(gè)方面。在2D 方 面 , Android 提

9、 供 了 一 套 特 有 的 類 庫 (SGL; 而 在 3D 方 面 則 是 使 用 OpenGLES1.0(openGLfor Embeddedsystems) 規(guī)范的類庫。它們是一種非??斓膱D形引擎,并且支持硬件加速。(5)SQLite 數(shù)據(jù)庫 :SQLite 提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQLite 是一款輕型的數(shù)據(jù)庫,它的設(shè)計(jì)目標(biāo)是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源非常低。它能夠支持Windows/Linux/U nix 等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如 php, Java等,還有ODBCS口,同樣比起 Mysql, PostgreSQL 來講,

10、它的處理速度比它們都快。它無需安裝和管理配置,它是一個(gè)儲(chǔ)存在單一磁盤文件中的完整數(shù)據(jù)庫,體積小只有250KB但支持?jǐn)?shù)據(jù)庫大小至2TR它雖然很小巧,但是支持的 SQL語句毫不遜色于其它開源數(shù)據(jù)庫。同時(shí)它 還支持事務(wù)功能和并發(fā)處理等等。SQLite 也是一套開放性的關(guān)聯(lián)式資料庫,其特點(diǎn)在于輕量性方面的設(shè)計(jì)結(jié)構(gòu),更適合在手機(jī)上使用。(6) 多媒體的支持能力: 主要用于播放媒體文件。這同時(shí)包括對音頻( 如播放 MP3或其他音樂文件等) 和視頻 ( 如播放從網(wǎng)上下載的視頻) 的支持, 并支持 “播放 URI地址” (Note:URI 即是統(tǒng)一資源識別地址)模式在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的

11、靜態(tài)圖像格式,例如 JPG、PNG GIF等格式。(7)GSM 技術(shù) :Global System for Mobile Communications ,即全球移動(dòng)通訊系統(tǒng),俗稱”全球通”,是一種起源于歐洲的移動(dòng)通信技術(shù)標(biāo)準(zhǔn),是第二代移動(dòng)通信技術(shù), 其開發(fā)目的是讓全球各地可以共同使用一個(gè)移動(dòng)電話網(wǎng)絡(luò)標(biāo)準(zhǔn),讓用戶使用一部手機(jī)就能行遍全球。GSMK術(shù)是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā) Android 應(yīng)用程序時(shí)可以突出的特點(diǎn)之一。(8)藍(lán)牙、EDGE 3G及Wi-Fi:藍(lán)牙是一種新型、開放、低成本、短距離的無線連接技術(shù), 可取代短距離的電纜,實(shí)現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE(EnhancedD

12、ataRate for GSM , Evolution),即增強(qiáng)型數(shù)據(jù)速率 GSM進(jìn)技術(shù)。EDGE1一種從GSkgij 3G的過渡技術(shù),它主要是在 GSMH(統(tǒng)中采用了一種新的調(diào)制方法,即最 先進(jìn)的多時(shí)隙操作和SPSKM制技術(shù)。由于8PSKM將現(xiàn)有GSMR絡(luò)采用的GMSK 調(diào)制技術(shù)的信號空間從2擴(kuò)展到8, 從而使每個(gè)符號所包含的信息是原來的4倍。Wi-Fi(WirelessFidelity) ,即無線保真技術(shù),與藍(lán)牙技術(shù)一樣,同屬于在辦公室和家庭中使用的短距離無線技術(shù)。該技術(shù)使用的是2.4GHz附近的頻段,該頻段目前尚屬?zèng)]用許可 的無線 頻 段。其 目 前可使用的標(biāo)準(zhǔn) 有兩個(gè),分別是IEEE8

13、02.lla和IEEE802.11b。這些通訊能力也是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā)Android 應(yīng)用程序時(shí)可以突出的特點(diǎn)之一。(9)GPS: Global Positioning System ,即全球定位系統(tǒng),它是一個(gè)由覆蓋全球的 24 顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個(gè)系統(tǒng)可以保證在任意時(shí)刻和任何地點(diǎn)都可以同時(shí)觀測到4 顆衛(wèi)星, 以保證衛(wèi)星可以采集到該觀測點(diǎn)的經(jīng)緯度和高度,以便實(shí)現(xiàn)導(dǎo)航、 定位、 授時(shí)等功能。這項(xiàng)技術(shù)可以用來引導(dǎo)飛機(jī)、船舶、 車輛以及個(gè)人。這個(gè)同樣也是屬于手機(jī)硬體方面的體現(xiàn),也是在開發(fā)Android 應(yīng)用程序是可以突出的特點(diǎn)之一。Android架構(gòu)分析在Android SD

14、。,定義了讓開發(fā)者使用與核心應(yīng)用程序相同 API的權(quán)限應(yīng) 用程序框架是為了要簡化組件的重新利用而設(shè)計(jì)的,應(yīng)用程序可以發(fā)布功能為其 它應(yīng)用程序所使用。但是,這要受限于應(yīng)用程序架構(gòu)的安全機(jī)制, 使用者以用同 樣的機(jī)制來新增、置換組件。目前所有的應(yīng)用程序是由服務(wù)及系統(tǒng)來組成,包含 有:(l) 一套強(qiáng)大和可擴(kuò)展的視圖系統(tǒng):用來建構(gòu)一個(gè)應(yīng)用程序的基本組件,包了在開 發(fā)系統(tǒng)畫面時(shí),常用的列表、網(wǎng)格、文本框、按鈕等控制項(xiàng),甚至是內(nèi)嵌的Web瀏覽器。(2)內(nèi)容提供者:使應(yīng)用程序可以訪問另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)庫),或 者共享它們自己的數(shù)據(jù)。(3)資源管理器:提供各種非程序代碼的資源讓應(yīng)用程序去使用。例

15、如:本字符串、圖形文件或排版相關(guān)的布局文件。通知管理器:提供應(yīng)用程序在狀態(tài)欄中顯示應(yīng)用程序自定義的提示信息。(5)活動(dòng)管理器:管理所有應(yīng)用程序的生命周期及提供常用的導(dǎo)航回退功能。例如:啟動(dòng)應(yīng)用程序要用到的資源準(zhǔn)備及關(guān)閉應(yīng)用程序時(shí)釋放內(nèi)存及相關(guān)資源等工作。(6)視窗管理器:用來管理所有啟動(dòng)程序的視窗。(7)位置管理器:用來管理地圖服務(wù)的相關(guān)功能。(8)電話管理器:用來管理用戶撥打與接聽電話的相關(guān)功能。(9)包管理器:管理所有安裝在Android 系統(tǒng)內(nèi)的包。類庫在Android中包含一些C/C+勺類庫,這些類庫能被 Android系統(tǒng)中不同的組件來使用。開發(fā)者可以通過應(yīng)用程序框架使用這些功能。部

16、分核心類庫列表如下: (1)surface Manager: 主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管理的功能,在顯示與存取操作間的對應(yīng)、互動(dòng)以及實(shí)現(xiàn)無接縫的2D/3D多應(yīng)用程序 之間的整合。例如:在2n 2D顯示上的合成、疊合動(dòng)作。3Dlibraries:主要是依openGLESI.則范所定義的3D繪圖引擎。該庫使用硬件加速 ( 當(dāng)硬件可用時(shí)) ,可以將硬件的3D 功能做最佳化的處理顯示。(3)SGL:主要是處理有關(guān)顯示2D方面的繪圖引擎。(4)Media Frame work:主要是以packetvideo公司的OpenCORE基礎(chǔ)所發(fā)展的多媒體類庫,該庫支持回放和錄制大量流行的音視頻

17、格式和靜態(tài)圖片。例如:MPEG4 H.264、MP3 AAC AMR JPG PNG GIF 等格式(5)Free Type: 主要是用來顯示點(diǎn)陣圖和處理向量字形的。(6)SSL:(secureSocketsuyer) ,中文名為“安全套接層協(xié)議層”,它是網(wǎng)景公司提出的基于 WE而用的安全協(xié)議,當(dāng)前版本為3.0。SSL協(xié)議指定了一種在應(yīng)用 程序協(xié)議(如HTTP Telenet、NMT體口 FTP等)和TCP/IP協(xié)議之間提供數(shù)據(jù)安全 性分層的機(jī)制,它為TCP/IP 連接提供數(shù)據(jù)加密、服務(wù)器認(rèn)證、消息完整性以及可選的客戶機(jī)認(rèn)證。它已被廣泛地用于 We瞰U覽器與服務(wù)器之間的身份認(rèn)證和加 密數(shù)據(jù)傳輸

18、。SSL協(xié)議位于TCP膽協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供 安全支持。SSL協(xié)議可分為兩層:SSL記錄協(xié)議(SSL Record Proto col): 它建立 在可靠的傳輸協(xié)議(如TCP)上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本 功能的支持。SSL握手協(xié)議(SSL Hand shake proto col): 它建立在SSL記錄協(xié) 議之上, 用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。SSL協(xié)議提供的服務(wù)主要有:認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器; 加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取; 維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。

19、 (7)SQLite:SQLite 是一套開放性的關(guān)聯(lián)式資料庫,能夠被所有應(yīng)用程序使用的輕量級的關(guān)系數(shù)據(jù)庫引擎(8)web Kit:是一個(gè)先進(jìn)的網(wǎng)頁瀏覽器引擎,被用來構(gòu)建 Android瀏覽器和內(nèi)嵌 的web視圖,也可以讓開發(fā)者利用這個(gè)引擎來做不同的應(yīng)用。(9)lib c: 就是一個(gè)BSDfc準(zhǔn)C類庫。但是,針對Linux嵌入式裝置進(jìn)行過最佳 化的調(diào)整。IntentGin t en t Pi qy i derInientRec,“ ver.i -1.啊&建過 Inter i;加上in,E文GWflituKnwriderBinder存儲(chǔ)設(shè)備外泓事件ServiceAndroid運(yùn)行時(shí)組件雖然And

20、roid是用Java語言來開發(fā)、撰寫應(yīng)用程序,但卻不使用Java運(yùn)行時(shí)組件來執(zhí)行Java程序,而是使用了由Google自行研發(fā)的Android運(yùn)行時(shí)組件來 執(zhí)行程序。Android運(yùn)行時(shí)組件包括兩個(gè)重要的部分,一個(gè)是核心類庫,另一個(gè) 是Dalvik虛擬機(jī)。2.3 Android應(yīng)用的構(gòu)成和工作機(jī)制對于一個(gè) Android 應(yīng)用程序來說,是由 Activity 、IntentReceiver 、Service、 Content Provider 四部分組成,但并不是每一個(gè)Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時(shí),需要在配置文件AndroidManifest.xml中進(jìn) 行配

21、置。這個(gè)配置文件是每個(gè)Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的 組件、組件的功能以及必要條件等。Android應(yīng)用的構(gòu)成和工作流程如圖2-2:圖2-2 Android 的構(gòu)成和工作流程Android應(yīng)用程序結(jié)構(gòu)剖析Android 的 APIAndroid API主要包含了以下幾個(gè)部分(1)AndroidManifest.xmlAndroidManifest.xml 是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件 ( 尤其是活動(dòng)(Activity) , 服務(wù) (Service) , 意圖接收器(Intent Receiver)和內(nèi)容提供者(Content Provider)

22、。舉例來說,控制文件就是把活動(dòng)和要接收的意圖 (Intents) 連接在一起的“膠水”。(2) 活動(dòng)活動(dòng)就是一個(gè)有生命周期的對象。一個(gè)活動(dòng)就是完成某些工作的代碼塊,這部分工作還可能包括對用戶UI 界面的顯示。不過這不是必須的,有些活動(dòng)從不顯示 UI 界面。(3) 視圖視圖可以將其自身繪制到屏幕上。Android 的用戶界面由一系列的視圖樹構(gòu)成。 接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)建一個(gè)新的視圖的方法來使用自定義的圖形處理技術(shù)( 比如開發(fā)游戲,或者是使用了不常用的用戶圖形窗口界面) 。(4) 意圖意圖是一個(gè)簡單的消息對象,它表示程序想做某事的“意圖”。比如應(yīng)用程序想要顯示

23、一個(gè)網(wǎng)頁,那么它可以通過創(chuàng)建一個(gè)Intent 實(shí)例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個(gè)URI。 系統(tǒng)將定位到能處理這一Intent 的代碼 (在當(dāng)前情況下就是瀏覽器) , 并運(yùn)行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件( 例如通知事件 ) 。(5) 服務(wù)服務(wù)是運(yùn)行在后臺(tái)的一段代碼。它可以運(yùn)行在它自己的進(jìn)程,也可以運(yùn)行在其他應(yīng)用程序的進(jìn)程里,這取決于自身的需要. 。其它的組件可以綁定到一個(gè)服務(wù)上來,通過遠(yuǎn)程過程調(diào)用(RPC)來調(diào)用這個(gè)方法。例如媒體播放器的服務(wù),當(dāng)用戶退出媒體選擇的界面時(shí),仍然希望音樂依然可以繼續(xù)播放,這時(shí)就可用服務(wù)來保證當(dāng)用戶界面關(guān)閉時(shí)音樂還繼續(xù)播放著。(6) 通知通知將以小圖

24、標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互來接收消息。最常見的通知包括短信息、通話記錄和語音郵件,但是應(yīng)用程序也可以創(chuàng)建它們自己的通知事件。(7) 內(nèi)容提供者內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進(jìn)行訪問。典型的例子就是使用內(nèi)容提供者來訪問聯(lián)系人列表。應(yīng)用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時(shí)也可以定義自己的內(nèi)容提供者來向其它應(yīng)用提供數(shù)據(jù)訪問服務(wù)。Android 應(yīng)用程序結(jié)構(gòu)解析通常由以下四個(gè)組件來構(gòu)建一個(gè)完整的Android 應(yīng)用程序。活動(dòng)意圖接收器服務(wù)內(nèi)容提供者然而, 并不是所有的Android 應(yīng)用程序都必須具備上面的四個(gè)組件,可以由上面的一個(gè)或幾個(gè)來組建。當(dāng)決定使用以上哪些組

25、件來構(gòu)建Android 應(yīng)用程序時(shí),需要將它們注冊在AndroidManifest.xml文件中,這是一個(gè)XMLB已置文件,在這個(gè)文件中可以聲明應(yīng)用程序組件以及它們的特性和要求。這個(gè)配置文件是每個(gè)Android 應(yīng)用程序所必需的。活動(dòng)活動(dòng)是以上四個(gè)組件中最常用的一個(gè)。每個(gè)活動(dòng)都是Activity 的子類,并實(shí)現(xiàn)了一些獨(dú)有的功能,如管理 UI 顯示和 UI 的反饋事件。一個(gè)活動(dòng)就相當(dāng)于應(yīng)用程序的一個(gè)用戶界面,由事件響應(yīng)以及視圖等組成。大多數(shù)的應(yīng)用程序通常包括多個(gè)界面。例如: 一個(gè)文本聊天應(yīng)用程序,至少應(yīng)該包含一個(gè)聯(lián)系人列表界面、一個(gè)聊天界面、一個(gè)設(shè)置界面、一個(gè)聊天記錄查詢界面等等。每個(gè)界面其實(shí)都

26、可看作是一個(gè)活動(dòng)。顯示一個(gè)新界面就相當(dāng)于生成一個(gè)對應(yīng)的活動(dòng)對象。在一些情況下, 活動(dòng)能夠返回給它的上級界面一個(gè)返回值,例如一個(gè)提供給用戶選擇照片的活動(dòng)可以返回給它的調(diào)用者用戶選擇了哪個(gè)照片文件。當(dāng)一個(gè)新的活動(dòng)出現(xiàn)時(shí),前一個(gè)活動(dòng)被中斷并被放入到一個(gè)歷史堆棧中。用戶可以使用返回鍵使前一個(gè)活動(dòng)重現(xiàn)。當(dāng)一個(gè)活動(dòng)不再需要時(shí),可以將它們從歷史堆棧中移除。默認(rèn)情況下,Android 會(huì)為每個(gè)應(yīng)用程序保留從主界面開始的歷史堆棧。Android 通過一個(gè)被稱作意圖的特殊類,來實(shí)現(xiàn)界面與界面之間的跳轉(zhuǎn)。一個(gè)意圖描述了一個(gè)應(yīng)用程序想要做什么。在意圖的描述結(jié)構(gòu)中,含有兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu) : 動(dòng)作和動(dòng)作對應(yīng)的數(shù)據(jù)。典型

27、的動(dòng)作類型包括MAIN、 VIEW、 PICK、 EDIT等等,而動(dòng)作對應(yīng)的數(shù)據(jù)則以URI 的形式表示。例如: 顯示一個(gè)聯(lián)系人信息的界面,可以創(chuàng)建一個(gè)意圖,并將它的動(dòng)作設(shè)置成VIEW數(shù)據(jù)設(shè)置成表示這個(gè)人信息的URI。除此之外,還有一個(gè)被稱作意圖過濾器(IntentFiher) 的相關(guān)類。當(dāng)發(fā)生一個(gè)有效的目的請求時(shí),意圖過濾器用來描述一個(gè)活動(dòng)能夠處理什么意圖。如上例中所描述, 想要正常顯示一個(gè)聯(lián)系人信息的界面,必須聲明一個(gè)意圖過濾器,它說明當(dāng)有聯(lián)系人數(shù)據(jù)要被在界面上顯示時(shí),知道如何處理它們。通常意圖過濾器要被注冊在AndroidManifest.xml 文件中。 從一個(gè)界面跳轉(zhuǎn)到另一個(gè)界面是由解

28、析各種意圖實(shí)現(xiàn)的。例如: 一個(gè)活動(dòng)使用startActivity(myIntent) 來調(diào)用其他活動(dòng)時(shí), 系統(tǒng)會(huì)查找所有已經(jīng)安裝的應(yīng)用程序的意圖過濾器,并從中挑選出能夠匹配 myIntent 意圖的活動(dòng)。隨后,這個(gè)新的活動(dòng)接收到意圖(myIntent) 的通知并開始運(yùn)行。當(dāng) startActivity 方法被調(diào)用,解析意圖的處理過程隨之發(fā)生,這個(gè)機(jī)制有以下兩個(gè)突出的優(yōu)點(diǎn):活動(dòng)可以通過一個(gè)以意圖形式產(chǎn)生的請求來重用其他組件的功能。活動(dòng)可以在任何時(shí)候被一個(gè)具有等價(jià)意圖過濾器的新活動(dòng)所替代。意圖接收器當(dāng)想要編寫代碼來對外部事件做一些處理時(shí),可以使用意圖接收器。意圖接收器并不顯示UI 界面,它是通過N

29、otificationManager 來通知用戶他們感興趣的事件發(fā)生了。意圖接收器同樣可以被注冊在AndroidManifest.xml 文件中, 同時(shí)也可以在代碼中使用Context.registerReceiver() 來注冊自己的意圖接收器。當(dāng)一個(gè)意圖接收器被觸發(fā)時(shí),系統(tǒng)會(huì)根據(jù)需要來啟動(dòng)應(yīng)用程序。服務(wù)服務(wù)是具有長生命周期并且沒有用戶界面的代碼。內(nèi)容提供者在 Android 中,每個(gè)應(yīng)用程序都是有自己的userID 及在自己的進(jìn)程中執(zhí)行。這樣做的好處是,可以保護(hù)系統(tǒng)及應(yīng)用程序,避免被其他不正常的應(yīng)用程序所影響??梢园衙總€(gè)進(jìn)程想像成是一個(gè)黑盒子,彼此不會(huì)互相影響,連內(nèi)存的資料都無法共享。 如

30、果應(yīng)用程序之間想要共享數(shù)據(jù),就需要使用用內(nèi)容提供者。一個(gè)內(nèi)容提供者就是一個(gè)類,它實(shí)現(xiàn)了一個(gè)標(biāo)準(zhǔn)的方法集合。其他的應(yīng)用程序可以使用這些方法來保存和檢索此內(nèi)容提供者處理過的數(shù)據(jù)。游戲功能背景介紹:功能介紹:益智類游戲是一種比較流行的游戲,其畫面大都比較簡單,很少有很復(fù)雜的游戲特效,但是通常用到人工智能的算法來控制游戲的難度。本次游戲設(shè)計(jì)通過講解捉貓貓游戲在Android 平臺(tái)上的設(shè)計(jì)與實(shí)現(xiàn),本次游戲的思想來源于天貓上的“捉貓貓”活動(dòng)。隨著3G移動(dòng)網(wǎng)絡(luò)應(yīng)用的推廣,手機(jī)游戲的規(guī)模、復(fù)雜程度日益增強(qiáng);其技術(shù)手段、 設(shè)計(jì)思想、系統(tǒng)體系結(jié)構(gòu)都發(fā)生了深刻的變化。手機(jī)操作系統(tǒng)正朝著高處理能力、多功能、智能化的方

31、向發(fā)展。近年來,網(wǎng)絡(luò)文化市場發(fā)展很快,隨著互聯(lián)網(wǎng)的迅速普及、寬帶的接入社區(qū)和家庭,我國網(wǎng)絡(luò)游戲市場發(fā)展迅速并進(jìn)入了一個(gè)高速增長期,并已經(jīng)創(chuàng)造了較大的產(chǎn)值,帶動(dòng)了相關(guān)產(chǎn)業(yè)的發(fā)展。功能簡介捉貓貓游戲的規(guī)則很簡單,只需要在手機(jī)屏幕上出現(xiàn)小貓時(shí),點(diǎn)中相應(yīng)的貓得到相應(yīng)的分?jǐn)?shù)即可。該游戲運(yùn)行步驟如下:1. 啟動(dòng)游戲后首先進(jìn)入的便是游戲主界面,在主界面中有 “關(guān)于游戲、 游戲幫助、開始游戲、退出游戲”四個(gè)欄目2. 在主界面單擊“關(guān)于游戲”才當(dāng)可進(jìn)入“關(guān)于”界面,在 關(guān)于 界面中介紹了游戲的開發(fā)平臺(tái)、開發(fā)日期等資料。3. 在菜單界面單擊“游戲幫助”菜單可進(jìn)入“幫助”界面,在“幫助”界面中介紹了游戲的基本規(guī)則。

32、4. 在主界面單擊“開始游戲”菜單可進(jìn)入游戲界面。5. 在游戲過程中有“暫停、繼續(xù)、離開”三個(gè)功能按鈕,單擊相應(yīng)的按鈕進(jìn)入相應(yīng)的功能狀態(tài),其中“離開”是指離開進(jìn)入主界面。6當(dāng)玩家進(jìn)入游戲后,屏幕會(huì)出現(xiàn)不同的小貓,不同的小貓對應(yīng)不同的分?jǐn)?shù),點(diǎn)中后也會(huì)得到不同的分?jǐn)?shù)。游戲設(shè)有不同的關(guān)卡,每一關(guān)卡設(shè)置時(shí)間為1 分鐘,而每一關(guān)需要相應(yīng)的分?jǐn)?shù)才能通關(guān),通關(guān)后進(jìn)入下一關(guān),在進(jìn)入下一關(guān)之前有三秒鐘的提示,關(guān)卡等級越高,難度越大。12. 在主界面單擊退出游戲便可退出游戲。游戲策劃及準(zhǔn)備工作游戲的策劃:人類如果經(jīng)常動(dòng)用大腦,便可讓自身的邏輯和抽象思維能力得到增長,因此, 玩數(shù)獨(dú)游戲就是一個(gè)增長智慧的好辦法,通過

33、數(shù)獨(dú)題米的解答,可以讓頭腦變得更聰明,用戶可以吧她作為鍛煉邏輯思維及策略綠的工具,在手機(jī)上的實(shí)現(xiàn)便可以時(shí)時(shí)刻刻的開發(fā)思維,鍛煉頭腦,數(shù)獨(dú)的推理性強(qiáng),一些數(shù)學(xué)的思想、推理、假設(shè)、反正等都會(huì)用到,每個(gè)提米各不相同,不可能用一種方法解決所有問題,這也是數(shù)獨(dú)的魅力所在。開發(fā)這個(gè)游戲的目的是為讀者在Android 平臺(tái)上進(jìn)行游戲開發(fā)提供一個(gè)指導(dǎo)方案, 二不是聲場商業(yè)化的游戲,讀者可以以此為范例開發(fā)出更好、更具玩性的數(shù)獨(dú)游戲。Android 平臺(tái)下游戲的準(zhǔn)備工作游戲的準(zhǔn)備工作通常根據(jù)游戲的策劃來制作游戲所有的圖片、聲音等。 因?yàn)楸居螒虿]有添加音效設(shè)置,所以只需要搜集或制作游戲過程中所有得到的圖片資源即可

34、,本游戲用到的圖片文件資源。游戲的架構(gòu)在正式開放代碼之前,首先需要對該游戲的設(shè)計(jì)框架進(jìn)行簡要介紹,以幫助讀者更好的理解游戲的開放過程,希望讀者能夠仔細(xì)閱讀本節(jié)的內(nèi)容,在整體上了解本游戲。這會(huì)為之后的開發(fā)帶來事半功倍的效果。接下來將通過游戲的運(yùn)行過程介紹各類在游戲中的作用,具體運(yùn)行的步驟如下:(1)啟動(dòng)游戲后,首先在 KLSDActivity中初始化ZhuView,然后將用戶界面切換到主動(dòng)畫ZhuView.(2)而在ZhuView中會(huì)啟動(dòng)ZhuViewDrawThread與ZhuGoThread來刷新界面和生 成主動(dòng)畫。( 3)當(dāng)玩家單擊”幫助”菜單式,會(huì)創(chuàng)建HelpView, 是顯示”幫助”界

35、面。(4) 當(dāng)玩家單擊”關(guān)于”菜單式,會(huì)創(chuàng)建 AboutView 顯示”關(guān)于”界面。(5)黨單擊”開始游戲”時(shí)則正式進(jìn)入游戲界面GamneView,同時(shí)啟動(dòng) GameViewDrawThrea耒刷新界面。各類的簡要介紹為了讓讀者更好的理解后面的代碼,下面將對游戲的各個(gè)累逐一進(jìn)行簡要說明,關(guān)于這些類的詳細(xì)代碼將在后面的章節(jié)中相繼給出。為了讓讀者更好地理解后面的代碼,下面將對游戲中的各個(gè)類逐一簡要說明。關(guān)于這些累的詳細(xì)代碼將在后面的章節(jié)中相繼給出。共有類SudukuActivity 類該類是通過集成和擴(kuò)展類Activity 來實(shí)現(xiàn)的,是整個(gè)應(yīng)用程序的入口,主要是根據(jù)收到的Handler 消息的不同

36、切換到不同的界面。歡迎界面相關(guān)類該類為歡迎界面的實(shí)現(xiàn)類,主要負(fù)責(zé)歡迎動(dòng)畫界面的繪制,是歡迎界面的前臺(tái)顯示的實(shí)戰(zhàn)Android 變成手把手教你作出商用軟件。View,根據(jù)后臺(tái)數(shù)據(jù)的不同繪制不同效果的動(dòng)畫。(1) WelcomeViewDrawThreacft該類為歡迎動(dòng)畫界面的服務(wù)線程,主要負(fù)責(zé)歡迎動(dòng)畫的生成,通過改變表示當(dāng)前幀的索引值達(dá)到動(dòng)畫的效果。( 2)關(guān)于界面AboutView 類該類是游戲幫助界面的實(shí)現(xiàn)類,主要負(fù)責(zé)游戲幫助界面的繪制。游戲界面相關(guān)類GameViewGameView!是游戲中最主要的一個(gè)類。游戲規(guī)則、游戲模型都包含在此類當(dāng)中,同時(shí)該類還負(fù)責(zé)繪制游戲的畫面、接收玩家的響應(yīng)。

37、(1) GameViewDrawthrea戰(zhàn)GameViewDrawthrea我負(fù)責(zé)定時(shí)的刷幀操作。( 2)刷新時(shí)間縣城TimeThread 類該線程的實(shí)現(xiàn)非常簡單,只是定時(shí)改變游戲模型中的實(shí)問值,并不負(fù)責(zé)其他 事件的處理。(3)數(shù)字鍵盤渲染線程DrawKeythread類該線程的作用是數(shù)字鍵盤圖片頭明度即可。(4)數(shù)獨(dú)生成器ShuDuSuanF聯(lián)該類是個(gè)普通的Java類,不繼承任何類,只為游戲隨機(jī)提供存放熟讀數(shù)字的 二維數(shù)組,該類所采用算法的優(yōu)劣決定了該游戲可玩性的好壞。系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)結(jié)構(gòu)設(shè)計(jì)將給定的即日轉(zhuǎn)換 為數(shù)獨(dú)網(wǎng)格圖設(shè)計(jì)流程圖設(shè)計(jì)思想1.按照程序運(yùn)行的順序介紹各個(gè)類的作用以及整體的運(yùn)行

38、框架,步驟如下: 啟動(dòng)游戲,首先被創(chuàng)建的是游戲的主界面,而在主界面如圖。開始游戲 關(guān)于券戲 兼助班戲 退出游戲圖界面應(yīng)用程序的每個(gè)屏幕的顯示都要通過繼承和擴(kuò)展基類Activity 類來實(shí)現(xiàn),鐘重寫Activity 類的onCreat()方法,在onCreat()方法中做游戲的初始化工作,該 類代碼以下:public class KLSDActivity extends Activity WelcomeView welcomeView ; /歡迎動(dòng)畫界面的引用GameView gameView ; /游戲界面的引用AboutView aboutView ; / 關(guān)于界面HelpView help

39、View ; / 幫助界面Handler myHandler = new Handler() / 用來更新 UI 線程中的控件 public void handleMessage(Message msg) if (msg. what = 1)/歡迎界面發(fā)送的消息if (welcomeView != null )welcomeViewnullinitGameView();KLSDActivity. this .setContentView( gameView ); else if (msg. what = 2)/ 游戲勝利或者失敗時(shí)點(diǎn)擊屏幕if ( gameView != null ) game

40、View = null ;initWelcomeView(); / 初始化歡迎界 KLSDActivity. this .setContentView(面 else if (msg. what = 3) initAboutView();KLSDActivity. this .setContentView( else if (msg. what = 4) initHelpView();KLSDActivity. this .setContentView(;public void onCreate(Bundle savedInstanceState) super .onCreate(savedIn

41、stanceState);welcomeView ); / 切換到歡迎界aboutView ); / 切換到關(guān)于界helpView ); / 切換到幫助界/ 設(shè)置全屏requestWindowFeature(Window.FEATURE_NO_TITLE );getWindow().setFlags(WindowManager.LayoutParams.WindowManager.LayoutParams.initWelcomeView(); / 初始化歡迎界this .setContentView( welcomeView ); / 切換到歡迎界public voidinitWelcomeV

42、iew()welcomeView = new WelcomeView(public void initGameView() / 初始化游戲界gameView = new GameView( this );/ 初始化歡迎界this );public void initAboutView()/ 初始化關(guān)于界aboutView = new AboutView( this );public void initHelpView() / 初始化幫助界helpView = new HelpView( this );FLAG_FULLSCREENFLAG_FULLSCREEN );當(dāng)用戶單擊“關(guān)于”菜單時(shí),將

43、進(jìn)入幫助界面,菜單按鈕時(shí),新界面進(jìn)入。當(dāng)用戶單擊“幫助”菜單時(shí),將進(jìn)入幫助界面,該界面實(shí)現(xiàn)較簡單,只需將圖片 繪制到指定位置,然后繪制以下“確定“按鈕即可,代碼如下class ShuDuSuanFapublicintint中產(chǎn)生n = new int 99; num = 1,2,3,4,5,6,7,8,9;/存儲(chǔ)數(shù)字的數(shù)組/生成隨機(jī)數(shù)字的源數(shù)組,隨機(jī)數(shù)字從該數(shù)組publicforboolean checkLine(int j = 0;j 8;j+)intcol)/檢查列是否符合要求if (n 皿col = 0)for ( int k =j + 1;k 9;k+) if ( n jcol=con

44、tinuenkcol);return false ; return true ;publicboolean checkNine(int row,int col) /檢查3X3區(qū)域是否符合要求intintj = row/3*3;k = col/3*3;/獲得左上角的坐標(biāo)for(int i = 0;i 8;i+)/ 循環(huán)比較if ( nj + i/3k + i % 3 = 0)continue ;for (int m = i+ 1;m 9;m+)if ( nj + i/3k + i % 3= nj + m/3k + m % 3)return false return true ; public b

45、oolean checkRow( int row) / 檢查行是否符合要求 f or (int j = 0;j 8;j+)if ( n rowj = 0) continue ;for (int k =j + 1;k 9;k+)if ( n rowj =nrowk)return false ;r eturn true ;public int generateNum( int row, int col, int time) / 產(chǎn)生 1-9 之間的隨機(jī) 數(shù)字if (time = 0)/第一次嘗試時(shí),初始化隨機(jī)數(shù)字源數(shù)組for ( int i = 0;i 9;i+) numi = i + 1;/第1

46、0次填充,表明該位置已經(jīng)卡住,則返回 0,由主程序處理退回if (time = 9) return 0;/不是第一次填充/生成隨機(jī)數(shù)字,該數(shù)字是數(shù)組的下標(biāo),取數(shù)組num 中該下標(biāo)對應(yīng)的數(shù)字為隨機(jī)數(shù)字int ranNum = ( int )(Math. random ()*(9-time);/把數(shù)字放置在數(shù)組倒數(shù)第time個(gè)位置,int temp = num8 - ranNum;num8 - ranNum = numranNum;numranNum = temp;return num8 - ranNum; public int getShuDu() / 生成數(shù)字for (int i = 0;i

47、9;i+)int time = 0;/嘗試填充的數(shù)字次數(shù)for ( int j = 0;j 0)/不是第一列,則倒退一列j-=2;continue ;else /是第一列,則倒退到上一行的最后一列 i-;j = 8;continueif (isCorret(i,j)/ 成功time = 0; else time+; j-; return n; public boolean isCorret( int row, int col) / 是否滿足行、列和九宮區(qū)域不重 復(fù)的要求return (checkRow(row)&checkLine(col)&checkNine(row,col);當(dāng)用戶單擊“開

48、始”菜單時(shí),將進(jìn)入幫助界面,菜單按鈕時(shí),新界面進(jìn)入。游戲開始:此界面含有暫停、提示、換題、放棄6 50& -897 48 132 6 59 47-8 1次停棄一 放題,示 堤圖游戲開始public class GameView extends SurfaceView implements SurfaceHolder.CallbackKLSDActivity activity ; /activity 的引用 int alpha = 100;/ 透明度float span = ( float )1; / 難度(1-10)int status = 0 ;/0游戲中,1暫停中,2游戲勝利,3游戲失敗i

49、nt time =0; / 時(shí)間boolean tishi ; / 是否提示Bitmap background ; / 大背景Bitmap small_backgroud ; / 背景方格Bitmap stop ; / 暫停按鈕Bitmap change ; / 換題按鈕Bitmap drop ; / 放棄按鈕Bitmaphelp ; / 提示按鈕Bitmap go_on ; / 暫停圖像BitmapkeyDown ; /選中后單元格樣式Bitmapwin ; / 勝利Bitmap fail ; / 失敗Bitmapselect ; /選中的單元格Bitmap timeBitmap ; /時(shí)間

50、中間的冒號Bitmapheart ; /有提示時(shí)候畫的Bitmapexit ; /是否退出圖片Bitmap key_background ; / 數(shù)字按鍵背景Bitmapkey_bitmap ; / 小數(shù)字鍵盤Bitmapnumber_bitmap=new Bitmap10;/默認(rèn)的數(shù)字圖片Bitmap number_input=new Bitmap10;/輸入的數(shù)字圖片Bitmap time_bitmap = new Bitmap10; / 時(shí)間 Paint paint ; booleandrawkey = false ;int叩 num; /用來裝生成的數(shù)字即正確答案 int叩inputN

51、um ; /用來存放輸入的數(shù)字int outputNum ; /用來存放系統(tǒng)的數(shù)字 float scale = ( float ) 0.8;/數(shù)字鍵盤上數(shù)字縮放的比例Bitmap口small_number ; int r = 39;/數(shù)字鍵盤小圓圈的半徑int keyx ; int keyy ; /數(shù)字鍵盤的位置 int downx ; int downy ;ShuDuSuanFa sdsf ; / 生成數(shù)獨(dú)的算法類 TimeThread tt ; / 時(shí)間線程GameViewDrawThread gameViewDrawThread ; public GameView(KLSDActivit

52、y activity) super (activity); this . activity = activity;getHolder().addCallback(this ); / 添加 Callback接口的實(shí)現(xiàn)this );init(); gameViewDrawThread = new GameViewDrawThread(public void init()paint = new Paint();/ 初始化畫筆background = BitmapFactory. decodeResource (getResources(), R.drawable. background ); /初始

53、化背景小方格圖元 small_backgroud = BitmapFactory. decodeResource (getResources(),R.drawable. small_background );/初始化下面的四個(gè)按鈕stop = BitmapFactory. decodeResource (getResources(),R.drawable. stop1 ); / 停止change = BitmapFactory. decodeResource (getResources(),R.drawable.change1);/ 換題drop = BitmapFactory.decodeResource(getResources(),R.drawable.drop1 );/放棄help = BitmapFactory.dec

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論