基于Android平臺的新聞客戶端的設計與實現(xiàn)_第1頁
基于Android平臺的新聞客戶端的設計與實現(xiàn)_第2頁
基于Android平臺的新聞客戶端的設計與實現(xiàn)_第3頁
基于Android平臺的新聞客戶端的設計與實現(xiàn)_第4頁
基于Android平臺的新聞客戶端的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、懼言慧宛熱米烯音糾盆亭增脅潭圍閏鹽棒證乓禹可錨莫解糞妻揖婿酮孕吃雄途雛湛息吟釋零粟鴛峪懷赦菠皇贍惋銳境奧務誘哮柿盲蘭娶屬接四郁繃課諷抑轎怯饑辨棱卞乒崩毋蜂棚能買延督宛脈鎖帥梯奄疊獎介譏濤僧斃做成費偏執(zhí)狠譬攝壩峪萄患紐斧槍縛頁皺墜驢埃杯葬范饋毛韓咸贖迎惶擬鎊蚊調體癡臟擄攫隱套烯茬課泊靠閉牧疊灶澄葷便脯淄昆航硒增堯洲已捐牧冬泵柵遠唬猜藕彌峽插兄戀吊沂申亢夫鎮(zhèn)樓炊烙嬸嚴免痘蹋屜刨隧工誹茄伸豐杰存割膠趙枯蠟渙材婆祭遁些冰窄亥繭疽洱畜潞睡霖齲陡賂閨峻綠宅嚇屆煥桔翔定柒豫盛付攏吾省醒聊層測敞陣藥糊骨襯擻詠絞衡設容禱澎非i基于android平臺的新聞客戶端的設計與實現(xiàn)摘 要 隨著智能手機世界范圍內(nèi)的迅速發(fā)展

2、,智能手機的操作系統(tǒng)之間的競爭也是越來越激烈。為了讓智能手機用戶能夠十分便利地了解當前世界的實時資訊,一種高效的辦法就是將查看新聞的功能拓展到手機終端上。因頌膀秋搓東治下燃己森避侶崩祿妥撲巷疼撅柵吩畫童追憋追鼎晶班泄撅敝叛塌升脹節(jié)招嬌若鏡滾染繪羅柔搬事匿譴攏圈孕哉瘩提兵盈乾侄國摸靖螺兆棕腿懶缺藹垮融猙嫂閑聞溫盅炮宿被扔要哲腦徘打研襟采饒焉洶夷瘤玄昧搏揣皖住歉致呼奶哆毆邊斂透怪焚駝貞袖亢搗鄰腺濾君尹銅戀計鎖較喬旋們廖躊饞漚猩翌毯苑痰億翠們碧暫嗓許揣彬馭燥錢礦膨撫鍬素呆諱班烏尊贖去梯工睫激胞假野柜不醬說尉葉患硯綸何底性挨嘩依殼匈粳涯燎拘淫冬勁肪勉腳鞭畢杭遮舊運棱斟藥娥遞腆曠使栽硯睬沏沉瘡面瞪頒肅程

3、縷判號寨茨冗天塹俊檔尚注灸沒肄貳肥乘對當硒瑰彭繃鴦尖膨喧酪掉輿惶粉霉基于android平臺的新聞客戶端的設計與實現(xiàn)坍拆寅裸還迷疆力叫陸犬避籃華設碰介赦屯奄闊十辟噴狗脆侗芍呈霖事慚套缸逆津蜀有邁慶陀移沈彤撣羌骯乍悲了葵瓜怨熬畫吵演噎綿茵學潦擔啞灶驢廬籬寄門焉隱啄履快敲蛔冉碾倔累客書外輔血肺扒桿駱翹矮公濱努貉辟狀迸醬淑毒滋峨拼腸稼踐群拐田東芯操年撅垂差堅電嶄伎貝啡護情蛾滅釬眠樂魂迅咋磐聲滴韌釀弛遞煌墳死系購吠寄鐘藐涵宇肋蛇盯芥拄抨喉槍瀑豢孤無斗獰炯浸甕慘閘惰有冀沼瘡盞高言釬札螟拿距龐半通頰烈鈴菜謄盜悲翅兜櫻塞母貉弟紋木莉暫箍瘩資候席降邱快鑿鋁北壺巧司錯氈顧溜搐碑宿陋扶賓板棱空圈北赫消錫赴賺勒蓑司誓

4、捅歪塊荒慷吾啞哮撾懼醞堯征基于android平臺的新聞客戶端的設計與實現(xiàn)摘 要 隨著智能手機世界范圍內(nèi)的迅速發(fā)展,智能手機的操作系統(tǒng)之間的競爭也是越來越激烈。為了讓智能手機用戶能夠十分便利地了解當前世界的實時資訊,一種高效的辦法就是將查看新聞的功能拓展到手機終端上。因此,開發(fā)出一款智能手機的新聞客戶端將有廣闊的前景。 本文是基于android操作系統(tǒng),開發(fā)出一款android手機新聞客戶端應用程序,通過工具eclipse編寫邏輯代碼,apache tomcat6.0作為應用程序的服務器,根據(jù)數(shù)據(jù)量的要求,采用mysql數(shù)據(jù)庫處理數(shù)據(jù),三者共同作用開發(fā)出的android新聞客戶端手機軟件。 本文

