一.在app内做版本升级的几种方式:

1.是用应用内部使用的网络框架进行下载安装包

2.是调用系统的下载器进行下载

二.两种方式的优缺点比较:

1.框架下载:

优点:结合自己的需求,实现高度自由定制比如:监听下载进度,后台静默下载

缺点:下载速度慢,无法享用部分手机下载加速(如小米手机的迅雷加速)

实现代码:

2.下载器下载:

优点:可以享用手机系统下载器带来的便利,如小米手机的迅雷加速(速度很快)

缺点:无法监听下载进度(只能监听到下载任务是否完成,后面会优化),只要下载,通知栏会出现提示

实现代码:

三.下载器优化

前面优缺点比较的时候,说过了下载器是无法监听到下载进度的,只能监听到下载任务是否完成,基于上面的优缺点比较,我最初也是倾向于框架下载的,但是小米手机上的下载器下载有迅雷加速,那下载速度个人感觉体验很好,就因为不能监听下载进度而不考虑优点不甘,所以在不影响项目的进度的前提下,先实现了框架下载,作为备用,而后开始尝试下载器下载优化

通过代码可以看到,先创建了一个DownloadManager,给它传入我们要下载的安装包地址,然后紧接着构建状态栏展示的信息体以及文件下载路径,和进度监听的DownloadChangeObserver,

为了尽可能的节省手机资源,不提前浪费手机资源,所以我们已开始没有监听启动监听,我们已开始给它设置一个默认链接,当链接发生变化的时候,代表我们真正的下载业务开始了,所以在链接变化的时候,开始注册下载进度的监听,如下图:

由于我们上面的下载器监听已经创建并且注册了,那么,就来看看下载器的实现:

由于咱们的下载业务开始了,链接变化,所以会回调onChange方法,在这个方法里面,我们利用ScheduledExecutorService的定时功能,指定线程是progressRunnable,在这个子线程里面,我们可以做一些计算之类的耗时操作,

前面我downloadApk方法中,我们已经通过创建的系统下载器获取到了下载任务的id,所以,我们通过id可以定时查询下载任务的状态.看下图:

在子线程中计算好了这些数据,通过handler发送消息到主线程,然后通过接口回调,把我们需要的内容回调到下载页面,那么这样我们就实现下载器实时显示下载进度.

四 方案定型

经过上面的一番尝试下来,果断选择了下载器下载(毕竟天下武功,唯快不破,体验好!)

app应用内升级方案选型与优化相关推荐

  1. android app升级方案,App版本升级方案

    方案一:后端处理逻辑 - 通过指定数字版本号判断 app/ipad升级 入参数: appid app应用类型:1.A商城android app.2.A商城android ipad.3.A商城 ios ...

  2. 起点海外版 Hybrid App-内嵌页优化实践

    本文作者:刘文涛 原创声明:本文为阅文前端团队 YFE 成员出品,请尊重原创,转载请联系公众号 (id: yuewen_YFE) 获取授权,并注明作者.出处和链接. 今年年初我司开启了起点品牌的海外之 ...

  3. Android 系统级APP 升级方案 按键恢复出厂设置

    先敲黑板:(更多内容请关注专栏,支持原创) 概要:本文介绍内容有UBOOT BCB 系统级APP固化到固件 通过UBOOT完成按键触发恢复出厂设置,即恢复系统APP的方案 高质量文章导航 一.坐稳发车 ...

  4. 基于数字孪生的数字化车间升级方案

    本文根据数字化车间升级的理论与实践,具体阐述基于数字孪生运行模式的数字化车间 的升级方案与具体实现. 1    技术理论成果概述 1.1    数字孪生车间运行模式 世界各个制造大国提出的制造业国家战 ...

  5. PPTV Docker集群的网络方案选型

     原作者:李周     转载来源:http://dockone.io/article/1673 PPTV Docker集群的网络方案选型 作者介绍:李周,现PPTVDCOS技术主要负责人.专注于Doc ...

  6. APP弱网络条件下,体验优化之道

    APP弱网络条件下,体验优化之道 最近跟朋友聊天刚好聊到这一块,他们是在做电商业务,商品图片及其多,API接口请求频率也高.然而,他们在移动2/3G的网络环境下,APP经常会出现Loading很久的情 ...

  7. 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,共同探讨软件知识经验,关注就有海量学习资料免费领哦: 目录 0背景 1.手机USB接口通信特点 1.1 使用方便 1.2 通用性强 1.3 ...

  8. iOS15 切换上架App图标的最新方案

    iOS15 切换上架App图标的最新方案 前言: Xcode13以及iOS15发布之前,Apple其实已经支持在应用内切换图标了,通过将不同的ICON图标打到包内,并手动配置,然后通过业务代码修改IC ...

  9. CH34X系列与CH91XX系列等USB转串口方案选型对比

    提供USB高速/全速转串口系列芯片,可实现USB转1/2/4/8路串口,支持串口I/O独立供电,支持VCP/HID/CDC/AOA转串口,VCP串口支持硬件流控和高波特率大数据连续传输,部分型号支持V ...

最新文章

  1. mysql20数据_mysql 插入20万条数据
  2. slf4j 桥接与被桥接_合成和桥接方法
  3. 微信查询订单API与商派ecstore订单状态对接
  4. Ubuntu Qt 编译问题
  5. linux界面更改用户名,linux跳过用户名密码登陆界面方法
  6. python用户登录(输入用户名和密码)dic_Python使用装饰器模拟用户登陆验证功能示例...
  7. 注解定时器_细数那些使用过的定时器
  8. C++--第26课 - 异常处理 - 下
  9. Raspberry Pi网络监控
  10. 第二单元 用python学习微积分(十六)定积分
  11. 专访阿里巴巴研究员赵海平:从Facebook到阿里巴巴
  12. 莫让“浮云”遮望眼:“企业技术”才是硬道理
  13. 使用CA签发的服务器证书搭建Tomcat双向SSL认证服务(转)
  14. WebDay05 JQuery框架
  15. laravel validate 验证器
  16. Golang将密码盐加密
  17. 齐向东透露工信部检测360浏览器
  18. (windows) 开机时出现“checking file system on C” 问题原因及解决方法
  19. 微众银行DSS部署单机-普通版
  20. python 网格交易源码_网格交易法策略源码

热门文章

  1. 虚拟化设备-Virtio介绍
  2. MAXScript脚本用于建筑可视化
  3. 项目管理_项目整合管理
  4. C# 全局监听键盘源代码
  5. xxtea 算法的 js 加密处理类,包含 UtfParser 和 Base64 类 ?
  6. 固定资产折旧计算的方法[轉帖]
  7. Vue-draggable 实现页面模板自动化
  8. java调用金蝶云接口_JAVA 版本--金蝶云星空新版WebAPI SDK--新手快速入门指南
  9. 了解 HTTPS(二) —— 通信加密
  10. 2022年哪款超短焦投影仪性价比最高?当贝超短焦激光投影仪U1测评值得买