基于android系統(tǒng)的資訊類app設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  大慶師范學(xué)院</b></p><p><b>  本科生畢業(yè)論文</b></p><p>  基于Android系統(tǒng)的資訊類App的</p><p><b>  設(shè)計(jì)與實(shí)現(xiàn)</b></p><p>  學(xué) 院 計(jì)算機(jī)科學(xué)與信息技術(shù)

2、 </p><p>  專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  研 究 方 向 嵌入式 </p><p>  學(xué) 生 姓 名 張旭 </p><p>  學(xué) 號 201204010106 &l

3、t;/p><p>  指導(dǎo)教師姓名 崔金寶 </p><p>  指導(dǎo)教師職稱 講師 </p><p>  2016年5月10日</p><p><b>  摘 要</b></p><p>  隨著智能手機(jī)市場的迅猛發(fā)展,移

4、動端的需求異?;鸨+@取新聞資訊、了解潮流風(fēng)向、探聽娛樂八卦是人們?nèi)粘I畈豢苫蛉钡囊豁?xiàng)生活樂趣,于是資訊類App自然炙手可熱 ,占據(jù)App市場很大的份額。</p><p>  本設(shè)計(jì)基于Android系統(tǒng),以Java語言為開發(fā)語言,Android Studio為開發(fā)環(huán)境,設(shè)計(jì)并實(shí)現(xiàn)了一款資訊類App。包含了圖文資訊展示、視頻資訊觀看、評論收藏、分享至主流社交平臺等功能。</p><p>

5、  關(guān)鍵詞:移動端;資訊;App;Android; </p><p><b>  Abstract</b></p><p>  With the rapid development of smart phone market, mobile terminal needs unusually hot. Get news, insight into the trend d

6、irection, find entertainment gossip is a fun life indispensable in people's daily life,so information class aplication natural hotest,occupies a large part of the application market.</p><p>  This paper

7、is based on the Android operating system, by the Java language for the development of language, Android Studio for the integrated development environment,design and implementation of an information class application.Cont

8、ains picture and text information display, video information to watch, comment on the collection, to share the mainstream social platforms and other functions.</p><p>  Keywords: Mobile; Information;Applicat

9、ion;Android;</p><p><b>  目 錄</b></p><p><b>  第一章 緒論1</b></p><p>  1.1 設(shè)計(jì)背景1</p><p>  1.2 設(shè)計(jì)意義1</p><p>  1.3 設(shè)計(jì)研究1</p>&

10、lt;p>  第二章 操作系統(tǒng)和開發(fā)工具3</p><p>  2.1 開發(fā)語言3</p><p>  2.2 操作系統(tǒng)3</p><p>  2.3 開發(fā)環(huán)境3</p><p>  2.4 相關(guān)技術(shù)介紹3</p><p>  2.4.1 圖片處理框架Glide3</p><p&g

11、t;  2.4.2 數(shù)據(jù)持久化框架GreenDao4</p><p>  2.4.3 網(wǎng)絡(luò)請求框架Async-Http-Client4</p><p>  第三章 系統(tǒng)需求分析5</p><p>  3.1 軟件需求5</p><p>  3.2 功能分析5</p><p>  第四章 系統(tǒng)詳細(xì)設(shè)計(jì)和功能實(shí)現(xiàn)

12、7</p><p>  4.1 系統(tǒng)流程7</p><p>  4.2 開發(fā)流程7</p><p>  4.2.1 環(huán)境配置8</p><p>  4.2.2 代碼版本控制8</p><p>  4.2.3 需求與BUG管理8</p><p>  4.2.4 正式開發(fā)8</p

13、><p>  4.2.5 混淆與打包8</p><p>  4.3 功能模塊的設(shè)計(jì)與實(shí)現(xiàn)9</p><p>  4.3.1 系統(tǒng)登錄模塊9</p><p>  4.3.2 列表頁模塊10</p><p>  4.3.3 詳情頁模塊12</p><p>  4.3.4 數(shù)據(jù)存儲模塊15&l

14、t;/p><p>  4.3.5設(shè)置模塊15</p><p>  4.3.6個(gè)人中心模塊16</p><p>  4.3.7推送模塊17</p><p>  4.2.8廣告模塊17</p><p>  第五章 系統(tǒng)測試18</p><p>  5.1系統(tǒng)測試18</p>&

15、lt;p>  5.2 測試結(jié)果及存在問題18</p><p>  5.2.1 測試結(jié)果18</p><p>  5.2.2 存在問題18</p><p><b>  結(jié)論19</b></p><p><b>  參考文獻(xiàn)20</b></p><p><b

16、>  致謝21</b></p><p><b>  第一章 緒論 </b></p><p><b>  1.1 設(shè)計(jì)背景</b></p><p>  智能手機(jī),是由最初的掌上電腦演變而來[1]。隨著用戶漸漸對于隨身處理信息方面功能的依賴,而又不滿足同時(shí)攜帶多個(gè)設(shè)備,于是,掌上電腦的系統(tǒng)被放入了手機(jī)中

