Android OTA空中升级的文档不少。但是多是介绍原理的和分析代码的。原理我就不说了。这里记录一下我在项目中实现的工作,和问题总结。
工作流程:
update.xml文件放在服务器上,当客户端请求的参数正确时,返回相应的信息。
update.xml的内容,根据需要可以添加;Md5需要校验下载后包的完整性。updatepath为实际的下载地址
至少需要如下字段:
<ver>android3.2</ver>
<md5>xxx</md5>
<updatepath>http://xxxx/update.zip</updatepath>
下面是我们工作用到的一个配置文件。
- <firmwareupdate xsi:noNamespaceSchemaLocation="firmware.xsd">
- <firmware>
- <num>1</num>
- <name>firmware name </name>
- <desc_cn>简体中文描述</desc_cn>
- <desc_tw>繁體中文描述</desc_tw>
- <desc_en>firmware release Description</desc_en>
- <md5>c61ce360a734c018685fbf5e1662c0fd</md5>
- <size>16787</size>
- <level>3</level>
- <needbackup>1</needbackup>
- <downloadurl>http://123.123.123.123/firmware/update.zip</downloadurl>
- </firmware>
- </firmwareupdate>
下载方法可以自己用socket,3.2版本后也可以用downloadmanager,用downloadmanager支持断点续传。
下载后一定要放在/sdcard/update.zip 文件。
OTA的功能实现可以单独做一个APK,也可以作为一个service放入系统中