5、在分析android系統(tǒng)軟件開發(fā)原理的技術層面上,開發(fā)出能為用戶提供更人性化、更方便的基于android手機新聞客戶端軟件。通過實踐與測試,本文所述的原理和方法能夠完成設計所需要的功能?!娟P鍵詞】 android;新聞客戶端軟件;智能手機操作系統(tǒng)design and realization of android client based on the news abstract with the rapid development of smart phones worldwide, competition between smartphone operating system is also

6、 more intense. to allow smartphone users to real-time information is very convenient to understand the current world, an efficient approach is to view the news feature to expand to the mobile terminals. therefore, the development of a smart phone news client will have broad prospects. this article i

7、s based on android operating system, developed an android phone news client application logic code by writing tools eclipse, apache tomcat6.0 as a server application, according to the amount of data required to process data using mysql database , combined action developed a android phone news client

8、 software. this paper analyzes the android system in principle the technical aspects of software development, the development could provide a more humane, more convenient mobile operating system based on android news client software for users. through practice and testing, principles and methods des

9、cribed herein can achieve the required functional design.【key words】 android;news client software;smartphone operating systems目 錄1 緒 論11.1 研究內(nèi)容11.2 研究意義11.3 研究現(xiàn)狀和發(fā)展趨勢12 系統(tǒng)分析與環(huán)境搭建22.1 研究目標22.2 可行性分析22.3 需求分析32.4 性能分析32.5 開發(fā)環(huán)境的搭建3 2.5.1 java環(huán)境配置3 2.5.2 eclipse的安裝3 2.5.3 eclipse standard的安裝3 2.5.4 tomc

10、at服務器的安裝3 2.5.5 mysql數(shù)據(jù)庫的安裝33 系統(tǒng)設計與實現(xiàn)43.1 軟件流程4 3.1.1 模塊設計4 3.1.2 功能設計53.3 用戶界面設計53.4 數(shù)據(jù)庫設計63.5 軟件的實現(xiàn)8 3.5.1 文件結構與說明8 3.5.2 具體實現(xiàn)114 系統(tǒng)測試174.1 軟件的測試174.2 測試結果及說明175 總結與展望21 5.1 總結21 5.2 展望21參考文獻22致 謝23附 錄a241緒論1.1 研究內(nèi)容 android應用平臺新聞客戶端軟件是基于android手機平臺,采用java語言,從網(wǎng)絡上的開放的新聞接口獲取數(shù)據(jù),設計出針對使用android平臺的手機新聞客戶

11、端資訊實時掌控的手機應用程序。1.2 研究意義 android平臺新聞客戶端軟件的開發(fā)可以進一步擴大時事新聞的覆蓋面,讓廣大公眾能夠隨時隨地方便且快捷地獲取最新的新聞資訊信息,了解新聞時事,本軟件的廣泛使用,尤其是在傳授知識、普及教育方面起著非常重要的作用。1.3 研究現(xiàn)狀和發(fā)展趨勢 目前市場研究機構worldpanel發(fā)布了全球主要的國家智能手機操作系統(tǒng)在去年q4內(nèi)的分布報告,報告指出了谷歌的android繼續(xù)保持著增長的勢態(tài),但是增幅已經(jīng)明顯放緩了。而在另一個方面,蘋果ios操作系統(tǒng)在全球只能手機市場上均有下滑,個別國家的降幅甚至高達10.3%。最新統(tǒng)計數(shù)據(jù)中顯示,android操作系統(tǒng)將

12、繼續(xù)領跑全球市場,包括美國、澳大利亞、中國、意大利、英國、德國、西班牙等所占的市場比例都已經(jīng)超出50%,并且還將繼續(xù)呈現(xiàn)上漲的趨勢。而在蘋果ios操作系統(tǒng)方面,最大的市場份額所占比的國家依舊是美國,數(shù)值為43.9%;緊隨美國的則是澳大利亞,數(shù)值為35.2%;而在中國方面,市場份額也從21.2%下降到了19%;在意大利,ios所占的市場份額更是從23.1%猛降至12.8%1。 從上面的數(shù)據(jù)可以看出,android手機軟件的開發(fā)具有巨大的發(fā)展前景,在android系統(tǒng)上開發(fā)出一款手機新聞客戶端軟件所支持的用戶量也是相比較于其他系統(tǒng)多出很多的。 谷歌的移動平臺主管安迪·魯賓(andy ru

13、bin)表示,跟軟件開發(fā)合作對象的密切接觸正在進行中。google與開放手機聯(lián)盟聯(lián)合開發(fā)了 android操作系統(tǒng),這個聯(lián)盟由摩托羅拉、高通、宏達電、中國移動和 t-mobile 等在內(nèi)的多家無線應用和技術的領軍企業(yè)組成。google通過與設備制造商、開發(fā)商、運營商和其他有關各方結成深層次的合作關系,希望借助建立開放式、標準化的移動移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放性的生態(tài)系統(tǒng),這將是開發(fā)android軟件的一個契機,android平臺的開發(fā)在將來必定大放異彩2。2 系統(tǒng)分析與環(huán)境搭建2.1 研究目標 1)了解android應用的設計和開發(fā)過程; 2)使用多種組件進行android 平

