基于Android客戶端的應(yīng)用市場設(shè)計與實現(xiàn)論文_第1頁
基于Android客戶端的應(yīng)用市場設(shè)計與實現(xiàn)論文_第2頁
基于Android客戶端的應(yīng)用市場設(shè)計與實現(xiàn)論文_第3頁
基于Android客戶端的應(yīng)用市場設(shè)計與實現(xiàn)論文_第4頁
基于Android客戶端的應(yīng)用市場設(shè)計與實現(xiàn)論文_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基于Android的應(yīng)用市場軟件的設(shè)計 摘要隨著智能手機的普及,人們越來越依賴手機進行一系列操作。由于Android系統(tǒng)是一款免費的操作系統(tǒng),導(dǎo)致了使用Android系統(tǒng)的手機占到7成左右。為了讓Android手機用戶體驗更好,就需要讓Android手機用戶更加方便的下載所需要的軟件。如何讓用戶更加方便的下載想使用的應(yīng)用呢?這就需要在手機端安裝一個應(yīng)用市場軟件。應(yīng)用市場軟件目的就是讓用戶更加方便下載應(yīng)用,管理應(yīng)用。也可以通過應(yīng)用市場軟件對應(yīng)用做推廣。軟件基于Android SDK,實現(xiàn)了展示、下載、登錄等功能。關(guān)鍵詞Android應(yīng)用市場下載Abstract With the popular

2、ity of smart phones, people more and more dependent on mobile phones for a series of operations.Because the Android system is a free operating system, led to the Android system of mobile phone account for around 7.In order to make Android user experience better, you need to make the Android mobile p

3、hone user downloads the software she'll need more conveniently.How to let the user more convenient download to use the application?This will need to install an application on the mobile end market software.Application market objective is to make users more convenient to download application soft

4、ware management application.Can also through the corresponding application market software used for promotion.Software based on the Android SDK, realized the display, download, login, and other functions.Key words : Android AppMarket download目錄摘要3Abstract4目錄5第一章 緒論71.1 課題背景、目的及意義71.1.1 課題背景71.1.2 課題

5、目的和意義71.2 國內(nèi)外研究現(xiàn)狀71.2.1 國外的研究現(xiàn)狀71.2.2 國內(nèi)的研究現(xiàn)狀8第二章 可行性分析82.1 社會可行性82.2 技術(shù)可行性82.3 操作可行性82.4 軟件技術(shù)和系統(tǒng)組件的介紹82.4.1 Activity82.4.2 View92.4.3 Intent92.4.4 AndroidManifest.xml92.4.5 Viewpager102.4.6 Fragment102.4.7 XUtils112.5 軟件開發(fā)平臺及運行環(huán)境122.5.1 系統(tǒng)開發(fā)平臺122.5.2 運行環(huán)境12第三章 需求分析123.1 系統(tǒng)功能模塊概述和分析123.2 系統(tǒng)功能模塊設(shè)計133

6、.3 實體對象分析13第四章 程序界面設(shè)計與實現(xiàn)154.1首頁設(shè)計154.2應(yīng)用模塊界面164.3游戲模塊界面174.4專題界面174.5分類界面184.6 排行界面194.7 應(yīng)用詳情界面204.8 菜單界面21第五章 應(yīng)用和服務(wù)器交互的實現(xiàn)215.1請求網(wǎng)絡(luò)215.2線程池215.3協(xié)議的獲取22第六章 系統(tǒng)測試236.1 測試的目的與目標(biāo)236.2 測試方法236.3 測試結(jié)論24第七章 結(jié)論24第八章 致謝25第九章 參考文獻25第一章 緒論1.1 課題背景、目的及意義1.1.1 課題背景隨著時代的發(fā)展,人們對于信息的獲取有著強烈的需求。智能手機作為一種非常重要的通訊工具,功能越來越強

