使用七牛云存储实现Android版本更新
2016-07-21 15:06
519 查看
为了更新软件或修复Bug,我们通常需要实现应用更新。
1,编写版本信息文件
2,上传文件到云存储空间
3,使用相关的代码来实现
2.1现在我们来编写所需要的版本信息文件。后面,我们软件里面主要通过读取版本信息,来判断是否要更新,要更新的时候从这个文件中获取新版软件下载地址。我写了一个示例的,如下图。
2.2七牛是一个云存储服务商,用七牛来演示主要是因为他提供了一些免费空间。七牛空间的申请和上传文件可以参考文档。上传完版本信息文件,记录一下他的下载地址,以便后面用来检测是否有新版本。
2.3 解析XML相关的代码
参考链接:
http://www.cnblogs.com/coolszy/archive/2012/04/27/2474279.html
http://www.cnblogs.com/kissazi2/archive/2013/10/02/3349149.html
demo下载地址:
http://download.csdn.net/detail/u010963246/9582340
1、自动更新的流程
我们将了解一下自动更新的思路。既然软件要自动更新,那么它必须知道自己是不是最新版本,那么我们就需要在某一个地方放跟版本和更新有关的信息,一般来讲,我们会在自己的网站上放一个记录版本信息的XML文本,还有我们的软件。当我们获取了版本信息,假设这时候需要更新,那么我们的软件会自动向服务器下载最新版本,然后用最新版本将老版本替换掉。具体的流程如下图所示2、利用云存储空间实现自动更新
照着上面讲的流程,我们将慢慢实现:1,编写版本信息文件
2,上传文件到云存储空间
3,使用相关的代码来实现
2.1现在我们来编写所需要的版本信息文件。后面,我们软件里面主要通过读取版本信息,来判断是否要更新,要更新的时候从这个文件中获取新版软件下载地址。我写了一个示例的,如下图。
2.2七牛是一个云存储服务商,用七牛来演示主要是因为他提供了一些免费空间。七牛空间的申请和上传文件可以参考文档。上传完版本信息文件,记录一下他的下载地址,以便后面用来检测是否有新版本。
2.3 解析XML相关的代码
/** * 检查软件是否有更新版本 * * @return */ public void checkUpdate() { mHttpUtils = new HttpUtils(); RequestParams params = new RequestParams(); mHttpUtils.send(HttpMethod.GET, "http://7xrk2w.com1.z0.glb.clouddn.com/version.xml", params, mRequestUpdataCallBack); } private RequestCallBack<String> mRequestUpdataCallBack = new RequestCallBack<String>() { @Override public void onStart() { super.onStart(); Log.i(TAG, "请求的路径:" + this.getRequestUrl()); } @Override public void onFailure(HttpException arg0, String arg1) { Log.i(TAG, "onFailure:" + arg1); } @Override public void onSuccess(ResponseInfo<String> arg0) { String json = arg0.result; Log.i(TAG, "onSuccess:" + ":" + json); InputStream in_nocode = new ByteArrayInputStream(json.getBytes()); // 获取当前软件版本 int versionCode = getVersionCode(mContext); // 解析XML文件。 由于XML文件比较小,因此使用DOM方式进行解析 ParseXmlService service = new ParseXmlService(); try { mHashMap = service.parseXml(in_nocode); } catch (Exception e) { e.printStackTrace(); } if (null != mHashMap) { int serviceCode = Integer.valueOf(mHashMap.get("version")); // 版本判断 if (serviceCode > versionCode) { showNoticeDialog(); } } else { Toast.makeText(mContext, R.string.soft_update_no, Toast.LENGTH_LONG).show(); } } };
参考链接:
http://www.cnblogs.com/coolszy/archive/2012/04/27/2474279.html
http://www.cnblogs.com/kissazi2/archive/2013/10/02/3349149.html
demo下载地址:
http://download.csdn.net/detail/u010963246/9582340
相关文章推荐
- Android技术积累:开发规范
- 如何在Android Studio添加本地aar包引用
- android java 堆栈的实现
- Notification 用法
- java,android 二货必备错误集合
- 安卓VelocityTracker使用小例子
- 用Messenger实现Activity与Service的信息交互
- Android中Activity四种启动模式和taskAffinity属性详解
- Android 仿QQ首页的消息和电话的切换页面
- Android标签容器控件的实现
- 安卓开发中遇到测试TextView测量宽高
- Android遍历所有文件夹和子目录搜索文件
- Android画一条虚线
- 关于Android Studio中Run按钮是灰色的解决
- 自定义Toast
- Android开发-按钮的点击和长按-步骤方法
- Android ListView 分页加载实现
- Android中四大组件(四大天王)
- 【Android 基础】 Parcelable 使用
- android apk 自我保护技术-完整性校验