安卓应用实现自动更新比较简单,现在我们来讲讲如何实现安卓应用自动更新的功能。
1. web接口
需要提供一个接口供客户端查询更新状态,并且在需要更新时,告知客户端新APK地址。
接口参数如下:
package 包名,因为有时候会出现同一个应用换包名打包的情况
version 版本号,即android清单文件里面的versionCode
channel 渠道号
os 操作系统,android/ios。ios 这里仅作预留。
之所以传入这些字段,是要在与服务器端的包匹配时,务必满足:
package, channel, os 相等,并且服务器端的version 大于 客户端传入的version
代码如下:
os = request.GET.get('os')
pkg_name = request.GET.get('package')
channel = request.GET.get('channel')
version = request.GET.get('version')
if not os or not pkg_name or not channel or not version:
return jsonify(**ret_dict)
pkg = Package.objects.filter(
os=os,
package=pkg_name,
channel=channel,
status__gt=config.PACKAGE_STATUS_NOT_UPDATE
).order_by('-version').first()
if pkg and int(version) < pkg.version:
ret_dict['pkg_status'] = str(pkg.status)
ret_dict['pkg_url'] = config.WEB_HOST + pkg.file.url
ret_dict['update_prompt'] = pkg.info
return jsonify(**ret_dict)
2. 数据库设计
由于web端使用的是django,所以可以很方便的给出运营同学可以操作的后台界面,如下:
注意红框内的元素,运营同学在上传时,是不允许修改的,而是由程序自动解析APK文件得到后填入的。
具体的解析方法,我们稍后给出。
本文地址:http://www.45fan.com/sjjc/11149.html