7、大,相對電視、互聯(lián)網(wǎng)絡(luò)等方式,智能手機憑借其可以隨時隨地獲取和處理信息的優(yōu)勢,逐漸成為人們獲取信息的一種重要手段。近年來由于Android平臺良好的開放性和便捷性等特點,采用Android平臺的智能手機越來越受到人們的青睞,Android平臺在智能手機領(lǐng)域中所扮演的角色也越來越重要??紤]到Android廣闊的市場前景,本文將Android平臺作為課題的研究對象。1.1.2 課題目的和意義隨著Android系統(tǒng)市場占有率越來越高,截止到14年底,Android操作系統(tǒng)在國內(nèi)的市場份額已經(jīng)超過7成。搶占用戶下載應(yīng)用的入口越來越重要,掌握了下載應(yīng)用的入口,相當(dāng)于占領(lǐng)了用戶整個手機。隨著使用智能手機的

8、人越來越多,很多IT公司也為了占領(lǐng)用戶下載應(yīng)用的入口,發(fā)布或準備發(fā)布各大應(yīng)用市場軟件。比如應(yīng)用匯,安智市場,小米市場等等,因此發(fā)布一款基于Android操作系統(tǒng)的應(yīng)用市場軟件成為一個手機廠商或者IT公司的一個迫切的要求.本課題來源一個實際的商業(yè)項目,該應(yīng)用可以實現(xiàn)展示應(yīng)用,下載應(yīng)用,安裝應(yīng)用等一系列功能.大大提高用戶下載應(yīng)用的體驗,給用戶提供放心的應(yīng)用。1.2 國內(nèi)外研究現(xiàn)狀1.2.1 國外的研究現(xiàn)狀現(xiàn)在國外采用Google市場下載軟件居多,Google市場下載軟件安全性有保障,所有以后只要Android系統(tǒng)不倒,必然需要一款可以提供用戶下載軟件的應(yīng)用程序。而Android系統(tǒng)也在一直維護,更

9、新,性能不斷提升,市場占有率不斷升高,所以可以斷言10年之內(nèi)甚至更多時間,Android系統(tǒng)會一直存在,市場軟件也不會消失。1.2.2 國內(nèi)的研究現(xiàn)狀現(xiàn)在國內(nèi)各大手機廠商(小米、華為等)或者一些有一定規(guī)模的互聯(lián)網(wǎng)公司(騰訊,360等)都用有自己對應(yīng)的應(yīng)用市場軟件,用戶打開這些軟件都能下載各種應(yīng)用。它們開發(fā)這些應(yīng)用市場軟件的原因就是想抓住智能手機的使用者,進一步提高其用戶體驗和自己應(yīng)用的市場占有率,更方便的推廣其它應(yīng)用給用戶,逐步占領(lǐng)用戶的手機。這種軟件也逐漸被消費者所認可,有越來越多的人都用市場軟件下載新的應(yīng)用。市場軟件對發(fā)布的軟件進行審核,進一步防止用戶下載到病毒應(yīng)用。第二章 可行性分析2.

10、1 社會可行性隨著計算機技術(shù)的發(fā)展和網(wǎng)絡(luò)人口的增加,網(wǎng)絡(luò)世界也越來越廣博,越來越豐富,人們也非常熟悉智能手機操作。市場軟件也有一些成功案例,用戶也接受在手機上下載應(yīng)用。并且嚴格按照國家法律法規(guī)來進行研究和實踐,并無法律和政策方面的限制。2.2 技術(shù)可行性本軟件是基于Android SDK進行開發(fā),用到 Activity,ActionBar,ViewPager,Fragment和自定義控件等技術(shù),用于以上技術(shù)非常強大,使用起來比較簡單,靈活,展示界面比較流暢,使用比較廣泛,說明本技術(shù)具備可行性。項目采用了觀察設(shè)計模式,更加方便程序的設(shè)計與實現(xiàn)。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快

