如何实现软件自动更新,下面是具体实例:
效果图:
具体步骤:
1、在服务器上部署更新所用的xml文件:version.xml
2
baiduxinwen.apk
http://gdown.baidu.com/data/wisegame/e5f5c3b8e59401c8/baiduxinwen.apk
2、在客户端实现更新操作
涉及到三个技术:
1.xml文件的解析
2.HttpURLConnection连接
3.文件流I/O
这里创建一个解析xml文件的服务类:ParXmlService.java
package com.xiaowu.news.update;
import java.io.InputStream;
import java.util.HashMap;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ParseXmlService {
public HashMap parseXml (InputStream inStream) throws Exception{
HashMap hashMap = new HashMap();
//创建DocumentBuilderFactory,该对象将创建DocumentBuilder。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//创建DocumentBuilder,DocumentBuilder将实际进行解析以创建Document对象
DocumentBuilder builder = factory.newDocumentBuilder();
//解析该文件以创建Document对象
Document document = builder.parse(inStream);
//获取XML文件根节点
Element root = document.getDocumentElement();
//获得所有子节点
NodeList childNodes = root.getChildNodes();
for(int i = 0; i < childNodes.getLength(); i++) {
Node childNode = (Node) childNodes.item(i);
if(childNode.getNodeType() == Node.ELEMENT_NODE) {
Element childElement = (Element) childNode;
//版本号
if("version".equals(childElement.getNodeName())) {
hashMap.put("version", childElement.getFirstCh