App更新策略课程完结篇

App更新策略课程一共有六节,本节是最后一节,将会给大家总结一下我们App更新的时候有那些常见场景,并依据这些场景简单编写一下测试用例,还将会和大家探讨一下app更新模块还可以继续扩展什么功能。如果没有看过前面的课程的同学可以先学习前面的课程:

  • App更新策略课程-检查更新实现
  • App更新策略课程-定义后台更新服务
  • App更新策略课程-实现进度更新
  • App更新策略课程-实现通知栏进度更新

配套视频教程:

  • App更新策略课程

代码地址: http://git.oschina.net/devilwwj/AndroidUpdateDemo

测试用例

这里我只是简单写了一下应用更新是最常出现的场景的测试用例,测试人员在测试这样的功能模块的时候,可能会考虑到更多的测试场景,这就需要我们不停的去优化测试流程去尽量满足真实的用户场景,比如考虑更多操作失败时的场景,例如网络切换时是否提醒用户网络已经被切换了、网络连接失败时是否提示用户、下载失败之后的提示,避免重复提醒用户更新等等。

本次课程只提供一个初步的解决方案,让没有这方面经验的同学能明白app更新策略是如何实现的,并没有做到完全适用于用户的各种应用场景,这需要同学们自己在实际开发中根据需求去优化这个解决方案。

效果图

总结

梳理流程图

这个是最简单的更新流程图,更新的流程大致都是类似的,我们首先会去请求服务端获取更新信息,这个是检查更新的过程。

一般情况我们会拿到相应的json数据,举个例子:

我们通过这样的json数据,拿到具体的更新信息,这里我们关注一下version_code,我们通过比对本地的versionCode跟服务端返回的versionCode,如果前者大,则无更新内容,如果后者大,则提示用户更新下载;

检查到有更新之后,就给用户弹窗通知用户下载,点击『取消』就不更新,点击『确定』则启动后台服务异步下载apk,下载成功之后如果在前台,我们可以直接跳转到安装界面完成安装;如果在后台,下载成功之后会在通知栏显示下载结果,点击通知栏消息也可以跳转到安装界面。具体的操作流程可以根据你们的需求来调整,不一定要按照我这里的操作流程。

完成安装之后,我们整个的app更新策略就完成了。那么我们还可以做些什么功能?如果只是简单的实现更新,还不算特别复杂,就怕我们伟大的产品经理提出伟(keng)大(die)的想法,比如要求app具备以下功能:

  1. 强制更新(流氓行为,用户可能会骂街)
  2. 断点续传(操作流程又会复杂很多)
  3. 增量更新(百度一下是啥吧)

这绝对有可能有这样的需求,这里留给同学们自己私下去实现,本课程就不继续讲解这方面的内容。

好啦,关于App更新策略课程已经完结,大家可以看到只是简单的一个更新模块,就需要我们考虑很多问题,如果让你自己去实现你会怎么做,希望本套课程能给同学们带来一定的帮助,毕竟更新升级是每个应用最基本的模块之一,最后谢谢同学们的耐心观看。

原文发布于微信公众号 - 小巫技术博客(wwjblog)

原文发表时间:2016-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

一提交代码系统就崩溃? 给你8个避免此尴尬的技巧

当一群人作为一个整体同时进行一个程序的编写时,每个个体都会面临两方面的权衡: ●个人部分的实现——你需要保证你负责的代码部分可以正常运行; ● 整体部分的实现—...

3727
来自专栏主机笔记

windows主机安装酷Q机器人自动管理QQ群组

经常在许多的群里都有一个在线的QQ群管机器人,可以起到提示、管理、监控等作用,让群主的省去很多麻烦的事情,其实这个要实现并不是什么难事,已经有人把应用都做好了,...

6979
来自专栏CSDN技术头条

携程开源Redis多数据中心解决方案XPipe

Redis在携程内部得到了广泛的使用,根据客户端数据统计,整个携程全部Redis的读写请求在每秒200W,其中写请求约每秒10W,很多业务甚至会将Redis当成...

4399
来自专栏Java编程技术

分布式事务- 三阶段协议

前面我们介绍了为解决分布式事务而提出来的的二阶段协议,本文首先来讲解二阶段的不足,然后阐述三阶段协议,三阶段协议也是一个标准的协议,也并没有说具体如何实现。

712
来自专栏媒矿工厂

Web架构基础101

大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平...

3932
来自专栏高性能服务器开发

《天天爱消除》服务器性能优化

《天天爱消除》服务器已经在外网稳定运行四年多了,日积月累服务器方面出现了一些问题。主要包括内存,强校验性能,异步开发效率,登录等问题。本文记录这些问题的解决方案...

1782
来自专栏安恒网络空间安全讲武堂

重要 | Apache Tomcat绕过漏洞预警

安全漏洞 2018年2月23日,Apache发布了Tomcat存在2个安全限制绕过漏洞的安全公告: http://tomcat.apache.org/secur...

5707
来自专栏大葡萄元元

开发一款app从PHP到API接口

答:不可以,因为PHP是脚本语言,是负责完成 B/S架构 或 C/S架构 的S部分,即:服务端的开发。(别去纠结 GTK、WinBinder)

4121
来自专栏开源优测

有那么几张图给大家看看

721
来自专栏匠心独运的博客

过来人的经验,谈谈一致性处理方案—分布式事务(DTS)

传统事务是使用数据库自身的事务属性(ACID),而数据库自身的事务属性是局限于当前实例,不能实现跨库。而对于大型分布式/微服务集群系统中,不仅存在着跨库的事务,...

3494

扫码关注云+社区

领取腾讯云代金券