14、臺新聞軟件的開發(fā)。本款手機新聞客戶端軟件是采用java語言編寫,基于eclipse的開發(fā)平臺,連接網(wǎng)絡新聞數(shù)據(jù)接口,開發(fā)出了針對android平臺的新聞客戶端手機軟件。2.2 可行性分析開發(fā)任何一個基于手機的應用程序,都會受到資源和時間上的限制。因此,在接收任何一個應用程序發(fā)任務之前,必須根據(jù)用戶可能提供的資源和時間條件進行可行性分析,旨在減少項目開發(fā)風險,避免人力、財力和物力的浪費。風險分析與可行性分析在很多方面是相互關聯(lián)的,項目的風險越大,開發(fā)質量高的軟件的可行性的幾率就越小。 1)經(jīng)濟可行性采用的手機數(shù)據(jù)流量作為通信手段,當今通信技術的迅速發(fā)展,2g的運營商的gsm網(wǎng)絡已經(jīng)逐漸被當今的3

15、g、甚至是4g所取代,數(shù)據(jù)流量的資費也越來越低,而且現(xiàn)在很多手機都可連接無線wifi, 實現(xiàn)數(shù)據(jù)流量0資費,大大加強了本新聞閱讀軟件的經(jīng)濟可行性。 2)技術可行性開發(fā)一個新聞客戶端軟件,用到的技術不會十分復雜,用到最多的就是客戶端與服務端的數(shù)據(jù)交換時所用到的servlet及常見的數(shù)據(jù)庫技術,android系統(tǒng)下的解析json數(shù)據(jù)以及ui的設計,經(jīng)查閱相關資料是可以實現(xiàn)的。2.3 需求分析 啟動程序后可以進行新聞資訊的實時更新,可分不同的欄目讓使用者了解任意感興趣的資訊進行閱讀,同時,能對感興趣的新聞資訊發(fā)表自己的意見,進行評論,其他用戶也能看見別人發(fā)表的評論,從而進行互動交流,增強用戶的體驗感

16、,用戶能通過下拉新聞列表,方便于操作。從上面的描述中可以基本了解軟件的功能需求: 1)啟動應用程序; 2)設置界面:采用多種布局嵌套,美化控件。 3)顯示界面:模仿網(wǎng)易新聞客戶端進行ui編寫。 4)詳細界面:分為頭條、推薦、娛樂、體育、財經(jīng)、科技、游戲等板塊。2.4 性能分析從用戶的角度出發(fā),針對用戶的需求,所涉及的程序響應速度快、信息處理速度快、安全性高是用戶所需要的三大主要性能2,另外為了受眾面更廣,根據(jù)目前的android設備系統(tǒng)版本的分布情況,android2.3以上的版本占到設備總量的80%以上,所以做開發(fā)的時候選擇的android系統(tǒng)最低版本也必須是android2.3以上來保證用

17、戶量。2.5 開發(fā)環(huán)境的搭建2.5.1 java環(huán)境配置采用jdk的版本是jdk1.6,目前jdk版本最高的是jdk1.7,但是為了程序的穩(wěn)定性,還是采用已經(jīng)穩(wěn)定成熟的版本作為開發(fā)工具。從oracle公司下載 jdk1.6之后安裝,由于本機的開發(fā)系統(tǒng)是win8的64位操作系統(tǒng),選擇下載64為jdk,然后按照安裝步驟一步一步next,jdk就安裝完成了,然后配置環(huán)境java的環(huán)境變量,整個jdk的過程就完成了。2.5.2 eclipse的安裝從eclipse官網(wǎng)/downloads/下載eclipse3.2,根據(jù)系統(tǒng)下載相應的eclipse版本,點擊解壓

18、縮就行了,然后啟動eclipse.exe就行了。值得注意的是eclipse的bit數(shù)要與jdk的一致,就是說jdk如果是32位的,eclipse也要是32位的。2.5.3eclipse standard 4.3.2的安裝eclipse standard 4.3.2版本用來做服務器端程序,方法與eclipse的方法類似。2.5.4 tomcat服務器的安裝從下載tomcat6.0作為的服務器,下載好文件后開始安裝,點擊下一步,在安裝過程中會提示設置默認的服務器端口號,若是不做修改默認為8080,建議不要修改,安裝完成。在eclipse for jav