17、,于是便出現(xiàn)了最初的智能手機(jī)。2007年第一代iPhone發(fā)布,搭載了被命名為“iPhone Runs OS X”的第一版IOS操作系統(tǒng),2008年第一部搭載Android操作系統(tǒng)的智能機(jī)HTC Dream發(fā)布,2010年微軟公司發(fā)布Windows Phone 7.0,簡稱WP7。從此智能手機(jī)取代功能機(jī)(Feature phone)成功主宰移動設(shè)備市場[2]。</p><p>  人類作為一個(gè)社群生活的種族,自古

18、以來就對資訊具有濃厚的興趣。古有口耳相傳,近有報(bào)紙廣播電視,而在網(wǎng)絡(luò)普及后,衍生了眾多門戶網(wǎng)站,成為了人們獲取資訊的主要方式?,F(xiàn)如今智能手機(jī)移動端強(qiáng)勢崛起,資訊類App也漸漸取代資訊網(wǎng)站成為信息傳播的中流砥柱。</p><p><b>  1.2 設(shè)計(jì)意義</b></p><p>  傳統(tǒng)資訊類App的功能簡單、風(fēng)格單一、界面不夠優(yōu)美和閱讀體驗(yàn)差等缺點(diǎn)一直為人們所詬病

19、,個(gè)人認(rèn)為一個(gè)優(yōu)秀的App最為重要的就是用戶體驗(yàn),而最影響用戶體驗(yàn)的就是一個(gè)舒適的閱讀環(huán)境和人性化的體貼設(shè)計(jì)。</p><p>  本設(shè)計(jì)本著擺脫傳統(tǒng)資訊App的陰影、貼近用戶的設(shè)計(jì)理念,為用戶提供了一個(gè)擁有多種功能、風(fēng)格獨(dú)特、界面優(yōu)美的優(yōu)秀閱讀環(huán)境。提高了用戶的閱讀效率和閱讀興趣。</p><p><b>  1.3 設(shè)計(jì)研究</b></p><

20、;p>  做為一個(gè)資訊類App,最重要的模塊是圖文數(shù)據(jù)展示,這就要求本設(shè)計(jì)對內(nèi)存的管理要十分嚴(yán)格,大量的圖片加載很可能造成內(nèi)存溢出,本設(shè)計(jì)采用對過大的圖片進(jìn)行壓縮,對Bitmap對象采用軟引用,以便及時(shí)釋放內(nèi)存。</p><p>  由于本設(shè)計(jì)所展示數(shù)據(jù)來自于網(wǎng)絡(luò)服務(wù)器,對網(wǎng)絡(luò)傳輸安全的控制也十分必要,本設(shè)計(jì)將收集的手機(jī)信息和用戶信息通過Base64加密,放入請求Head頭中進(jìn)行傳輸,以保證信息安全。<

21、;/p><p>  如果一個(gè)Android App想要有一個(gè)好的閱讀環(huán)境和優(yōu)秀的UI交互,屏幕適配是一個(gè)很重要的環(huán)節(jié)。由于Android設(shè)備的多樣性,同樣一個(gè)布局在眾多分辨率下的效果有可能會相差很多,本設(shè)計(jì)采用創(chuàng)建多個(gè)Values文件夾對應(yīng)不同分辨率,并新建dimens文件,對應(yīng)分辨率設(shè)備進(jìn)行適配,Android系統(tǒng)會在加載布局文件時(shí)自動尋找對應(yīng)分辨率文件夾。</p><p>  第二章 操作

22、系統(tǒng)和開發(fā)工具</p><p><b>  2.1 開發(fā)語言</b></p><p>  Java語言是一種可以編寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言[3],它可以說是當(dāng)今軟件開發(fā)領(lǐng)域使用最廣泛的開發(fā)語言。由于該語言有著很好的通用性、安全性、高效性以及可移植性,使它擁有了全世界最大的開發(fā)者專業(yè)群體。</p><p><b>  2

23、.2 操作系統(tǒng)</b></p><p>  Android是一種開放源代碼的操作系統(tǒng),它是開源的操作系統(tǒng)Linux系統(tǒng)進(jìn)行開發(fā)。最早由Google開發(fā),之后是由開放手機(jī)聯(lián)盟開發(fā)。底層是以Linux內(nèi)核作為根據(jù),只供給最基本的功能?;诘膽?yīng)用軟件是由每個(gè)公司自己開發(fā),以Java為編程語言。</p><p>  Android操作系統(tǒng)起始就是基于Linux操作系統(tǒng)設(shè)計(jì)的一個(gè)手機(jī)操作

24、系統(tǒng)名稱,也可以稱它為一個(gè)由應(yīng)用軟件、界面、中間操作系統(tǒng)構(gòu)成的平臺。Android本意是指“機(jī)器人”。</p><p><b>  2.3 開發(fā)環(huán)境</b></p><p>  Android Studio是由Google在2013年I/O大會上推出的Android集成開發(fā)環(huán)境,基于IntelliJ IDEA[4]。 類似 Eclipse ADT,

