国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

移動應(yīng)用中相冊排序優(yōu)化方法

2020-10-21 11:21趙化金小俊
寫真地理 2020年7期
關(guān)鍵詞:移動應(yīng)用優(yōu)化方法

趙化 金小俊

摘 要: 相冊是當(dāng)前移動應(yīng)用中的重要功能模塊,如何快速的加載和展示相冊圖片對于用戶體驗的提升具有顯著意義。本文提出了一種基于分批加載和取尾排序的相冊枚舉及排序優(yōu)化方法。當(dāng)用戶相冊中圖片較多時,枚舉每隔一定數(shù)量的圖片后即拋出排序顯示,由于排序耗時大于枚舉耗時,在每批排序完成后取最后一批枚舉的圖片再行排序,即取尾排序。實踐表明采用本文的優(yōu)化方法后,相冊排序顯示效率提升明顯,具有極大的應(yīng)用價值。

關(guān)鍵詞: 移動應(yīng)用;相冊排序;優(yōu)化方法

【中圖分類號】F275.3 ? ? 【文獻標(biāo)識碼】A ? ? 【文章編號】1674-3733(2020)07-0210-01

1 引言

隨著生活場景的豐富繁多和手機相機功能的不斷升級,移動APP中的相冊模塊使用頻率愈趨廣泛[1]。而隨著相冊中圖片數(shù)量的增多,特別是在需要對相冊中圖片按日期排序的功能場景,如何快速的加載圖片,以及如何提高圖片排序的效率成為了一個亟需解決和優(yōu)化的問題[2-4]。針對這個問題,本文以iOS平臺為例提出了一種基于分批加載和取尾排序的優(yōu)化方法。

2 相冊功能模塊

移動應(yīng)用中相冊模塊通常包括按日期排序的Moment以及Albums這兩個功能。其中Moment功能和系統(tǒng)相冊類似,根據(jù)圖片的日期信息進行排序,之后按照不同日期分類別顯示。

3 Moment功能實現(xiàn)思路

Moment的一般實現(xiàn)原理為先遍歷系統(tǒng)的所有相冊,之后獲取每個相冊內(nèi)圖片的日期信息,根據(jù)日期進行分類和排序,最后把枚舉完的所有數(shù)據(jù)放到界面上來顯示。

加載完數(shù)據(jù)之后,即可創(chuàng)建UICollectionView,設(shè)置dataSource以顯示moment圖片。但是如果相冊圖片數(shù)量較大,常規(guī)加載方法耗時會急劇上升,造成用戶打開相冊卡頓,白屏甚至是程序凍結(jié)等嚴重影響用戶體驗的情況。

4 優(yōu)化方案

對于Moment功能,常規(guī)加載邏輯需要遍歷完系統(tǒng)內(nèi)的所有相冊圖片后再按日期排序后顯示給用戶。因此,優(yōu)化的切入口只能在枚舉和排序這兩部分。本文基于此提出了分批加載和取尾排序的思路來解決大批量圖片下枚舉和排序的性能問題。其思路為如果用戶手機相冊內(nèi)圖片數(shù)量較多,不是等所有圖片都枚舉排序完再顯示,而是枚舉每隔一定數(shù)量的圖片(比如50張)后即拋到隊列(NSOperationQueue)里面按日期分類并排序,排序完成后再顯示給用戶,如此既可以讓用戶感知到圖片動態(tài)加載的過程,也使圖片能分批加載,避免性能和內(nèi)存的激增。一般情況下,排序的耗時會大于圖片枚舉的耗時,也就是第一批50張圖片排序完成后,前面枚舉拋到隊列里面等待排序的圖片已經(jīng)有若干批,此時我們只對最后一批圖片進行排序,即取尾。同時,清空當(dāng)前隊列,因為中間批次的數(shù)據(jù)已經(jīng)無排序的意義了,相冊只取最新批次的圖片進行顯示。方案詳細流程圖如圖1所示:

為了最大程度的減輕動態(tài)加載后刷新顯示對用戶造成的突兀感,在顯示之前需要判斷用戶是否在滑動頁面,只有頁面靜止的時候刷新顯示。但對于全部圖片枚舉完成后的最后一批數(shù)據(jù)則要暫時保存?。ǚ駝t最后批次的數(shù)據(jù)會丟失),待用戶停止滑動后再行刷新顯示。