11、,容量越來越大,可靠性越來越高,價格越來越低,其硬件平臺完全能滿足此軟件的需要。2.3 操作可行性目前,大多數(shù)Android手機都能運行該軟件,該軟件的安裝、調(diào)試、運行不會改變原手機系統(tǒng)的設(shè)置和布局,并且系統(tǒng)界面簡單,稍加熟悉便能夠方便的操作此軟件。2.4 軟件技術(shù)和系統(tǒng)組件的介紹2.4.1 ActivityActivity是一個有生命周期的對象。一個Activity就是完成某些工作的代碼塊,這部分工作還可能包括對用戶UI界面的顯示。這不是必須的,有些Activity不顯示Ul界面。Activity是應(yīng)用組件中最常用的一個。每個Activity都是Activity類的子類,并實現(xiàn)了一些特有的功

12、能。當(dāng)一個新的Activity出現(xiàn)時,前一個Activity被中斷并被放入到一個歷史堆棧中。用戶可以使用返回鍵使前一個Activity重現(xiàn)。當(dāng)一個Activity不再需要時,可以將它從歷史堆棧中移除。默認情況下,Android會為每個應(yīng)用程序保留從主界面開始的歷史堆棧。Android通過一個被稱作Intent的特殊類,來實現(xiàn)Activity與Activity之間的跳轉(zhuǎn)。一個Intent描述了一個應(yīng)用程序想要做什么。在Intent的描述結(jié)構(gòu)中,含有兩個重要的數(shù)據(jù)結(jié)構(gòu):動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型包括MAIN、VIEW、PICK、EDIT等等,而動作對應(yīng)的數(shù)據(jù)則以URI的形式表示。例如:修

13、改一個聯(lián)系人信息的界面,可以創(chuàng)建一個Intent,并將它的動作設(shè)置成EDIT,數(shù)據(jù)設(shè)置成表示這個人信息的URI。除此之外,還有一個被稱作意圖過濾器(IntentFilter)的相關(guān)類。當(dāng)發(fā)生一個有效的目的請求時,IntentFilter用來描述一個Activity能夠處理什么樣的Intent。從一個Activity跳轉(zhuǎn)到另一個Activity是由解析各種Intent實現(xiàn)的。例如:一個Activity使用startActivity(golntent)來調(diào)用其他Activity時,系統(tǒng)會查找所有已經(jīng)安裝的應(yīng)用程序的IntentFilter,并從中挑選出能夠匹配golntent意圖的Activity

14、。隨后,這個新的Activity接收到Intent(golntent)的通知并開始運行。當(dāng)StartActivity方法被調(diào)用,解析Inient的處理過程隨之發(fā)生,這個機制有以下兩個突出的優(yōu)點:l Activity可以通過一個以Intent形式產(chǎn)生的請求來重用其他組件的功能。l Activity可以在任何時候被一個具有等價IntentFilter的新Activity所替代。2.4.2 ViewView可以將其自身繪制到屏幕上。Android的用戶界面由一系列的視圖樹構(gòu)成。接口都是由一組以樹的形式出現(xiàn)的View組成的。開發(fā)者可以通過創(chuàng)建一個新的view來使用自定義的圖形處理技術(shù)(比如開發(fā)游戲,或

15、者是使用了自定義的用戶圖形窗口界面)。2.4.3 IntentIntent是一個簡單的消息對象,它表示程序想做某事的“意圖”。比如應(yīng)用程序想要瀏覽圖片,那么它可以通過創(chuàng)建一個Intent實例并將其傳遞給系統(tǒng)來表示意圖瀏覽圖片這個URI。系統(tǒng)將定位到能處理這一Intent的代碼(在當(dāng)前情況下就是圖片瀏覽器),并運行之。Intent也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。Intent在我們項目中大部分用來傳遞數(shù)據(jù),跳轉(zhuǎn)另一個Activity。2.4.4 AndroidManifest.xmlAndroidManifest.xml是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件,

