Android开发之应用程序更新实现
来源:互联网 发布:淘宝提高销量实用工具 编辑:程序博客网 时间:2024/06/15 08:23
最近给项目app做升级,对Android应用程序更新稍有研究,分享一下我的心得。
既然是更新,那么一定是要联网和下载的,所以联网和存储访问权限时一定要有的:
<!-- 权限申请 -->
<uses-permission android:name="android.permission.INTERNET" /><!-- 联网权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><!-- 存储权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
可以用xml的方式和数据库、php等方式检测升级版本
XML:
<?xml version="1.0" encoding="utf-8"?>
<update>
<version>2.0<ersion>
<description>这里写一些这个版本的特点</description>
<apkurl>填写应用下载下载地址</apkurl>
<!--这里的ip地址一定要写你服务器所在的电脑的ip地址,我们会在Security这个目录下面放置一下new.apk的,用来更新的-->
</update>
匹配一下:
public class UpdateInfoParser {
public static UpdateInfo getUpdateInfo(InputStream is) throws Exception {
UpdateInfo info = new UpdateInfo();
XmlPullParser xmlPullParser = Xml.newPullParser();
xmlPullParser.setInput(is, "utf-8");
int type = xmlPullParser.getEventType();
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if (xmlPullParser.getName().equals("version")) {
info.setVersion(xmlPullParser.nextText());
} else if (xmlPullParser.getName().equals("description")) {
info.setDescription(xmlPullParser.nextText());
} else if (xmlPullParser.getName().equals("apkurl")) {
info.setUrl(xmlPullParser.nextText());
}
break;
default:
break;
}
type = xmlPullParser.next();
}
return info;
}
}
HTTP请求:
public class UpdateInfoService {
private Context context;
public UpdateInfoService(Context context) {
this.context = context;
}
public UpdateInfo getUpdateInfo(int urlId) throws Exception {
String path = context.getResources().getString(urlId);// 拿到config.xml里面存放的地址
URL url = new URL(path);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();// 开启一个http链接
httpURLConnection.setConnectTimeout(5000);// 设置链接的超时时间,现在为5秒
httpURLConnection.setRequestMethod("GET");// 设置请求的方式
InputStream is = httpURLConnection.getInputStream();// 拿到一个输入流。里面包涵了update.xml的信息
return UpdateInfoParser.getUpdateInfo(is);// 解析xml
}
}
然后就可以根据与获取到的数据相比较并且下载更新了。
其他的做法和这个类似,不过此种方式比较简单一些,也是最频繁的使用方式。
个人辛勤劳动成果,如有转载,请注明出处,谢谢!
- Android开发之应用程序更新实现
- ios开发之应用程序检查更新功能的实现
- ios开发之应用程序检查更新功能的实现
- android应用程序更新功能实现
- Android开发之实现应用程序的开机自启动
- android断点续传实现应用程序更新下载
- Android开发 之——利用RxBus实现数据更新
- Android应用程序开发之requestWindowFeature()
- android应用程序开发之路
- Android开发之增量更新
- android开发之android应用程序的组成
- Android开发之编写第一个Android应用程序实现按钮和复选框
- android更新应用程序
- iOS应用程序之如何获取版本号实现应用更新
- Android应用程序开发之跟踪位置变化
- Android应用程序开发之style属性介绍
- android开发之应用程序如何完全退出
- android基础之应用程序开发目录介绍
- 陀螺仪使用
- Software AG ESB 试用记录
- URAL 1519 Formula 1
- ubuntu下安装maven
- leetCode-002 Median of Two Sorted Arrays
- Android开发之应用程序更新实现
- 教师兼干部类
- ROR模型和数据库操作(第六章ruby on rails)
- SWT Designer
- 相比开源,微软的产品更便宜
- 第十一周 项目 3 点类派生直线类
- 一位专注驱魔的退休警长向我们敞开(一部分)心扉
- 1. 局部变量
- jstack Dump 日志文件中的线程状态