畢業論文-基于Android學生基本信息管理的設計與開發_第1頁
畢業論文-基于Android學生基本信息管理的設計與開發_第2頁
畢業論文-基于Android學生基本信息管理的設計與開發_第3頁
畢業論文-基于Android學生基本信息管理的設計與開發_第4頁
畢業論文-基于Android學生基本信息管理的設計與開發_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 太原理工大學畢業設計(論文)用紙 緒論課題背景隨著科學技術的發展,計算機網絡技術的普及和對辦公效率的要求越來越高,很多高校開始網絡化辦公改革,將更多的平常工作(入通信聯系,發放通知,傳遞文件等)通過網絡這個平臺來完成。經過一段時間的發展,網絡在搞笑日常鍋里中實現的功能越來越多,數字化校園管理系統應運而生。我們學校是采用瀏覽器/服務器(b/s)模式,這種模式想對最初的人工管理方便了許多,不在需要大量的人力,學生要登陸并操作管理系統也不再需要排隊和擁擠,更不會因為在系統上的操作會耽誤正常的教學任務(問卷調查等)。b/s模式的校園信息系統只需要一臺能訪問網絡的瀏覽器即可。只要信息系統服務器端提供個

2、人信息,考試成績,課程表等等業務模塊,在客戶端的瀏覽器視窗中就能進行相應模塊的功能管理。這種b/s模式的信息管理系統具有不限時間,地點等優勢,然而隨著移動互聯網的發展這種b/s模式的信息管理系統也存在很多不足,比如你想要進行相關操作,就必須坐在電腦前,而且課程開設的通知等等也是要通過上網才知道,對于一些不常上網的同學可能會錯過很多有用的消息,比如說課程調整,成績發布等等。而這些缺陷都可以通過移動終端來解決。系統內容及開發意義綜上所訴,在平時的校園生活中,教務系統給予各系的同學許多方便,學校繳費,選課調課,查詢考試,報名考證等等,都可以通過電腦登錄教務系統來得到解決。而為了讓教務系統變得更加便利

3、,我們有必要開發一個基于Android平臺下的學生信息信息管理系統。同學們就可以通過安裝有Android系統的只能手機來登陸和操作信息管理系統,并隨時隨地查看信息系統的信息。同時對于軟件工程系的我而言,這是見證我們四年所學的最佳機遇。這一次的軟件開發過程,給了一個讓我發揮的平臺。Android平臺及相關技術簡介Android現狀及發展Android 是Google開發的基于Linux平臺的開源HYPERLINK /z/Search.e?sp=S%E6%89%8B%E6%9C%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&ch=w.search.yjjlink&c

4、id=w.search.yjjlink t _blank手機操作系統。它包括HYPERLINK /z/Search.e?sp=S%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank操作系統、用戶界面和應用程序 HYPERLINK /z/Search.e?sp=S%E7%A7%BB%E5%8A%A8%E7%94%B5%E8%AF%9D&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank移動電話工作所需的全部軟件,而且不存在任何以往

5、阻礙移動產業創新的專有權障礙。Google與開放手機聯盟合作開發了 Android,這個聯盟由包括HYPERLINK /z/Search.e?sp=S%E4%B8%AD%E5%9B%BD%E7%A7%BB%E5%8A%A8&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank中國移動、HYPERLINK /z/Search.e?sp=S%E6%91%A9%E6%89%98%E7%BD%97%E6%8B%89&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank摩托羅拉、HYPERLINK /z/Sear

6、ch.e?sp=S%E9%AB%98%E9%80%9A&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank高通、HYPERLINK /z/Search.e?sp=S%E5%AE%8F%E8%BE%BE%E7%94%B5&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank宏達電和 T-Mobile 在內的 30 多家技術和無線應用的領軍企業組成。Google通過與運營商、設備制造商、開發商和其他有關各方結成深層次的合作伙伴關系,希望借助建立標準化、開放式的移動電話軟件平臺,在移動產業內形成一個開放式的

7、HYPERLINK /z/Search.e?sp=S%E7%94%9F%E6%80%81%E7%B3%BB%E7%BB%9F&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank生態系統。Android 作為HYPERLINK /z/Search.e?sp=S%E8%B0%B7%E6%AD%8C&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank谷歌HYPERLINK /z/Search.e?sp=S%E4%BC%81%E4%B8%9A%E6%88%98%E7%95%A5&ch=w.search.yj

8、jlink&cid=w.search.yjjlink t _blank企業戰略的重要組成部分,將進一步推進隨時隨地為每個人提供信息這一HYPERLINK /z/Search.e?sp=S%E4%BC%81%E4%B8%9A%E7%9B%AE%E6%A0%87&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank企業目標的實現。我們發現,全球為數眾多的移動電話用戶從未使用過任何基于 Android 的電話。谷歌的目標是讓(移動通訊)不依賴于設備甚至平臺。出于這個目的,Android 將補充,而不會替代谷歌長期以來HYPERLINK /z/Search