25、Android Studio 提供了集成的 Android 開發(fā)工具用于開發(fā)和調(diào)試。在IDEA的基礎(chǔ)上,Android Studio 支持Gradle構(gòu)建,為Android Studio提供專屬的急速重構(gòu)和修復(fù),更為智能的代碼提示工具,更高效的提升性能、可用性、版本兼容性等問題,支持ProGuard 和應(yīng)用簽名。Android Studio相對于Eclipse ADT的優(yōu)勢非常大。</p><p>  

26、2.4 相關(guān)技術(shù)介紹</p><p>  2.4.1 圖片處理框架Glide</p><p>  Glide是一個(gè)Android設(shè)備上高效開源的圖片媒體處理框架。Glide具有獲取、解碼和展示視頻劇照、圖片、動畫等功能,以及靈活的API,使開發(fā)者可以把它應(yīng)用在任何需要的場景里,作者是bumptech。這個(gè)庫被Google多次應(yīng)用于開源項(xiàng)目中。作為Google官方建議使用的圖片處理框架,Gl

27、ide的優(yōu)勢十分明顯,工作效率與緩存效果都十分不錯(cuò),雖然在圖片質(zhì)量和代碼量略占劣勢,但其支持Gif動畫和優(yōu)秀的內(nèi)存管理以及對于生命周期的控制都十分出色,所以在調(diào)研了Image-Loader、Fresco、Picasso等框架之后,決定使用Glide。</p><p>  2.4.2 數(shù)據(jù)持久化框架GreenDao</p><p>  GreenDao是一個(gè)輕量級的Android ORM框架

28、。自2011年開始被用于很多有名的應(yīng)用開發(fā)中,它擁有簡明好用的API,僅有100kb大小,不依賴不同手機(jī)CPU型號native層,Android集成的 jar包就可以,能夠自動生成代碼,無需自己寫繁瑣的entity實(shí)體類,實(shí)體Dao層處理類。是 Android開發(fā)中數(shù)據(jù)庫操作的最佳方案并且能夠提供高性能、消耗低內(nèi)存。</p><p>  2.4.3 網(wǎng)絡(luò)請求框架Async-Http-Client<

29、/p><p>  Async-Http-Client是專門針對Android在Apache的HttpClient基礎(chǔ)上構(gòu)建的異步的Callback-Based Http Client[5]。所有的請求全在UI線程之外發(fā)生,而Callback發(fā)生在創(chuàng)建它的線程中,應(yīng)用了Android的Handler發(fā)送消息機(jī)制。當(dāng)然,也可以把Async-Http-Client應(yīng)用在Service中或者后臺線程中,庫代碼會自動識別出它所

30、運(yùn)行的Context。它擁有非常簡潔、清楚的API,幾行代碼便能完成復(fù)雜的網(wǎng)絡(luò)請求操作,對于上傳下載數(shù)據(jù)都有很好的封裝。</p><p>  第三章 系統(tǒng)需求分析</p><p><b>  3.1 軟件需求</b></p><p>  智能手機(jī)相對于PC的最大優(yōu)勢就在于它的便攜性,人們隨時(shí)隨地都可以使用智能手機(jī)等移動設(shè)備獲取自己想要了解的一切

31、消息,也可以在任何情況下打發(fā)無聊的時(shí)間。全球網(wǎng)絡(luò)指數(shù)機(jī)構(gòu)(GWI)最新發(fā)布的一份調(diào)查報(bào)告顯示,至少擁有一部智能手機(jī)的人數(shù)占全球總?cè)藬?shù)的比例近80%,龐大的用戶群給了移動端App的高速發(fā)展的契機(jī),而在各種類型的App中,資訊類App是一個(gè)非常火爆的類型,為使更多人能夠第一時(shí)間了解資訊,提升生活品質(zhì),本人基于Android系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)了這一款資訊類App。以豐富多彩的內(nèi)容,簡潔優(yōu)美的界面,為用戶提供一個(gè)舒適、新鮮、智能的閱讀最新潮流資訊

32、的環(huán)境。</p><p><b>  3.2 功能分析</b></p><p>  依據(jù)本人的實(shí)際調(diào)研,本設(shè)計(jì)主要有以下模塊:登錄模塊、列表頁模塊、詳情頁模塊、數(shù)據(jù)存儲模塊、設(shè)置模塊、個(gè)人中心模塊、推送模塊、廣告模塊。各個(gè)模塊實(shí)現(xiàn)的功能如下:</p><p>  ﹙1﹚ 登錄模塊:對使用部分功能的用戶進(jìn)行登錄驗(yàn)證,只有登錄用戶才能使用這一部分功

33、能。登錄分為驗(yàn)證碼登錄和第三方賬戶登錄兩個(gè)部分,如果沒有綁定過賬號需要進(jìn)行注冊并確認(rèn)用戶名頭像。需要進(jìn)行登錄驗(yàn)證的功能包括社會化分享、文章收藏、文章評論等等。 </p><p>  ﹙2﹚ 列表頁模塊:跟據(jù)不同頻道的接口請求數(shù)據(jù),列表頁條目樣式共有五種,</p><p>  分別是首頁焦點(diǎn)輪播圖、列表頁文章、列表頁視頻播放、列表頁九宮格圖片、列表頁廣告。要求列表頁視頻點(diǎn)擊直接播放,且能夠