16、尤其是活動(Activity),服務(wù)(Service),.意圖接收器(BroadcastRceiver)和內(nèi)容提供者(ContentProvider)。2.4.5 ViewpagerViewPager是Android SDK 集成的v4包提供的Api其中之一,可以用來很方便的左右滑動切換界面,一般配合Fragment使用。2.4.6 FragmentAndroid是在Android 3.0 (API level 11)開始引入Fragment的??梢园袴ragment想成Activity中的模塊,這個模塊有自己的布局,有自己的生命周期,單獨處理自己的輸入,在Activity運行的時候可以加載或

17、者移除Fragment模塊。可以把Fragment設(shè)計成可以在多個Activity中復(fù)用的模塊。當(dāng)開發(fā)的應(yīng)用程序同時適用于平板電腦和手機時,可以利用Fragment實現(xiàn)靈活的布局,改善用戶體驗。如圖:因為Fragment必須嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相關(guān)的。如果Activity是暫停狀態(tài),其中所有的Fragment都是暫停狀態(tài);如果Activity是stopped狀態(tài),這個Activity中所有的Fragment都不能被啟動;如果Activity被銷毀,那么它其中的所有Fragment都會被銷毀。但是,當(dāng)Activity在活動

18、狀態(tài),可以獨立控制Fragment的狀態(tài),比如加上或者移除Fragment。當(dāng)這樣進行fragment transaction(轉(zhuǎn)換)的時候,可以把fragment放入Activity的back stack中,這樣用戶就可以進行返回操作。Fragment生命周期如下圖:2.4.7 XUtilsXUtils開源框架提供了很多實用的android工具。XUtils 最初源于Afinal框架,進行了大量重構(gòu),使得xUtils支持大文件上傳,更全面的http請求協(xié)議支持(10種謂詞),擁有更加靈活的ORM,更多的事件注解支持且不受混淆影響.XUitls最低兼容android 2.2 (api leve

19、l 8)。目前XUtils主要有四大模塊:u DbUtils模塊,封裝了對數(shù)據(jù)庫的增刪改查操作。u ViewUtils模塊,可以通過注解對UI,資源和事件的綁定。u HttpUtils模塊,對聯(lián)網(wǎng)、下載進行封裝。u BitmapUtils模塊,支持加載網(wǎng)絡(luò)或者本地圖片,無需考慮內(nèi)存溢出。2.5 軟件開發(fā)平臺及運行環(huán)境2.5.1 系統(tǒng)開發(fā)平臺系統(tǒng)的開發(fā)是在Eclipse+ADT+Android SDK的環(huán)境下進行的。Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標(biāo)準的插件

20、集,包括Java開發(fā)工具(Java Development Kit,JDK)。ADT,全稱Android Development Tools,本身是集成在Eclipse中的插件,為Android開發(fā)提供開發(fā)工具的升級或者變更,簡單理解為在Eclipse下開發(fā)工具的升級和下載。SDK(Software Development Kit):在Android中,它為開發(fā)者提供了庫文件以及其它開發(fā)所用到的工具。簡單理解為開發(fā)工具包集合,是整體開發(fā)中所用到的工具包,如果你不用Eclipse作為你的開發(fā)工具,你就不需要下載ADT,只下載SDK即可開發(fā)。2.5.2 運行環(huán)境操作系統(tǒng):Android2.2 以上

21、。第三章 需求分析3.1 系統(tǒng)功能模塊概述和分析應(yīng)用市場軟件是手機必備的軟件之一,通過該軟件可以下載其它應(yīng)用軟件,所以該軟件的核心功能是下載軟件,安裝軟件。在Android應(yīng)用中其實最難處理的是界面的展示,本應(yīng)用集成了首頁、應(yīng)用、游戲、專題、分類、排行和菜單界面,讓用戶更加方便的尋找自己喜歡的應(yīng)用。數(shù)據(jù)都是通過請求服務(wù)器獲取的,服務(wù)器和客服端是通過json數(shù)據(jù)交互的,系統(tǒng)的設(shè)計與開發(fā)過程中嚴格遵守軟件工程的規(guī)范,運用軟件設(shè)計模式,從而減少系統(tǒng)模塊間的偶合,力求做到穩(wěn)定性,可重用性和可擴充性。應(yīng)用市場軟件主要功能如下:1. 首頁界面,展示了推薦的應(yīng)用。2. 菜單界面,實現(xiàn)了用戶登錄。3. 應(yīng)用界