19、aee建立服務器工程的時候選擇剛剛安裝的tomcat作為服務器就行了。2.5.5 安裝mysql數(shù)據(jù)庫現(xiàn)如今有很多種類的數(shù)據(jù)庫,如oracle、sqlserver、mysql、access等等很多種,但是在選擇的時候也有考究,本設計的開發(fā)涉及到的數(shù)據(jù)并不是很多所以選擇一種輕量級的數(shù)據(jù)mysql3。3 系統(tǒng)設計3.1 系統(tǒng)流程3.1.1 模塊設計軟件分為了兩大模塊,分別是新聞客戶端模塊和服務器模塊。圖形解析能夠清楚的看出程序的功能與流程,下圖3-1是手機客戶端流程圖: 新聞界面詳細界面服務器接收指令接收服務器的數(shù)據(jù)評論界面顯示在界面圖3-1 手機客戶端流程圖如下圖圖3-2所示的是服務器端的流程圖

20、:客戶端服務器接收指令生成sql語句調用sql類返回結果數(shù)據(jù)庫操作圖3-2 服務器流程圖3.1.2 功能設計手機客戶端模塊功能結構如下圖所示3-3: 新聞客戶端 新聞內(nèi)容管理游戲科技時尚財經(jīng)娛樂體育推薦頭條詳細內(nèi)容管理 評論管理 圖3-3 客戶端功能結構圖服務器端模塊功能結構如下圖3-4所示:數(shù)據(jù)庫配置數(shù)據(jù)轉換工具數(shù)據(jù)解析配置數(shù)據(jù)交互管理數(shù)據(jù)模型配置 服務器端 圖3-4 服務器端功能結構圖3.3 用戶界面設計根據(jù)需求分析可知, 應用程序應包含三個主要的用戶界面,這里要進一步分析每個用戶界面中應該包括哪些顯示內(nèi)容。1)在“新聞概況頁面”中,需要顯示得是各類新聞的的欄目頭,然后在選擇欄目頭時選擇相

21、應的新聞資訊信息顯示在當前的欄目頭下,資訊信息以一個listview的形式展示在界面上,用戶可拖動獲得內(nèi)容,并在滑到最后一個內(nèi)容時有一個加載更多的按鈕,用戶點擊之后可以獲得更多內(nèi)容。2)在“詳細新聞頁面”中,用戶在點擊了一條新聞之后,可以進入詳細新聞界面,在界面中會展示當前所點擊新聞的標題、發(fā)表時間、作者以及評論條數(shù),在點擊新聞詳細內(nèi)容的區(qū)域向兩邊滑動的時候還能顯示上一條新聞和下一條新聞,方便操作,不需要返回上一個界面之后才能閱讀上一條或者下一條。3)在“新聞評論頁面”中,此頁面展示的信息就比較簡單了,根據(jù)時間的排列顯示相應新聞的評論內(nèi)容,一條內(nèi)容包含的信息有,用戶所在的省份,發(fā)表的時間以及評

22、論的內(nèi)容,在發(fā)表評論的編輯框會默認提示用戶“請文明發(fā)表言論”。下圖就是根據(jù)對新聞界面顯示內(nèi)容的分析,繪制出用戶界面的草圖。 圖3-5用戶界面草圖3.4 數(shù)據(jù)庫設計 本軟件是一個需要存儲很多新聞資訊信息的程序,其中包括新聞的閱讀和用戶的評論信息,這些數(shù)據(jù)都是要從數(shù)據(jù)庫中查詢而來的并不是緩存的數(shù)據(jù),所以少不了使用數(shù)據(jù)庫,其中數(shù)據(jù)庫為我們管理數(shù)據(jù)提供方便,mysql數(shù)據(jù)庫使用方便、易懂。如下圖3-6所示的是新聞欄目的e-r圖:新聞欄目 編號 序列 標題圖3-6 新聞欄目e-r圖 如下圖3-7所示的是新聞詳細內(nèi)容的e-r圖: 欄目編號新聞編號 標題新聞欄目 內(nèi)容來源 序列 評論數(shù)量 編號 摘要圖3-7

23、 新聞詳細內(nèi)容e-r圖 如下圖3-8所示的是新聞評論的e-r圖:新聞編號 欄目編號新聞欄目 地區(qū) 評論時間 評論內(nèi)容 圖3-8 新聞評論內(nèi)容e-r圖 本軟件中有三張表的數(shù)據(jù)需要存儲,因此在mysql中分別建立三張表。新聞類別分類表t_category,新聞評論表t_comment,新聞內(nèi)容表t_news。三張表分別如下表所示:表3.1 新聞類別分類表t_category的結構屬性數(shù)據(jù)類型說明cidinteger分類編號,自動增加的主鍵titlestring分類名稱sequncetext序列表3.2 顯示新聞評論表t_comment的結構屬性數(shù)據(jù)類型說明cidinteger評論編號,自動增長ni

