999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android平臺的在線影院APP開發與設計

2021-05-07 18:23:19華春夢
現代信息科技 2021年21期
關鍵詞:高效

摘 ?要:在當下快節奏的移動互聯網時代,智能手機和移動設備已不僅僅是一個通信工具,更成為人們利用碎片時間來學習、放松、娛樂的主要工具。針對目前市面上影院類APP所涵蓋內容龐雜,廣告眾多以及啟動速度慢的問題,文章基于Android平臺,采用MVVM架構和多級緩存技術,設計開發了一款簡約版在線影院APP,通過性能測試,表明其運行穩定,具有一定的實用和推廣價值。

關鍵詞:安卓;在線影院;MVVM;高效;性能測試

中圖分類號:TP311.5 ? ? ?文獻標識碼:A文章編號:2096-4706(2021)21-0029-04

Abstract: In the current fast-paced mobile Internet era, smart phones and mobile devices are not only a communication tool, but also become the main tools for people to use fragmented time to learn, relax and entertain. Aiming at the problems of complex content, numerous advertisements and slow startup speed of cinema APP on the market, this paper designs and develops a simple online cinema APP based on Android platform, MVVM architecture and multi-level cache technology. The performance test shows that it runs stably and has a certain practical and popularization value.

Keywords: Android; online cinema; MVVM; efficient; performance test

0 ?引 ?言

在奔向2025全面小康的進程中,人們的物質和精神需求層次也隨之提高,其中表現之一就是電影事業的蓬勃發展[1],從2017年《戰狼2》到2021年的《長津湖》,都在不斷刷新中國電影票房紀錄,其中,在線影院類APP則起到了重要的宣傳作用。然而,有很多商家為了追求利益和流量,致使移動APP包羅萬象,內容雜亂無章,廣告繁多無度,進而導致用戶的交互體驗感不斷下降。相較于封閉的iOS操作系統,國內則更多是采用開源開放的Android系統平臺,基于此,本文以Android為核心,開發設計了一款簡約易用的在線影院APP,不但節約了人們瀏覽和搜索的時間,同時結合使用多級緩存技術和自定義控件技術,大大優化了用戶的交互體驗。

1 ?系統關鍵技術概述

1.1 ?Android系統架構

Android是一款基于Linux內核且遵循Apache協議的移動智能終端操作系統[2,3],如圖1所示,其自下而上可以分為四層結構:

(1)Linux Kernel驅動層。負責諸如顯示、觸摸、聲音等硬件相關的工作。

(2)硬件抽象層(Hardware Abstraction Layer, HAL),以動態庫的形式加載相關模塊,供上層API調用。

(3)Android Runtime核心運行庫和Native C/C++。提供Android應用的運行環境,同時提供NDK開發語言的支持,包含Sqlite輕量數據庫。

(4)Framework框架層。提供用戶開發的各種Java API,可以用于構建UI、訪問網絡等。

1.2 ?OkHttp與Retrofit網絡訪問

OkHttp是Square開源的輕量級網絡訪問框架,是對Android原生Http訪問的封裝,支持異步請求和Http緩存,大大提高了網絡訪問性能[4]。Retrofit同樣是Square公司開源的,它基于OkHttp,同時支持RESTful API,與其他網絡框架不同的是,它更多地通過運行時注解的方式來提供功能,可以配置不同的反序列化工具(如Json、Xml等)進行數據解析,具有很強的解耦能力。

1.3 ?Sqlite與Room數據庫

Sqlite是一個純C語言實現的關系型數據庫,通過Sqlite可以持久化存儲較為復雜的數據結構,但是使用純Sqlite對新手開發不太友好,上手的難度較高,需要借助大量的ContentValue對象為支撐,不符合典型數據訪問對象(Data Access Object, DAO)設計模式,故此,谷歌官方文檔中強烈建議以Room作為抽象層來訪問數據庫[5]。

Room包含3個主要組件:

(1)Database數據庫。即數據庫的持有者,作為應用訪問持久關系型數據底層連接的主要接入點,實現類要使用@Database注解,并且注解中要添加數據庫關聯的實體列表。

(2)Entity實體。表示數據庫中的表,表中的元素可以用@ColumnInfo來表示列名。

(3)DAO數據訪問對象。表示訪問數據庫的方法(如增、刪、改、查等),同樣,方法也使用注解來標識具體的作用。

應用使用Room數據庫來獲取與該數據庫關聯的數據訪問對象(DAO);然后,應用使用每個DAO從數據庫中獲取實體,對實體進行操作;最后,應用使用實體來獲取和設置與數據庫中的表列相對應的值。Room三大組件間的關系如圖2所示。

2 ?系統概要設計

2.1 ?系統架構設計

簡約版在線影院應用APP包含用戶中心、影院和電影三個主要模塊,各模塊之間相互解耦且分工明確。用戶中心主要負責展示用戶的自畫像和購票記錄;影院模塊展示附近影院的位置和優惠政策;電影模塊則展示近期熱映的電影信息。本文設計的在線影院APP系統架構如圖3所示,主要涉及軟件和邏輯兩個維度。

圖3(a)是系統的軟件架構,應用通過Http協議從服務器端讀取數據,然后利用Gson解析Json并將獲取的結果傳遞給業務層進行展示,最后加入三級緩存,Cache緩存、Room Sqlite數據庫存儲以及網絡云端緩存,實現用戶操作信息的持久化。

圖3(b)是系統的邏輯架構,遵循MVVM架構[6],目的是使APP各層次間盡量解耦,方便迭代和持續開發。本系統自上而下將APP的實現分為UI視圖層、數據訪問層和業務處理層,各層級的核心業務明確,層級間不存在復雜的關系,結構相對松散,故而可以多人協作同步開發,減少了維護成本。

本APP立足于UI視圖內容的展示,以數據訪問為核心,以業務封裝為關鍵,遵循簡約質樸的設計原則:

(1)UI視圖層。視圖層主要負責內容的展示和交互操作,用戶基于Android的開發框架,結合Activity和Fragment就可以繪制出相對美觀的界面,配合滑動、點擊等事件,完成交互式響應。

(2)數據訪問層。互聯網時代,可以說,數據是一把“金鑰匙”,沒有后臺數據,再好的交互也不可能實現。相較于Xml數據格式,Json以簡潔的層次關系,越來越受到開發者的青睞。本文的數據訪問層依托于Http請求和Json解析,在APP的內容展示上起到數據支撐的作用。

(3)業務處理層。遵循MVVM架構,以Model為數據實體,以View為UI視圖層,而ViewModel即為Model和UI綁定的關聯層。Model或View更新時,實時刷新對方,這便是業務處理層。ViewModel僅執行業務邏輯相關的工作,以適配器Adapter的形式提供數據綁定更新,同時引入三級緩存,將用戶的偏好和部分操作進行離線存檔。

2.2 ?界面框架設計

本設計遵循簡約美觀的原則,采用Android的碎片化Fragment和Activity作為視圖容器的承載體,兩者都可以定義和管理自己的布局,處理用戶輸入事件,有自己的生命周期。在界面設計中,引入自定義控件以及可縮放矢量圖(Scalable Vector Graphics, SVG)使UI元素能夠自適應、適配更多設備,同時減小了Apk的體積。

2.3 ?數據存儲設計

Android自帶的SharedPreference存儲只能存儲簡單的鍵值對,而寫入文件緩存也不能有效地實現結構化的增刪操作,故而對用戶的偏好操作需要采用數據庫來維護。本設計主要涉及兩張表,一個是用戶信息、一個是電影訂單詳情,表1展示了電影訂單的字段信息。

3 ?系統的實現

本應用使用三個Tab作為底部的導航欄,三大模塊統一用Fragment碎片化的方案實現。用戶中心主要展示用戶信息和用戶畫像,影院模塊負責附近影院信息的展示,而電影模塊則負責當下熱映的電影圖文和音頻視頻的展示。本APP的最終實現效果以及交互時序如圖4所示,下面將分別對各個功能的詳細設計和實現方案進行介紹。

3.1 ?用戶中心設計與實現

用戶中心采用簡單的線性布局和自定義控件來實現,圖標多使用SVG矢量圖轉換后的Xml來替代傳統的png,這樣就可以在Xml中靈活自如地對其顏色和大小進行更改,且可以保持良好的彈性形變。其中自定義圓形用戶畫像的控件需要重點實現onDraw繪制的方法,此方法的兩個核心是畫筆和畫布[7]。“我的訂單”則是通過Room讀取用戶的購票記錄,然后以列表的形式進行展示。

3.2 ?影院模塊功能設計與實現

影院模塊的信息展示采用RecyclerView組件配合適配器(Adapter)的設計模式。首先,在頁面視圖創建的生命周期中,通過異步線程完成服務器端的Http網絡請求;其次,利用GSON將此數據解析為Java Bean對象;最后,將此Java Bean數據中的有效信息進行封裝并傳入適配器以完成數據和視圖的綁定更新。整個網絡訪問及數據解析和視圖綁定流程如圖4(a)所示,然而,考慮到影院信息變化不頻繁,我們會將成功的請求內容寫入臨時的Cache緩存,以方便下一次的離線更新,一方面節省了用戶流量,另一方面則加快了頁面的響應速度。

3.3 ?電影模塊功能設計與實現

電影模塊相比影院純文字的描述,多了圖片和視頻的參與,但總體的數據請求和視圖綁定流程是一致的,二者都遵循MVVM高內聚低耦合的設計模式。針對影片的圖像加載,本文使用了Glide第三方庫,它支持動態加載和異步更新,同時還具備離線緩存技術,極大地提升了用戶的交互體驗,電影預告片的播放使用了Android原生的MediaPlayer和SurfaceView技術,影片的播放進度更新使用了Timer定時器來實現。在電影的播放頁面,用戶可以選擇影票的購買,此時系統會利用Room數據庫,保存用戶的購買記錄,以便用戶可在用戶中心的訂單中進行查詢。

(a)在線影院和電影頁面的交互時序

經過代碼的編寫,最終實現的簡約在線影院APP效果如圖4(b)所示。

4 ?測試

通過Profiler工具對在線影院進行一定時間的性能測試,得出的結果如圖5所示。從圖中我們可以得出以下結論:(1)測試結果包含三大核心模塊,即Cinema(影院)、Movie(電影)、User(用戶中心);(2)CPU、內存及網絡在非網絡訪問狀態下,基本都處于空閑狀態;(3)只有當播放在線視頻時,伴隨著網絡流量的消耗,CPU的負載才會出現持續的小幅波動,內存同樣會經歷一段時間的上升,但都維持在中等以下,基本符合預期。

5 ?結 ?論

本文利用Android平臺的相關技術,基于MVVM框架開發了一款簡約的在線影院APP,可以使人們免除廣告干擾,快速查看及訂閱感興趣的電影,通過Cache緩存和Room數據存儲實現多級緩存,既避免了重復網絡內容的多次請求,又加快了應用的響應時間。引入自定義控件,美化了APP的外觀,經過性能測試和壓力測試得出,APP運行穩定,交互靈敏,達到了預期的設計目標,具有一定的實用價值。

參考文獻:

[1] 周程帆,王貴鑫.基于Android平臺的影院票務管理系統的設計與實現 [J].科學技術創新,2019(32):62-64.

[2] 張蕾.基于Android的短視頻制作分享平臺的設計與實現 [D].北京:北京交通大學,2021.

[3]李剛.瘋狂 Android 講義:第2版 [M].北京:電子工業出版社,2014.

[4] 楊錳.基于Android平臺的新聞客戶端的設計與實現 [D].北京:北京郵電大學,2021.

[5] 熊艷秋.基于Android平臺在線視頻播放APP的設計與實現 [D].荊州:長江大學,2020.

[6] 崔慧娟.MVVM模式在Android項目中的應用 [J].信息與電腦(理論版),2021,33(6):1-3.

[7] 許艦.Android自定義繪圖組件的設計與實現 [J].電腦知識與技術,2018,14(10):95-98.

作者簡介:華春夢(1990.04—),男,漢族,河南南陽人,助教,碩士研究生,研究方向:嵌入式Linux、機器學習、人工智能。

猜你喜歡
高效
讓學習在復習課中真正發生
考試周刊(2016年86期)2016-11-11 08:07:20
如何實現小學語文課堂教學的“高效”
考試周刊(2016年85期)2016-11-11 00:58:49
淺談交互式電子白板在中學英語課堂的有效應用
南北橋(2016年10期)2016-11-10 16:35:15
計算機網絡技術對物流信息化的影響
對高校思政課教師暑期社會實踐的探索與思考
如何高效組織基層群眾文藝表演
如何實現小學語文課堂教學的高效化
為小語課堂“瘦身”,為學生語文素養增“肥”
農田水利工程高效節水灌溉發展思路初探
提高提問的有效性, 構筑高效的語文課堂
考試周刊(2016年77期)2016-10-09 10:47:06
主站蜘蛛池模板: 国产高清在线观看| 国产浮力第一页永久地址| 999国内精品久久免费视频| 国内精品小视频在线| 一级成人a毛片免费播放| 亚洲第一成年免费网站| 日本AⅤ精品一区二区三区日| 欧美不卡视频一区发布| 91一级片| 67194成是人免费无码| 色哟哟国产成人精品| 国产不卡网| 国产乱子伦手机在线| 天天干伊人| 国产三级国产精品国产普男人| 免费一级成人毛片| 日韩在线欧美在线| 欧美中文字幕一区二区三区| 777午夜精品电影免费看| 国产精品林美惠子在线观看| 91视频青青草| 亚洲国产精品无码久久一线| 亚瑟天堂久久一区二区影院| 国产又粗又猛又爽视频| 亚洲国产成人精品青青草原| 国产成人a在线观看视频| 免费国产不卡午夜福在线观看| 亚洲一区二区三区香蕉| 色天堂无毒不卡| 91亚洲国产视频| 亚洲日韩国产精品无码专区| 欧美成人影院亚洲综合图| 在线免费观看a视频| 97在线视频免费观看| 青青草原国产精品啪啪视频| 好吊妞欧美视频免费| 香蕉久久国产精品免| 国产成人久视频免费| 欧美色图久久| 亚洲黄网在线| 欧美、日韩、国产综合一区| 日韩中文欧美| 欧美成人A视频| 国产麻豆aⅴ精品无码| 中文字幕在线看| 亚洲国产精品一区二区第一页免 | 色综合a怡红院怡红院首页| 国产手机在线小视频免费观看| 欧美www在线观看| 成人一级黄色毛片| 精品国产成人三级在线观看| 亚洲中文字幕日产无码2021| 国产精品七七在线播放| 日本成人一区| 亚洲浓毛av| 无码aaa视频| 2020久久国产综合精品swag| 精品一区二区三区视频免费观看| 喷潮白浆直流在线播放| 亚洲区欧美区| 免费视频在线2021入口| 欧美成人在线免费| 亚洲日产2021三区在线| 欧美日韩资源| 91无码视频在线观看| 永久毛片在线播| 亚洲永久免费网站| 自偷自拍三级全三级视频 | 99久久性生片| 亚洲精品国产成人7777| 在线观看亚洲精品福利片| 国产高清在线观看| 国产91小视频| 亚洲精品视频免费| 日韩天堂网| 国产区网址| 欧洲av毛片| 91精品国产麻豆国产自产在线| 欧美劲爆第一页| 一级一毛片a级毛片| 日韩黄色精品| 免费高清a毛片|