22、面,展示了流行的應(yīng)用軟件。4. 游戲界面,展示了流行的游戲軟件。5. 專題界面,列出了最近討論的專題。6. 分類界面,展示了應(yīng)用的分類項,讓用戶更加方便去尋找應(yīng)用。7. 排行界面,按照下載次數(shù),活躍程度,對應(yīng)用軟件進行排名,列出了排名靠前的應(yīng)用。3.2 系統(tǒng)功能模塊設(shè)計根據(jù)系統(tǒng)功能分析,可以畫出系統(tǒng)的功能模塊圖。界面功能展示圖:3.3 實體對象分析Android軟件的主要任務(wù)是通過請求服務(wù)器獲取大量數(shù)據(jù),顯示到界面上。為了方便使用,這就需要需要封裝一些對象。封裝對象的目的就是為了更好的存儲,解析服務(wù)器數(shù)據(jù)。封裝的對象也叫著實體對象。 實體 (entity)對象具體概念:客觀存在并可相互區(qū)別的事

23、物稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。例如,一個學(xué)生、一門課、一個供應(yīng)商、一個部門、一本 書、一位讀者等都是實體。 由于Android軟件大部分功能是顯示界面,對象之間沒有聯(lián)系,暫時也不需要數(shù)據(jù)庫存儲,設(shè)計起來比較簡單。根據(jù)設(shè)計規(guī)劃的主要實體有:應(yīng)用程序、軟件分類、下載信息、專題信息、用戶信息。各個實體具體的描述屬性圖如下(實體屬性在下圖中并沒有全部給出,因為屬性過多的原因):1. 應(yīng)用程序?qū)嶓w2. 軟件分類實體3. 下載信息實體4. 專題信息實體5. 用戶信息實體第四章 程序界面設(shè)計與實現(xiàn)軟件的整個界面部分是供用戶瀏覽、下載軟件的部分,一個好的界面部分一定非常精美

24、,非常有條理,因此,界面的設(shè)計主要把握3點:簡明扼要、條理清晰、層次分明。下面將一一介紹我的軟件的界面部分的實現(xiàn)。4.1首頁設(shè)計首頁模塊包括3個主要的部分,采用分塊處理。位置分別為上、中、下。 1. 上部的實現(xiàn)上部為圖片上面灰色條目和導(dǎo)航條,內(nèi)容包括:l 應(yīng)用標(biāo)題;l 應(yīng)用圖標(biāo)。l 條目的標(biāo)題上面的灰色條目部分采用ActionBar實現(xiàn)的, ActionBar是一個標(biāo)識應(yīng)用程序和用戶位置的窗口功能,并且給用戶提供操作和導(dǎo)航模式。在大多數(shù)的情況下,當(dāng)你需要突出展現(xiàn)用戶行為或全局導(dǎo)航的activity中使用ActionBar,因為ActionBar能夠使應(yīng)用程序給用戶提供一致的界面,并且

25、系統(tǒng)能夠很好根據(jù)不同的屏幕配置來適應(yīng)操作欄的外觀。下面的導(dǎo)航條是PagerTabStrip控件實現(xiàn)的,可以點擊切換界面.整個上部是不僅體現(xiàn)在首頁界面,后面的大部分界面都用頂部的條目和導(dǎo)航欄,這個部分也是所有界面都實現(xiàn)的。2. 中部的實現(xiàn)中部為占整個圖片寬度的圖片部分。中部采用ViewPager控件實現(xiàn)的,可以手動的滑動切換條目圖片,使用定時器技術(shù),每隔一段時間也會自動滑動條目,切換圖片。3. 下部的實現(xiàn)下部分采用ListView實現(xiàn),每個條目是一個相對布局,相對布局里面包含TextView,ImageView和RatingBar。點擊下部的每個條目,可以跳轉(zhuǎn)到應(yīng)用詳情界面。點擊下載按鈕,可以進