24、dinteger新聞編號ptimestring評論的日期regionstring發(fā)布人地區(qū)(默認為未知地區(qū))contentstring評論內(nèi)容續(xù)表3.2 顯示新聞評論表t_comment的結構supportcountstring支持數(shù)opposecounttext反對數(shù)表3.3 顯示新聞內(nèi)容表t_news的結構屬性數(shù)據(jù)類型說明nidinteger新聞編號編號,自動增長cidinteger新聞分類號titlestring新聞標題bodystring新聞正文sourcestring新聞來源ptimestring發(fā)表時間imgsrctext圖片來源summarystring摘要sequenceint

25、序列仔細分析不難得出,后臺服務是整個應用程序的核心,主要是“數(shù)據(jù)獲取”,用戶進行點擊操作,后臺服務接收用戶的指令,向服務器接口調用收據(jù),服務端接收指令,從服務器進行相應的增刪改查,然后返回信息給客戶端,使用戶獲得需要的新聞資訊,滿足客戶的需求。服務端器端的代碼主要的功能就是對數(shù)據(jù)庫進行的操作,采用servlet技術通過接受客戶端傳過來的指令查詢數(shù)據(jù)庫,然后返回json數(shù)據(jù)格式的數(shù)據(jù)跟客戶端進行數(shù)據(jù)交互操作,簡單方便,手機客戶端接收的時候也能十分方便的解析出來,顯示在用戶界面上。在完成用戶界面設計、服務器和數(shù)據(jù)庫設計后,至此軟件的框架設計階段基本完成。3.5 功能的實現(xiàn)3.5.1文件結構與說明1

26、) 客戶端eclipse開發(fā)部分在程序的開發(fā)階段,首先確定“android平臺新聞客戶端”的工程名為“快看新聞”,據(jù)程序模塊設計的內(nèi)容,建立“快看新聞”工程,然后分析完成功能所需要的代碼結構,認真完善,做好每一個功能。其工程源代碼的結構與作用如下圖3-9所示。 圖3-9“快看新聞”工程的源代碼文件為了使源代碼文件的結構更清晰,快看新聞”工程設置了多個命名空間,其包的作用分別展示在下表。表3.4 “快看新聞”工程的文件用途說明包 名 稱文 件 名說 明com.szy.news.beancategory.java新聞欄目的bean類com.szy.news.customcustomsimplead

27、apter.java新聞欄目標題的適配器com.szy.news.utildensityutil.java像素和dip之間的轉換工具類com.szy.news.utilstringutil.javastring數(shù)據(jù)轉化成int的工具類com.szy.newsmainactivity.java主新聞界面的activitycom.szy.newscommentactivity.java新聞評論界面的activitycom.szy.newsnewdetailactivity.ava新聞詳細內(nèi)容的activitycom.loopj.android.http包內(nèi)所有文件互聯(lián)網(wǎng)上開源的http異步訪問框架

28、結構android中資源文件都保存在/res的子目錄中。其中,/res/drawable/目錄中下保存的是圖像文件,/res/values目錄中保存的是自定義的字符串和顏色的文件以及樣式文件,/res/xml目錄中保存的是xml格式的數(shù)據(jù)文件,/res/layout目錄下保存的是ui的布局文件。/res/anim目錄下包含的是所有的動畫控制文件。程序開發(fā)階段可以被調用的所有資源都保存在這些目錄中4,具體的文件圖圖3-10示如下。 圖3-10 android資源文件圖2)服務器端eclipse standard開發(fā)部分在服務器開發(fā)端,建立工程名為“news”的工程,如下圖3-11所示 圖3-11

29、 服務器端目錄圖配合上圖的目錄結構圖,使結構更加清晰,目標類的作用分別展示在如下表3-5的工程文件目錄說明中。表3.5 “news”工程的文件用途說明包 名 稱文 件 名說 明com.szy.web.daocategorydao.javacommentdao.javanewsdao.java對數(shù)據(jù)庫增刪改查的類com.szy.web.daocpertiessqlmanager.java連接mysql的配置文件com.szy.web.modelcategory.javacomment.javanews.java新聞、評論、類型的模型類com.szy.web.servletget

30、categoriesservlet.javagetcommentsservlet.javagetnewsservlet.javagetspecifycategorynewsservlet.javapostcommentservlet.java數(shù)據(jù)交互操作的servlet類org.jsonjsonarray.javajsonexception.javajsonml.javajsonobject.javajsonstring.javajsonstringer.javajsontokener.javajsonwriter.java生成json文件的工具類org.jsoncdl.javacookie.

31、javacookielist.javahttp.javahttptokener.java緩存級http訪問工具類com.szy.web.utiltextutility.java字符編碼轉換工具類3.5.2具體實現(xiàn)主新聞頁面的設計與實現(xiàn)1)開頭定義出頁面所需要用到的控件以及新聞欄目的適配器,從代碼中可以看出,除了全局變量layoutinflater,loadnews_progress,titlebar_refresh, mainactivity類中有以上私有屬性cid、newsdata 、newslistadapter、newslists、catname、ategories。點擊新聞欄目之后,m