34、隨ListView滑動而自動停止播放,列表頁九宮格點(diǎn)擊動畫效果放大且大圖能夠左右滑動切換圖片,其他條目點(diǎn)擊跳轉(zhuǎn)對應(yīng)詳情頁或廣告頁。列表頁實(shí)現(xiàn)收藏、分享、評論等功能。</p><p>  ﹙3﹚ 詳情頁模塊:對接Html,請求并展示網(wǎng)絡(luò)內(nèi)容。具有評論模塊,評論模塊分為兩部分,Html形式為列表樣式,原生部分為彈幕形式。彈幕規(guī)則為五條軌道,錯(cuò)落分布,且初始狀態(tài)不能重疊。新增評論即時(shí)出現(xiàn),一次循環(huán)后處于隊(duì)首。</

35、p><p>  ﹙4﹚ 數(shù)據(jù)存儲模塊:根據(jù)需求,本設(shè)計(jì)需要實(shí)現(xiàn)緩存模塊。用戶瀏覽數(shù)據(jù)后列表頁數(shù)據(jù)存至SQLite數(shù)據(jù)庫,再次進(jìn)入首先加載本地?cái)?shù)據(jù),若有網(wǎng)絡(luò)請求網(wǎng)絡(luò)數(shù)據(jù)替換本地?cái)?shù)據(jù),無網(wǎng)絡(luò)不做請求。用戶瀏覽后的詳情頁Html數(shù)據(jù)存至緩存文件夾,以文件方式存儲,再次進(jìn)入有網(wǎng)絡(luò)時(shí)請求網(wǎng)絡(luò)數(shù)據(jù)并替換本地?cái)?shù)據(jù),無網(wǎng)絡(luò)時(shí)加載本地網(wǎng)頁數(shù)據(jù)。</p><p>  ﹙5﹚ 設(shè)置模塊:包括評價(jià)、封面故事、省流量模

36、式切換、清除緩存、關(guān)于我們等功能。 </p><p>  ﹙6﹚ 個(gè)人中心模塊:瀏覽收藏的文章,要求實(shí)現(xiàn)左滑刪除功能、退出登錄功能。</p><p>  ﹙7﹚ 推送模塊:實(shí)現(xiàn)推送功能。要求自定義推送樣式與點(diǎn)擊事件,點(diǎn)擊事件處理通過推送中自定義參數(shù)傳遞,實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)至某一頻道列表,或點(diǎn)擊跳轉(zhuǎn)某一文章詳情頁等操作,默認(rèn)行為是打開App。</p><p>  (8) 廣

37、告模塊:實(shí)現(xiàn)廣告位,此為銷售需求。廣告位主要包括歡迎頁視頻廣告、首頁下推大圖廣告、首頁輪播圖廣告、列表頁詳情頁頂通廣告等。</p><p>  通過系統(tǒng)的分析與調(diào)研,以上模塊均符合實(shí)際功能需求,開發(fā)條件能夠滿足,開發(fā)周期合理,符合設(shè)立理念。</p><p>  第四章 系統(tǒng)詳細(xì)設(shè)計(jì)和功能實(shí)現(xiàn)</p><p><b>  4.1 系統(tǒng)流程</b>

38、</p><p>  根據(jù)調(diào)研結(jié)果,本設(shè)計(jì)的流程是用戶打開App進(jìn)入歡迎頁,播放視頻廣告,播放完畢或者被跳過進(jìn)入主界面,若視頻被點(diǎn)擊進(jìn)入廣告頁,廣告頁退出跳轉(zhuǎn)至主界面。首頁分為三個(gè)Tab,第一個(gè)為首頁,首頁為各頻道內(nèi)容精選,點(diǎn)擊進(jìn)入詳情頁,首頁列表提供分享、收藏、評論入口。第二個(gè)為頻道頁,頻道頁中展示各個(gè)頻道入口,點(diǎn)擊跳轉(zhuǎn)至各個(gè)頻道列表頁。每個(gè)列表頁文章點(diǎn)擊均可跳轉(zhuǎn)至詳情頁,詳情頁提供評論、收藏、分享入口。第三個(gè)

39、為“我的”頁,整合個(gè)人中心和設(shè)置功能。以上任意地方的收藏、分享、評論功能被觸發(fā)時(shí),未登錄用戶將跳轉(zhuǎn)至登錄頁,已登錄用戶繼續(xù)使用,第一次登錄完畢將跳轉(zhuǎn)注冊頁,提交用戶名之后注冊成功,即可使用全部功能。</p><p>  本設(shè)計(jì)流程圖如圖4-1所示:</p><p>  圖4-1程序的架構(gòu)流程圖</p><p><b>  4.2 開發(fā)流程</b>

40、;</p><p>  4.2.1 環(huán)境配置</p><p>  第一次開發(fā)Android項(xiàng)目,首先要配置開發(fā)環(huán)境。Android的開發(fā)語言是Java,所以要首先下載安裝JDK,安裝完成后配置環(huán)境變量JAVAHOME。其次下載Android Studio,并進(jìn)行安裝,由于國內(nèi)不能直接訪問Google,可以下載離線Gradle和SDK</p><p><b>

41、;  安裝。</b></p><p>  4.2.2 代碼版本控制</p><p>  代碼版本控制對于一個(gè)項(xiàng)目是十分重要的,它的作用不光體現(xiàn)在團(tuán)隊(duì)開發(fā)上,獨(dú)立開發(fā)時(shí)也可以通過它保存代碼、切出版本分支、回滾之前版本等等。本設(shè)計(jì)采用Git作為版本控制系統(tǒng),Gitlab為遠(yuǎn)程服務(wù)器倉庫,SourthTree作為Git客戶端。</p><p>  首先在本地配

42、置Git環(huán)境,然后在Gitlab創(chuàng)建倉庫,最后在SourthTree克隆倉庫到本地,在客戶端上進(jìn)行代碼的提交與下拉。</p><p>  4.2.3 需求與Bug管理</p><p>  為避免開發(fā)需求缺失和方便Bug管理,本設(shè)計(jì)采用禪道對項(xiàng)目整個(gè)開發(fā)流程進(jìn)行管理,每一條需求開發(fā)完畢后確認(rèn),滿足全部需求后點(diǎn)擊提交測試,測試人員將Bug進(jìn)行描述指派給開發(fā)人員解決。</p>&l

43、t;p>  4.2.4 正式開發(fā)</p><p>  新建工程并選擇包名,選擇TargetSDK、MinSDK、BuildSDK和Gradle的版本,添加各項(xiàng)工程依賴,并在各個(gè)開發(fā)者平臺注冊賬號,獲得所需的Appkey。對class進(jìn)行合理的分類,寫好Base類。</p><p>  4.2.5 混淆與打包</p><p>  功能開發(fā)與測試完畢,還要做的就是

44、上線的準(zhǔn)備了。為了代碼的安全性,我們需要對代碼進(jìn)行混淆。首先在Gradle配置文件中聲明混淆文件,然后在混淆文件中添加混淆配置。在混淆文件中,需要通過-keep等語句保持第三方庫不被混淆,否則第三方庫無法被使用?;煜缶褪谴虬耍虬枰?jiǎng)?chuàng)建應(yīng)用的key,也就是簽名。這個(gè)key是唯一的,否則在應(yīng)用升級替換時(shí)會因?yàn)楹灻灰恢露遁d之前的版本。</p><p>  4.3 功能模塊的設(shè)計(jì)與實(shí)現(xiàn)</p>

45、<p>  4.3.1 系統(tǒng)登錄模塊</p><p>  個(gè)人登錄頁面,在此界面,分為兩個(gè)部分。手機(jī)號登錄中用戶輸入手機(jī)號點(diǎn)擊發(fā)送驗(yàn)證碼,手機(jī)號通過正則表達(dá)式判斷,如果格式正確點(diǎn)擊發(fā)送驗(yàn)證碼按鈕,系統(tǒng)會請求接口發(fā)送驗(yàn)證碼,否則提示“請輸入正確的手機(jī)號”。用戶輸入驗(yàn)證碼請求接口判斷是否正確,正確則登錄,否則提示“驗(yàn)證碼錯(cuò)誤”。第三方賬戶中點(diǎn)擊對應(yīng)賬號類型(本設(shè)計(jì)引入QQ、微信、微博賬戶)調(diào)起第三方登錄代

46、碼進(jìn)行登錄,進(jìn)行授權(quán)后記錄第三方賬戶信息傳給后臺進(jìn)行登錄。具體效果如圖4-2所示:</p><p><b>  圖4-2系統(tǒng)登錄</b></p><p>  若是首次登錄,登錄后跳轉(zhuǎn)至注冊界面,具體效果如圖4-3所示:</p><p><b>  圖4-3系統(tǒng)注冊</b></p><p>  4.3

47、.2 列表頁模塊</p><p>  首頁以及各頻道頁面以列表頁形式展示,列表頁包括多種形式的條目。首頁焦點(diǎn)圖為自動播放的輪播圖,由ViewPager實(shí)現(xiàn),效果如圖4-4所示:</p><p><b>  圖4-4焦點(diǎn)圖</b></p><p>  列表頁視頻點(diǎn)擊后直接在列表頁播放,并且需要跟隨ListView滑動,所以原本比較流行的Surfa

48、ceView在本設(shè)計(jì)被替換成TextsureView。原因是SurfaceView的工作是創(chuàng)建獨(dú)立于應(yīng)用窗口之外的一個(gè)新的窗口,雖然這種工作方式的效率會比較高,在工作窗口刷新的時(shí)候不會重新繪制應(yīng)用程序的窗口,但是因?yàn)镾urfaceView的內(nèi)容不在應(yīng)用窗口上,所以進(jìn)行一些屬性的變換就比較力不從心,包括平移、旋轉(zhuǎn)、縮放等等,也就很難跟隨ListView的滑動。與SurfaceView相比,TextureView并沒有創(chuàng)建一個(gè)單獨(dú)的Surf