26、行該程序的下載,也可以暫停。4.2應(yīng)用模塊界面 應(yīng)用界面和首頁有點類似,只不過沒有了中間ViewPager的部分。和首頁相同的代碼,可以抽取到父類,這樣簡化了代碼。4.3游戲模塊界面游戲界面和應(yīng)用界面,實現(xiàn)方式一樣,只不過顯示的數(shù)據(jù)不一樣。4.4專題界面專題界面上部分通過ActionBar實現(xiàn)的,和首頁界面一樣,下部分也是通過ListView實現(xiàn)的,ListView可以顯示多個條目,每個條目上面是一張圖片,用ImageView實現(xiàn),下面是一個文本,用TextView實現(xiàn)。由于服務(wù)器返回的圖片并不是按照一定的寬高比例顯示,所有當(dāng)前模塊對圖片做了一些處理,其中寫一個自定義布局包裹了顯示圖片的Ima

27、geView,這個自定義布局可以讓ImageView按照寬高比例顯示。4.5分類界面分類界面上部分和之前的界面一樣,都是ActionBar實現(xiàn)的,分類界面下部分采用ListView實現(xiàn)的,其中又分為兩種不同的條目,第一部分為標(biāo)題,如圖:第二個部分為同一行的三個圖片和三個文本,如圖:4.6 排行界面整個排行界面最外層布局是一個ScrollView,ScrollView是可以上下滾動的容器。里面包裹著一個自定義的布局(Flowlayout),這個自定義布局可以讓里面的每個條目一行一行排列,如果當(dāng)前行排列滿了,會自動換到下一行。4.7 應(yīng)用詳情界面應(yīng)用詳情界面分為6部分實現(xiàn)的,如上圖序號。1. 第一

28、部分為最上面的部分也是通過ActionBar實現(xiàn)的。2. 第二部分用相對布局實現(xiàn)的,里面包含圖片,文本和評分。分別用ImageView,TextView,RatingBar實現(xiàn)的。3. 第三部分,左面是三張圖片,右面一個箭頭,整個部分可以展開。通過對控件的測量和值動畫播放實現(xiàn)了讓整個部分慢慢展開。展開效果如下:4. 第四部分是通過給HorizontalScrollView添加圖片實現(xiàn)的,HorizontalScrollView是一個可以水平滑動的控件。5. 第五部分,上面用TextView實現(xiàn)標(biāo)題,下面用TextView實現(xiàn)描述。6. 第六部分一直在父窗體的最底層,里面能夠看到三個按鈕,分別用

29、三個Button實現(xiàn),中間的Button點擊后可以實現(xiàn)下載,中間的Button就會隱藏,然后顯示下載的的進度。如下圖:4.8 菜單界面點擊ActionBar左側(cè)的按鈕,可以彈出一個菜單界面,整個菜單界面是用DrawerLayout實現(xiàn)的,里面用一個垂直方向的線性布局包裹圖上顯示的幾個功能條目。第五章 應(yīng)用和服務(wù)器交互的實現(xiàn)本應(yīng)用所有數(shù)據(jù)都是通過請求服務(wù)器獲取的,所以聯(lián)網(wǎng)請求服務(wù)器是非常重要的。5.1請求網(wǎng)絡(luò)手機聯(lián)網(wǎng)的方法還是很多,但是大部分都是通過HttpClient實現(xiàn)的。當(dāng)前程序也是通過對該類進行包裝,增加了一些功能,使用更方便。聯(lián)網(wǎng)一共使用了三個類。1. HttpClientFactor