4.1 分批加載

Moment需要按日期分類顯示,最新的顯示在最前面,所以在枚舉相冊的時候可以先從最近的相冊開始(一般用戶拍攝的照片相對導(dǎo)入的圖片會早一點)。加載到50的倍數(shù)張后就拋到隊列里面等待排序。一個相冊枚舉完后再繼續(xù)遍歷其余的相冊,如此循環(huán),直至所有相冊遍歷完畢。

4.2 取尾排序

每組批次的圖片都加到一個串行隊列里面等待排序,該批次的排序完成之后取當(dāng)前隊列最后一個(也就是最新過來的枚舉圖片)繼續(xù)執(zhí)行排序,同時清空當(dāng)前的隊列內(nèi)的數(shù)據(jù)。

4.3 圖片顯示邏輯

中間批次按日期分類過的數(shù)據(jù)準(zhǔn)備就緒后,在刷新圖片顯示之前先判斷一下當(dāng)前用戶是否在滑動屏幕,如果是非滑動狀態(tài)則刷新顯示,否則直接丟棄掉,但是對于最后一批數(shù)據(jù)需要先存儲著,并在用戶停止滑動的回調(diào)函數(shù)內(nèi)進行判斷,一旦用戶停止滑動了就立即刷新到頁面上顯示。

5 方案展望

將上述優(yōu)化方案應(yīng)用于項目中進行測試,當(dāng)相冊數(shù)量達到100個,總圖片數(shù)大于一萬張后,相冊仍然能夠正常打開并流暢滑動,表明該方案具有高度的可行性和應(yīng)用價值。

雖然該方案極大的提高了相冊加載和排序的性能,但仍然有繼續(xù)改進的空間,在此提出一些技術(shù)展望的設(shè)想,以期拋磚引玉之效:

1)枚舉隊列內(nèi)等待排序的中間數(shù)據(jù)亦可以保留,待用戶停止滑動后做差別排序,而不是簡單的直接丟棄。

2)排序隊列目前存在著重復(fù)排序。比如,當(dāng)?shù)谝慌?0張圖片排序后,第二批進入排序的200張圖片又需要重新分類排序,中間批次的數(shù)據(jù)只是為了展示給用戶一個動態(tài)加載過程,所以第200張圖片可以只對后面的150張圖片進行排序,圖片中有新的日期則新建日期類別,相同日期的直接插入前序中。

參考文獻

[1] 張浩,郭燦.數(shù)據(jù)可視化技術(shù)應(yīng)用趨勢與分類研究[J].軟件導(dǎo)刊,2012(5):169-172.

[2] 劉洪輝,吳岳芬.用戶行為模式挖掘問題的研究[J].計算機技術(shù)與發(fā)展,2006(5):49-53.

[3] 李志鵬,李立弘,喻守剛,曾鋒,史俊波.基于iOS的實時反饋水準(zhǔn)測量軟件設(shè)計與實現(xiàn)[J].測繪通報,2019(S2):15-19.

[4] 胡偉峰,仇磊.智能手機iOS&Android系統(tǒng)操控行為的用戶體驗對比研究[J].包裝過程,2018(16):12-17.

猜你喜歡
移動應(yīng)用優(yōu)化方法
T學(xué)校公共設(shè)施便捷報修平臺的移動應(yīng)用研究
云計算環(huán)境下的微課移動云平臺設(shè)計
基于知識元和有色Petri網(wǎng)的應(yīng)急實施流程優(yōu)化方法
大數(shù)據(jù)時代下免費手機軟件盈利模式探討
智能建筑暖通空調(diào)系統(tǒng)優(yōu)化方法研究
學(xué)生成績管理系統(tǒng)數(shù)據(jù)查詢優(yōu)化方法研究 
基于APICloud的“校園健身達人”APP設(shè)計與實現(xiàn)
靈活運用多媒體,優(yōu)化語文教學(xué)
優(yōu)化電力通信網(wǎng)運行方式
移動互聯(lián)網(wǎng)在防汛工作中的應(yīng)用