49、ace用來繪制,這使得它可以像一般的View一樣執(zhí)行一些變換操作,設(shè)置透明度等。另外,Textureview必須在硬件加速開啟的窗口中。播放器的實(shí)現(xiàn)由TextsureView與MediaPlayer配合實(shí)現(xiàn)。通過給ListView設(shè)置滑動監(jiān)聽實(shí)現(xiàn)在播放窗口滑出屏幕時(shí)停止播放。播放器下邊是視頻詳情內(nèi)容,背景采用異步高斯模糊處理。具體效果如圖4-5所示:</p><p>  圖4-5列表頁視頻 </p>

50、<p>  列表頁九宮格采用ListView嵌套GridView實(shí)現(xiàn)。由于二者都是可滑動控件,如此便不可避免的產(chǎn)生了事件沖突,因此需要自定義View繼承于GridView,重寫OnMeasure方法。</p><p>  由于需要實(shí)現(xiàn)圖片放大動畫并且左右滑動,于是在窗口放置一個(gè)全屏的ViewPager,Visibility設(shè)置為Gone。ViewPagr的子view是一個(gè)PhotoView,在九宮格圖

51、片被點(diǎn)擊時(shí),ViewPager 設(shè)置Visible并調(diào)用setCurrentItem方法設(shè)置當(dāng)前放大的圖片,且記錄被點(diǎn)擊圖片的位置與大小,為PhotoView設(shè)置動畫,從被點(diǎn)擊的圖片位置與大小動畫變成原本的大小。PhotoView本身支持手勢縮放與旋轉(zhuǎn),更好的實(shí)現(xiàn)了圖片預(yù)覽。大圖點(diǎn)擊后執(zhí)行動畫縮小并且平移至對應(yīng)的小圖位置。具體效果如圖4-6所示:</p><p>  圖4-6 列表頁九宮格</p>

52、<p>  列表頁普通文章點(diǎn)擊跳轉(zhuǎn)至詳情頁,在此不多做表述。</p><p>  4.3.3 詳情頁模塊</p><p>  詳情頁模塊是在列表頁點(diǎn)擊進(jìn)入的,通過SharedPreference判讀是否第一次進(jìn)入,第一次進(jìn)入顯示引導(dǎo)蒙層。詳情頁采用WebView加載Html網(wǎng)頁形式展現(xiàn),為使Webview及時(shí)釋放內(nèi)存,WebView采用代碼動態(tài)生成方式并在退出時(shí)從父控件Remov

53、e掉,并在頁面Destory時(shí)做一些處理。在詳情頁中需要實(shí)現(xiàn)用戶點(diǎn)擊跳轉(zhuǎn),因此需要攔截WebView的請求Url并做處理。詳情頁具體實(shí)現(xiàn)效果如圖4-7所示:</p><p>  圖4-7 詳情頁內(nèi)容</p><p>  詳情頁中具有視頻模塊,需要實(shí)現(xiàn)點(diǎn)擊全屏,因此需要設(shè)置WebChromeClient,并在其中的onShowCustomView和onHideCustomView方法中做相應(yīng)

54、處理。詳情頁中具有評論模塊,前端部分采用列表頁形式展現(xiàn),在用戶評論后由移動端調(diào)用JavaScript方法插入評論。前端部分評論具體實(shí)現(xiàn)效果如圖4-8所示:</p><p>  圖4-8 前端評論部分</p><p>  原生部分評論采用彈幕形式展現(xiàn),以下為彈幕展示規(guī)則:</p><p> ?。?) 彈幕展現(xiàn)位置,屏幕靠下1/3處。</p><p&

55、gt; ?。?) 彈幕軌道數(shù),從上到下共5條橫向軌道。</p><p> ?。?) 同軌道彈幕出現(xiàn)間隔,對同軌道上的彈幕,上一條顯示全(即上一條的尾部在屏幕右側(cè)出現(xiàn)后)才出下一條。</p><p> ?。?) 下一輪彈幕開始時(shí)間:當(dāng)上一輪彈幕展示完(即屏幕上不再有彈幕時(shí)),開始下一輪彈幕的播放,彈幕無限輪循環(huán)播放。</p><p>  根據(jù)需求分析,采用PostDe

56、layed隨機(jī)數(shù)的方法控制出現(xiàn)時(shí)間,通過一個(gè)ViewList控制彈幕View的復(fù)用,每次從ViewList中取出第一位的View,在將View放入彈幕軌道后將其從集合中清除,在該條彈幕滾動完畢后重新放入ViewList實(shí)現(xiàn)圖片復(fù)用。為避免彈幕初始重疊,在一條彈幕未顯示完全時(shí)鎖定該軌道,顯示完畢后釋放該軌道。</p><p>  彈幕動畫通過屬性動畫ValueAnimator實(shí)現(xiàn),屬性動畫通過動態(tài)設(shè)置View的X屬