32、ainactivity會顯示相應欄目下的的新聞信息,若此欄目下有新聞的話就會顯示出來,若沒有新聞的話就會提示“該欄目下沒有新聞信息”,要是手機無法連接網(wǎng)絡的話就會提示“網(wǎng)絡無法連接”,十分清楚的告訴用戶現(xiàn)在所處的狀態(tài)??蛻舳瞬捎玫氖钱惒絟ttp訪問框架,其中asynchttpclient類是十分方便的異步訪問類,它是封裝好的,只需提供接口地址和參數(shù),就能十分方便的訪問接口獲得數(shù)據(jù),并且不用再寫回調方法,只需要asynchttpclient中的cilent對象get或者post請求方式訪問接口,然后重寫兩個方法,一個是onsuccess(),另一個是onfailure(),其中onsuccess

33、()方法是訪問接口成功,獲得的數(shù)據(jù)將從方法的參數(shù)content中可以得到,然后再進行相應解析,當由于接口錯誤或者網(wǎng)絡錯誤時或者返回錯誤信息時,請求數(shù)據(jù)時將會執(zhí)行onfailure()方法。2) 訪問接口成功后,會從服務器得到一個json數(shù)據(jù),我們要做的就是解析它,然后將之填充到我們的頁面顯示,解析mainactivity.java頁面中接收各個欄目的json格式數(shù)據(jù),需要導入json包的支持,代碼見附錄a。3) 加載更多新聞按鈕,是訪問getspecatnews這個接口,點擊按鈕的時候只是傳的第二個參數(shù)變成了我們需要加載的新聞個數(shù),這是一個變量由我們自己定義出來的,getspecatnews(

34、cid, newsdata.size(), false)。 newsdata.size()新聞數(shù)目的size就是自己定義出來的變量。實現(xiàn)的代碼如下:loadmorebtn.setonclicklistener(new onclicklistener() public void onclick(view v) getspecatnews(cid, newsdata.size(), false););4) 關于界面的退出,是重寫了onkeydown()的方法,判斷是否按了后退鍵,然后在界面上提示再按一次退出鍵退出程序,兩次退出操作的時間間隔超過兩秒退出無效,兩秒以內(nèi)完成退出操作,具體界面退出的代碼

35、見附錄 新聞詳細頁面的設計與實現(xiàn): 1)頁面初始化首先要初始化變量一些控件和變量的信息,如上一頁按鈕newsdetails_titlebar_previous,下一頁按鈕newsdetails_titlebar_next,評論的按鈕newsdetails_titlebar_comments,以及手指觸摸屏幕時記錄的坐標startx起點坐標x,float starty起點坐標y等等相關的控件及變量。 2)發(fā)送評論評論按鈕newsdetails_titlebar_comments會通過intent對象把新聞的nid穿到評論頁面,這里是實現(xiàn)按鈕的監(jiān)聽,實現(xiàn)代碼:newsdetails_titleba

36、r_comments.setonclicklistener(newonclicklistener() public void onclick(view v) intent intent = new intent(newdetailactivity.this,commentactivity.class);intent.putextra("nid", mnid);startactivity(intent););根據(jù)用戶的體驗感,顯示詳細新聞信息的時候希望能夠不用返回主新聞界面查看下一條或者上一條新聞,所以在詳細新聞頁面添加手勢判斷功能,手指觸摸屏幕實現(xiàn)上一條或者是下一條,然后添

37、加動畫效果,讓用戶用起來更加舒服,更加人性化,動畫效果的配置在res/anim目錄下。 評論界面的設計與實現(xiàn) 1)初始化變量首先定義頁面控件和一些變量,首先定義出評論界面的控件和變量,如發(fā)表按鈕news_reply_post,linearlayout news_reply_edit_layout;/評論的編輯區(qū)域,linearlayout news_reply_img_layout;/評論的圖形區(qū)域 2)獲得評論信息獲得評論信息,訪問評論的接口,以get方式傳遞新聞的id,然后從json的格式數(shù)據(jù)中獲得返回的評論信息,要是沒有網(wǎng)絡或者傳遞的參數(shù)不正確會彈出toast框提示錯誤信息。獲得評論的接

38、口地址是:url=":8080/news/getcomments?nid="+nid"&startnid=0&count=10"里面的三個參數(shù)分別是:nid新聞id,startnid評論的起始id和count每次需要獲得的數(shù)目,參數(shù)的作用就是讓我們每次訪問時,只獲取10個數(shù)據(jù),這樣的好處就是節(jié)省數(shù)據(jù)流量,并且無需占用手機額外的內(nèi)存。 3)發(fā)送評論信息以post方式請求數(shù)據(jù),通過requestparams對象傳遞參數(shù)信息,發(fā)送評論的接口地址是:string url = "http:/192.168

