android學(xué)生信息管理系統(tǒng)計算機畢業(yè)設(shè)計論文管理資料_第1頁
android學(xué)生信息管理系統(tǒng)計算機畢業(yè)設(shè)計論文管理資料_第2頁
android學(xué)生信息管理系統(tǒng)計算機畢業(yè)設(shè)計論文管理資料_第3頁
android學(xué)生信息管理系統(tǒng)計算機畢業(yè)設(shè)計論文管理資料_第4頁
android學(xué)生信息管理系統(tǒng)計算機畢業(yè)設(shè)計論文管理資料_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于Android學(xué)生基本信息管理的設(shè)計與開發(fā)摘要隨著智能手機的快速普及,智能手機操作系統(tǒng)市場風(fēng)生水起。為了讓智能手機用戶能夠隨時隨地查詢互聯(lián)網(wǎng)所提供的服務(wù),一種高效的辦法就是將應(yīng)用系統(tǒng)的功能拓展到手機終端上,讓手機能夠通過移動網(wǎng)以及互聯(lián)網(wǎng)訪問Web網(wǎng)站并處理各種各樣的業(yè)務(wù)。因此,智能手機的應(yīng)用軟件及其需要的服務(wù)將有廣闊的發(fā)展前景。在如今這個智能手機系統(tǒng)群雄紛爭的時候,2008年Google推出了一款名為Android的開源智能手機操作系統(tǒng),它采用Linux內(nèi)核,開放手機聯(lián)盟(OHA)成員可以任意使用和修改SDK包,系統(tǒng)的開源性使其具有良好的拓展性。這款軟件包括了操作系統(tǒng)、用戶界面和應(yīng)用程序,即智能手機工作所需要的全部軟件。Android的最大特點是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴展的用戶體驗,包括豐富的圖形組件、多媒體支持功能以及強大的瀏覽器。因此,對于軟件從業(yè)人員來說,Android平臺具有無限的吸引力。本文就在分析討論Android手機軟件開發(fā)技術(shù)原理的基礎(chǔ)上,開發(fā)出能為大學(xué)學(xué)生提供更好的基于Android的學(xué)生信息管理軟件。關(guān)鍵字:Android;學(xué)生基本信息BasedontheAndroid'sdesignanddevelopmentofstudents'basicinformationmanagementABSTRACTWiththerapidproliferationofsmartphones,smartphoneoperatingsystemmarket,windandwater.InorderforsmartphoneuserstochecktheInternetanytime,anywhereservicesprovidedanefficientwaytoexpandthefunctionofthesystemwillbeappliedtothemobilephoneterminal,themobilephonetoInternetaccessviamobilenetworks,andvarietyofWebsitesandprocessbusiness.Therefore,thesmartphoneapplicationsandtheneedfortheservicewillhavebroadprospectsfordevelopment.Intoday'ssmartphonesystemwhendisputeswarlords,2008,GoogleintroducedasmartphonecalledtheAndroidopensourceoperatingsystem,whichusesLinuxkernel,OpenHandsetAlliance(OHA)memberscanbefreetouseandmodifytheSDKpackage,thesystemIthasagoodopen-sourcenatureoftheexpansionof.Thesoftwareincludestheoperatingsystem,userinterfaceandapplicationsthatneedtoworksmartphonesallthesoftware.Android'sbiggestfeatureisitsopenarchitecture,notonlyhasaverygooddevelopmentanddebuggingenvironment,butalsosupportsavarietyofscalableuserexperience,includingrichgraphicalcomponents,multimediasupport,andpowerfulbrowser.Therefore,forsoftwareprofessionalsis,Androidplatformhasunlimitedappeal.Inthispaper,theanalysisanddiscussionAndroidmobilephonesoftwaredevelopmenttechnologyonthebasisoftheprinciple,developedtoprovidestudentswithbetterplatformtostudents'basicinformationmanagementbasedonAndroidmeteorologicalsoftware.KeyWords:TaiyuanUniversityofTechnology;Android;informationmanagement目錄TOC\o"1-3"\h\u1320摘要 I6730ABSTRACT II307051緒論 110133課題背景 121966系統(tǒng)內(nèi)容及開發(fā)意義 1263192Android平臺及相關(guān)技術(shù)簡介 210806Android現(xiàn)狀及發(fā)展 216505Android系統(tǒng)特點 222134Android的功能特征 323454Android架構(gòu)分析 417017應(yīng)用程序框架 42019類庫 529419運行環(huán)境 617519操作系統(tǒng) 62748Android開發(fā)變量及其配置 628473Android開發(fā)環(huán)境搭建 69157計算機配置 61928安裝JDK 68635安裝Eclipse 726013安裝SDK 731156安裝ADT 76316設(shè)置Eclipse 831423創(chuàng)建AVD 825988HTTP協(xié)議 818535JSOUP 929596簡介 932275文檔輸入 1025436解析并提取HTML元素 1027298修改數(shù)據(jù) 108157HTML文檔清理 1039553Android應(yīng)用程序結(jié)構(gòu)剖析 113217Android的API 118636Android應(yīng)用程序結(jié)構(gòu)解析 1216985活動 1228436意圖接收器 1328764服務(wù) 1331888內(nèi)容提供者 1329825Intent的詳細解析 134339Intent的抽象描述 1324827Android中Intent的使用 1410815Android活動的生命周期 1526124活動的生命狀態(tài) 1524778活動的運作流程 17112674需求分析 188156背景 1824133假定條件下的約束限制 185474硬件約束 186254用戶約束 1822477系統(tǒng)目標(biāo) 1815132先行組織機構(gòu)及業(yè)務(wù)現(xiàn)狀 1831776功能需求 1919116性能需求 1929418界面友好 199342快速響應(yīng) 197943數(shù)據(jù)安全 195897數(shù)據(jù)需求 19152865系統(tǒng)概要設(shè)計 2114925系統(tǒng)功能模塊 2110418系統(tǒng)實現(xiàn)流程圖 211460網(wǎng)絡(luò)傳輸模塊概要設(shè)計 22521設(shè)計思路 2228463數(shù)據(jù)獲取 2327840網(wǎng)絡(luò)連接 23153256系統(tǒng)詳細設(shè)計與實現(xiàn) 2410888登錄模塊 2411890成績查詢模塊 2630630本學(xué)期課表查詢模塊 283873修改密碼模塊 3022945分享模塊 32192787測試用例 3324808設(shè)計過程中出現(xiàn)的問題 3324907目標(biāo) 334348運行與測試環(huán)境 3321006功能測試 3313911登錄模塊測試 332859用戶選擇模塊測試 3324338各大功能模塊測試 349702非功能測試 347362實時性測試 3423894安裝/反安裝測試 3422163兼容性測試 3531394用戶界面測試 3523826總結(jié) 364126參考文獻 3721845致謝 3825168附錄一英文文獻原文 3932362附錄二中文譯文 44緒論課題背景隨著科學(xué)技術(shù)的發(fā)展,計算機網(wǎng)絡(luò)技術(shù)的普及和對辦公效率的要求越來越高,很多高校開始網(wǎng)絡(luò)化辦公改革,將更多的平常工作(入通信聯(lián)系,發(fā)放通知,傳遞文件等)通過網(wǎng)絡(luò)這個平臺來完成。經(jīng)過一段時間的發(fā)展,網(wǎng)絡(luò)在搞笑日常鍋里中實現(xiàn)的功能越來越多,數(shù)字化校園管理系統(tǒng)應(yīng)運而生。我們學(xué)校是采用瀏覽器/服務(wù)器(b/s)模式,這種模式想對最初的人工管理方便了許多,不在需要大量的人力,學(xué)生要登陸并操作管理系統(tǒng)也不再需要排隊和擁擠,更不會因為在系統(tǒng)上的操作會耽誤正常的教學(xué)任務(wù)(問卷調(diào)查等)。b/s模式的校園信息系統(tǒng)只需要一臺能訪問網(wǎng)絡(luò)的瀏覽器即可。只要信息系統(tǒng)服務(wù)器端提供個人信息,考試成績,課程表等等業(yè)務(wù)模塊,在客戶端的瀏覽器視窗中就能進行相應(yīng)模塊的功能管理。這種b/s模式的信息管理系統(tǒng)具有不限時間,地點等優(yōu)勢,然而隨著移動互聯(lián)網(wǎng)的發(fā)展這種b/s模式的信息管理系統(tǒng)也存在很多不足,比如你想要進行相關(guān)操作,就必須坐在電腦前,而且課程開設(shè)的通知等等也是要通過上網(wǎng)才知道,對于一些不常上網(wǎng)的同學(xué)可能會錯過很多有用的消息,比如說課程調(diào)整,成績發(fā)布等等。而這些缺陷都可以通過移動終端來解決。系統(tǒng)內(nèi)容及開發(fā)意義綜上所訴,在平時的校園生活中,教務(wù)系統(tǒng)給予各系的同學(xué)許多方便,學(xué)校繳費,選課調(diào)課,查詢考試,報名考證等等,都可以通過電腦登錄教務(wù)系統(tǒng)來得到解決。而為了讓教務(wù)系統(tǒng)變得更加便利,我們有必要開發(fā)一個基于Android平臺下的學(xué)生信息信息管理系統(tǒng)。同學(xué)們就可以通過安裝有Android系統(tǒng)的只能手機來登陸和操作信息管理系統(tǒng),并隨時隨地查看信息系統(tǒng)的信息。同時對于軟件工程系的我而言,這是見證我們四年所學(xué)的最佳機遇。這一次的軟件開發(fā)過程,給了一個讓我發(fā)揮的平臺。Android平臺及相關(guān)技術(shù)簡介Android現(xiàn)狀及發(fā)展Android是Google開發(fā)的基于Linux平臺的開源手機操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序——移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。Google與開放手機聯(lián)盟合作開發(fā)了Android,這個聯(lián)盟由包括中國移動、摩托羅拉、高通、宏達電和T-Mobile在內(nèi)的30多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成。Google通過與運營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式的生態(tài)系統(tǒng)。

