百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

手机下载进度条:我真的很简单吗?

xsobi 2024-12-09 18:23 1 浏览

最近在做一个下载进度条展示的优化,场景如下:我在appstore下了7个app,其中有2个正在下载,有5个正在排队,那么在任务栏的下载进度条如何展示呢? 听起来看起来好像都很简单,下面我来分析一下:

方案一:每个任务单独展示一条记录

这个方案明显是不可取的,一个应用三五条,两个应用就让人眼花缭乱了,这种把手机屏幕当电脑,肆意强奸用户的行为不可取。

一个应用只显示一条记录,作为整体下载的入口即可。确定了大前提,且通用的下载都会有一条进度条作为反馈告知用户具体下载进度这个业内标准后,继续往下走:

方案二:进度=实际下载流量/总大小

假设我们下载下载了5个app,每个app均是10M,有2个正在下载,那么当这2个任务下载完成的时候,进度=20/50=40%,如果这个时候,我再新建两个任务呢?这时候总大小要不要把这两个任务计算在内呢?

如果计算在内,此时文件的进度=0/50=0%,界面表现为进度条从40%回退到0%,这明显是违背人类认知逻辑的,不可取;如果不计算在呢,那么我新建任务的进度如何得知呢?两两app下载之间的时间间距如何去定义呢?鉴于用户在下载app时间的不确定性,这个方案也不可取。

方案三:进度=实际下载流量/对应文件的总大小

按道理来说,处于排队状态的任务还没有开始下载,不该计算在下载进度中,进度的公式应该为进度=下载大小/对应文件的总大小,即我下载了5个app,有2个正在下载,3个正在排队,那么我只需计算两个正在下载的任务进度即可。这里也存在和方案二一样的问题,进度条有可能会后退。

下载7个app,有2个在下载,当一个下载完成之后,排队的任务就会进入下载中,如果按照进度=实际下载流量/总大小,当我去下载第8个app时,下载进度就会后退;按照进度=实际下载流量/对应文件总大小,当一个任务下完,处于排队中的任务切换为下载状态,进度条必然会回退。

是的,我就是被这个问题困扰了好久。既然行业默认要展示进度条,并且整体进度很难把握,能不能只显示单个任务的进度?

方案四:只显示特定单个任务的下载进度

这个方案是按照app下载的顺序,先显示第一个开始下载的app,等到第一个下载完成时,切换到第二个,此时第二个的进度可能是50%,从100%进度到50%,实际上已经出现了进度回退,此时我需要显示是某某app的下载进度,从而消除进度回退给用户带来逻辑上的不适感。

方案五:切换显示单个任务的进度

方案五和方案四界面相同,不同的是,尽管方案五也显示单个任务的下载进度,但是他切换显示正在下载的两个任务的下载进度,每5s左右在两个app的进度之间切换一次。选择5s的原因是因为,切换太快,会给用户带来不适感,切换太慢,用户无法把握当前正在下载的两个文件的进度。

别看这条小小的进度条,真的细究起来,不像表面那么简单。以上是我自己梳理的几种展示方法,我自己倾向于方案五,既能了解到当前下载中任务的进度,同时也不会出现进度回退的反常识情况,各位看官觉得呢?

本文为作者无邪(微信:devillnote)投稿发布,转载请注明来源于人人都是产品经理并附带本文链接

相关推荐

斗鱼针针成旻云个人资料 针针年龄身高演艺经历介绍

[闽南网]针针成旻云曾是七煌旗下签约艺人,经常在斗鱼进行直播身高超过170cm的她更因为有一双大长腿而被称为“斗鱼第一美腿”、“电竞第一腿”。本文这就来对针针的个人资料进行详细介绍,想知道她的年龄身高...

轻量级RTSP服务模块和RTSP推流模块适用场景区别

好多开发者一直搞不清轻量级RTSP服务SDK和RTSP推流SDK的区别,以下是相关区别:1.轻量级RTSP服务模块:轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服...

《新·奥特曼》11月18日国内视频平台上线

《新·奥特曼》海报。新京报讯11月14日,由上海新创华文化发展有限公司授权引进电影《新·奥特曼》宣布正式定档11月18日(周五)00:00上线视频平台,上线版本为日语配音中文字幕版。影片由庵野秀明(...

剑指Apple Watch!Android Wear也将支持视频功能

想必智能手表发展到现在,大家最期待的还是视频功能,近日AndroidWear就实现了这一功能,以后就能在手表上看视频了,想想就挺激动的,快来看看吧!其实早在WWDC大会上,老对手AppleWatc...

QT应用编程:基于VLC开发音视频播放器(句柄方式)

一、环境介绍操作系统:win1064位QT版本:QT5.12.6编译器:MinGW32VLC版本:...

OBS 源码分析 obs开发

本文将按照数据源的获取、渲染、推送的直播流程来让大家深入了解一下。1、直播源数据获取obs在启动时会优先加载libobs核心库,这个库初始化obs很多内容,包括crash模块、com、性能监...

Android和iOS端Moments更新:支持视频分享功能

Moments是社交网络巨头Facebook推出的一款私人照片分享应用,今天公司宣布对Android端和iOS端应用同时升级,新增对视频分享功能的支持。事实上早在数周之前,Facebook就曾表示Mo...

您很快就可以在Android Galaxy设备之间传输视频通话

在阅读此文之前,辛苦点击右上角的“关注”,既方便您进行讨论与分享,又能给您带来不一样的参与感,感谢您的支持!导语:在科技领域,每时每刻都有新的发展,令人兴奋的创新不断涌现。早在八月份,Android系...

一篇文章带你FFmpeg到流媒体服务器开发

安装ffmpeg:下载FFmpeg和libx264的包ffmpeg-2.4.1.tar.bz2last_x264.tar.bz2libx264需要yasm,所以先安装yasmapt-getinst...

YouTube 为 Android 平台提供 1440P 视频

安锋网8月10日消息,Android从起初的480P的屏幕分辨率发展到2014年的1440P花了将近六年的时间,一般认为1080P的屏幕分辨率已经是人眼可以识别的极限,但是...

FFmpeg 调用 Android MediaCodec 进行硬解码(附源码)

FFmpeg在3.1版本之后支持调用平台硬件进行解码,也就是说可以通过FFmpeg的C代码去调用Android上的MediaCodec了。在官网上有对应说明,地址如下:trac....

Android FFmpeg + OpenGL ES YUV Player

1、FFmpeg解出YUV帧数据1.1方法介绍打开封装格式上下文...

基于WebRTC的Android移动端无线视频传输

摘要:视频传输技术在现代社会广泛应用,人们对其的要求也越来越高,其发展的趋势是方便、快捷、随时随地。传统的视频传输过于依赖线路,线路的走向限制了传输的很多可能,所以无线传输才是发展的方向。本文提出...

使用python爬取抖音app视频 python爬取抖音视频数据

记录一下如何用python爬取app数据,本文以爬取抖音视频app为例。编程工具:pycharm...

Android IOS WebRTC 音视频开发总结(七七)-- WebRTC的架构和协议栈

本文主要介绍WebRTC的架构和协议栈(我们翻译和整理的,译者:litie),最早发表在【编风网】为了便于理解,我们来看一个最基本的三角形WebRTC架构(见下图)。在这个架构中,移动电话用“浏览器M...