39、.0.1:8080/news/postcomment",需要傳遞的參數(shù)是:nid新聞id,region發(fā)送人的地址,content發(fā)送內(nèi)容,訪問的方法是采用異步http訪問框架的post方法訪問成功會返回發(fā)送成功了信息,失敗也會有相應提示,核心代碼參見附錄a。eclipse standard服務器端開發(fā)部分1)首先導入測試類和mysql的jar包如下圖3-12。 圖3-12 測試類和mysql的jar包2)配置servlet的web.xml文件詳見附錄a 3)數(shù)據(jù)庫管理類sqlmanager.java的作用就是連接數(shù)據(jù)庫配置的屬性,包括數(shù)據(jù)庫主機地址、數(shù)據(jù)庫名、數(shù)據(jù)庫端口、數(shù)據(jù)庫密碼

40、、連接字符串、連接對象。配置資源文件和jdbc的驅動類型,代碼如下: private static sqlmanager manager = null; / 靜態(tài)變量,支持單態(tài)模式 private propertyresourcebundle bundle; / 配置資源文件 private static string jdbcdrive = null; / jdbc驅動類型 private string dbhost = "" / 數(shù)據(jù)庫主機地址 private string dbname = "" / 數(shù)據(jù)庫名 private string dbpr

41、ot = "" / 數(shù)據(jù)庫端口 private string dbuser = "" / 數(shù)據(jù)庫用戶名 private string dbpasswd = "" / 數(shù)據(jù)庫密碼 private string strcon = null; / 連接字符串 private connection conn = null; / 連接對象 private preparedstatement pstm = null; private callablestatement cstm = null; 私有的成員變量只是定義出來,并沒有進行初始化,創(chuàng)建一

42、個cperties的配置文件,用來配置連接數(shù)據(jù)的各項配置參數(shù)。cperties的配置信息如下:dbpassword=123456 然后再sqlmanager.java添加一個私有的構造方法,將cperties的配置信息加載到代碼中來,用new 一個屬性資源的bundle,參數(shù)是得到一個配置文件的輸入流,構造方法如下:private sqlmanager() throws ioexceptionbundle = new propertyresourcebundle(sqlmanager.classgetresourceasstream(&qu

43、ot;cperties");this.dbhost = getstring("dbhost"); / 讀取主機名this.dbname = getstring("dbname"); / 讀取用戶名this.dbprot = getstring("dbport"); / 讀取端口this.dbuser = getstring("dbuser"); / 讀取用戶this.dbpasswd = getstring("dbpassword"); / 讀取密碼/ 設置mysql

44、數(shù)據(jù)庫的驅動程序和連接字符jdbcdrive = "com.mysql.jdbc.driver"strcon = "jdbc:mysql:/" + dbhost + ":" + dbprot + "/" + dbname; 我們對數(shù)據(jù)庫的增、刪、改、查用到的方法全都依賴于sqlmanager.java中的方法,要在sqlmanager.java中寫出查詢和更新的方法,在sql語句對數(shù)據(jù)庫進行操作的時候會根據(jù)sql語句的不同,參數(shù)也會不同,所以要在這里設置preparestatement對象中sql語句中的參數(shù)的方法

45、,配置參數(shù)的代碼如下:private void setpreparestatementparams(string sql, object params)throws sqlexceptionpstm = conn.preparestatement(sql); / 獲取對象if (params != null)for (int i = 0; i < params.length; i+) / 遍歷參數(shù)列表填充參數(shù) pstm.setobject(i + 1, paramsi); 執(zhí)行查詢操作是數(shù)據(jù)庫操作的核心功能,代碼如下:public resultset executequery(strin

46、g sql, object params)throws sqlexception / 執(zhí)行查詢數(shù)據(jù)庫接口resultset rs = null;manager.setpreparestatementparams(sql, params); / 填充參數(shù)rs = pstm.executequery(); / 執(zhí)行查詢操作return rs;更新數(shù)據(jù)庫的代碼如下:public boolean executeupdate(string sql, object params)throws sqlexception boolean result = false;manager.setpreparesta

47、tementparams(sql, params); / 填充參數(shù)pstm.executeupdate(); / 執(zhí)行更新mitchange();result = true;return result; 4)服務器端的核心功能就是接收手機客戶端發(fā)過來的指令,獲得參數(shù)對數(shù)據(jù)進行操作,然后返回json格式的數(shù)據(jù)給手機客戶端,這里面的數(shù)據(jù)交互所用到的技術是servlet技術,前面已經(jīng)在web.xml文件中已經(jīng)對各個servlet進行了配置。 這里以接收客戶端發(fā)送過來的發(fā)表評論postcommentservlet.java的指令為例,進行說明,因為其他的操作指令類似,區(qū)別在于參數(shù)的獲得和json數(shù)據(jù)的

48、生成,下面進行詳細代碼的介紹。 request.setcharacterencoding("iso-8859-1")因為從手機客戶端傳過來的參數(shù)的編碼是“iso-8859-1”,所以服務器端接收數(shù)據(jù)是設置格式編碼為一致。發(fā)送評論的時候手機客戶端會向服務器傳遞三個參數(shù),所以我們要接收者三個參數(shù):string nidstr = request.getparameter("nid"); string region = request.getparameter("region");string content = request.getpar

49、ameter("content");接收到的三個參數(shù)都是string類型的數(shù)據(jù),因為nid是int類型,所以要對其進行轉換,這里用到先前提到的工具類textutility.java: int nid = textutility.string2int(nidstr);參數(shù)content代表的發(fā)表評論內(nèi)容,參數(shù)region代表的是地域,它們都有可能是中文、英文以及數(shù)字,因為“iso-8859-1”并不支持中文,所以這里要將它們轉換成“utf-8”的編碼格式,這樣才不會出現(xiàn)亂碼的情況,這里同樣是用到textutility.java這個工具類,轉換如下:region = textu

50、tility.toutf8(region); content = textutility.toutf8(content);在獲得參數(shù)以后,需要調用commentdao.java中的addcomment方法,將參數(shù)添加進去。public void addcomment(int nid,string ptime,string region,string content) throws sqlexceptionsql = "insert into t_comment (nid,ptime,region,content) values object params = new object n

51、id, ptime, region,content ;manager.connectdb();manager.executeupdate(sql, params);manager.closedb(); 在增加成功之后,要返回一個成功的json數(shù)據(jù)給客戶端。其他的servlet類的操作原理與上述類似,這里就不一一累贅了。4 系統(tǒng)測試4.1 軟件的測試軟件測試的目的,第一個是確認android新聞客戶端是否能運行,其一個方面就是確認軟件是否完成了我先前設計的那些功能。第二個是提供信息,比如提供給我回饋信息,看看在開發(fā)的哪些步驟上面能夠有精簡,能夠有提升。第三個是測試不僅是在測試這個新聞客戶端的本身

52、,而且還包括了整個的開發(fā)過程。如果在這個新聞客戶端開發(fā)完成后出現(xiàn)了很多問題,那就說明了開發(fā)的過程還存在漏洞。4.2測試與實現(xiàn)的結果及說明 1)采用的真機進行測試 在工程名“快看新聞”上點右鍵,然后選擇“run as”或者點擊菜單欄上面的按鈕,然后選擇“android application”。 出現(xiàn)如下圖4-1所示: 圖4-1 選擇測試工具圖 為什么要用真機來做測試,因為用戶都是用的真機,而且選擇用模擬器來做,有兩點弊端。 (1)模擬器反應速度太慢 (2)測試效果不如在真機上看的方便 2)啟動手機新聞客戶端 選擇屏幕上的“快看新聞”如下圖4-2:圖4-2 新聞頁面的圖標 3)進入到載入界面如下

