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
主站蜘蛛池模板: 午夜精品一区二区蜜桃| 欧美A级V片在线观看| 亚洲婷婷在线视频| 亚洲AV电影不卡在线观看| 特级毛片8级毛片免费观看| 97国产成人无码精品久久久| 色久综合在线| 久久人人97超碰人人澡爱香蕉 | 亚洲an第二区国产精品| 亚洲天堂伊人| 国产免费久久精品99re不卡| 成人在线天堂| 亚洲日韩在线满18点击进入| 国产新AV天堂| 亚洲视频三级| 色悠久久久久久久综合网伊人| 18禁色诱爆乳网站| 无码精品一区二区久久久| 99热亚洲精品6码| 亚洲精品动漫在线观看| 国产亚洲精| 国产精品无码影视久久久久久久 | 一级成人a毛片免费播放| 日本在线视频免费| 欧美97色| 中文纯内无码H| 人妻丰满熟妇啪啪| 国产免费羞羞视频| 欧美色图久久| 亚洲人成网址| 亚洲最猛黑人xxxx黑人猛交| 无码人中文字幕| 国产激爽爽爽大片在线观看| 日本中文字幕久久网站| 亚洲高清中文字幕在线看不卡| 日韩一区二区在线电影| 亚洲视频一区| 四虎精品国产AV二区| 国产a v无码专区亚洲av| 国产丰满成熟女性性满足视频| 精品伊人久久久久7777人| 国产va免费精品观看| 波多野结衣一区二区三区88| 成人av专区精品无码国产| 国产成人久久777777| 国产成人一二三| 又黄又爽视频好爽视频| 欧美.成人.综合在线| 亚洲人成网站日本片| 人人妻人人澡人人爽欧美一区| 无码av免费不卡在线观看| 国产成人1024精品| 欧美精品不卡| 香蕉视频在线观看www| 亚洲视屏在线观看| yy6080理论大片一级久久| 日本91视频| 99热这里只有精品在线播放| 欧美在线一级片| 尤物精品视频一区二区三区| 丝袜高跟美脚国产1区| 72种姿势欧美久久久大黄蕉| www.亚洲天堂| 亚洲综合极品香蕉久久网| 亚洲欧美日韩成人高清在线一区| 四虎免费视频网站| 丁香婷婷在线视频| 亚洲天堂.com| 狠狠ⅴ日韩v欧美v天堂| 热九九精品| 久久国产精品夜色| 91精品小视频| 四虎永久在线精品影院| 99在线视频免费| 亚洲人成网址| 夜色爽爽影院18禁妓女影院| 黄色三级网站免费| 久久精品亚洲专区| 亚洲h视频在线| 国产精品成人免费视频99| 国产成人福利在线| 2021无码专区人妻系列日韩|