57、性實(shí)現(xiàn)動畫。通過對Animator設(shè)置監(jiān)聽實(shí)現(xiàn)動畫完畢的操作。</p><p>  用戶新增評論即時(shí)展示,并加入隊(duì)列中,下一輪彈幕處于隊(duì)首。彈幕具體實(shí)現(xiàn)效果如圖4-9所示:</p><p>  圖4-9 原生評論部分</p><p>  彈幕啟動流程圖如下圖4-10所示:</p><p><b>  圖4-10彈幕流程</b&

58、gt;</p><p>  4.3.4 數(shù)據(jù)存儲模塊</p><p>  為使用戶在無網(wǎng)絡(luò)狀態(tài)仍然能閱讀之前的數(shù)據(jù),本設(shè)計(jì)實(shí)現(xiàn)了離線閱讀。本模塊通過SQLile數(shù)據(jù)庫和WebView緩存實(shí)現(xiàn)。SQLite部分通過使用開源框架GreenDao實(shí)現(xiàn),GreenDao以O(shè)RM(對象關(guān)系映射)方式存儲數(shù)據(jù),通過Java工程生成對應(yīng)Moudle,并可以直接將Moudle對象轉(zhuǎn)換為鍵值存儲,大大的提升

59、了開發(fā)效率,操作簡單,效率高。</p><p>  詳情頁數(shù)據(jù)保存通過Webview自身的緩存機(jī)制實(shí)現(xiàn),在有網(wǎng)絡(luò)時(shí),設(shè)置WebView的緩存模式為LOAD_DEFAULT,無網(wǎng)絡(luò)為LOAD_CACHE_ELSE_NETWORK。</p><p>  4.3.5 設(shè)置模塊</p><p>  設(shè)置模塊中是一些系統(tǒng)設(shè)置和App介紹,包括:</p><

60、p>  (1) 賞個(gè)評價(jià),通過Intent設(shè)置Uri跳轉(zhuǎn)至默認(rèn)應(yīng)用市場,若手機(jī)沒有市場則打開瀏覽器,跳轉(zhuǎn)至應(yīng)用寶網(wǎng)站,進(jìn)行評論。</p><p> ?。?) 封面故事,啟動歡迎頁,展示啟動圖。</p><p> ?。?) 節(jié)省流量,設(shè)置是否進(jìn)入省流量模式, 進(jìn)入省流量模式后,將改變應(yīng)用請求Head頭中的“ius”字段,圖片質(zhì)量壓縮至百分之八十以節(jié)省流量。</p><

61、;p> ?。?)清除緩存,顯示目前程序Cache目錄的總大小,點(diǎn)擊清除所有緩存文件。不清除磁盤下載文件。</p><p> ?。?)關(guān)于我們,啟動聲明界面,展示服務(wù)協(xié)議和隱私聲明。</p><p>  具體實(shí)現(xiàn)效果如圖4-11所示:</p><p>  圖4-11 設(shè)置模塊 </p><p>  4.3.6 個(gè)人中心模塊</p&g

62、t;<p>  本模塊的功能是展示用戶已收藏文章,列表具有刪除功能。因此采用SwipeMenuListView實(shí)現(xiàn),提供列表左滑菜單,效果如圖4-12所示:</p><p>  圖4-12 個(gè)人中心模塊</p><p>  4.3.7 推送模塊</p><p>  經(jīng)過調(diào)研與實(shí)踐,本設(shè)計(jì)推送功能選用友盟推送實(shí)現(xiàn),服務(wù)端向友盟服務(wù)器推送自定義類型消息,A

63、pp接受消息后,通過解析Json內(nèi)容展示自定義Notification,并根據(jù)字段設(shè)置自定義點(diǎn)擊事件,跳轉(zhuǎn)至固定頻道頁、文章頁與主頁面,默認(rèn)打開App。</p><p>  4.3.8 廣告模塊</p><p>  本模塊為滿足銷售需求而設(shè)置,在現(xiàn)有模塊中加入廣告位,包括首頁視頻廣告、列表頁下推大圖廣告、列表頁頂通廣告,列表頁廣告等等。首頁廣告視頻保存到數(shù)據(jù)庫,開啟子線程下載并保存,下次打

64、開App時(shí)播放,時(shí)長為5秒以內(nèi),播放器由SurfaceView與MediaPlayer組合實(shí)現(xiàn)。下推廣告以PopWindow形式展示,具體效果如圖4-13所示:</p><p><b>  圖4-13下推廣告</b></p><p><b>  第五章 系統(tǒng)測試</b></p><p><b>  5.1系統(tǒng)測試

65、</b></p><p> ?。?)功能測試,參照需求文檔核對功能需求,檢測是否有功能缺失,以及設(shè)計(jì)是否達(dá)到要求。</p><p> ?。?) UI測試,參照UI設(shè)計(jì)圖核對界面布局,以及各種動畫效果是否達(dá)到設(shè)計(jì)要求,同時(shí)測試在不同尺寸與分辨率下的適配問題。</p><p> ?。?)穩(wěn)定性測試,測試在各種可能出先的情況下,程序的穩(wěn)定性。</p>