30、y 通過工廠設(shè)計模式可以創(chuàng)建一個HttpClient的實體對象。2. HttpHelper 把聯(lián)網(wǎng)、下載等方法全部封裝進了該類,使用起來更加方便。3. HttpRetry 這個類的作用就是對聯(lián)網(wǎng)異常的情況的處理。5.2線程池在Android4.0以上版本,是不允許在主線程中聯(lián)網(wǎng)的,因為聯(lián)網(wǎng)是一個相對耗時的操作,如果長時間阻塞主線程,程序就會報ANR異常(應(yīng)用程序未響應(yīng)的異常)。所以需要開子線程進行聯(lián)網(wǎng)操作。但是手機CPU運行效率相對慢,功耗比較低,所以在手機程序中最好不要開多個線程。一般情況下,在Android應(yīng)用中如果需要開多個線程的話,最好用一個線程池去管理多個線程。線城池可以把執(zhí)行完的線

31、程回收再利用,提高了效率。具體代碼如下:參數(shù)說明:當(dāng)線程池中的線程小于coreSize,直接創(chuàng)建新的線程加入線程池執(zhí)行任務(wù),當(dāng)線程池中的線程數(shù)目等于coreSize,將會把任務(wù)放入任務(wù)隊列new LinkedBlockingQueue<Runnable>(10)這個集合中,當(dāng)BlockingQueue中的任務(wù)放滿了,將會創(chuàng)建新的線程去執(zhí)行,但是當(dāng)總線程數(shù)大于maxSize時,將會拋出異常。keepAliveTime是線程執(zhí)行完任務(wù)后,且隊列中沒有可以執(zhí)行的任務(wù),存活的時間,后面的參數(shù)TimeUnit.MILLISECONDS是時間的單位,當(dāng)前代表毫秒。5.3協(xié)議的獲取聯(lián)網(wǎng)搞定了,剩

32、下的就是通過讀取服務(wù)器返回的數(shù)據(jù)。進行解析。這個分為四步進行操作。1. 首先,如果服務(wù)器之前已經(jīng)讀取過了就不需要在聯(lián)網(wǎng)了,可以讀取本地緩存的數(shù)據(jù)。2. 如果本地沒有緩存,需要聯(lián)網(wǎng)請求服務(wù)器。3. 聯(lián)網(wǎng)成功后,把服務(wù)器數(shù)據(jù)緩存到本地方便下次使用。4. 請求到了數(shù)據(jù),對數(shù)據(jù)進行解析,把獲取到數(shù)據(jù)存儲到對應(yīng)的對象中。用到的對象在上面的3.3已經(jīng)介紹了,再這就不一一介紹了。代碼如下: 其中T 是泛型,因為無論什么對象,這四步是不變的,但是返回的對象不一樣,所以用一個泛型表示對象,泛型根據(jù)不同的代碼可以表示的對象不一樣。第六章 系統(tǒng)測試6.1 測試的目的與目標(biāo)在此系統(tǒng)進行初步實現(xiàn)之后,開始進行對系統(tǒng)進行

33、測試,找出系統(tǒng)中存在的Bug,通過測試,用提交的Bug報告來為以后軟件的改進提供標(biāo)準和參考,能夠在以后的系統(tǒng)改進中找到依據(jù)。測試后的軟件各模塊基本功能可以順利進行,盡可能的提高軟件的健壯性。6.2 測試方法l 從是否關(guān)心軟件內(nèi)部結(jié)構(gòu)和具體實現(xiàn)的角度劃分:黑盒測試和白盒測試;l 從是否執(zhí)行程序的角度:靜態(tài)測試和動態(tài)測試;l 從軟件開發(fā)的過程按階段劃分有:單元測試、集成測試、確認測試、系統(tǒng)測試、驗收測試、回歸測試、Alpha測試、Beta測試;單元測試又稱模塊測試,是針對軟件設(shè)計的最小單位 程序模塊(這里所說的程序模塊在Java中一個模塊就是一個方法),進行正確性檢驗的測試工作。其目的在于發(fā)現(xiàn)各模

