app应用内升级方案选型与优化
一.在app内做版本升级的几种方式:
1.是用应用内部使用的网络框架进行下载安装包
2.是调用系统的下载器进行下载
二.两种方式的优缺点比较:
1.框架下载:
优点:结合自己的需求,实现高度自由定制比如:监听下载进度,后台静默下载
缺点:下载速度慢,无法享用部分手机下载加速(如小米手机的迅雷加速)
实现代码:
2.下载器下载:
优点:可以享用手机系统下载器带来的便利,如小米手机的迅雷加速(速度很快)
缺点:无法监听下载进度(只能监听到下载任务是否完成,后面会优化),只要下载,通知栏会出现提示
实现代码:
三.下载器优化
前面优缺点比较的时候,说过了下载器是无法监听到下载进度的,只能监听到下载任务是否完成,基于上面的优缺点比较,我最初也是倾向于框架下载的,但是小米手机上的下载器下载有迅雷加速,那下载速度个人感觉体验很好,就因为不能监听下载进度而不考虑优点不甘,所以在不影响项目的进度的前提下,先实现了框架下载,作为备用,而后开始尝试下载器下载优化
通过代码可以看到,先创建了一个DownloadManager,给它传入我们要下载的安装包地址,然后紧接着构建状态栏展示的信息体以及文件下载路径,和进度监听的DownloadChangeObserver,
为了尽可能的节省手机资源,不提前浪费手机资源,所以我们已开始没有监听启动监听,我们已开始给它设置一个默认链接,当链接发生变化的时候,代表我们真正的下载业务开始了,所以在链接变化的时候,开始注册下载进度的监听,如下图:
由于我们上面的下载器监听已经创建并且注册了,那么,就来看看下载器的实现:
由于咱们的下载业务开始了,链接变化,所以会回调onChange方法,在这个方法里面,我们利用ScheduledExecutorService的定时功能,指定线程是progressRunnable,在这个子线程里面,我们可以做一些计算之类的耗时操作,
前面我downloadApk方法中,我们已经通过创建的系统下载器获取到了下载任务的id,所以,我们通过id可以定时查询下载任务的状态.看下图:
在子线程中计算好了这些数据,通过handler发送消息到主线程,然后通过接口回调,把我们需要的内容回调到下载页面,那么这样我们就实现下载器实时显示下载进度.
四 方案定型
经过上面的一番尝试下来,果断选择了下载器下载(毕竟天下武功,唯快不破,体验好!)
app应用内升级方案选型与优化相关推荐
- android app升级方案,App版本升级方案
方案一:后端处理逻辑 - 通过指定数字版本号判断 app/ipad升级 入参数: appid app应用类型:1.A商城android app.2.A商城android ipad.3.A商城 ios ...
- 起点海外版 Hybrid App-内嵌页优化实践
本文作者:刘文涛 原创声明:本文为阅文前端团队 YFE 成员出品,请尊重原创,转载请联系公众号 (id: yuewen_YFE) 获取授权,并注明作者.出处和链接. 今年年初我司开启了起点品牌的海外之 ...
- Android 系统级APP 升级方案 按键恢复出厂设置
先敲黑板:(更多内容请关注专栏,支持原创) 概要:本文介绍内容有UBOOT BCB 系统级APP固化到固件 通过UBOOT完成按键触发恢复出厂设置,即恢复系统APP的方案 高质量文章导航 一.坐稳发车 ...
- 基于数字孪生的数字化车间升级方案
本文根据数字化车间升级的理论与实践,具体阐述基于数字孪生运行模式的数字化车间 的升级方案与具体实现. 1 技术理论成果概述 1.1 数字孪生车间运行模式 世界各个制造大国提出的制造业国家战 ...
- PPTV Docker集群的网络方案选型
原作者:李周 转载来源:http://dockone.io/article/1673 PPTV Docker集群的网络方案选型 作者介绍:李周,现PPTVDCOS技术主要负责人.专注于Doc ...
- APP弱网络条件下,体验优化之道
APP弱网络条件下,体验优化之道 最近跟朋友聊天刚好聊到这一块,他们是在做电商业务,商品图片及其多,API接口请求频率也高.然而,他们在移动2/3G的网络环境下,APP经常会出现Loading很久的情 ...
- 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)
更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,共同探讨软件知识经验,关注就有海量学习资料免费领哦: 目录 0背景 1.手机USB接口通信特点 1.1 使用方便 1.2 通用性强 1.3 ...
- iOS15 切换上架App图标的最新方案
iOS15 切换上架App图标的最新方案 前言: Xcode13以及iOS15发布之前,Apple其实已经支持在应用内切换图标了,通过将不同的ICON图标打到包内,并手动配置,然后通过业务代码修改IC ...
- CH34X系列与CH91XX系列等USB转串口方案选型对比
提供USB高速/全速转串口系列芯片,可实现USB转1/2/4/8路串口,支持串口I/O独立供电,支持VCP/HID/CDC/AOA转串口,VCP串口支持硬件流控和高波特率大数据连续传输,部分型号支持V ...
最新文章
- mysql20数据_mysql 插入20万条数据
- slf4j 桥接与被桥接_合成和桥接方法
- 微信查询订单API与商派ecstore订单状态对接
- Ubuntu Qt 编译问题
- linux界面更改用户名,linux跳过用户名密码登陆界面方法
- python用户登录(输入用户名和密码)dic_Python使用装饰器模拟用户登陆验证功能示例...
- 注解定时器_细数那些使用过的定时器
- C++--第26课 - 异常处理 - 下
- Raspberry Pi网络监控
- 第二单元 用python学习微积分(十六)定积分
- 专访阿里巴巴研究员赵海平:从Facebook到阿里巴巴
- 莫让“浮云”遮望眼:“企业技术”才是硬道理
- 使用CA签发的服务器证书搭建Tomcat双向SSL认证服务(转)
- WebDay05 JQuery框架
- laravel validate 验证器
- Golang将密码盐加密
- 齐向东透露工信部检测360浏览器
- (windows) 开机时出现“checking file system on C” 问题原因及解决方法
- 微众银行DSS部署单机-普通版
- python 网格交易源码_网格交易法策略源码