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

下載本文檔

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

文檔簡介

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

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

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

4、動端的需求異常火爆。獲取新聞資訊、了解潮流風向、探聽娛樂八卦是人們?nèi)粘I畈豢苫蛉钡囊豁椛顦啡?,于是資訊類App自然炙手可熱 ,占據(jù)App市場很大的份額。</p><p>  本設計基于Android系統(tǒng),以Java語言為開發(fā)語言,Android Studio為開發(fā)環(huán)境,設計并實現(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 設計背景1</p><p>  1.2 設計意義1</p><p>  1.3 設計研究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)絡請求框架Async-Http-Client4</p><p>  第三章 系統(tǒng)需求分析5</p><p>  3.1 軟件需求5</p><p>  3.2 功能分析5</p><p>  第四章 系統(tǒng)詳細設計和功能實現(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 功能模塊的設計與實現(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設置模塊15</p><p>  4.3.6個人中心模塊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>  參考文獻20</b></p><p><b

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

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

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

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

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

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

22、系統(tǒng)和開發(fā)工具</p><p><b>  2.1 開發(fā)語言</b></p><p>  Java語言是一種可以編寫跨平臺應用軟件的面向?qū)ο蟮某绦蛟O計語言[3],它可以說是當今軟件開發(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)進行開發(fā)。最早由Google開發(fā),之后是由開放手機聯(lián)盟開發(fā)。底層是以Linux內(nèi)核作為根據(jù),只供給最基本的功能?;诘膽密浖怯擅總€公司自己開發(fā),以Java為編程語言。</p><p>  Android操作系統(tǒng)起始就是基于Linux操作系統(tǒng)設計的一個手機操作

24、系統(tǒng)名稱,也可以稱它為一個由應用軟件、界面、中間操作系統(tǒng)構(gòu)成的平臺。Android本意是指“機器人”。</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)和修復,更為智能的代碼提示工具,更高效的提升性能、可用性、版本兼容性等問題,支持ProGuard 和應用簽名。Android Studio相對于Eclipse ADT的優(yōu)勢非常大。</p><p>  

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

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

28、。自2011年開始被用于很多有名的應用開發(fā)中,它擁有簡明好用的API,僅有100kb大小,不依賴不同手機CPU型號native層,Android集成的 jar包就可以,能夠自動生成代碼,無需自己寫繁瑣的entity實體類,實體Dao層處理類。是 Android開發(fā)中數(shù)據(jù)庫操作的最佳方案并且能夠提供高性能、消耗低內(nèi)存。</p><p>  2.4.3 網(wǎng)絡請求框架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)建它的線程中,應用了Android的Handler發(fā)送消息機制。當然,也可以把Async-Http-Client應用在Service中或者后臺線程中,庫代碼會自動識別出它所

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

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

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

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

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

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

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

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

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

39、為“我的”頁,整合個人中心和設置功能。以上任意地方的收藏、分享、評論功能被觸發(fā)時,未登錄用戶將跳轉(zhuǎn)至登錄頁,已登錄用戶繼續(xù)使用,第一次登錄完畢將跳轉(zhuǎn)注冊頁,提交用戶名之后注冊成功,即可使用全部功能。</p><p>  本設計流程圖如圖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項目,首先要配置開發(fā)環(huán)境。Android的開發(fā)語言是Java,所以要首先下載安裝JDK,安裝完成后配置環(huán)境變量JAVAHOME。其次下載Android Studio,并進行安裝,由于國內(nèi)不能直接訪問Google,可以下載離線Gradle和SDK</p><p><b>

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

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

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

44、上線的準備了。為了代碼的安全性,我們需要對代碼進行混淆。首先在Gradle配置文件中聲明混淆文件,然后在混淆文件中添加混淆配置。在混淆文件中,需要通過-keep等語句保持第三方庫不被混淆,否則第三方庫無法被使用?;煜缶褪谴虬?,打包需要創(chuàng)建應用的key,也就是簽名。這個key是唯一的,否則在應用升級替換時會因為簽名不一致而卸載之前的版本。</p><p>  4.3 功能模塊的設計與實現(xiàn)</p>

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

46、碼進行登錄,進行授權(quá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>  首頁以及各頻道頁面以列表頁形式展示,列表頁包括多種形式的條目。首頁焦點圖為自動播放的輪播圖,由ViewPager實現(xiàn),效果如圖4-4所示:</p><p><b>  圖4-4焦點圖</b></p><p>  列表頁視頻點擊后直接在列表頁播放,并且需要跟隨ListView滑動,所以原本比較流行的Surfa

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

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

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

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

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

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

54、處理。詳情頁中具有評論模塊,前端部分采用列表頁形式展現(xiàn),在用戶評論后由移動端調(diào)用JavaScript方法插入評論。前端部分評論具體實現(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>  (4) 下一輪彈幕開始時間:當上一輪彈幕展示完(即屏幕上不再有彈幕時),開始下一輪彈幕的播放,彈幕無限輪循環(huán)播放。</p><p>  根據(jù)需求分析,采用PostDe

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

57、性實現(xiàn)動畫。通過對Animator設置監(jiān)聽實現(xiàn)動畫完畢的操作。</p><p>  用戶新增評論即時展示,并加入隊列中,下一輪彈幕處于隊首。彈幕具體實現(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)絡狀態(tài)仍然能閱讀之前的數(shù)據(jù),本設計實現(xiàn)了離線閱讀。本模塊通過SQLile數(shù)據(jù)庫和WebView緩存實現(xiàn)。SQLite部分通過使用開源框架GreenDao實現(xiàn),GreenDao以ORM(對象關(guān)系映射)方式存儲數(shù)據(jù),通過Java工程生成對應Moudle,并可以直接將Moudle對象轉(zhuǎn)換為鍵值存儲,大大的提升

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

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

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

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

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

64、開App時播放,時長為5秒以內(nèi),播放器由SurfaceView與MediaPlayer組合實現(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> ?。?)功能測試,參照需求文檔核對功能需求,檢測是否有功能缺失,以及設計是否達到要求。</p><p> ?。?) UI測試,參照UI設計圖核對界面布局,以及各種動畫效果是否達到設計要求,同時測試在不同尺寸與分辨率下的適配問題。</p><p>  (3)穩(wěn)定性測試,測試在各種可能出先的情況下,程序的穩(wěn)定性。</p>

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論