9、.e?sp=S%E5%A5%89%E8%A1%8C&ch=w.search.yjjlink&cid=w.search.yjjlink t _blank奉行的移動發展戰略:通過與全球各地的手機制造商和移動運營商結成合作伙伴,開發既有用又有吸引力的移動服務,并推廣這些產品。開放手機聯盟的成立和 Android 的推出是對現狀的重大改變,在帶來初步效益之前,還需要不小的耐心和高昂的投入。在2012年,Android手機的全球銷量為4.815部,占據了全球智能手機68.8%的市場份額。在2013年,這個數字上升到了7.812億、78.9%,這是一個相當驚人的數字。不過,這些數字當中,還蘊含了一些有趣的

10、部分。比如在2013年第四季度,25%的Android手機并未包含谷歌服務,以亞馬遜、國內的小米等廠商為主。顯然,這種現象說明了即使Android極受歡迎,但碎片化則十分嚴重。再來看看Android版本的分布情況。目前,最新的Android 4.4顯然尚不成氣候,Android 4.3/4.2/4.1則占據了59.1%的份額,Android 4.0下降到16.9%,其他22.5%則是老舊的Android 2.X。顯然,雙核/四核處理器已經向低端產品普及,越來越多的手機都能夠搭載更新版本的系統版本,但碎片化依然是谷歌需要考慮的課題。Android系統特點Android系統最震撼人心之處在于其開放

11、性和服務的免費性方面。Android是一個對第三方軟件完全開放的平臺,開發者在為其開發程序時擁有更大的自由度,突破了iPhone等只能添加為數不多的固定軟件的枷鎖;同時與Windows Mobile(現叫Windows Phone)、Symbian等廠商不同,Android操作系統免費向開發人員提供,這樣可節省30%的成本。Android平臺的手機以及平板電腦具有以下5大特點:開放性。在優勢方面,Android平臺首先就是其開放性,開發的平臺允許任何移動終端廠商加入到Android聯盟中。顯著的開放性可以使其擁有更多的開發者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很將走向成熟,蘋果的IO

12、S系統封閉;無向任何廠商提供,Windows Phone系統封閉,廠商需要花高價購買;Nokia的Symbian之前也一直是封閉,現在已經末落了。掙脫運營商的束縛。在過去很長的一段時間,特別是在歐美地區,手機應用往往受到運營商制約,使用什么功能接入什么網絡,幾乎都受到運營商的控制。自從Android上市,用戶可以更加方便地連接網絡,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網絡的逐步過渡和提升,手機隨意揍人網絡已不是運營商口中的笑談。豐富的硬件選擇。這一點還是與Android平臺的開放性相關。由于Android的開放性,眾多的廠商會推出豐富多彩、各具特色的多種產品。功能上的差

13、異和特色卻不會影響到數據同步、甚至軟件的兼容性。好比用戶從諾基亞的Symbian(塞班)風格手機一下改用裝載Android(安卓)系統的手機,同時還可將Symbian中優秀的軟件帶到新手機上使用,聯系人等資料更是可以方便地轉移。不受任何限制的開發商。Android平臺提供給第三方開發商一個十分寬泛、自由的環境,因此不會受到各種條條框框的阻撓,可想而知,這樣會有多少新穎別致的軟件會誕生。但這也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android開發人員的難題之一。無縫結合的Google應用。如今Google在互聯網領域已經走過十多年歷史,從搜索巨人到全面的互聯網滲透,Goo

14、gle服務如地圖、郵件、搜索等已經成為連接用戶和互聯網的重要紐帶,而Android平臺手機將無縫結合這些Google應用。Android的功能特征(l)應用程序架構:在應用程序架構內已經具備多種不同的基礎組件,在開發應用程序時,就可以直接調用這些組件來使用,可以節省開發應用程序的心力及時間。(2)Dalvik虛擬機器:在Android平臺上所使用Java虛擬機,不是Sim公司的標準Java虛擬機,而是使用Google自主開發的代號為Dalvik的虛擬機,它在保證API方面的兼容的同時,針對移動手機進行了大幅優化,占用資源更小,運行效率更高。(3)集成的瀏覽器:集成的瀏覽器是Android內建的

