【螢火短視頻APP的程序設(shè)計(jì)7900字(論文)】_第1頁(yè)
【螢火短視頻APP的程序設(shè)計(jì)7900字(論文)】_第2頁(yè)
【螢火短視頻APP的程序設(shè)計(jì)7900字(論文)】_第3頁(yè)
【螢火短視頻APP的程序設(shè)計(jì)7900字(論文)】_第4頁(yè)
【螢火短視頻APP的程序設(shè)計(jì)7900字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

“螢火”短視頻APP的程序設(shè)計(jì)摘要現(xiàn)在人生活節(jié)奏越來越快,碎片化的空閑時(shí)間比較多,所以在這樣的快節(jié)奏生活中可以把這些碎片化的時(shí)間加以利用,放松一下自己的神經(jīng),螢火視頻就是這么應(yīng)運(yùn)而生。螢火視頻是一個(gè)可以瀏覽新聞、短視頻的安卓端App,該App主要面向20-40歲的用戶群體,短視頻和新聞相關(guān)的內(nèi)容獲取的方式有兩種,但都是通過爬蟲獲得網(wǎng)上已經(jīng)存在的內(nèi)容,服務(wù)端的開發(fā)可以選擇Java的SpringBoot框架基于MVC的思想開發(fā),App中設(shè)置埋點(diǎn),通過埋點(diǎn)數(shù)據(jù),分析用戶的喜好,定向爬取用戶喜歡的內(nèi)容,增加用戶的粘性。App盈利方式是通過嵌入第三方的廣告,獲取一定的廣告收益。關(guān)鍵詞:短視頻;新聞;安卓;開發(fā);Python;廣告;App目錄TOC\o"1-3"\h\u0引言 91緒論 91.1項(xiàng)目背景 101.2研究?jī)r(jià)值 102系統(tǒng)可行性分析 112.1技術(shù)可行性 112.2經(jīng)濟(jì)可行性 133開發(fā)環(huán)境搭建 143.1開發(fā)環(huán)境搭建 143.1.1文件服務(wù)器搭建 143.1.2MongoDB以及Mysql服務(wù)器環(huán)境搭建 143.1.3Python的Django服務(wù) 153.1.4服務(wù)端程序 154設(shè)計(jì)與實(shí)現(xiàn) 154.1流程介紹 154.1.1安卓端開發(fā) 154.1.2服務(wù)端程序 164.1.3數(shù)據(jù)分析 174.1.4文件服務(wù)器 174.1.5資源獲取 184.2各部分程序詳細(xì)介紹 184.2.1客戶端 184.2.2服務(wù)端 194.2.3數(shù)據(jù)分析 205測(cè)試 205.1黑盒測(cè)試 205.2白盒測(cè)試 21參考文獻(xiàn) 23螢火視頻APP程序設(shè)計(jì)0引言隨著人們生活水平的不斷提高,在保證生活質(zhì)量水平的情況下,人們業(yè)余的時(shí)間也應(yīng)該逐漸增加,但是每天高強(qiáng)度工作的人仍然有很多,他們集中的業(yè)余時(shí)間并不多,繁忙的工作中應(yīng)該有緊有張,這一點(diǎn)可以跟抖音等學(xué)習(xí),瀏覽這種輕松的短視頻是螢火,現(xiàn)在的人們會(huì)花費(fèi)很多的時(shí)間瀏覽這種短視頻的App。這種輕閱讀、輕瀏覽的就很適合碎片化時(shí)間比較多的人群,瀏覽視頻和新聞不會(huì)浪費(fèi)太多的時(shí)間,但是可以讓人們的身心得到極大的放松,地鐵,在公交車上,飯后可以適當(dāng)?shù)挠^看,長(zhǎng)時(shí)間的高強(qiáng)度工作后,身體也需要得到一些放松,而且移動(dòng)設(shè)備也容易攜帶,隨時(shí)隨地都可以看到,不受時(shí)間和場(chǎng)所的限制?,F(xiàn)在網(wǎng)絡(luò)廣告行業(yè)越來越火,市場(chǎng)也越來越大,類似于這種類型的應(yīng)用程序,用戶在訪問應(yīng)用程序的過程中順便瀏覽廣告,當(dāng)越來越多的用戶使用該應(yīng)用程序,而相應(yīng)獲得的廣告收益也會(huì)越來越大。所以為了更好地吸引用戶,需要提高用戶的粘性,所以數(shù)據(jù)分析也很重要,數(shù)據(jù)分析人員通過后臺(tái)用戶點(diǎn)擊數(shù)據(jù)分析用戶的行為,獲得用戶喜歡的內(nèi)容后,在網(wǎng)上定向爬取用戶喜歡的一些內(nèi)容。1緒論1844年一個(gè)叫莫爾斯的美國(guó)人發(fā)明了一種叫莫爾斯電碼的東西,至此標(biāo)志著人們開始用電來傳輸信息,這也意味著現(xiàn)代通信的開始。1g使用模擬傳輸信號(hào),但他的功率非常有限。一般來說,它只能傳輸一個(gè)語(yǔ)音信號(hào),同時(shí)也面臨著話音質(zhì)量低、信號(hào)不穩(wěn)定、覆蓋不足、安全性差、易干預(yù)等問題。1994年,前中國(guó)郵電部長(zhǎng)吳基傳使用諾基亞2110撥通了我國(guó)移動(dòng)通信史上的第一個(gè)GSM電話,至此中國(guó)進(jìn)入2G時(shí)代,但是2G以及不能滿足人們的需求,傳輸速率太慢,所以3G應(yīng)用而生,3G通信技術(shù)仍然采用數(shù)字調(diào)制技術(shù),相比于2G來說,3G使得人們可以在手機(jī)上直接進(jìn)行瀏覽網(wǎng)頁(yè)、收發(fā)郵件、進(jìn)行視頻通話、觀看直播,人類也算是正式邁入了網(wǎng)絡(luò)時(shí)代。4G相比于3G來說最大的不同也就是傳輸速率不相同,每一代通信技術(shù)的傳輸速率大概也就是10倍的差距,4G的到來,人們可以實(shí)時(shí)的瀏覽網(wǎng)絡(luò)上的內(nèi)容以及觀看網(wǎng)絡(luò)直播。尤其這兩年5G的發(fā)展,以及5G的普及,商業(yè)化,5G的出現(xiàn)標(biāo)志著萬(wàn)物互聯(lián)的時(shí)代到來,人們也會(huì)越來越離不開網(wǎng)絡(luò),離不開移動(dòng)設(shè)備。早期,移動(dòng)通信是由軍隊(duì)控制和使用的,實(shí)際上是由平民使用的。1973從第一部民用電話誕生到進(jìn)入民用電話市場(chǎng)十年,這是第一代通信技術(shù)沒有改變1G和2G手機(jī)的用途,這意味著第一代通信技術(shù)沒有改變手機(jī)的用途。改變的只是手機(jī)的外觀越來越小,越來越適合人類使用。在第三個(gè)G出現(xiàn)之前,如果MartinCooper改變了人們的交流方式,那么還有另外一個(gè)人,在使用3G技術(shù)之后,美國(guó)第一代蘋果公司CEO史蒂夫·喬布斯發(fā)布了一款全屏控制的iPhone,他用以前的按鍵放下手機(jī),創(chuàng)造了一種新的移動(dòng)通訊方式。智能手機(jī)和通信技術(shù)的發(fā)展也促進(jìn)了Android應(yīng)用和IOS應(yīng)用的快速發(fā)展,如快速通信應(yīng)用、電子商務(wù)、游戲應(yīng)用、視頻音樂等應(yīng)用在移動(dòng)設(shè)備上得到了很好的發(fā)展。到目前為止,手機(jī)已經(jīng)成為人們生活中的必需品,工作設(shè)備等功能滿足了人們生活中不同場(chǎng)景的需求,移動(dòng)設(shè)備正逐步覆蓋生活的各個(gè)領(lǐng)域,此外,我們也在不斷審視不同用戶群體的需求。移動(dòng)互聯(lián)網(wǎng)的發(fā)展也刺激了很多行業(yè),如電子商務(wù)、直播、游戲等。移動(dòng)設(shè)備便攜大大增加了用戶群體,擴(kuò)大了市場(chǎng)流量,而大流量也帶來了網(wǎng)絡(luò)廣告這個(gè)龐大的廣告市場(chǎng)。1.1項(xiàng)目背景現(xiàn)在短視頻、輕閱讀的App也是越來越火爆,類似抖音、快手、趣頭條這樣的應(yīng)用程序也是越來越多,人們的業(yè)余生活也越來越豐富。但是現(xiàn)在大城市生活節(jié)奏一般都偏快,工作強(qiáng)度也大,碎片化的時(shí)間比較多,所以這種類型的app就有了市場(chǎng)的空間,為了讓用戶有更棒的用戶體驗(yàn),豐富App中的內(nèi)容,使得人們?cè)诜泵Φ墓ぷ髦心軌虻玫揭唤z的輕松。而該項(xiàng)目主要面向上班族,內(nèi)容主要有搞笑有趣的短視頻、實(shí)時(shí)的熱點(diǎn)新聞、唯美的小清新寫真。但是與快手、抖音不同,該App不支持用戶自定義上傳內(nèi)容,App后臺(tái)可以基于用戶產(chǎn)生的埋點(diǎn)數(shù)據(jù),分析用戶行為,讓爬蟲工程師找到用戶喜歡的內(nèi)容類型。1.2研究?jī)r(jià)值快手,中國(guó)算是第一家短視頻App,目標(biāo)人群就是18-30歲青壯年,短短3年就做到了2億日活,很多公司都看到了前景紛至沓來,抖音、糖豆、趣視等迅速搶占市場(chǎng),但最后還是被抖音占據(jù)頭牌。2016年誕生的抖音,2017年一場(chǎng)浩大的網(wǎng)絡(luò)宣傳活動(dòng)—百萬(wàn)英雄迅速讓抖音這個(gè)App人盡皆知,兩年時(shí)間便做到了3億的日活,廣告收入僅次于阿里、騰訊,從一開始的嵌入式廣告到后來各大主播短視頻中宣傳的軟廣告,字節(jié)跳動(dòng)算是奠定了國(guó)內(nèi)三大互聯(lián)網(wǎng)廣告平臺(tái)的地位。這個(gè)流量至上的時(shí)代,抓住流量完全可以讓一家公司起死回生不為過。中國(guó)的廣告市場(chǎng)很大,基于中國(guó)龐大的人口基礎(chǔ),任何能夠占領(lǐng)大市場(chǎng)的產(chǎn)品,都能獲得非常客觀的利潤(rùn),國(guó)內(nèi)市場(chǎng)的三大廣告巨頭阿里巴巴、騰訊、字節(jié)跳動(dòng),廣告市場(chǎng)雖然很大,雖然去年社會(huì)各方面都受到疫情的嚴(yán)重影響,網(wǎng)絡(luò)廣告的大環(huán)境也收到了一些影響,很多小型廣告創(chuàng)業(yè)公司都倒閉了,但是我覺得廣告業(yè)仍然可以再次復(fù)蘇,它可能需要一種新的模式,5g的普及和人工智能的發(fā)展將給互聯(lián)網(wǎng)帶來新的春天,希望也能給廣告行業(yè)帶來新的活力。目前,現(xiàn)在的廣告市場(chǎng)依舊龐大,雖然大的市場(chǎng)被牢牢把握在廣告三巨頭手里,但是小的這種類型創(chuàng)業(yè)公司還是能夠獲得點(diǎn)利潤(rùn),不過經(jīng)營(yíng)的方式也要適當(dāng)?shù)淖龀鲆恍└淖儯脩舻木珳?zhǔn)投放以及App的精細(xì)化運(yùn)營(yíng)很有必要。產(chǎn)品本身要有一個(gè)很好的產(chǎn)品定位,做什么方向,以及目標(biāo)用戶是什么用戶群體。就像拼多多產(chǎn)品定位就很清晰,專門做中國(guó)的下層市場(chǎng)。精準(zhǔn)投放找到目標(biāo)人群通過對(duì)接的廣告平臺(tái)投放到相應(yīng)群體,廣告平臺(tái)例如百度的百度聯(lián)盟,騰訊的優(yōu)良匯,字節(jié)的穿山甲等。精細(xì)化運(yùn)營(yíng)也重中之重,創(chuàng)業(yè)型的公司資金不多當(dāng)然也經(jīng)不起大風(fēng)大浪,稍微有點(diǎn)市場(chǎng)的變動(dòng)可能公司就面臨倒閉,所以資金管理要死死的拿捏住,用在刀刃上,只有做到以上兩點(diǎn)才能保證在現(xiàn)在的創(chuàng)業(yè)環(huán)境下活下來,從而分的一份利潤(rùn)。2系統(tǒng)可行性分析一個(gè)項(xiàng)目能不能做,主要要考慮兩個(gè)方面的內(nèi)容:第一點(diǎn)就是要保證現(xiàn)有的技術(shù)和開發(fā)工具能保證項(xiàng)目能夠被開發(fā)出來,第二點(diǎn)則是項(xiàng)目開發(fā)出來之后能否獲得利潤(rùn),如果一個(gè)項(xiàng)目做出來沒有盈利,就不能保證項(xiàng)目能夠長(zhǎng)期的運(yùn)營(yíng)。2.1技術(shù)可行性項(xiàng)目運(yùn)行在安卓系統(tǒng)上,只兼容安卓6.0以上系統(tǒng)的手機(jī),現(xiàn)在安卓技術(shù)也都比較成熟,以下是整個(gè)項(xiàng)目的五個(gè)部分:1.客戶端使用安卓開發(fā),主要就是三類頁(yè)面,啟動(dòng)頁(yè),主活動(dòng)頁(yè),以及詳情頁(yè)。主活動(dòng)頁(yè)fragment就能解決,詳情頁(yè)也編寫三種視頻、新聞以及圖片,不過現(xiàn)有的技術(shù)也都能搞定,最后客戶端需要做一些埋點(diǎn)。2.服務(wù)端程序使用Java語(yǔ)言開發(fā),Java語(yǔ)言可以開發(fā)web應(yīng)用程序,常用的框架也有一些,Spring、Mybats、SprintMVC等,但是SpringBoot很好的整合了這三個(gè)框架,而且自動(dòng)集成了Tomcat服務(wù)器,只需要專注于開發(fā),不用花費(fèi)很多的時(shí)間在環(huán)境搭建上。3.Python語(yǔ)言是常用的數(shù)據(jù)分析語(yǔ)言,很容易的實(shí)現(xiàn)數(shù)據(jù)可視化以及數(shù)據(jù)分析,相關(guān)部署工具Python有兩個(gè)框架,一個(gè)是Flask,一個(gè)是Django。對(duì)比而言Django雖然比較重,但是可以極大加快開發(fā)速度,可視化頁(yè)面前后端的數(shù)據(jù)交互可以使用Ajax進(jìn)行傳輸。4.爬蟲程序只是為了獲得App的內(nèi)容信息,一共有兩類信息,視頻以及圖文,所有也需要兩種爬蟲方式,一種是獲取網(wǎng)頁(yè)上的圖文,一種是抓包別的App的視頻資源。前一種使用python的Scrapy框架,后一種需要使用Fidder+Appium配合抓包。5.為了方便內(nèi)容訪問,所以需要搭建一個(gè)小型文件服務(wù)器,進(jìn)行文件的存儲(chǔ),將圖文以及視頻都放到服務(wù)器的某個(gè)路徑下,數(shù)據(jù)庫(kù)中只需要存儲(chǔ)內(nèi)容的相關(guān)鏈接,這樣極大的方便了客戶端的訪問。整個(gè)項(xiàng)目大致流程圖如圖2.1所示。圖2-1項(xiàng)目流程圖2.2經(jīng)濟(jì)可行性項(xiàng)目的精細(xì)化運(yùn)營(yíng),當(dāng)然也不能是一件拍腦袋完成的事,是需要市場(chǎng)相關(guān)的人員作一定的調(diào)查,就像剛剛發(fā)布的全國(guó)第七次人口普查數(shù)據(jù),男性人數(shù)比女性人數(shù)多出來將近3500萬(wàn)人,未來也會(huì)多出3500萬(wàn)的光棍,所以相比而言這3500萬(wàn)就是市場(chǎng),任何的項(xiàng)目都是建立在一定的流量之上,如果一個(gè)項(xiàng)目沒有流量那么肯定是不能運(yùn)營(yíng)下去的,不能盈利那就沒有必要開始??疾槭袌?chǎng),做好完備的產(chǎn)品定位以及目標(biāo)用戶群體,是一個(gè)項(xiàng)目能夠存活的關(guān)鍵。一般來說,整個(gè)項(xiàng)目的投資并不需要大量的資金。前期投入最大的地方也就是辦公室的費(fèi)用以及員工的工資,其他線上投放費(fèi)用以及服務(wù)器的費(fèi)用其實(shí)并不是很多。而且對(duì)于創(chuàng)業(yè)項(xiàng)目來說,國(guó)家對(duì)創(chuàng)業(yè)項(xiàng)目有很多的支持,比如上海的浦軟孵化器,如果項(xiàng)目能夠上孵化器,使用孵化器基地的場(chǎng)地作為辦公室,這樣的話辦公室的費(fèi)用也就不是很高。員工的話,一個(gè)團(tuán)隊(duì)包括一個(gè)產(chǎn)品、一個(gè)客戶端、一個(gè)服務(wù)端、一個(gè)數(shù)據(jù)端、一個(gè)管市場(chǎng),這樣一個(gè)團(tuán)隊(duì)五個(gè)人就可以撐起一個(gè)項(xiàng)目。其實(shí)項(xiàng)目能不能做的成功關(guān)鍵還是要看有沒有什么好的想法,像趣頭條開創(chuàng)了網(wǎng)賺的先河,三年上市,拉攏了一大波流量之后就開始變現(xiàn),在這個(gè)流量至上的時(shí)代,抓住流量就等于抓住了財(cái)富。3開發(fā)環(huán)境搭建3.1開發(fā)環(huán)境搭建整個(gè)程序相關(guān)的服務(wù)都部署在服務(wù)器上,服務(wù)器是阿里云的輕量級(jí)應(yīng)用服務(wù)器1核2G。服務(wù)器系統(tǒng)選擇CentOS7.6REF_Ref7477\r\h[2],買完服務(wù)器之后記得修改一下root用戶的密碼,修改完畢重啟服務(wù)器使修改后的密碼生效。使用Xshell或者Putty都可以使用ssh連接服務(wù)器,服務(wù)器首先要作為文件服務(wù)器,然后部署MongoDB以及Mysql,再把BI平臺(tái)以及服務(wù)端程序部署,最后配置好相應(yīng)的定時(shí)任務(wù)腳本。3.1.1文件服務(wù)器搭建文件服務(wù)器通過Tomcat也可以使用Apach進(jìn)行搭建,原理都差不多,需要先把視頻,圖片等資源先一步的上傳到服務(wù)器中。需要JDK支持,然后下載相應(yīng)的Tomcat版本,修改Tomcat的server.xml配置文件做好資源的映射,修改完畢重啟Tomcat服務(wù)看是否能夠正常訪問,如果正常即代表搭建成功。3.1.2MongoDB以及Mysql服務(wù)器環(huán)境搭建 訪問MongoDB與Mysql的官網(wǎng),在官網(wǎng)上下載對(duì)應(yīng)的.tar.gz的安裝包,然后上傳到服務(wù)器上,也可以直接使用wget直接將文件下載到服務(wù)器上,下載完畢之后對(duì)文件進(jìn)行解壓縮,修改對(duì)應(yīng)的配置文件,比如data目錄以及l(fā)og目錄位置,記得在data文件的目錄做好系統(tǒng)的磁盤掛載。配置完畢之后,啟動(dòng)服務(wù),設(shè)置服務(wù)的開機(jī)自啟動(dòng),如果正常訪問即可。3.1.3Python的Django服務(wù)Django不支持py2,而服務(wù)器本身內(nèi)置的只有py2,所以需要自行下載py3,在python官網(wǎng)找到對(duì)應(yīng)版本的tar.gz的壓縮包,再上傳到服務(wù)器上解壓縮,這里要對(duì)python3做一個(gè)軟連接,刪除原來的python命令,在/bin/目錄下做相應(yīng)的python3命令軟連接,這樣才能保證訪問到的是python3環(huán)境。這里還有另外的一種方法,直接安裝anconda環(huán)境,這樣所以Django所需要的的包也不用自己手動(dòng)安裝了,不過anconda環(huán)境過于太大,如果環(huán)境所需依賴不多的情況下,還是不建議直接上conda環(huán)境。3.1.4服務(wù)端程序 服務(wù)端程序需要的環(huán)境只有JDK,所以需要在服務(wù)器上安裝好JDK即可,程序的部署則需要把相關(guān)的服務(wù)端程序打成相應(yīng)的jar包,配合相應(yīng)的Java內(nèi)置命令在服務(wù)器后臺(tái)啟動(dòng)即可。4設(shè)計(jì)與實(shí)現(xiàn)4.1流程介紹4.1.1安卓端開發(fā)安卓程序主要實(shí)現(xiàn)兩個(gè)部分:整個(gè)app和在app內(nèi)部的相關(guān)用戶埋點(diǎn),客戶端要盡可能保證埋點(diǎn)數(shù)據(jù)的完整無(wú)誤。以下是App的主要頁(yè)面:1.App主頁(yè)面包含四個(gè)Fragment,這四個(gè)Fragment要分別做短視頻列表推薦頁(yè)、新聞列表推薦頁(yè)、圖片的列表推薦頁(yè)以及個(gè)人主頁(yè),不同頁(yè)面之間的轉(zhuǎn)換可以左滑或者右滑進(jìn)行切換也可以直接點(diǎn)擊屏幕下方的導(dǎo)航欄。圖4-1視頻推薦列表頁(yè)2.內(nèi)容的詳情頁(yè),不同于圖文的靜態(tài)資源,在進(jìn)入短視頻推薦頁(yè)面,視頻會(huì)自動(dòng)進(jìn)行播放,當(dāng)視頻播放完畢之后會(huì)自動(dòng)跳到下一個(gè)視頻,具體頁(yè)面如下圖所示:圖4-2視頻播放頁(yè)面4.1.2服務(wù)端程序負(fù)責(zé)與客戶端的交互,但是具體要實(shí)現(xiàn)下面的兩個(gè)功能:1.用戶在客戶端訪問app之后,服務(wù)端要進(jìn)行短視頻、圖文等數(shù)據(jù)的相應(yīng),下發(fā)的數(shù)據(jù)格式為json類型。2.用戶在使用app過程中會(huì)產(chǎn)生很多的用戶數(shù)據(jù)也就是埋點(diǎn),這些埋點(diǎn)數(shù)據(jù)都要通過http發(fā)送給服務(wù)端程序。圖4-3前后端數(shù)據(jù)交互4.1.3數(shù)據(jù)分析每一個(gè)成熟的app都要有一個(gè)成熟的BI平臺(tái),原生態(tài)使用Bootstrap+Echarts進(jìn)行搭建,供管理人員以及爬蟲工程師參考,如下圖:圖4-4BI平臺(tái)頁(yè)面4.1.4文件服務(wù)器搭文件服務(wù)器的主要作用是為了讓所有的內(nèi)容都走h(yuǎn)ttp請(qǐng)求,通過網(wǎng)絡(luò)進(jìn)行傳輸,在數(shù)據(jù)庫(kù)中只需要存儲(chǔ)相應(yīng)內(nèi)容的地址即可,方便快捷。如下圖所示:圖4-5文件服務(wù)器相關(guān)主頁(yè)4.1.5資源獲取資源獲取要獲得支持app運(yùn)營(yíng)的所有靜態(tài)資源,視頻、圖片、新聞等內(nèi)容,由于內(nèi)容不統(tǒng)一,所有需要采用兩種方式進(jìn)行獲取。1.網(wǎng)頁(yè)靜態(tài)資源的獲取常用也有很多種方式,比如Java的Jsoup框架也能解析xml文件,但是還是不如Python的Scrapy框架方便,爬蟲加存儲(chǔ)一體化。2.短視頻資源不同于新聞與圖片,網(wǎng)上這種靜態(tài)資源比較少,只能通過抓包軟件分析數(shù)據(jù)包結(jié)構(gòu),找到目標(biāo)的視頻地址,先把視頻的地址爬下來,最后再編寫腳本將視頻保存在本地資源地址。4.2各部分程序詳細(xì)介紹既然是一個(gè)完整的項(xiàng)目,那么所有的環(huán)節(jié)都必然是有關(guān)系的,一環(huán)接著一環(huán),每一個(gè)環(huán)節(jié)都不可或缺。BI平臺(tái)數(shù)據(jù)分析的結(jié)果指導(dǎo)爬蟲工程師,有了內(nèi)容之后就必須要想著搭建文件服務(wù)器,將爬取下來的內(nèi)存存儲(chǔ)在文件服務(wù)器中。當(dāng)有了文件服務(wù)器則需要把相關(guān)的資源鏈接存儲(chǔ)在數(shù)據(jù)庫(kù)中,供服務(wù)端程序訪問和與客戶端程序之間的交互。4.2.1客戶端由于條件不允許,僅開發(fā)安卓端程序App。安卓程序主要實(shí)現(xiàn)兩個(gè)部分:整個(gè)app和在app內(nèi)部的相關(guān)用戶埋點(diǎn),客戶端要盡可能保證埋點(diǎn)數(shù)據(jù)的完整無(wú)誤。App整個(gè)來說也并不復(fù)雜,一共需要寫出三種類型的頁(yè)面,主頁(yè)、啟動(dòng)頁(yè)以及詳情頁(yè),但是詳情頁(yè)可能比較復(fù)雜一點(diǎn),詳情頁(yè)一共分為三種類型,視頻詳情頁(yè)、新聞詳情頁(yè)以及圖片詳情頁(yè)。啟動(dòng)app之后最先看到的就是啟動(dòng)頁(yè),設(shè)置一個(gè)定時(shí)過個(gè)幾秒鐘就會(huì)自動(dòng)跳到主頁(yè),第一次剛進(jìn)入主頁(yè)推薦內(nèi)容會(huì)自動(dòng)刷新,需要刷新視頻的話需要上啦刷新或者下滑刷新推薦頁(yè)。點(diǎn)擊視頻進(jìn)入詳情頁(yè),視頻由于視頻播放框架的原因視頻會(huì)自動(dòng)進(jìn)行播放,當(dāng)播放完一個(gè)視頻時(shí)候就會(huì)自動(dòng)跳到下一個(gè)視頻,點(diǎn)擊新聞會(huì)進(jìn)入新聞詳情頁(yè),每點(diǎn)擊一次新聞,新聞的瀏覽次數(shù)都會(huì)加一寫到后臺(tái)數(shù)據(jù)庫(kù),圖片的詳情頁(yè)是一個(gè)圖片的列表,上滑或者下滑都可以切換圖片。主頁(yè)面使用fragment進(jìn)行實(shí)現(xiàn),配合tablayout就能夠?qū)崿F(xiàn)整個(gè)主活動(dòng)頁(yè)面的功能,視頻詳情頁(yè)只需要嵌入相應(yīng)的視頻信息,視頻播放框架也能很好的搞定,新聞詳情頁(yè)也是使用web框架,填入相應(yīng)的內(nèi)容即可,最后圖片的詳情頁(yè)需要內(nèi)置一個(gè)滾動(dòng)列表,實(shí)現(xiàn)上下滑動(dòng)切換的效果。4.2.2服務(wù)端理論上來說服務(wù)端程序也是可以使用Python實(shí)現(xiàn),但是為了更好的挑戰(zhàn)自己,我最后還是選擇了使用Java語(yǔ)言實(shí)現(xiàn)服務(wù)端的一些程序。這里也是有一些原因,首先Java相關(guān)web框架比較多,像Strus2+Hibernate+Spring以及后來的Mybatis+Sprint+SprinMVC等都使用了三層分離的思想,而在Python中只有Flask與Django兩個(gè)框架,而且后面我要使用Python搭建BI平臺(tái),再者就是Java的MVC[6]三層分離的思想比較清楚,而Python我個(gè)人覺得三層分離的思想沒有Java語(yǔ)言清楚,出于個(gè)人原因Java語(yǔ)言也是我學(xué)習(xí)時(shí)間最長(zhǎng)的一種語(yǔ)言。服務(wù)端程序肯定是要跟數(shù)據(jù)庫(kù)打交道的,數(shù)據(jù)庫(kù)的選擇方便我這里選擇MongoDB做ODS而Mysql做DBH,選擇MongoDB做ODS是因?yàn)橄啾扔贛ysql而言,MongoDB的寫速度更快,而Mysql在大并發(fā)的情況下容易造成死鎖,進(jìn)而會(huì)把表給鎖起來,MongoDB的文檔式數(shù)據(jù)庫(kù)操作起來也比較方便,而且MongoDB支持分布式的存儲(chǔ),可以搭建主從機(jī)制,主服務(wù)器宕機(jī),副機(jī)可以立即上線。服務(wù)端主要是為客戶端進(jìn)行服務(wù),負(fù)責(zé)下發(fā)內(nèi)容以及存儲(chǔ)埋點(diǎn)數(shù)據(jù),在服務(wù)器上起動(dòng)服務(wù)端程序時(shí)候,客戶端通過http協(xié)議即可與服務(wù)端進(jìn)行通信。服務(wù)端每次下發(fā)內(nèi)容都是隨機(jī),比如視頻每次從庫(kù)里隨機(jī)選擇8個(gè)視頻,新聞和圖片都是每次隨機(jī)選擇6個(gè)。4.2.3數(shù)據(jù)分析數(shù)據(jù)分析的BI平臺(tái),我使用了Python+Django+Echrts+Bootstrap+Ajax的架構(gòu),Python負(fù)責(zé)BI平臺(tái)的后端服務(wù)的搭建,BI可視化使用Bootstrap+Echarts圖表實(shí)現(xiàn),數(shù)據(jù)的通信則使用Ajax進(jìn)行異步的交互。為了支持BI平臺(tái)我還搭建了一個(gè)簡(jiǎn)易的數(shù)據(jù)倉(cāng)庫(kù),畢竟有了數(shù)據(jù)倉(cāng)庫(kù)可以很簡(jiǎn)單的做數(shù)據(jù)分析以及數(shù)據(jù)挖掘,BI的所有數(shù)據(jù)都基于數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)倉(cāng)庫(kù)的更新基于每天部署在服務(wù)器上的定時(shí)任務(wù)腳本,基于Linux的Crontab定時(shí)命令,腳本每天定時(shí)更新,一切都進(jìn)行自動(dòng)化的部署。打開BI平臺(tái)的地址,訪問相應(yīng)的資源地址,Ajax會(huì)自動(dòng)訪問Django服務(wù)從數(shù)據(jù)倉(cāng)庫(kù)中獲得相應(yīng)的數(shù)據(jù)顯示在前端的頁(yè)面中。數(shù)據(jù)分析當(dāng)然也是不可缺少的一部分,面向用戶,準(zhǔn)確無(wú)誤的數(shù)據(jù)分析可以保證更精準(zhǔn)的投用戶所好。5測(cè)試測(cè)試顧名思義就是在軟件完成之后或者在開發(fā)的過程中對(duì)軟件進(jìn)行一些測(cè)試,要確保整個(gè)項(xiàng)目的萬(wàn)無(wú)一失,不能有任何的bug出現(xiàn)。測(cè)試的種類也是多種多樣,按測(cè)試方法分為:靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試,按測(cè)試方法分為:白盒測(cè)試、黑盒測(cè)試,按測(cè)試自動(dòng)化程序分類:人工測(cè)試、自動(dòng)化測(cè)試,按測(cè)試階段分為:?jiǎn)卧獪y(cè)試、集成測(cè)試等,按測(cè)試類型又分為:功能測(cè)試、界面測(cè)試以及壓力測(cè)試[7]等。有些測(cè)試名字雖然不太一樣但是做的事情是一樣的,其中壓力測(cè)試也是現(xiàn)在一個(gè)很重要的測(cè)試方法,測(cè)試帶寬、CPU、內(nèi)存以及磁盤空間在大流量下的穩(wěn)定性。不過在本項(xiàng)目中,項(xiàng)目測(cè)試我采用了自動(dòng)化測(cè)試、功能測(cè)試、界面測(cè)試、白盒測(cè)試以及黑盒測(cè)試,其實(shí)黑盒測(cè)試做的事情跟前面三種測(cè)試做的事情差不多。5.1黑盒測(cè)試 黑盒測(cè)試顧名思義,程序的內(nèi)部邏輯對(duì)于測(cè)試人員是不可見,測(cè)試人員只能通過模擬用戶途徑進(jìn)行測(cè)試項(xiàng)目的所有功能是否完善,頁(yè)面是否美觀,不同的機(jī)型是否兼容等問題,我采用了AndroidStudio連接真機(jī)進(jìn)行測(cè)試,但是在測(cè)試的過程中也著實(shí)遇到了一些問題。場(chǎng)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論