34、塊內(nèi)部可能存在的各種差錯。單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例。多個模塊可以平行地獨立進行單元測試。集成測試 (組裝測試、聯(lián)合測試),通常在單元測試的基礎(chǔ)上,需要將所有模塊按照設(shè)計要求組裝成為系統(tǒng)。這時需要考慮的問題是:l 在把各個模塊連接起來的時候,穿越模塊接口的數(shù)據(jù)是否會丟失;l 一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響;l 各個子功能組合起來,能否達到預(yù)期要求的父功能;l 全局數(shù)據(jù)結(jié)構(gòu)是否有問題;l 單個模塊的誤差累積起來,是否會放大,從而達到不能接受的程度。確認測試(Validation Testing),確認測試又稱有效性測試。任務(wù)是驗證軟件的功能和性能及其它特性

35、是否與用戶的要求一致。對軟件的功能和性能要求在軟件需求規(guī)格說明書中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認測試的基礎(chǔ)。系統(tǒng)測試(System Testing),是將通過確認測試的軟件,作為整個基于計算機系統(tǒng)的一個元素,與計算機硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起,在實際運行環(huán)境下,對計算機系統(tǒng)進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的在于通過與系統(tǒng)的需求定義作比較, 發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。驗收測試(Acceptance Testing),在通過了系統(tǒng)的有效性測試及軟件配置審查之后,就應(yīng)開始系統(tǒng)的驗收測試。驗收測試是以用戶為主的測試。軟件開發(fā)人員和

36、QA(質(zhì)量保證)人員也應(yīng)參加。由用戶參加設(shè)計測試用例,使用生產(chǎn)中的實際數(shù)據(jù)進行測試。在測試過程中,除了考慮軟件的功能和性能外,還應(yīng)對軟件的可移植性、兼容性、可維護性、錯誤的恢復(fù)功能等進行確認。6.3 測試結(jié)論把開始的代碼寫得越好,它出現(xiàn)的錯誤也就越少,你也就越能相信所做過的測試是徹底的。系統(tǒng)化測試以一種有序方式設(shè)法探測潛在的麻煩位置。同樣,毛病最可能出現(xiàn)在邊界,這可以通過手工的或者程序的方式檢查。自動進行測試是最理想的,用得越多越好,因為機器不會犯錯誤、不會疲勞、不會用臆想某此實際無法工作的東西能行來欺騙自己?;貧w測試檢查一個程序是否能產(chǎn)生與它們過去相同的輸出。在做了小改變之后就測試是一種好技

37、術(shù),能幫助我們將出現(xiàn)問題的范圍局部化,因為新問題一般就出現(xiàn)在新代碼里面。測試和排錯常常被說成是一個階段,實際上它們根本不是同一件事。簡單地說,排錯是在你已經(jīng)知道程序有問題時要做的事情。而測試則是在你在認為程序能工作的情況下,排錯是在你已經(jīng)知道程序有問題時要做的事情。而測試則是在你在認為程序能工作的情況下,為設(shè)法打敗它而進行的一整套確定的系統(tǒng)化的試驗。Edsger Dijkstra有一個非常有名的說法:測試能夠說明程序中有錯誤,但卻不能說明其中沒有錯誤。他的希望是,程序可以通過某種構(gòu)造過程正確地做出來,這樣就不再會有錯誤了,因此測試也就不必要了。這確實是個美好生活的目標(biāo),但是,對今天的實際程序而言,這仍然還只是一個理想。所以應(yīng)該集中精力討論如何測試,如何才能夠更快地發(fā)現(xiàn)程序錯誤,如何才可以使得工作更有成效、效率更高。第七章 結(jié)論通過開發(fā)本應(yīng)用,我較全面的掌握了Android的基本知識和編程技巧,并在開發(fā)過程中我的Android開發(fā)能力得到了進一步的提高。如:更進一步的深入了解Android控件,架構(gòu)思想。在開發(fā)過程中我學(xué)

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論