66、;<p>  (4)兼容性測試,通過在現(xiàn)有測試機(jī)以及Testin等云測試平臺進(jìn)行不同機(jī)型的兼容性測試。</p><p> ?。?)性能測試,通過DDMS工具檢測運(yùn)行時(shí)內(nèi)存大小、耗電量和是否有內(nèi)存泄漏。</p><p>  5.2 測試結(jié)果及存在問題</p><p>  5.2.1 測試結(jié)果</p><p>  (1)功能測試,沒

67、有發(fā)現(xiàn)功能遺漏,所有功能均已實(shí)現(xiàn),通過功能測試。</p><p> ?。?)UI測試,在主流尺寸與分辨率下效果達(dá)到要求,通過UI測試。、</p><p> ?。?)性能測試,在DDMS工具下檢測,各項(xiàng)數(shù)據(jù)處于正常,運(yùn)行效率與耗電量良好。</p><p>  5.2.2 存在問題</p><p> ?。?)兼容性測試,在個(gè)別機(jī)型上出現(xiàn)WebVi

68、ew白屏的問題,經(jīng)查閱資料和多次修改,得知是開啟硬件加速導(dǎo)致,關(guān)閉硬件加速則會導(dǎo)致WebView視頻無法播放,后改為在讀取到video標(biāo)簽時(shí)設(shè)置硬件加速,成功解決了問題。</p><p>  (2)穩(wěn)定性測試中,在偶爾情況會出現(xiàn)Crash,原因是異步下載數(shù)據(jù)成功后,如果Fragment如果不在依附于Activity,getActivity為null,導(dǎo)致空指針。改為先獲取Context后解決。</p>

69、<p><b>  結(jié)論</b></p><p>  本設(shè)計(jì)的整個(gè)開發(fā)過程中,我學(xué)到了很多知識,收獲了很多的經(jīng)驗(yàn),這是我第一個(gè)真正動手完成的項(xiàng)目,更重要的是,這是一個(gè)單獨(dú)完成的App,讓我對之前掌握的知識有了更深一層的理解。紙上得來終覺淺,無論看過多少書,做過多少題,最重要的還是多打代碼,帶著問題去學(xué)習(xí),才會了解的更多。</p><p>  項(xiàng)目中遇到了

70、很多的問題,讓我覺得之前自以為了解了Android事件非??尚Φ氖虑?,懂得越多,才知道不懂的更多。雖然碰到了很多問題,但是每一次解決問題的過程,都是一次自我提升的過程。遇到的問題越多,了解的也就越多,所以這個(gè)項(xiàng)目給了我很大的提升,無論是知識上、能力上還是心態(tài)上,都讓我收獲良多。</p><p>  在做項(xiàng)目中用到了很多開源框架,也在GitHub上看到了很多優(yōu)秀的開源項(xiàng)目,在使用的同時(shí),我也在向他們學(xué)習(xí),爭取以后也

71、能像他們一樣,寫出優(yōu)秀的開源項(xiàng)目,分享給大家使用。</p><p><b>  [參考文獻(xiàn)]</b></p><p>  蓋索林. Android開發(fā)入門指南(第二版)[M]. 北京:人民郵電出版社. 2012 </p><p>  王向輝,張國印等. Android應(yīng)用程序開發(fā)[M]. 北京:清華大學(xué)出版社. 2010  </

72、p><p>  王家林,王家俊等.Android高級開發(fā)實(shí)戰(zhàn):UI、NDK與安全,北京:電子工業(yè)出版社. 2013</p><p>  李剛.瘋狂Android講義. 電子工業(yè)出版社 . 2011</p><p>  郭霖. 第一行代碼. 人民郵電出版社. 2014</p><p><b>  致謝</b>

73、;</p><p>  在畢業(yè)設(shè)計(jì)完成的同時(shí)也代表著我的學(xué)生時(shí)代到此結(jié)束了,雖然心中有種種不舍,但我知道人終究是要越走越遠(yuǎn)的。一路走來,我要感謝所有在我遇到困難時(shí)幫助過我的人們。</p><p>  首先要感謝我的指導(dǎo)老師崔金寶老師,感謝崔老師耐心指導(dǎo)我完成畢業(yè)論文。由于我在外工作,有很多問題都不是很清楚,崔老師都會耐心的一一解答。崔老師在繁忙的工作之余還要幫助我修改論文,為我提出寶貴指導(dǎo)

74、意見,耐心的解答我的問題,對我每一處錯(cuò)誤都非常耐心的給與提示,令我十分感動。</p><p>  另外,我還要感謝在大學(xué)期間的所有老師,他們努力的傳授我們知識而不求回報(bào),在我們迷茫的時(shí)候點(diǎn)醒我、激勵(lì)我,我才能夠順利渡過從學(xué)校到社會的轉(zhuǎn)折階段,成功走進(jìn)社會,各位老師教給我的知識讓我一生受益。 </p><p>  在這里,我衷心的祝愿所有的老師桃李滿天下,我的母校越辦越好!</p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論