15、瀏覽器,是以WebKit的瀏覽引擎為基礎所開發成的。WedKit是一個開源瀏覽器網頁排版引擎,目前使用WebKit引擎的瀏覽器主要有:Safari,Midori,Epiphany等。配合Android手機的功能,可以在瀏覽網頁時,達到更好的效果,例如:局部性的縮放網頁上的資訊、觸控式的操作等效果。(4)優化的繪圖能力:在程序里可以用到的繪圖功能分為2D與3D兩個方面。在2D方面,Android提供了一套特有的類庫(SGL;而在3D方面則是使用OpenGLES1.0(openGL for Embedded systems)規范的類庫。它們是一種非常快的圖形引擎,并且支持硬件加速。(5)SQLit

16、e數據庫:SQLite提供結構化的數據存取。SQLite是一款輕型的數據庫,它的設計目標是嵌入式的,目前已經在很多嵌入式產品中使用了它,它占用的資源非常低。它能夠支持Windows/Linux/U nix等主流的操作系統,同時能夠跟很多程序語言相結合,比如php,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來講,它的處理速度比它們都快。它無需安裝和管理配置,它是一個儲存在單一磁盤文件中的完整數據庫,體積小只有250KB但支持數據庫大小至2TB。它雖然很小巧,但是支持的SQL語句毫不遜色于其它開源數據庫。同時它還支持事務功能和并發處理等等。SQLite也是一套開放性的關

17、聯式資料庫,其特點在于輕量性方面的設計結構,更適合在手機上使用。(6)多媒體的支持能力:主要用于播放媒體文件。這同時包括對音頻(如播放MP3或其他音樂文件等)和視頻(如播放從網上下載的視頻)的支持,并支持“播放URI地址”(Note:URI即是統一資源識別地址)模式在網絡上直接播放的流媒體。另外支持各種通用的靜態圖像格式,例如:JPG、PNG、GIF等格式。(7)GSM技術:Global System for Mobile Communications,即全球移動通訊系統,俗稱”全球通”,是一種起源于歐洲的移動通信技術標準,是第二代移動通信技術,其開發目的是讓全球各地可以共同使用一個移動電話網

18、絡標準,讓用戶使用一部手機就能行遍全球。GSM技術是屬于手機硬件方面的展現,也是在開發Android應用程序時可以突出的特點之一。(8)藍牙、EDGE、3G及Wi-Fi:藍牙是一種新型、開放、低成本、短距離的無線連接技術,可取代短距離的電纜,實現話音和數據的無線傳輸。EDGE(Enhanced Data Rate for GSM,Evolution),即增強型數據速率GSM演進技術。EDGE是一種從GSM到3G的過渡技術,它主要是在GSM系統中采用了一種新的調制方法,即最先進的多時隙操作和SPSK調制技術。由于8PSK可將現有GSM網絡采用的GMSK調制技術的信號空間從2擴展到8,從而使每個符

19、號所包含的信息是原來的4倍。Wi-Fi(WirelessFidelity),即無線保真技術,與藍牙技術一樣,同屬于在辦公室和家庭中使用的短距離無線技術。該技術使用的是2.4GHz附近的頻段,該頻段目前尚屬沒用許可的無線頻段。其目前可使用的標準有兩個,分別是IEEE802.lla和IEEE802.11b。這些通訊能力也是屬于手機硬件方面的展現,也是在開發Android應用程序時可以突出的特點之一。(9)GPS: Global Positioning System,即全球定位系統,它是一個由覆蓋全球的24顆衛星組成的衛星系統。這個系統可以保證在任意時刻和任何地點都可以同時觀測到4顆衛星,以保證衛星

20、可以采集到該觀測點的經緯度和高度,以便實現導航、定位、授時等功能。這項技術可以用來引導飛機、船舶、車輛以及個人。這個同樣也是屬于手機硬體方面的體現,也是在開發Android應用程序是可以突出的特點之一。 Android架構分析應用程序框架在Android SDK中,定義了讓開發者使用與核心應用程序相同API的權限應用程序框架是為了要簡化組件的重新利用而設計的,應用程序可以發布功能為其它應用程序所使用。但是,這要受限于應用程序架構的安全機制,使用者以用同樣的機制來新增、置換組件。目前所有的應用程序是由服務及系統來組成,包含有:(l)一套強大和可擴展的視圖系統:用來建構一個應用程序的基本組件,包了

21、在開發系統畫面時,常用的列表、網格、文本框、按鈕等控制項,甚至是內嵌的Web瀏覽器。 (2)內容提供者:使應用程序可以訪問另一個應用程序的數據(如聯系人數庫),或者共享它們自己的數據。(3)資源管理器:提供各種非程序代碼的資源讓應用程序去使用。例如:本字符串、圖形文件或排版相關的布局文件。(4)通知管理器:提供應用程序在狀態欄中顯示應用程序自定義的提示信息。(5)活動管理器:管理所有應用程序的生命周期及提供常用的導航回退功能。例如:啟動應用程序要用到的資源準備及關閉應用程序時釋放內存及相關資源等工作。(6)視窗管理器:用來管理所有啟動程序的視窗。(7)位置管理器:用來管理地圖服務的相關功能。(

22、8)電話管理器:用來管理用戶撥打與接聽電話的相關功能。(9)包管理器:管理所有安裝在Android系統內的包。類庫在Android中包含一些C/C+的類庫,這些類庫能被Android系統中不同的組件來使用。開發者可以通過應用程序框架使用這些功能。部分核心類庫列表如下:(1)surface Manager:主要的功能是讓開發者可以去存取/顯示系統及管理的功能,在顯示與存取操作間的對應、互動以及實現無接縫的2D/3D多應用程序之間的整合。例如:在2D、2D顯示上的合成、疊合動作。(2)3Dlibraries:主要是依openGLES1.0規范所定義的3D繪圖引擎。該庫使用硬件加速(當硬件可用時),

23、可以將硬件的3D功能做最佳化的處理顯示。(3)SGL:主要是處理有關顯示2D方面的繪圖引擎。(4)Media Frame work:主要是以packetVideo公司的OpenCORE為基礎所發展的多媒體類庫,該庫支持回放和錄制大量流行的音視頻格式和靜態圖片。例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式(5)Free Type:主要是用來顯示點陣圖和處理向量字形的。(6)SSL:(secureSocketsuyer),中文名為“安全套接層協議層”,它是網景公司提出的基于WEB應用的安全協議,當前版本為3.0。SSL協議指定了一種在應用程序協議(如HTTP、

24、Telenet、NMTP和FTP等)和TCP/IP協議之間提供數據安全性分層的機制,它為TCP/IP連接提供數據加密、服務器認證、消息完整性以及可選的客戶機認證。它已被廣泛地用于Web瀏覽器與服務器之間的身份認證和加密數據傳輸。SSL協議位于TCP膽協議與各種應用層協議之間,為數據通訊提供安全支持。SSL協議可分為兩層:SSL記錄協議(SSL Record Proto col):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。SSL握手協議(SSL Hand shake proto col):它建立在SSL記錄協議之上,用于在實際的數據傳輸開始前,通

25、訊雙方進行身份認證、協商加密算法、交換加密密鑰等。SSL協議提供的服務主要有:認證用戶和服務器,確保數據發送到正確的客戶機和服務器;加密數據以防止數據中途被竊取;維護數據的完整性,確保數據在傳輸過程中不被改變。(7)SQLite:SQLite是一套開放性的關聯式資料庫,能夠被所有應用程序使用的輕量級的關系數據庫引擎。(8)web Kit:是一個先進的網頁瀏覽器引擎,被用來構建Android瀏覽器和內嵌的web視圖,也可以讓開發者利用這個引擎來做不同的應用。(9)lib c:就是一個BSD標準C類庫。但是,針對Linux嵌入式裝置進行過最佳化的調整。運行環境操作系統Windows XP或者Vis

26、taMac OS X 10.4.8 或者更高版本(僅支持x86)Linux(Linux Ubuntu Dapper Drake)Android開發變量及其配置Eclipse3.3(Europa),3.4(Ganymede)Eclipse JDT 插件(大多數的Eclipse IDE包包含)WST(可選,但Android編輯器的功能需要,他被包含在most Eclipse IDE packages中)JDK 5或者JDK 6(中有JRE是不夠的)Android Development Tools 插件(可選)不兼容GNU Java編譯器Android開發環境搭建計算機配置開發Android應用所

27、用到的開發工具較占內存,尤其是模擬器。官方并未給出最低配置要求,根據個人實際體會,在本人Intel Core i7-2630QM 四核處理器及8G內存的情況,能流暢使用。另外還需有600MB以上的剩余磁盤空間(官方文檔中的說明)。安裝JDK由于Android開發是基于Java的基礎上的,所以我們必須得安裝JDK(JDK下載地址:/technetwork/java/javase/downloads/index.html)。安裝過程中應對系統的環境變量做出相應的設置:右擊計算機屬性高級系統設置高級環境變量,新建“系統變量”,設置變量名:“java_home”。變量值: “C:Program Fil

28、esJavajdk1.7.0_02”(視個人安裝路徑而定)。找到變量名為path的項,雙擊,在變量值后面添加:“;%JAVA_HOME%bin;”,新建“系統變量”變量名:“classpath”,變量值:“.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;” 配置完成后,重啟可以在cmd下輸入java或者javac測試。安裝EclipseEclipse是我們以后在Android開發時使用的開發平臺,它集成了很多功能以及插件,在開發的過程中便于我們使用,在官網(/downloads/)可以下載到對應系統以及功能的安裝包,在安裝提示安裝完成后并且完成了J

29、DK的安裝后即可正常使用。 安裝SDKSDK(Software Development Kit)初始包中有開發Android程序所要用到的工具,它包括了從編譯到運行Android應用程序所需要的各種工具。安裝時可以根據自己的需求選擇安裝相應的版本。(SDK下載地址:http:/developer.A/sdk/index.html)安裝ADT按照2.3.4安裝完SDK初始包后,就可以開始開發Android應用程序了,但是為了更高效地進行開發,Android團隊推出了Android Development Tools (ADT) 。ADT是目前開發Android應用最有效的工具,它是一個Eclip

30、se插件,支持Eclipse 3.4及3.4以上的版本。以Eclipse 3.5 (Galileo)為例,安裝過程如下:打開Eclipse,選擇 Help Install New Softare。在Available Software 對話框中,點擊Add.。在彈出的Add Site 對話框中,任意填寫一個名字到Name一欄。在Location一欄,則填入這一URL:“/Android/eclipse/”,然后確認返回。(注意:如果在后續的步驟中發現無法安裝插件,可以試著把URL中的https換成http。)返回到Available Software 窗口后,就能看到列表中出現了Develop

31、er Tools ,選中它前面的復選框,再點擊“Next”,就會開始下載安裝ADT的各種組件了。安裝完畢后將彈出窗口顯示ADT相關的各種信息以及許可協議,點擊“Finish“即可完成安裝。重新啟動Eclipse。設置Eclipse選擇Window Preferences. 打開偏好設置從左側邊欄中選擇Android一欄。單擊SDK Location一欄邊的Browse按鈕,選擇剛剛下載的SDK保存的路徑。點擊Apply,OK,設置生效。至此,Android的開發環境就已經搭建完畢,可以使用了 。創建AVD在安裝好JDK,Eclipse,SDK,ADK之后我們就可以進行Android項目開發了,

32、但是在開發的過程中我們經常需要運行、調試我們所開發的軟件,這就需要用到AVD(Android Virtual Device),也就是Android虛擬機。打開Eclipse。點擊Opens the Android Virtual Device Manager圖標按鈕。在彈出的窗口中點擊New新建一個Android虛擬機。在彈出的新建虛擬機窗口中Name一欄填上虛擬機的名稱(一般與虛擬機的版本號相同,便于區分)。在Target一欄選擇一個Android虛擬機版本(如Android2.2或Android2.1)。在SD Card下的Size一欄填上我們要設定的SD卡容量大小。點擊Create AV

33、D,這樣我們的一個Android虛擬機就創建好了。HTTP協議超文本傳送協議 (HTTP) 是一種通信協議,它允許將超文本標記語言(HTML) 文檔從 Web 服務器傳送到 Web瀏覽器。HTML 是一種用于創建文檔的標記語言,這些文檔包含到相關信息的鏈接。您可以單擊一個鏈接來訪問其它文檔、圖像或多媒體對象,并獲得關于鏈接項的附加信息。HTTP工作在TCP/IP協議體系中的TCP協議上。客戶機和服務器必須都支持 HTTP,才能在萬維網上發送和接收 HTML 文檔并進行交互。HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統。它于1990年提出,經過幾年

34、的使用與發展,得到不斷地完善和擴展。前一段時間用的是HTTP/1.0,現在WWW中使用的是HTTP/1.1。而且HTTP-NG(Next Generation of HTTP)的建議已經提出。主要特點可概括如下:支持客戶/服務器模式。 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。 靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。 無連接:無連接的含義是限制每次連接只處理一個請求。服

35、務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。 無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。發出的請求信息包括以下幾個:請求行,例如GET /images/logo.gif HTTP/1.1,表示從/images目錄下請求logo.gif這個文件。(請求)頭,例如Accept-Language: en可選的消息體請求行和標題必須以作為結尾(也就是,回車然后換行)。空行內必須只有而無其他

36、空格。在HTTP/1.1協議中,所有的請求頭,除Host外,都是可選的。請求方法:HTTP/1.1協議中共定義了八種方法(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:OPTIONS返回服務器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務器發送*的請求來測試服務器的功能性。HEAD向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息。GET向特定的資源發出請求。注意:GET方法不應當被用于產生“副作用”的操作中,例如在web app.中。其中一個原因是GET可能會

37、被網絡蜘蛛等隨意訪問。POST向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。PUT向指定資源位置上傳其最新內容。DELETE請求服務器刪除Request-URI所標識的資源。TRACE回顯服務器收到的請求,主要用于測試或診斷。JSOUP簡介JSOUP是一款Java的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過 DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。JSOUP的主要功能如下:1. 從一個URL,文件或字符串中解析HTML;2.

38、 使用DOM或 CSS選擇器來查找、取出數據;3. 可操作HTML元素、屬性、文本;JSOUP是基于MIT協議發布的,可放心使用于商業項目。文檔輸入JSOUP可以從包括字符串、URL地址以及本地文件來加載HTML文檔,并生成 Document對象實例。解析并提取 HTML 元素這部分涉及一個HTML解析器最基本的功能,但JSOUP使用一種有別于其他開源項目的方式選擇器修改數據在解析文檔的同時,我們可能會需要對文檔中的某些元素進行修改,例如我們可以為文檔中的所有圖片增加可點擊鏈接、修改鏈接地址或者是修改文本等。HTML 文檔清理JSOUP在提供強大的API同時,人性化方面也做得非常好。在做網站的

39、時候,經常會提供用戶評論的功能。有些用戶比較淘氣,會搞一些腳本到評論內容中,而這些腳本可能會破壞整個頁面的行為,更嚴重的是獲取一些機要信息,例如XSS跨站點攻擊之類的。Android應用程序結構剖析Android的APIAndroid API主要包含了以下幾個部分:(1)AndroidManifest.xmlAndroidManifest.xml是系統的控制文件,它告訴系統如何處理所創建的所有應用組件(尤其是活動(Activity),服務(Service),意圖接收器(Intent Receiver)和內容提供者(Content Provider)。舉例來說,控制文件就是把活動和要接收的意圖(

40、Intents)連接在一起的“膠水”。(2)活動活動就是一個有生命周期的對象。一個活動就是完成某些工作的代碼塊,這部分工作還可能包括對用戶UI界面的顯示。不過這不是必須的,有些活動從不顯示UI界面。(3)視圖視圖可以將其自身繪制到屏幕上。Android的用戶界面由一系列的視圖樹構成。接口都是由一組以樹的形式出現的視圖組成的。開發者可以通過創建一個新的視圖的方法來使用自定義的圖形處理技術(比如開發游戲,或者是使用了不常用的用戶圖形窗口界面)。(4)意圖意圖是一個簡單的消息對象,它表示程序想做某事的“意圖”。比如應用程序想要顯示一個網頁,那么它可以通過創建一個Intent實例并將其傳遞給系統來表示

41、意圖瀏覽這個URI。系統將定位到能處理這一Intent的代碼(在當前情況下就是瀏覽器),并運行之。意圖也可以用于廣播系統范圍內的有效事件(例如通知事件)。(5)服務服務是運行在后臺的一段代碼。它可以運行在它自己的進程,也可以運行在其他應用程序的進程里,這取決于自身的需要.。其它的組件可以綁定到一個服務上來,通過遠程過程調用(RPC)來調用這個方法。例如媒體播放器的服務,當用戶退出媒體選擇的界面時,仍然希望音樂依然可以繼續播放,這時就可用服務來保證當用戶界面關閉時音樂還繼續播放著。 (6)通知通知將以小圖標的形式呈現在狀態欄里,用戶通過與圖標的交互來接收消息。最常見的通知包括短信息、通話記錄和語

42、音郵件,但是應用程序也可以創建它們自己的通知事件。(7)內容提供者內容提供者是用來提供對設備上數據進行訪問。典型的例子就是使用內容提供者來訪問聯系人列表。應用程序也可以使用其它程序通過內容提供者提供的數據,同時也可以定義自己的內容提供者來向其它應用提供數據訪問服務。Android應用程序結構解析通常由以下四個組件來構建一個完整的Android應用程序。活動意圖接收器服務內容提供者然而,并不是所有的Android應用程序都必須具備上面的四個組件,可以由上面的一個或幾個來組建。當決定使用以上哪些組件來構建Android應用程序時,需要將它們注冊在AndroidManifest.xml文件中,這是一

43、個XML配置文件,在這個文件中可以聲明應用程序組件以及它們的特性和要求。這個配置文件是每個Android應用程序所必需的。活動活動是以上四個組件中最常用的一個。每個活動都是Activity的子類,并實現了一些獨有的功能,如管理UI顯示和UI的反饋事件。一個活動就相當于應用程序的一個用戶界面,由事件響應以及視圖等組成。大多數的應用程序通常包括多個界面。例如:一個文本聊天應用程序,至少應該包含一個聯系人列表界面、一個聊天界面、一個設置界面、一個聊天記錄查詢界面等等。每個界面其實都可看作是一個活動。顯示一個新界面就相當于生成一個對應的活動對象。在一些情況下,活動能夠返回給它的上級界面一個返回值,例如

44、一個提供給用戶選擇照片的活動可以返回給它的調用者用戶選擇了哪個照片文件。當一個新的活動出現時,前一個活動被中斷并被放入到一個歷史堆棧中。用戶可以使用返回鍵使前一個活動重現。當一個活動不再需要時,可以將它們從歷史堆棧中移除。默認情況下,Android會為每個應用程序保留從主界面開始的歷史堆棧。Android通過一個被稱作意圖的特殊類,來實現界面與界面之間的跳轉。一個意圖描述了一個應用程序想要做什么。在意圖的描述結構中,含有兩個重要的數據結構:動作和動作對應的數據。典型的動作類型包括MAIN、VIEW、PICK、EDIT等等,而動作對應的數據則以URI的形式表示。例如:顯示一個聯系人信息的界面,可

45、以創建一個意圖,并將它的動作設置成VIEW,數據設置成表示這個人信息的URI。除此之外,還有一個被稱作意圖過濾器(IntentFiher)的相關類。當發生一個有效的目的請求時,意圖過濾器用來描述一個活動能夠處理什么意圖。如上例中所描述,想要正常顯示一個聯系人信息的界面,必須聲明一個意圖過濾器,它說明當有聯系人數據要被在界面上顯示時,知道如何處理它們。通常意圖過濾器要被注冊在AndroidManifest.xml文件中。從一個界面跳轉到另一個界面是由解析各種意圖實現的。例如:一個活動使用startActivity(myIntent)來調用其他活動時,系統會查找所有已經安裝的應用程序的意圖過濾器,

46、并從中挑選出能夠匹配myIntent意圖的活動。隨后,這個新的活動接收到意圖(myIntent)的通知并開始運行。當startActivity方法被調用,解析意圖的處理過程隨之發生,這個機制有以下兩個突出的優點:活動可以通過一個以意圖形式產生的請求來重用其他組件的功能。活動可以在任何時候被一個具有等價意圖過濾器的新活動所替代。意圖接收器當想要編寫代碼來對外部事件做一些處理時,可以使用意圖接收器。意圖接收器并不顯示UI界面,它是通過NotificationManager來通知用戶他們感興趣的事件發生了。意圖接收器同樣可以被注冊在AndroidManifest.xml文件中,同時也可以在代碼中使用

47、Context.registerReceiver()來注冊自己的意圖接收器。當一個意圖接收器被觸發時,系統會根據需要來啟動應用程序。服務服務是具有長生命周期并且沒有用戶界面的代碼。內容提供者在Android中,每個應用程序都是有自己的userID及在自己的進程中執行。這樣做的好處是,可以保護系統及應用程序,避免被其他不正常的應用程序所影響。可以把每個進程想像成是一個黑盒子,彼此不會互相影響,連內存的資料都無法共享。如果應用程序之間想要共享數據,就需要使用用內容提供者。一個內容提供者就是一個類,它實現了一個標準的方法集合。其他的應用程序可以使用這些方法來保存和檢索此內容提供者處理過的數據。Int

48、ent的詳細解析在一個Android應用中,主要是由四種組件組成的,這四種組件可參考上一節的內容。而這四種組件是獨立的,它們之間可以互相調用,協調工作,最終組成一個真正的Android應用。在這些組件之間的通訊中,主要是由意圖協助完成的。意圖負責對應用中一次操作的動作、動作對應的數據、附加數據進行描述,Android則根據此意圖的描述,負責找到相應的組件,將意圖傳遞給它,并完成組件的調用。因此,意圖在這里起著一個媒體中介的作用,專門提供組件之間互相調用的相關信息,實現調用者與被調用者之間的解耦。例如,在一個聯系人維護的應用中,當在一個聯系人列表屏幕(假設對應的Activity為listActi

49、vity)上,點擊某個聯系人后,希望能夠調出此聯系人的詳細信息,為了實現這個目的,listActivity需要構造一個Intent,這個Intent用于告訴系統,要做“查看”動作,此動作對應的查看對象是“某聯系人”,然后調用startActivity(intent intent),將構造的Intent傳入,系統會根據此intent中的描述,到AndroidManifest.xml中找到滿足此Intent要求的Activity。系統會調用找到的Activity,即為detailActivity,最終傳入Intent,detailActivitv則會根據此Intent中的描述,執行相應的操作。In

50、tent的抽象描述在Android參考文檔中,對意圖的定義是執行某操作的一個抽象描述。該抽象描述的具體內容如下:首先,它是要執行的動作的一個簡要描述,如查看、修改等,Android定義了一套標準動作。此外,還可以根據應用的需要,定義自己的動作,并可定義相應的活動來處理自定義的動作。其次,是執行動作要操作的數據,Android采用指向數據的一個URI方式來實現。另外,除了動作和數據這兩個重要屬性外,還有一些附加屬性:類別:被執行動作的附加信息。例如LAUNCHER_CATEGORY表示意圖的接受者應該在Launcher中作為頂級應用出現;而ALTERNATIVECATEGORY表示當前的意圖是一

51、系列的可選動作中的一個,這些動作可以在同一個數據上執行。數據類型:顯式指定意圖的數據類型。一般意圖的數據類型能夠根據數據本身進行判定,但是通過設置這個屬性,可以強制采用指定的類型。組件:指定意圖的目標組件的類名稱。通常Android會根據意圖中包含的其它屬性的信息,比如動作、數據/數據類型、類別進行查找,最終找到一個與之匹配的目標組件。附加信息:是其它所有附加信息的集合。使用附加信息可以為組件提供擴展信息,比如,如果要執行“發送電子郵件”這個動作,可以將電子郵件的標題、正文等保存在附加信息里,傳給電子郵件發送組件。總之,動作、數據/數據類型、類別和附加信息一起形成了一種語言。這種語言使系統能夠

52、理解諸如“查看某聯系人的詳細信息”之類的短語。隨著應用不斷的加入到系統中,它們可以添加新的動作、數據/數據類型和類別來擴展這種語言。應用也可以提供自己的活動來處理已經存在的這樣的“短語”,從而改變這些“短語”的行為。Android中 Intent的使用在應用中,可以以兩種形式來使用Intent:(l)直接意圖:指定了組件屬性的意圖。通過指定具體的組件類,通知應用啟動對應的組件。(2)間接意圖:沒有指定組件屬性的意圖。這些意圖需要包含足夠的信息,這樣系統才能根據這些信息,在所有的可用組件中,確定滿足此意圖的組件。對于直接意圖,Android不需要去做解析,因為目標組件已經很明確,Android需

53、要解析的是那些間接意圖,通過解析,將意圖映射給可以處理此意圖的活動、意圖接收器或服務。意圖解析機制主要是通過查找己注冊在AndroidManifest.xml中的所有意圖過濾器及其中定義的意圖,最終找到匹配的意圖。在這個解析過程中,Android是通過意圖的動作、數據類型、類別這三個屬性來進行判斷的,判斷方法如下:如果意圖指明定了動作,則目標組件的意圖過濾器的動作列表中就必須包含有這個動作,否則不能匹配。如果意圖沒有提供數據類型,系統將從數據中得到數據類型。和動作一樣,目標組件的數據類型列表中必須包含意圖的數據類型,否則不能匹配。如果意圖中的數據不是content:類型的URI,而且意圖也沒有

54、明確指定它的數據類型,將根據意圖中數據的格式(比如http:或者mailto:)進行匹配。同上,意圖的格式必須出現在目標組件的格式列表中。如果意圖指定了一個或多個類別,這些類別必須全部出現在組建的類別列表中。比如意圖中包含了兩個類別:LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目標組件必須至少包含這兩個類別。Android活動的生命周期Android平臺是個手機作業系統。撇掉其他功能不談,手機的特性,就是應該能隨時在未完成目前動作的時候,暫停正在使用的功能,切換到接電話、接收短信模式,而且在接完電話回到應用程序時,還希望能看到一樣的內容。現在用戶使

55、用智能手機,大多已習慣使用多工的作業系統(如windowsMobile),可以在用手機聽音樂的同時,執行其他多個程序。同時執行多個程序有它的明顯好處,但也有它的缺點。每多執行一個應用程序,就會多耗費一些系統內存,而手機里的內存是相當有限的。當同時執行的程序過多,或是關閉的程序沒有正確釋放掉內存,系統運行時就會覺得越來越慢,甚至不穩定。為了解決這個問題,Android引入了一個新的機制生命周期。Android應用程序的生命周期是由Android框架進行管理,而不是由應用程序直接控制。通常,每一個應用程序(入口一般會是一個活動的onCreate方法,都會占據一個進程。當系統內存即將不足的時候,會依

56、照優先級自動進行進程的回收。不管是使用者或開發者,都無法確定應用程序何時會被回收。關于進程的生命周期將在下一節中介紹,本節主要介紹活動的生命周期。一個活動類別除了onCreate方法之外,還預先定義了onPause(暫停)、onResume(繼續)等的基本方法,當從一個活動切換到另一個活動的時候,原來的活動將經過一連串的狀態改變。開發者可以在程序中添加一些各狀態相對應的流程,每次活動狀態改變時,就會執行相對應的流程。要讓用戶有好的使用體驗,活動需要在各個周期中負責保管狀態、恢復狀態、傳送資料等工作。活動的生命狀態Android的虛擬機是使用堆棧管理。主要有四種狀態:(l)活動狀態活動狀態是指用

57、戶啟動應用程序或活動后,活動運行中的狀態。在Android平臺上,同一個時刻只會有一個活動處于活動或運行狀態。其他的活動都處于未啟動、停止或是暫停的狀態。(2)暫停狀態暫停狀態是指當活動暫時暗下來,退到背景畫面的狀態。當警告對話框或電話來了時,都會讓原來運行的活動退到背景畫面。新出現的警告對話框等界面元件蓋住了原來的活動畫面。活動處在暫停狀態時,用戶無法與原活動互動。(3)停止狀態停止狀態是指有其他活動正在執行,而這個活動己經離開屏幕,不再動作的狀態。通過按返回鍵,可以調出所有處于停止狀態的應用程序列表。處于停止狀態的活動,還可以通過通知來喚醒。(4)已回收或未啟動狀態已回收或未啟動狀態是指活

58、動尚未被啟動、已經被手動終止或己經被系統回收的狀態。要手動終止活動,可以在程序中調用finish方法。如果是被系統回收,可能是因為內存不足了,所以系統根據內存不足時的回收規則,將處于停止狀態的活動所占用的內存回收。Adroid活動生命周期如圖3-1所示:圖3-1 Android活動生命周期圖3-1所示的七個狀態又可以歸納成三組:(l)資源分配(創建/銷毀)完整的活動生命周期由創建狀態開始,由銷毀狀態結束。創建時分配資源,銷毀時釋放資源。(2)可見與不可見(啟動/重新啟動/停止)當活動運行到啟動狀態時,就可以在屏幕上看到這個活動。相反地,當活動運行到停止狀態時,這個活動就會從屏幕上消失。當用戶按

59、下返回鍵回到上一個活動時,會先到重新啟動狀態,再到一般的啟動狀態。(3)用戶取得屏幕的控制權(繼續/暫停)當有個警告對話框、短信、電話等信息進入時,原來的活動會進入暫停狀態,暫時放棄屏幕的控制權,被中斷到背景去,將前景交給優先級高的事件。當這些優先級高的事件處理完后,活動就改進入繼續狀態,此時又取得屏幕的控制權。活動的運作流程由實際運行來看,我們可以歸納出所有Android應用程序都遵循的運作流程:(l)一般啟動啟動一個活動的基本流程為onCreate一onstart一onResume。該流程首先分配資源給這個活動(創建狀態),然后將活動的內容顯示到屏幕上(啟動狀態);在一切就緒后,取得屏幕的

60、控制權(恢復狀態),用戶可以開始使用這個程序。(2)調用另一個活動調用另一個活動的基本流程為onPause(l)一onCreate(2)一onStart(2)一0nResume(2)一onStop(l)。該流程首先凍結原來的活動,再交出屏幕控制權;直到活動2完成一般啟動流程后,活動1才會被停止。(3)回到原來活動回到原來活動的基本流程為onPause(2)一onRestart(1)一onStart(l)一onResume(1)一onStop(2)一onDestroy(2)。另外按返回鍵也可以回到原來的活動。(4)退出結束退出結束的基本流程為onPause一onStop一onDestroy。如果

溫馨提示

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

評論

0/150

提交評論