Android作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進一步推進"隨時隨地為每個人提供信息"這一企業(yè)目標(biāo)的實現(xiàn)。我們發(fā)現(xiàn),全球為數(shù)眾多的移動電話用戶從未使用過任何基于Android的電話。谷歌的目標(biāo)是讓(移動通訊)不依賴于設(shè)備甚至平臺。出于這個目的,Android將補充,而不會替代谷歌長期以來奉行的移動發(fā)展戰(zhàn)略:通過與全球各地的手機制造商和移動運營商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動服務(wù),并推廣這些產(chǎn)品。

開放手機聯(lián)盟的成立和Android的推出是對現(xiàn)狀的重大改變,在帶來初步效益之前,還需要不小的耐心和高昂的投入。在2012年,,%的市場份額。在2013年,、%,這是一個相當(dāng)驚人的數(shù)字。不過,這些數(shù)字當(dāng)中,還蘊含了一些有趣的部分。比如在2013年第四季度,25%的Android手機并未包含谷歌服務(wù),以亞馬遜、國內(nèi)的小米等廠商為主。顯然,這種現(xiàn)象說明了即使Android極受歡迎,但碎片化則十分嚴重。再來看看Android版本的分布情況。目前,最新的Android,Android,Android%,%則是老舊的Android。顯然,雙核/四核處理器已經(jīng)向低端產(chǎn)品普及,越來越多的手機都能夠搭載更新版本的系統(tǒng)版本,但碎片化依然是谷歌需要考慮的課題。Android系統(tǒng)特點Android系統(tǒng)最震撼人心之處在于其開放性和服務(wù)的免費性方面。Android是一個對第三方軟件完全開放的平臺,開發(fā)者在為其開發(fā)程序時擁有更大的自由度,突破了iPhone等只能添加為數(shù)不多的固定軟件的枷鎖;同時與WindowsMobile(現(xiàn)叫WindowsPhone)、Symbian等廠商不同,Android操作系統(tǒng)免費向開發(fā)人員提供,這樣可節(jié)省30%的成本。Android平臺的手機以及平板電腦具有以下5大特點:開放性。在優(yōu)勢方面,Android平臺首先就是其開放性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很將走向成熟,蘋果的IOS系統(tǒng)封閉;無向任何廠商提供,WindowsPhone系統(tǒng)封閉,廠商需要花高價購買;Nokia的Symbian之前也一直是封閉,現(xiàn)在已經(jīng)末落了。掙脫運營商的束縛。在過去很長的一段時間,特別是在歐美地區(qū),手機應(yīng)用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從Android上市,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機隨意揍人網(wǎng)絡(luò)已不是運營商口中的笑談。豐富的硬件選擇。這一點還是與Android平臺的開放性相關(guān)。由于Android的開放性,眾多的廠商會推出豐富多彩、各具特色的多種產(chǎn)品。功能上的差異和特色卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容性。好比用戶從諾基亞的Symbian(塞班)風(fēng)格手機一下改用裝載Android(安卓)系統(tǒng)的手機,同時還可將Symbian中優(yōu)秀的軟件帶到新手機上使用,聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。不受任何限制的開發(fā)商。Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,因此不會受到各種條條框框的阻撓,可想而知,這樣會有多少新穎別致的軟件會誕生。但這也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android開發(fā)人員的難題之一。無縫結(jié)合的Google應(yīng)用。如今Google在互聯(lián)網(wǎng)領(lǐng)域已經(jīng)走過十多年歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些Google應(yīng)用。Android的功能特征(l)應(yīng)用程序架構(gòu):在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基礎(chǔ)組件,在開發(fā)應(yīng)用程序時,就可以直接調(diào)用這些組件來使用,可以節(jié)省開發(fā)應(yīng)用程序的心力及時間。(2)Dalvik虛擬機器:在Android平臺上所使用Java虛擬機,不是Sim公司的標(biāo)準(zhǔn)Java虛擬機,而是使用Google自主開發(fā)的代號為Dalvik的虛擬機,它在保證API方面的兼容的同時,針對移動手機進行了大幅優(yōu)化,占用資源更小,運行效率更高。(3)集成的瀏覽器:集成的瀏覽器是Android內(nèi)建的瀏覽器,是以WebKit的瀏覽引擎為基礎(chǔ)所開發(fā)成的。WedKit是一個開源瀏覽器網(wǎng)頁排版引擎,目前使用WebKit引擎的瀏覽器主要有:Safari,Midori,Epiphany等。配合Android手機的功能,可以在瀏覽網(wǎng)頁時,達到更好的效果,例如:局部性的縮放網(wǎng)頁上的資訊、觸控式的操作等效果。(4)優(yōu)化的繪圖能力:在程序里可以用到的繪圖功能分為2D與3D兩個方面。在2D方面,Android提供了一套特有的類庫(SGL;(openGLforEmbeddedsystems)規(guī)范的類庫。它們是一種非常快的圖形引擎,并且支持硬件加速。(5)SQLite數(shù)據(jù)庫:SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQLite是一款輕型的數(shù)據(jù)庫,它的設(shè)計目標(biāo)是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源非常低。它能夠支持Windows/Linux/Unix等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如php,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來講,它的處理速度比它們都快。它無需安裝和管理配置,它是一個儲存在單一磁盤文件中的完整數(shù)據(jù)庫,體積小只有250KB但支持數(shù)據(jù)庫大小至2TB。它雖然很小巧,但是支持的SQL語句毫不遜色于其它開源數(shù)據(jù)庫。同時它還支持事務(wù)功能和并發(fā)處理等等。SQLite也是一套開放性的關(guān)聯(lián)式資料庫,其特點在于輕量性方面的設(shè)計結(jié)構(gòu),更適合在手機上使用。(6)多媒體的支持能力:主要用于播放媒體文件。這同時包括對音頻(如播放MP3或其他音樂文件等)和視頻(如播放從網(wǎng)上下載的視頻)的支持,并支持“播放URI地址”(Note:URI即是統(tǒng)一資源識別地址)模式—在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:JPG、PNG、GIF等格式。(7)GSM技術(shù):GlobalSystemforMobileCommunications,即全球移動通訊系統(tǒng),俗稱”全球通”,是一種起源于歐洲的移動通信技術(shù)標(biāo)準(zhǔn),是第二代移動通信技術(shù),其開發(fā)目的是讓全球各地可以共同使用一個移動電話網(wǎng)絡(luò)標(biāo)準(zhǔn),讓用戶使用一部手機就能行遍全球。GSM技術(shù)是屬于手機硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時可以突出的特點之一。(8)藍牙、EDGE、3G及Wi-Fi:藍牙是一種新型、開放、低成本、短距離的無線連接技術(shù),可取代短距離的電纜,實現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE(EnhancedDataRateforGSM,Evolution),即增強型數(shù)據(jù)速率GSM演進技術(shù)。EDGE是一種從GSM到3G的過渡技術(shù),它主要是在GSM系統(tǒng)中采用了一種新的調(diào)制方法,即最先進的多時隙操作和SPSK調(diào)制技術(shù)。由于8PSK可將現(xiàn)有GSM網(wǎng)絡(luò)采用的GMSK調(diào)制技術(shù)的信號空間從2擴展到8,從而使每個符號所包含的信息是原來的4倍。Wi-Fi(WirelessFidelity),即無線保真技術(shù),與藍牙技術(shù)一樣,同屬于在辦公室和家庭中使用的短距離無線技術(shù)。,該頻段目前尚屬沒用許可的無線頻段。其目前可使用的標(biāo)準(zhǔn)有兩個,。這些通訊能力也是屬于手機硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時可以突出的特點之一。(9)GPS:GlobalPositioningSystem,即全球定位系統(tǒng),它是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個系統(tǒng)可以保證在任意時刻和任何地點都可以同時觀測到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點的經(jīng)緯度和高度,以便實現(xiàn)導(dǎo)航、定位、授時等功能。這項技術(shù)可以用來引導(dǎo)飛機、船舶、車輛以及個人。這個同樣也是屬于手機硬體方面的體現(xiàn),也是在開發(fā)Android應(yīng)用程序是可以突出的特點之一。Android架構(gòu)分析應(yīng)用程序框架在AndroidSDK中,定義了讓開發(fā)者使用與核心應(yīng)用程序相同API的權(quán)限應(yīng)用程序框架是為了要簡化組件的重新利用而設(shè)計的,應(yīng)用程序可以發(fā)布功能為其它應(yīng)用程序所使用。但是,這要受限于應(yīng)用程序架構(gòu)的安全機制,使用者以用同樣的機制來新增、置換組件。目前所有的應(yīng)用程序是由服務(wù)及系統(tǒng)來組成,包含有:(l)一套強大和可擴展的視圖系統(tǒng):用來建構(gòu)一個應(yīng)用程序的基本組件,包了在開發(fā)系統(tǒng)畫面時,常用的列表、網(wǎng)格、文本框、按鈕等控制項,甚至是內(nèi)嵌的Web瀏覽器。(2)內(nèi)容提供者:使應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)庫),或者共享它們自己的數(shù)據(jù)。(3)資源管理器:提供各種非程序代碼的資源讓應(yīng)用程序去使用。例如:本字符串、圖形文件或排版相關(guān)的布局文件。(4)通知管理器:提供應(yīng)用程序在狀態(tài)欄中顯示應(yīng)用程序自定義的提示信息。(5)活動管理器:管理所有應(yīng)用程序的生命周期及提供常用的導(dǎo)航回退功能。例如:啟動應(yīng)用程序要用到的資源準(zhǔn)備及關(guān)閉應(yīng)用程序時釋放內(nèi)存及相關(guān)資源等工作。(6)視窗管理器:用來管理所有啟動程序的視窗。(7)位置管理器:用來管理地圖服務(wù)的相關(guān)功能。(8)電話管理器:用來管理用戶撥打與接聽電話的相關(guān)功能。(9)包管理器:管理所有安裝在Android系統(tǒng)內(nèi)的包。類庫在Android中包含一些C/C++的類庫,這些類庫能被Android系統(tǒng)中不同的組件來使用。開發(fā)者可以通過應(yīng)用程序框架使用這些功能。部分核心類庫列表如下:(1)surfaceManager:主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管理的功能,在[顯示]與[存取操作]間的對應(yīng)、互動以及實現(xiàn)無接縫的2D/3D多應(yīng)用程序之間的整合。例如:在2D、2D顯示上的合成、疊合動作。(2)3Dlibraries:。該庫使用硬件加速(當(dāng)硬件可用時),可以將硬件的3D功能做最佳化的處理顯示。(3)SGL:主要是處理有關(guān)顯示2D方面的繪圖引擎。(4)MediaFramework:主要是以packetVideo公司的OpenCORE為基礎(chǔ)所發(fā)展的多媒體類庫,該庫支持回放和錄制大量流行的音視頻格式和靜態(tài)圖片。例如:MPEG4、、MP3、AAC、AMR、JPG、PNG、GIF等格式(5)FreeType:主要是用來顯示點陣圖和處理向量字形的。(6)SSL:(secureSocketsuyer),中文名為“安全套接層協(xié)議層”,它是網(wǎng)景公司提出的基于WEB應(yīng)用的安全協(xié)議,。SSL協(xié)議指定了一種在應(yīng)用程序協(xié)議(如HTTP、Telenet、NMTP和FTP等)和TCP/IP協(xié)議之間提供數(shù)據(jù)安全性分層的機制,它為TCP/IP連接提供數(shù)據(jù)加密、服務(wù)器認證、消息完整性以及可選的客戶機認證。它已被廣泛地用于Web瀏覽器與服務(wù)器之間的身份認證和加密數(shù)據(jù)傳輸。SSL協(xié)議位于TCP膽協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層:SSL記錄協(xié)議(SSLRecordProtocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL握手協(xié)議(SSLHandshakeprotocol):它建立在SSL記錄協(xié)議之上,用于在實際的數(shù)據(jù)傳輸開始前,通訊雙方進行身份認證、協(xié)商加密算法、交換加密密鑰等。SSL協(xié)議提供的服務(wù)主要有:①認證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務(wù)器;②加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取;③維護數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。(7)SQLite:SQLite是一套開放性的關(guān)聯(lián)式資料庫,能夠被所有應(yīng)用程序使用的輕量級的關(guān)系數(shù)據(jù)庫引擎。(8)webKit:是一個先進的網(wǎng)頁瀏覽器引擎,被用來構(gòu)建Android瀏覽器和內(nèi)嵌的web視圖,也可以讓開發(fā)者利用這個引擎來做不同的應(yīng)用。(9)libc:就是一個BSD標(biāo)準(zhǔn)C類庫。但是,針對Linux嵌入式裝置進行過最佳化的調(diào)整。運行環(huán)境操作系統(tǒng)WindowsXP或者VistaMacOSX或者更高版本(僅支持x86)Linux(LinuxUbuntuDapperDrake)Android開發(fā)變量及其配置(Europa),(Ganymede)EclipseJDT插件(大多數(shù)的EclipseIDE包包含)WST(可選,但Android編輯器的功能需要,他被包含在mostEclipseIDEpackages中)JDK5或者JDK6(中有JRE是不夠的)AndroidDevelopmentTools插件(可選)不兼容GNUJava編譯器Android開發(fā)環(huán)境搭建計算機配置開發(fā)Android應(yīng)用所用到的開發(fā)工具較占內(nèi)存,尤其是模擬器。官方并未給出最低配置要求,根據(jù)個人實際體會,在本人IntelCorei7-2630QM四核處理器及8G內(nèi)存的情況,能流暢使用。另外還需有600MB以上的剩余磁盤空間(官方文檔中的說明)。安裝JDK由于Android開發(fā)是基于Java的基礎(chǔ)上的,所以我們必須得安裝JDK(JDK下載地址:)。安裝過程中應(yīng)對系統(tǒng)的環(huán)境變量做出相應(yīng)的設(shè)置:右擊計算機屬性高級系統(tǒng)設(shè)置高級環(huán)境變量,新建“系統(tǒng)變量”,設(shè)置變量名:“java_home”。變量值:“C:\ProgramFiles\Java\”(視個人安裝路徑而定)。找到變量名為path的項,雙擊,在變量值后面添加:“;%JAVA_HOME%\bin;”,新建“系統(tǒng)變量”變量名:“classpath”,變量值:“.;%JAVA_HOME%\lib\;%JAVA_HOME%\lib\;”配置完成后,重啟可以在cmd下輸入java或者javac測試。安裝EclipseEclipse是我們以后在Android開發(fā)時使用的開發(fā)平臺,它集成了很多功能以及插件,在開發(fā)的過程中便于我們使用,在官網(wǎng)()可以下載到對應(yīng)系統(tǒng)以及功能的安裝包,在安裝提示安裝完成后并且完成了JDK的安裝后即可正常使用。安裝SDKSDK(SoftwareDevelopmentKit)初始包中有開發(fā)Android程序所要用到的工具,它包括了從編譯到運行Android應(yīng)用程序所需要的各種工具。安裝時可以根據(jù)自己的需求選擇安裝相應(yīng)的版本。(SDK下載地址:)安裝ADT,就可以開始開發(fā)Android應(yīng)用程序了,但是為了更高效地進行開發(fā),Android團隊推出了AndroidDevelopmentTools(ADT)。ADT是目前開發(fā)Android應(yīng)用最有效的工具,它是一個Eclipse插件,支持Eclipse。以Eclipse(Galileo)為例,安裝過程如下:打開Eclipse,選擇Help>InstallNewSoftare。在AvailableSoftware對話框中,點擊Add...。在彈出的AddSite對話框中,任意填寫一個名字到Name一欄。在Location一欄,則填入這一URL:“”,然后確認返回。(注意:如果在后續(xù)的步驟中發(fā)現(xiàn)無法安裝插件,可以試著把URL中的https換成http。)返回到AvailableSoftware窗口后,就能看到列表中出現(xiàn)了"DeveloperTools",選中它前面的復(fù)選框,再點擊“Next”,就會開始下載安裝ADT的各種組件了。安裝完畢后將彈出窗口顯示ADT相關(guān)的各種信息以及許可協(xié)議,點擊“Finish“即可完成安裝。重新啟動Eclipse。設(shè)置Eclipse選擇"Window>Preferences..."打開偏好設(shè)置從左側(cè)邊欄中選擇"Android"一欄。單擊SDKLocation一欄邊的Browse按鈕,選擇剛剛下載的SDK保存的路徑。點擊Apply,OK,設(shè)置生效。至此,Android的開發(fā)環(huán)境就已經(jīng)搭建完畢,可以使用了。創(chuàng)建AVD在安裝好JDK,Eclipse,SDK,ADK之后我們就可以進行Android項目開發(fā)了,但是在開發(fā)的過程中我們經(jīng)常需要運行、調(diào)試我們所開發(fā)的軟件,這就需要用到AVD(AndroidVirtualDevice),也就是Android虛擬機。打開Eclipse。點擊OpenstheAndroidVirtualDeviceManager圖標(biāo)按鈕。在彈出的窗口中點擊New新建一個Android虛擬機。在彈出的新建虛擬機窗口中Name一欄填上虛擬機的名稱(一般與虛擬機的版本號相同,便于區(qū)分)。在Target一欄選擇一個Android虛擬機版本()。在SDCard下的Size一欄填上我們要設(shè)定的SD卡容量大小。點擊CreateAVD,這樣我們的一個Android虛擬機就創(chuàng)建好了。HTTP協(xié)議超文本傳送協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標(biāo)記語言

(HTML)文檔從Web服務(wù)器傳送到Web

瀏覽器。HTML是一種用于創(chuàng)建文檔的標(biāo)記語言,這些文檔包含到相關(guān)信息的鏈接。您可以單擊一個鏈接來訪問其它文檔、圖像或多媒體對象,并獲得關(guān)于鏈接項的附加信息。HTTP工作在TCP/IP協(xié)議體系中的TCP協(xié)議上??蛻魴C和服務(wù)器必須都支持HTTP,才能在萬維網(wǎng)上發(fā)送和接收HTML文檔并進行交互。HTTP是一個屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。它于1990年提出,經(jīng)過幾年的使用與發(fā)展,得到不斷地完善和擴展。前一段時間用的是HTTP/,現(xiàn)在WWW中使用的是HTTP/。而且HTTP-NG(NextGenerationofHTTP)的建議已經(jīng)提出。主要特點可概括如下:支持客戶/服務(wù)器模式。簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。無連接:無連接的含義是限制每次連接只處理一個請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時它的應(yīng)答就較快。發(fā)出的請求信息包括以下幾個:請求行,例如GET/images/HTTP/,表示從/。(請求)頭,例如Accept-Language:en可選的消息體請求行和標(biāo)題必須以<CR><LF>作為結(jié)尾(也就是,回車然后換行)。空行內(nèi)必須只有<CR><LF>而無其他空格。在HTTP/,所有的請求頭,除Host外,都是可選的。請求方法:HTTP/(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:OPTIONS

返回服務(wù)器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務(wù)器發(fā)送’*’的請求來測試服務(wù)器的功能性。HEAD

向服務(wù)器索要與GET請求相一致的響應(yīng),只不過響應(yīng)體將不會被返回。這一方法可以在不必傳輸整個響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。GET

向特定的資源發(fā)出請求。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中,例如在web。其中一個原因是GET可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問。POST

向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。PUT

向指定資源位置上傳其最新內(nèi)容。DELETE

請求服務(wù)器刪除Request-URI所標(biāo)識的資源。TRACE

回顯服務(wù)器收到的請求,主要用于測試或診斷。JSOUP簡介JSOUP是一款Java的HTML解析器,可直接解析某個URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)。JSOUP的主要功能如下:1.從一個URL,文件或字符串中解析HTML;2.使用DOM或CSS選擇器來查找、取出數(shù)據(jù);3.可操作HTML元素、屬性、文本;JSOUP是基于MIT協(xié)議發(fā)布的,可放心使用于商業(yè)項目。文檔輸入JSOUP可以從包括字符串、URL地址以及本地文件來加載HTML文檔,并生成Document對象實例。解析并提取HTML元素這部分涉及一個HTML解析器最基本的功能,但JSOUP使用一種有別于其他開源項目的方式——選擇器修改數(shù)據(jù)在解析文檔的同時,我們可能會需要對文檔中的某些元素進行修改,例如我們可以為文檔中的所有圖片增加可點擊鏈接、修改鏈接地址或者是修改文本等。HTML文檔清理JSOUP在提供強大的API同時,人性化方面也做得非常好。在做網(wǎng)站的時候,經(jīng)常會提供用戶評論的功能。有些用戶比較淘氣,會搞一些腳本到評論內(nèi)容中,而這些腳本可能會破壞整個頁面的行為,更嚴重的是獲取一些機要信息,例如XSS跨站點攻擊之類的。Android應(yīng)用程序結(jié)構(gòu)剖析Android的APIAndroidAPI主要包含了以下幾個部分:(1),它告訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件(尤其是活動(Activity),服務(wù)(Service),意圖接收器(IntentReceiver)和內(nèi)容提供者(ContentProvider))。舉例來說,控制文件就是把活動和要接收的意圖(Intents)連接在一起的“膠水”。(2)活動活動就是一個有生命周期的對象。一個活動就是完成某些工作的代碼塊,這部分工作還可能包括對用戶UI界面的顯示。不過這不是必須的,有些活動從不顯示UI界面。(3)視圖視圖可以將其自身繪制到屏幕上。Android的用戶界面由一系列的視圖樹構(gòu)成。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)建一個新的視圖的方法來使用自定義的圖形處理技術(shù)(比如開發(fā)游戲,或者是使用了不常用的用戶圖形窗口界面)。(4)意圖意圖是一個簡單的消息對象,它表示程序想做某事的“意圖”。比如應(yīng)用程序想要顯示一個網(wǎng)頁,那么它可以通過創(chuàng)建一個Intent實例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個URI。系統(tǒng)將定位到能處理這一Intent的代碼(在當(dāng)前情況下就是瀏覽器),并運行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。(5)服務(wù)服務(wù)是運行在后臺的一段代碼。它可以運行在它自己的進程,也可以運行在其他應(yīng)用程序的進程里,這取決于自身的需要.。其它的組件可以綁定到一個服務(wù)上來,通過遠程過程調(diào)用(RPC)來調(diào)用這個方法。例如媒體播放器的服務(wù),當(dāng)用戶退出媒體選擇的界面時,仍然希望音樂依然可以繼續(xù)播放,這時就可用服務(wù)來保證當(dāng)用戶界面關(guān)閉時音樂還繼續(xù)播放著。(6)通知通知將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互來接收消息。最常見的通知包括短信息、通話記錄和語音郵件,但是應(yīng)用程序也可以創(chuàng)建它們自己的通知事件。(7)內(nèi)容提供者內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進行訪問。典型的例子就是使用內(nèi)容提供者來訪問聯(lián)系人列表。應(yīng)用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時也可以定義自己的內(nèi)容提供者來向其它應(yīng)用提供數(shù)據(jù)訪問服務(wù)。Android應(yīng)用程序結(jié)構(gòu)解析通常由以下四個組件來構(gòu)建一個完整的Android應(yīng)用程序。①活動②意圖接收器③服務(wù)④內(nèi)容提供者然而,并不是所有的Android應(yīng)用程序都必須具備上面的四個組件,可以由上面的一個或幾個來組建。當(dāng)決定使用以上哪些組件來構(gòu)建Android應(yīng)用程序時,,這是一個XML配置文件,在這個文件中可以聲明應(yīng)用程序組件以及它們的特性和要求。這個配置文件是每個Android應(yīng)用程序所必需的?;顒踊顒邮且陨纤膫€組件中最常用的一個。每個活動都是Activity的子類,并實現(xiàn)了一些獨有的功能,如管理UI顯示和UI的反饋事件。一個活動就相當(dāng)于應(yīng)用程序的一個用戶界面,由事件響應(yīng)以及視圖等組成。大多數(shù)的應(yīng)用程序通常包括多個界面。例如:一個文本聊天應(yīng)用程序,至少應(yīng)該包含一個聯(lián)系人列表界面、一個聊天界面、一個設(shè)置界面、一個聊天記錄查詢界面等等。每個界面其實都可看作是一個活動。顯示一個新界面就相當(dāng)于生成一個對應(yīng)的活動對象。在一些情況下,活動能夠返回給它的上級界面一個返回值,例如一個提供給用戶選擇照片的活動可以返回給它的調(diào)用者用戶選擇了哪個照片文件。當(dāng)一個新的活動出現(xiàn)時,前一個活動被中斷并被放入到一個歷史堆棧中。用戶可以使用返回鍵使前一個活動重現(xiàn)。當(dāng)一個活動不再需要時,可以將它們從歷史堆棧中移除。默認情況下,Android會為每個應(yīng)用程序保留從主界面開始的歷史堆棧。Android通過一個被稱作意圖的特殊類,來實現(xiàn)界面與界面之間的跳轉(zhuǎn)。一個意圖描述了一個應(yīng)用程序想要做什么。在意圖的描述結(jié)構(gòu)中,含有兩個重要的數(shù)據(jù)結(jié)構(gòu):動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型包括MAIN、VIEW、PICK、EDIT等等,而動作對應(yīng)的數(shù)據(jù)則以URI的形式表示。例如:顯示一個聯(lián)系人信息的界面,可以創(chuàng)建一個意圖,并將它的動作設(shè)置成VIEW,數(shù)據(jù)設(shè)置成表示這個人信息的URI。除此之外,還有一個被稱作意圖過濾器(IntentFiher)的相關(guān)類。當(dāng)發(fā)生一個有效的目的請求時,意圖過濾器用來描述一個活動能夠處理什么意圖。如上例中所描述,想要正常顯示一個聯(lián)系人信息的界面,必須聲明一個意圖過濾器,它說明當(dāng)有聯(lián)系人數(shù)據(jù)要被在界面上顯示時,知道如何處理它們。。從一個界面跳轉(zhuǎn)到另一個界面是由解析各種意圖實現(xiàn)的。例如:一個活動使用startActivity(myIntent)來調(diào)用其他活動時,系統(tǒng)會查找所有已經(jīng)安裝的應(yīng)用程序的意圖過濾器,并從中挑選出能夠匹配myIntent意圖的活動。隨后,這個新的活動接收到意圖(myIntent)的通知并開始運行。當(dāng)startActivity方法被調(diào)用,解析意圖的處理過程隨之發(fā)生,這個機制有以下兩個突出的優(yōu)點:活動可以通過一個以意圖形式產(chǎn)生的請求來重用其他組件的功能?;顒涌梢栽谌魏螘r候被一個具有等價意圖過濾器的新活動所替代。意圖接收器當(dāng)想要編寫代碼來對外部事件做一些處理時,可以使用意圖接收器。意圖接收器并不顯示UI界面,它是通過NotificationManager來通知用戶他們感興趣的事件發(fā)生了。,()來注冊自己的意圖接收器。當(dāng)一個意圖接收器被觸發(fā)時,系統(tǒng)會根據(jù)需要來啟動應(yīng)用程序。服務(wù)服務(wù)是具有長生命周期并且沒有用戶界面的代碼。內(nèi)容提供者在Android中,每個應(yīng)用程序都是有自己的userID及在自己的進程中執(zhí)行。這樣做的好處是,可以保護系統(tǒng)及應(yīng)用程序,避免被其他不正常的應(yīng)用程序所影響??梢园衙總€進程想像成是一個黑盒子,彼此不會互相影響,連內(nèi)存的資料都無法共享。如果應(yīng)用程序之間想要共享數(shù)據(jù),就需要使用用內(nèi)容提供者。一個內(nèi)容提供者就是一個類,它實現(xiàn)了一個標(biāo)準(zhǔn)的方法集合。其他的應(yīng)用程序可以使用這些方法來保存和檢索此內(nèi)容提供者處理過的數(shù)據(jù)。Intent的詳細解析在一個Android應(yīng)用中,主要是由四種組件組成的,這四種組件可參考上一節(jié)的內(nèi)容。而這四種組件是獨立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個真正的Android應(yīng)用。在這些組件之間的通訊中,主要是由意圖協(xié)助完成的。意圖負責(zé)對應(yīng)用中一次操作的動作、動作對應(yīng)的數(shù)據(jù)、附加數(shù)據(jù)進行描述,Android則根據(jù)此意圖的描述,負責(zé)找到相應(yīng)的組件,將意圖傳遞給它,并完成組件的調(diào)用。因此,意圖在這里起著一個媒體中介的作用,專門提供組件之間互相調(diào)用的相關(guān)信息,實現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。例如,在一個聯(lián)系人維護的應(yīng)用中,當(dāng)在一個聯(lián)系人列表屏幕(假設(shè)對應(yīng)的Activity為listActivity)上,點擊某個聯(lián)系人后,希望能夠調(diào)出此聯(lián)系人的詳細信息,為了實現(xiàn)這個目的,listActivity需要構(gòu)造一個Intent,這個Intent用于告訴系統(tǒng),要做“查看”動作,此動作對應(yīng)的查看對象是“某聯(lián)系人”,然后調(diào)用startActivity(intentintent),將構(gòu)造的Intent傳入,系統(tǒng)會根據(jù)此intent中的描述,。系統(tǒng)會調(diào)用找到的Activity,即為detailActivity,最終傳入Intent,detailActivitv則會根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。Intent的抽象描述在Android參考文檔中,對意圖的定義是執(zhí)行某操作的一個抽象描述。該抽象描述的具體內(nèi)容如下:首先,它是要執(zhí)行的動作的一個簡要描述,如查看、修改等,Android定義了一套標(biāo)準(zhǔn)動作。此外,還可以根據(jù)應(yīng)用的需要,定義自己的動作,并可定義相應(yīng)的活動來處理自定義的動作。其次,是執(zhí)行動作要操作的數(shù)據(jù),Android采用指向數(shù)據(jù)的一個URI方式來實現(xiàn)。另外,除了動作和數(shù)據(jù)這兩個重要屬性外,還有一些附加屬性:類別:被執(zhí)行動作的附加信息。例如LAUNCHER_CATEGORY表示意圖的接受者應(yīng)該在Launcher中作為頂級應(yīng)用出現(xiàn);而ALTERNATIVECATEGORY表示當(dāng)前的意圖是一系列的可選動作中的一個,這些動作可以在同一個數(shù)據(jù)上執(zhí)行。數(shù)據(jù)類型:顯式指定意圖的數(shù)據(jù)類型。一般意圖的數(shù)據(jù)類型能夠根據(jù)數(shù)據(jù)本身進行判定,但是通過設(shè)置這個屬性,可以強制采用指定的類型。組件:指定意圖的目標(biāo)組件的類名稱。通常Android會根據(jù)意圖中包含的其它屬性的信息,比如動作、數(shù)據(jù)/數(shù)據(jù)類型、類別進行查找,最終找到一個與之匹配的目標(biāo)組件。附加信息:是其它所有附加信息的集合。使用附加信息可以為組件提供擴展信息,比如,如果要執(zhí)行“發(fā)送電子郵件”這個動作,可以將電子郵件的標(biāo)題、正文等保存在附加信息里,傳給電子郵件發(fā)送組件。總之,動作、數(shù)據(jù)/數(shù)據(jù)類型、類別和附加信息一起形成了一種語言。這種語言使系統(tǒng)能夠理解諸如“查看某聯(lián)系人的詳細信息”之類的短語。隨著應(yīng)用不斷的加入到系統(tǒng)中,它們可以添加新的動作、數(shù)據(jù)/數(shù)據(jù)類型和類別來擴展這種語言。應(yīng)用也可以提供自己的活動來處理已經(jīng)存在的這樣的“短語”,從而改變這些“短語”的行為。Android中Intent的使用在應(yīng)用中,可以以兩種形式來使用Intent:(l)直接意圖:指定了組件屬性的意圖。通過指定具體的組件類,通知應(yīng)用啟動對應(yīng)的組件。(2)間接意圖:沒有指定組件屬性的意圖。這些意圖需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在所有的可用組件中,確定滿足此意圖的組件。對于直接意圖,Android不需要去做解析,因為目標(biāo)組件已經(jīng)很明確,Android需要解析的是那些間接意圖,通過解析,將意圖映射給可以處理此意圖的活動、意圖接收器或服務(wù)。,最終找到匹配的意圖。在這個解析過程中,Android是通過意圖的動作、數(shù)據(jù)類型、類別這三個屬性來進行判斷的,判斷方法如下:如果意圖指明定了動作,則目標(biāo)組件的意圖過濾器的動作列表中就必須包含有這個動作,否則不能匹配。如果意圖沒有提供數(shù)據(jù)類型,系統(tǒng)將從數(shù)據(jù)中得到數(shù)據(jù)類型。和動作一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包含意圖的數(shù)據(jù)類型,否則不能匹配。如果意圖中的數(shù)據(jù)不是content:類型的URI,而且意圖也沒有明確指定它的數(shù)據(jù)類型,將根據(jù)意圖中數(shù)據(jù)的格式(比如http:或者mailto:)進行匹配。同上,意圖的格式必須出現(xiàn)在目標(biāo)組件的格式列表中。如果意圖指定了一個或多個類別,這些類別必須全部出現(xiàn)在組建的類別列表中。比如意圖中包含了兩個類別:LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目標(biāo)組件必須至少包含這兩個類別。Android活動的生命周期Android平臺是個手機作業(yè)系統(tǒng)。撇掉其他功能不談,手機的特性,就是應(yīng)該能隨時在未完成目前動作的時候,暫停正在使用的功能,切換到接電話、接收短信模式,而且在接完電話回到應(yīng)用程序時,還希望能看到一樣的內(nèi)容?,F(xiàn)在用戶使用智能手機,大多已習(xí)慣使用多工的作業(yè)系統(tǒng)(如windowsMobile),可以在用手機聽音樂的同時,執(zhí)行其他多個程序。同時執(zhí)行多個程序有它的明顯好處,但也有它的缺點。每多執(zhí)行一個應(yīng)用程序,就會多耗費一些系統(tǒng)內(nèi)存,而手機里的內(nèi)存是相當(dāng)有限的。當(dāng)同時執(zhí)行的程序過多,或是關(guān)閉的程序沒有正確釋放掉內(nèi)存,系統(tǒng)運行時就會覺得越來越慢,甚至不穩(wěn)定。為了解決這個問題,Android引入了一個新的機制—生命周期。Android應(yīng)用程序的生命周期是由Android框架進行管理,而不是由應(yīng)用程序直接控制。通常,每一個應(yīng)用程序(入口一般會是一個活動的onCreate方法,都會占據(jù)一個進程。當(dāng)系統(tǒng)內(nèi)存即將不足的時候,會依照優(yōu)先級自動進行進程的回收。不管是使用者或開發(fā)者,都無法確定應(yīng)用程序何時會被回收。關(guān)于進程的生命周期將在下一節(jié)中介紹,本節(jié)主要介紹活動的生命周期。一個活動類別除了onCreate方法之外,還預(yù)先定義了onPause(暫停)、onResume(繼續(xù))等的基本方法,當(dāng)從一個活動切換到另一個活動的時候,原來的活動將經(jīng)過一連串的狀態(tài)改變。開發(fā)者可以在程序中添加一些各狀態(tài)相對應(yīng)的流程,每次活動狀態(tài)改變時,就會執(zhí)行相對應(yīng)的流程。要讓用戶有好的使用體驗,活動需要在各個周期中負責(zé)保管狀態(tài)、恢復(fù)狀態(tài)、傳送資料等工作?;顒拥纳鼱顟B(tài)Android的虛擬機是使用堆棧管理。主要有四種狀態(tài):(l)活動狀態(tài)活動狀態(tài)是指用戶啟動應(yīng)用程序或活動后,活動運行中的狀態(tài)。在Android平臺上,同一個時刻只會有一個活動處于活動或運行狀態(tài)。其他的活動都處于未啟動、停止或是暫停的狀態(tài)。(2)暫停狀態(tài)暫停狀態(tài)是指當(dāng)活動暫時暗下來,退到背景畫面的狀態(tài)。當(dāng)警告對話框或電話來了時,都會讓原來運行的活動退到背景畫面。新出現(xiàn)的警告對話框等界面元件蓋住了原來的活動畫面?;顒犹幵跁和顟B(tài)時,用戶無法與原活動互動。(3)停止?fàn)顟B(tài)停止?fàn)顟B(tài)是指有其他活動正在執(zhí)行,而這個活動己經(jīng)離開屏幕,不再動作的狀態(tài)。通過按返回鍵,可以調(diào)出所有處于停止?fàn)顟B(tài)的應(yīng)用程序列表。處于停止?fàn)顟B(tài)的活動,還可以通過通知來喚醒。(4)已回收或未啟動狀態(tài)已回收或未啟動狀態(tài)是指活動尚未被啟動、已經(jīng)被手動終止或己經(jīng)被系統(tǒng)回收的狀態(tài)。要手動終止活動,可以在程序中調(diào)用finish方法。如果是被系統(tǒng)回收,可能是因為內(nèi)存不足了,所以系統(tǒng)根據(jù)內(nèi)存不足時的回收規(guī)則,將處于停止?fàn)顟B(tài)的活動所占用的內(nèi)存回收。Adroid活動生命周期如圖3-1所示:圖3-1Android活動生命周期圖3-1所示的七個狀態(tài)又可以歸納成三組:(l)資源分配(創(chuàng)建/銷毀)完整的活動生命周期由創(chuàng)建狀態(tài)開始,由銷毀狀態(tài)結(jié)束。創(chuàng)建時分配資源,銷毀時釋放資源。(2)可見與不可見(啟動/重新啟動/停止)當(dāng)活動運行到啟動狀態(tài)時,就可以在屏幕上看到這個活動。相反地,當(dāng)活動運行到停止?fàn)顟B(tài)時,這個活動就會從屏幕上消失。當(dāng)用戶按下返回鍵回到上一個活動時,會先到重新啟動狀態(tài),再到一般的啟動狀態(tài)。(3)用戶取得屏幕的控制權(quán)(繼續(xù)/暫停)當(dāng)有個警告對話框、短信、電話等信息進入時,原來的活動會進入暫停狀態(tài),暫時放棄屏幕的控制權(quán),被中斷到背景去,將前景交給優(yōu)先級高的事件。當(dāng)這些優(yōu)先級高的事件處理完后,活動就改進入繼續(xù)狀態(tài),此時又取得屏幕的控制權(quán)?;顒拥倪\作流程由實際運行來看,我們可以歸納出所有Android應(yīng)用程序都遵循的運作流程:(l)一般啟動啟動一個活動的基本流程為onCreate一>onstart一>onResume。該流程首先分配資源給這個活動(創(chuàng)建狀態(tài)),然后將活動的內(nèi)容顯示到屏幕上(啟動狀態(tài));在一切就緒后,取得屏幕的控制權(quán)(恢復(fù)狀態(tài)),用戶可以開始使用這個程序。(2)調(diào)用另一個活動調(diào)用另一個活動的基本流程為onPause(l)一>onCreate(2)一>onStart(2)一>0nResume(2)一>onStop(l)。該流程首先凍結(jié)原來的活動,再交出屏幕控制權(quán);直到活動2完成一般啟動流程后,活動1才會被停止。(3)回到原來活動回到原來活動的基本流程為onPause(2)一>onRestart(1)一>onStart(l)一>onResume(1)一>onStop(2)一>onDestroy(2)。另外按返回鍵也可以回到原來的活動。(4)退出結(jié)束退出結(jié)束的基本流程為onPause一>onStop一>onDestroy。如果程序中有直接調(diào)用finish方法來關(guān)閉活動的話,系統(tǒng)會跳過先凍結(jié)的階段,直接暫停,停止,然后銷毀。(5)回收后再啟動回收后再啟動的基本流程為onCreate一>onStart一>onResume。如果被回收掉的活動一旦又重新被調(diào)用時,會像一般啟動一樣再次調(diào)用活動的onCreate方法。當(dāng)在模擬器上已經(jīng)執(zhí)行過多個應(yīng)用程序,只要按下返回鍵,就會開啟最近一次開啟過的活動。所以如果要讓再次被創(chuàng)建的活動跟原來開啟過的一樣,那么在活動之間切換時,就要保存資料:即在每次活動運行到暫?;蛲V?fàn)顟B(tài)時先保存資料,然后在創(chuàng)建時將資料讀出來。需求分析背景軟件開發(fā)提出者:太原理工大學(xué)軟件學(xué)院。開發(fā)者:李銘凱。用戶:太原理工大學(xué)全體學(xué)生。用戶特點:只存在在校就讀學(xué)生一類用戶,不需項目經(jīng)費。軟件適用范圍:所有基于Android操作系統(tǒng)的智能觸屏手機。假定條件下的約束限制硬件約束表4-1硬件約束表需求名稱詳細要求軟件硬件要求支持Android操作系統(tǒng)的嵌入式平臺,支持wifi功能,帶觸摸屏功能軟件系統(tǒng)平臺用戶約束表4-2用戶約束表需求名稱詳細要求太原理工大學(xué)學(xué)生會簡單的觸摸屏操作系統(tǒng)目標(biāo)基于Android平臺的學(xué)生管理系統(tǒng)開發(fā)的意圖是為便于學(xué)生對本人成績和課表的查詢以及對教務(wù)系統(tǒng)密碼的修改。先行組織機構(gòu)及業(yè)務(wù)現(xiàn)狀太原理工大學(xué)教務(wù)系統(tǒng),是學(xué)生查看個人信息和學(xué)校信息的主要途徑,在電腦上應(yīng)用改系統(tǒng),機動性不夠,限制多(停電,網(wǎng)絡(luò)出現(xiàn)問題等)。功能需求本系統(tǒng)扮演著提供用戶直接查詢業(yè)務(wù)的重要角色,它主要提供友好的,方便的用戶操作界面,接受用戶的各項查詢以及密碼的修改。具體的功能如下:成績信息的查詢:數(shù)據(jù)由教務(wù)系統(tǒng)提供。可以通過本系統(tǒng)查詢本學(xué)期成績,及格成績和不及格成績。課程信息的查詢:數(shù)據(jù)由教務(wù)系統(tǒng)提供。可以通過本系統(tǒng)查詢本學(xué)期的課表。密碼的修改:可以將密碼提交到教務(wù)系統(tǒng)進行密碼的修改。性能需求手機應(yīng)用程序需要提供良好的用戶體驗。良好的用戶體驗體現(xiàn)在以下三點:界面友好我們的用戶界面非常的簡潔美觀,并且易于操作。我們的軟件能快速處理用戶的輸入或查詢,對于有些需要較多時間的應(yīng)用程序,我們會在他處理時,給用戶一個數(shù)據(jù)正在處理的提示,讓用戶知道程序還在運行中??焖夙憫?yīng)我們的軟件能快速處理用戶的輸入或查詢,對于有些需要較多時間的應(yīng)用程序,我們會在他處理時,給用戶一個數(shù)據(jù)正在處理的提示,讓用戶知道程序還在運行中。數(shù)據(jù)安全本系統(tǒng)采用二級安全保障第一級:依賴于網(wǎng)絡(luò)本身對用戶使用權(quán)限的規(guī)定。第二級:在程序模塊上通過使用密碼控制功能對用戶使用權(quán)限加以限制。數(shù)據(jù)需求本系統(tǒng)采用二級安全保障第一級:依賴于網(wǎng)絡(luò)本身對用戶使用權(quán)限的規(guī)定。第二級:在程序模塊上通過使用密碼控制功能對用戶使用權(quán)限加以限制。太原理工大學(xué)教務(wù)系統(tǒng)為數(shù)據(jù)提供者。所有內(nèi)容需要院方先對所有學(xué)生有相關(guān)資料存儲,再通過登錄認證,方可查詢相關(guān)業(yè)務(wù)。系統(tǒng)概要設(shè)計系統(tǒng)功能模塊Android平臺的學(xué)生管理系統(tǒng)是一個集web、數(shù)據(jù)庫、移動終端一體的應(yīng)用系統(tǒng)。經(jīng)過考慮,我選取了本學(xué)期成績查詢、及格成績查詢、不及格成績查詢、本學(xué)期課表查詢以及密碼修改這幾個試用率最高的這幾個功能,具體的功能模塊設(shè)計如圖5-1所示:登錄模塊登錄模塊選擇模塊選擇模塊其他功能課表查詢成績查詢其他功能課表查詢成績查詢本學(xué)期成績檢查更新分享密碼修改不及格成績及格成績本學(xué)期成績檢查更新分享密碼修改不及格成績及格成績圖5-1系統(tǒng)功能模塊示意圖系統(tǒng)實現(xiàn)流程圖啟動系統(tǒng)之后,會進入到登陸界面,通過輸入正確的賬號密碼,會直接進入到成績查詢界面,通過點選選項,可以進入到課表查詢和其他功能界面。系統(tǒng)實現(xiàn)流程圖如圖5-2所示:圖5-2系統(tǒng)實現(xiàn)流程圖網(wǎng)絡(luò)傳輸模塊概要設(shè)計設(shè)計思路在網(wǎng)絡(luò)傳輸功能中,我們是把手機設(shè)為client端。太原理工大學(xué)的教務(wù)系統(tǒng)作為server端來使用。手機端向server端發(fā)送請求或者發(fā)送數(shù)據(jù),server端接收請求并返回結(jié)果。在軟件中,每一個功能模塊都需要用到網(wǎng)絡(luò)傳輸功能,建立連接,保持通信,獲取和傳遞信息等等,可以說網(wǎng)絡(luò)傳輸功能貫穿了我們整個管理系統(tǒng)??蛻舳伺c服務(wù)器端的關(guān)系如圖5-3所示:CClient發(fā)送請求Server接收Server發(fā)送數(shù)據(jù)Client接收圖5-3Client端與server端關(guān)系圖數(shù)據(jù)獲取剛開始想的時候,我想到了院方提供現(xiàn)成的數(shù)據(jù)庫,直接獲取數(shù)據(jù)庫上的信息,再通過無線網(wǎng)絡(luò)傳輸?shù)绞謾C。但院方的數(shù)據(jù)庫不對外開放。經(jīng)過思考,我最終決定使用jsoup來解決這一問題。網(wǎng)絡(luò)連接在解決了數(shù)據(jù)獲取的問題之后,我開始著手網(wǎng)絡(luò)連通的問題上。為了保證可以持續(xù)會話,必須將登錄后的cookie保存起來,當(dāng)每次訪問教務(wù)系統(tǒng)時候就在請求體中加上保存好的cookie。在cookie的有效期內(nèi),都可以通過這個cookie進行各項功能的實現(xiàn)。當(dāng)cookie過期后,會跳到登錄界面,登錄后會將新的cookie保存。系統(tǒng)詳細設(shè)計與實現(xiàn)登錄模塊因為我們的數(shù)據(jù)提供者是太原理工大學(xué)教務(wù)系統(tǒng),在獲取賬號密碼后,提交到,向server端發(fā)送請求,驗證賬號密碼正確。在登錄模塊中運用了HTTP協(xié)議post請求方法。使用了Jsoup包來獲得hidden數(shù)據(jù)。獲取輸入框中的學(xué)號和密碼:Stringnumber=().toString(); Stringpassword=().toString();登錄前對網(wǎng)絡(luò)狀態(tài)進行判斷: ConnectivityManagerconnectivityManager=(ConnectivityManager) (); if(connectivityManager==null){ returnfalse; }else{ NetworkInfo[]info=(); if(info!=null){ for(NetworkInfonetwork:info){ if(()==){ returntrue; } } } } returnfalse;以post方式提交請求:Stringhtml=+"?"+"zjh="+account+"&mm=" +password; (html); HttpClientclient=newDefaultHttpClient(); HttpPostpost=newHttpPost(html);獲取到登陸成功后的cookie:HttpResponseresponse=(post); HttpEntityentity=(); (entity); cookies=((AbstractHttpClient)client).getCookieStore().getCookies();登錄成功后將學(xué)號和密碼保存起來:SharedPreferencespre=getSharedPreferences("tyut",MODE_APPEND); Editoreditor=(); ("number",number); if(()){ ("password",password); }else{ ().remove("password").commit(); } ();登錄界面效果圖如圖6-1所示:圖6-1登錄界面效果圖成績查詢模塊成績查詢模塊是對學(xué)生的成績信息進行查詢,包括了本學(xué)期成績、及格成績和不及格成績。這三個模塊的功能實現(xiàn)原理是一樣的,只是對返回數(shù)據(jù)的解析會有一些區(qū)別。三個選項是通過一個popwindow實現(xiàn),點選popwindow中的選項,listview中的數(shù)據(jù)會發(fā)生改變。該模塊還添加了下拉刷新,通過下拉刷新,對成績信息進行刷新操作。定義popwindow的關(guān)鍵代碼如下:if(mPopupwinow==null){ mPopupwinow=newPopupWindow(llyPopView, //, getScreenWidth()/2,,true); (newColorDrawable( 0x00000000)); (newOnDismissListener(){ @Override publicvoidonDismiss(){ //TODOAuto-generatedmethodstub (); } });判斷網(wǎng)絡(luò)狀態(tài)后執(zhí)行異步任務(wù)操作的代碼:if((getApplicationContext())){ getFirst=newGetGradeFirst(); (); }else{ (getApplicationContext(),"當(dāng)前無網(wǎng)絡(luò)", ).show(); }異步任務(wù)獲取成績信息后對數(shù)據(jù)處理的代碼:if(()>0){ mPullToRefreshListView .setAdapter(newSimpleAdapter(, result,,newString[]{ "courseName","credit","grade"}, newint[]{,,})); (); }else{ (,"暫無成績信息",) .show(); (); }成績查詢界面效果圖如圖6-2所示:圖6-2成績查詢界面本學(xué)期課表查詢模塊本學(xué)期課表查詢模塊通過模擬登錄獲取到教務(wù)系統(tǒng)的本學(xué)期課表頁面并對頁面進行解析。獲取到的課表數(shù)據(jù)通過一個開源的表格框架來顯示,可以上下和左右滑動來查看。對表進行配置的代碼:table=(this,8); (titles); (contents); (cellTypes); (cellWidth); (rowHeight); (rowTextSize); (tableResource); (rowTextColor);判斷網(wǎng)絡(luò)狀態(tài)后執(zhí)行異步任務(wù)操作的代碼:if((this)){ CourseAsynccourse=newCourseAsync(); (); }else{ (this,"當(dāng)前無網(wǎng)絡(luò)",).show(); }異步任務(wù)獲取課表信息后對數(shù)據(jù)處理的代碼://判斷執(zhí)行結(jié)果是否為空if(result!=null){ list=newArrayList<Map<String,Object>>(); for(inti=0;i<();i++){ if(i!=0&&i!=33&&i!=34&&i!=67&&i!=68){ ((i)); } } course_list=newArrayList<String>(); for(intj=0;j<();j++){ map=newHashMap<String,Object>(); map=(j); ((String)("courseInfo")); } for(inta=0;a<();a+=8){ for(intb=a;b<a+8;b++){ if(b==a){ aa=(b); }elseif(b==(a+1)){ bb=(b); }elseif(b==(a+2)){ cc=(b); }elseif(b==(a+3)){ dd=(b); }elseif(b==(a+4)){ ee=(b); }elseif(b==(a+5)){ ff=(b); }elseif(b==(a+6)){ gg=(b); }elseif(b==(a+7)){ hh=(b); } } String[]data1=newString[]{aa,bb,cc,dd,ee,ff,gg,hh}; (data1); } (); }課表信息查詢界面效果圖如圖6-3所示:圖6-3課表信息界面修改密碼模塊密碼修改功能是模擬教務(wù)系統(tǒng)網(wǎng)頁進行密碼的修改。在手機端將舊密碼和新密碼輸入以后提交到教務(wù)系統(tǒng)服務(wù)器端的url。然后通過解析返回的網(wǎng)頁來判斷是否修改成功。修改成功后將新的密碼保存,舊密碼被取代。修改密碼功能的關(guān)鍵代碼如下://將修改密碼需要提交的數(shù)據(jù)添加到指定url中Stringhtml1=+"?newPass1=" +newPass1+"&newPass2="+newPass2+"&oldPass=" +oldPass+"&yhlbdm=01&zjh="+account; HttpClientclient2=newDefaultHttpClient(); ((AbstractHttpClient)client2) .setCookieStore(((AbstractHttpClient)client).getCookieStore()); HttpPostpost2=newHttpPost(html1); HttpResponseresponse2=(post2);//根據(jù)返回結(jié)果判斷是否登錄成功 if(().getStatusCode()==200){ ("修改成功"); return1; }修改密碼界面效果圖如圖6-4所示:圖6-4修改密碼界面分享模塊通過intent可以將文字和圖片分享到手機中安裝好的應(yīng)用當(dāng)中。分享功能的代碼如下:Intentintent=newIntent(); ("text/plain");//設(shè)置分享類型 (,content);//設(shè)置分享內(nèi)容 ();//設(shè)置打開方式 startActivity(intent);分享界面效果圖如圖6-5所示:圖6-5分享界面測試用例設(shè)計過程中出現(xiàn)的問題本軟件的開發(fā)比預(yù)期中延遲了一個星期。原因主要是對編碼階段所需的時間估計不準(zhǔn)確。這主要由于在某些技術(shù)上的問題在設(shè)計過程中沒有考慮到,導(dǎo)致在編碼過程中需要花一些時間去考慮所遇到技術(shù)的問題延遲了完成的時間。其次編碼的不熟悉,經(jīng)常要查資料,花費時間巨大。目標(biāo)完善軟件。對各個模塊進行測試,確保各個模塊正常運作。運行與測試環(huán)境運行環(huán)境:。測試環(huán)境:已成功安裝本軟件的Android手機以及一學(xué)生教務(wù)系統(tǒng)賬號。功能測試登錄模塊測試表7-1登錄模塊測試用例表用例目標(biāo)測試登錄模塊是否正常運作需求描述正常登陸步驟操作輸入數(shù)據(jù)預(yù)期結(jié)果輸入賬號密碼賬號:2011000169密碼(不公開)順利進入用戶選擇界面用戶選擇模塊測試表7-2用戶選擇模塊測試用例表用例目標(biāo)測試用戶選擇模塊是否正常運作需求描述正常顯示各功能界面步驟操作輸入數(shù)據(jù)預(yù)期結(jié)果1點擊功能選擇按鈕無順利進入各個功能界面各大功能模塊測試表7-3其他功能模塊測試用例表用例目標(biāo)測試各大功能模塊是否正常運作需求描述正確顯示該模塊信息步驟操作輸入數(shù)據(jù)預(yù)期結(jié)果1點擊進入成績查詢界面無順利顯示本學(xué)期成績(無本學(xué)期成績?yōu)榭瞻祝c擊進入及格成績查詢模塊無順利顯示及格成績點擊進入不及格成績查詢無順利顯示不及格成績(無不及格成績?yōu)轱@示上次操作后的數(shù)據(jù))點擊進入本學(xué)期課表查詢無順利顯示本學(xué)期課表(無課表信息則只顯示表結(jié)構(gòu))點擊進入密碼修改舊密碼和新密碼順利修改密碼點擊進入分享無順利將編輯好的信息分享給好友非功能測試實時性測試通過用戶的點擊操作,一般在兩妙內(nèi)能實現(xiàn)。安裝/反安裝測試在用戶手機上進行安裝和反安裝正常,反安裝是刪除所有安裝內(nèi)容。兼容性測試在引用本軟件時,能與其他軟件同時正常工作,不會引起兼容性問題。用戶界面測試表7-4用戶界面測試表測試內(nèi)容反映窗口切換正常各個界面元素的文字顯示正常各個界面元素支持點擊操作正常名利執(zhí)行順序合理性正常界面元素布局合乎統(tǒng)一的約定正常界面元素形狀合乎統(tǒng)一的約定正常界面上的字體合乎統(tǒng)一的約定正常圖片合乎統(tǒng)一的約定正常

總結(jié)在畢業(yè)設(shè)計的三個月時間里,收獲很大,做畢業(yè)設(shè)計的整個過程中彷徨過,動搖過,但最后都挺過來了,因為我知道所有的疑惑必須用行動才能解決,整個畢業(yè)設(shè)計每遇到問題,我都提醒自己從時間出發(fā)去解決問題,空想是不會解決人和問題的。在軟件開發(fā)的各個階段我遇到了各種各樣的問題,通過自己的努力,在老師的幫助下,所有的問題都迎刃而解,因為天道酬勤。整個畢業(yè)設(shè)計給我的啟示如下:路是要一步

溫馨提示

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

評論

0/150

提交評論