- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android軟件自动更新的实现
Android - 软件自动更新的实现接触到一个很实用的技术,那就是软件自动更新。一般开发者是通过自行在应用平台添加更新版本的apk。这样做,如果是在一两个应用平台发布应用,那还说得过去,工作量还不是很大。但大家都知道,Android开发者是比较苦逼的。由于开源所致,出现了N多应用市场。如果想赚取更多的收入,那就要在各个应用市场进行更新。比较出名的一些应用市场有如下:那如何实现软件自动更新,下面是具体实例:效果图:具体步骤:1. 在服务器上部署更新所用的xml文件:version.xmlupdate ?version2/version ?namebaiduxinwen.apk/name ?url/data/wisegame/e5f5c3b8e59401c8/baiduxinwen.apk/url /update 2. 在客户端实现更新操作涉及到三个技术:1.xml文件的解析2.HttpURLConnection连接3.文件流I/O这里创建一个解析xml文件的服务类:ParXmlService.javapackage 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 HashMapString, String parseXml (InputStream inStream) throws Exception{ ?HashMapString, String hashMap = new HashMapString, String(); ?//创建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.getFirstChild().getNodeValue()); ?//软件名称?} else if(name.equals(childElement.getNodeName())) { ?hashMap.put(name, childElement.getFirstChild().getNodeValue()); ?//下载地址 ?} else if(url.equals(childElement.getNodeName())) { ?hashMap.put(url, childElement.getFirstChild().getNodeValue()); ?} ?} ??} ?return hashMap; ?} } 实现更新操作的管理类:UpdateManager.javapackage com.xiaowu.news.update; im
文档评论(0)