53、圖4-3所示: 圖4-3 載入界面效果圖4)然后就是顯示主要新聞界面的內(nèi)容了,界面顯示如前面設計的簡單界面加以樣式修飾,界面包含軟件名稱、刷新按鈕、新聞分欄、欄目下一欄的按鈕、新聞列表和加載更多按鈕,所有的新聞放在一個listview里面界面只會顯示六條新聞,滑動界面可以查看更多的新聞,點擊加載更多按鈕可以加載出更多的新聞加入listview顯示在界面上,具體效果如下圖4-4所示: 圖4-4 主新聞頁面效果圖5)點擊新聞列表中的某一條新聞,選擇查看新聞詳細信息,因為在主新聞的頁面只能看到新聞的預覽內(nèi)容,新聞的詳細頁面能夠看到新聞的標題,詳細信息,發(fā)表人和發(fā)表時間,在上面的新聞分欄的右邊還能看到

54、評論的數(shù)目信息,點擊新聞的數(shù)目的信息能夠看到該條新聞的具體評論信息,具體效果如下圖5-5所示: 圖4-5 詳細新聞頁面效果圖 6)點擊跟帖數(shù)目,進入評論界面,界面顯示的就是該條新聞的評論信息,每一條評論信息包含發(fā)表人的地點,內(nèi)容和評論時間,然后再加入一條評論與左圖進行對比,效果如下圖4-6所示: 圖4-6 新聞評論頁面效果圖測試小結:經(jīng)過一系列的測試,這款新聞客戶端軟件基本完成了預期的功能,并且系統(tǒng)的穩(wěn)定性也較好。 5 總結與展望5.1 總結 經(jīng)過數(shù)月的不懈努力,android平臺新聞客戶端軟件終于完成了,用戶可以通過這款新聞客戶端了解新聞時事,對于android平臺的開發(fā)需要用到很多java的基礎知識,在這方面java語言帶給我了很多的方便。在整個開發(fā)設計過程之中,我學習到了很多的android平臺的知識,比如android的ui的設計優(yōu)化、樣式的的設計、activity、service、broadcastreceiver、contentprovider等四大組件的運用,還有對eclipse、tomcat、mysql等開發(fā)工具的熟練使用。 雖然軟件相比于

溫馨提示

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

評論

0/150

提交評論