我们知道,只要是个 APP 就都有更新的功能,可以说这个功能是比较重要的功能,我们在上架之前都会发布测试的版本,测试一般都是发布到蒲公英、Fir.im 等平台,可以说这个需求也算是比较普遍的一个功能了,之前我们的 APP 用的是蒲公英公测,然后现在又有一个新的 APP 需要,这就需要把之前的更新功能重写一遍,其实这是比较麻烦的,也没有必要,我想着能不能把这个功能抽取出来,于是就有了今天这个库。
其实,要实现这个功能也比较简单,第一步,我先是判断是否有读写外部存储的权限,因为下载 apk 一般来说是要下载到手机的 SD 卡上;如果有权限,那就调用蒲公英的更新检测接口,这个接口至少需要两个参数,apiKey 和 appKey,这两个值我们在蒲公英的 APP 信息中可以查到,我的想法是在清单文件中,让用户去设置这两个值,然后我动态取出来,这样就解决了这两个参数值传递的问题;接口请求成功后,会返回 buildVersionNo这个字段,然后通过这个返回字段与本地的 versionCode 去比对,如果比本地的大,说明就有新版本,然后弹出对话框,提示用户更新,当用户点击“更新”时,就去下载对应的版本即可,下载完成后调用安装程序,这样基本的更新思路就出来了。
使用方式也比较简单,我已经将库发布到 jCenter 上了,大家查看项目的主页即可: