本文主要是介绍友盟下线后,开发者该如何实现自动更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
开发者们可能都注意到,友盟从2016年开始大规模下线了他们的产品,例如:反馈功能、在线参数、自动更新。
原因可能是因为应用市场的进一步规范吧,笔者也就不瞎猜了。今天和大家分享一下在友盟“倒下”后,开发者们该如何实现自动更新功能。
其实自动更新的原理非常简单,就是通过检测服务器的最新版本号与当前版本号进行对比,若有更新则提示用户进行下载更新。
有能力的同学自己写一份代码其实也不难,核心部分是检测更新和下载机制,至于UI,就看自己定制了,简单的可以Dialog解决,美观的可以自己完全设计View。
但是大多数同学可能没有这个精力去把时间花在这上面,最好还是希望找到一个现成的解决方案。
笔者不推荐第三方服务,原因:第三方如果和友盟一样哪天下线了呢,还有,第三方闭源sdk谁知道它到底干了什么...
【后台部分】
因此,你需要一个自己的服务器,Web托管也行,云服务器也行,笔者推荐阿里云或新浪云,稳定又便宜,适合小规模开发使用。
你完全可以在服务器上放一个txt,写上最新版本、下载地址等,但那样太土了。
因此我们可以建立一个数据库,构建自己的自动更新体系。
数据库格式可参考如下:
然后编写一个php(看个人喜好咯)文件,接受一个get参数appid,返回包含所有列的json对象。
核心代码就一句:
$sql="select * from app_update where appid = ".$appid;
【客户端部分】
然后就是安卓端(本篇不讨论iOS)的代码编写,笔者推荐Github上的开源库,笔者尝试过一些,最终还是相对比较喜欢国人编写的一个插件:
UpdatePlugin
https://github.com/yjfnypeu/UpdatePlugin
-
如果你使用AndroidStudio,那么可以直接在gradle添加:
compile 'org.lzh.nonview.updateplugin:UpdatePlugin:0.5'
-
如果你使用Eclipse,那么可以下载git上的zip包,将updatepluginlib中的所有java代码,还有R资源中的字符串资源全都复制到你的工程。
然后,在你的程序中添加配置代码:
再在你需要检查更新的地方添加:
UpdateBuilder.create().check(MainActivity.this);
作者提供了:是否弹出对话框、是否强制更新、是否自动安装、是否显示进度条等功能,非常完善,唯一的缺点是只用了自带UI,在低版本安卓SDK下非常难看。
这样,自己的一套更新体系就制作完毕啦,每次你制作一款新的App,只需要给它定义一个appid,并且在后台数据库添加它的最新版本信息,然后简单复制下安卓代码,就ok啦!
当然咯,这样做的缺点自然就是要确保服务器稳定,但同样也是优点:
一切尽在自己的掌控之中!
这篇关于友盟下线后,开发者该如何实现自动更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!