UpdateHelper

1. UpdateHelper 是什么?

UpdateHelper 是一个只需一行代码即可实现APP在线升级的 Android Library。

2. UpdateHelper 是干什么的?

这个项目是为了简化 Android APP 的迭代升级开发,任何一个项目只要引入这个 library 便集成了在线检查新版本的功能以及下载 APK 功能。

3. UpdateHelper 要怎么使用?

首先服务器端需要提供一个接口,返回 JSON 数据格式应该如下:

    {   
        "appName": "TestUpdate", 
        "versionCode": "2", 
        "versionName": "1.2", 
        "apkUrl": "http://www.shelwee.com/404.apk", 
        "changeLog":"1.修复xxx Bug;\n2.更新UI界面.", 
        "updateTips": "更新提示" ,
        "forceUpgrade": true    //当有新版本时,app将会自动下载安装包
    }

客户端操作如下:

  UpdateHelper updateHelper = new UpdateHelper.Builder(this)
				.checkUrl("http://www.shelwee.com/check.jsp")
				.isAutoInstall(false) //设置为false需在下载完手动点击安装;默认值为true,下载后自动安装。
		        .build();
	updateHelper.check(); 
	/**
	或者使用下面的方式,针对复杂需求的可重写回调方法
	updateHelper.check(new OnUpdateListener() {
			
			@Override
			public void onStartDownload() {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onStartCheck() {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onFinshDownload() {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onFinishCheck(UpdateInfo info) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onDownloading(int progress) {
				// TODO Auto-generated method stub
				
			}
		});
    */ 

4. UpdateHelper需要哪些权限?

<uses-permission android:name="android.permission.INTERNET">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">

5. UpdateHelper原理是什么?

UpdateHelper 通过接口返回的数据 versionCode,与当前 APP 的 versionCode 匹配,如果版本号比当前 APP 的 versionCode 大,则存在新版本,弹出更新提示对话框;否则提示当前版本是最新版。
注:当遇到网络中断或阻塞等问题时,处理方式为提示当前版本是最新版。

6. UpdateHelper 运行截图

7. UpdateHelper 更新日志

Version 1.0 – Released date: 1-16-2017

  • 从 ADT 转换成 Android Studio 项目
  • 优化部分代码实现逻辑
  • 网络部分全部改为 HttpURLConnection 实现
  • 修复下载过程与通知栏进度条卡顿情况
  • 提示文字全部提取到 strings.xml,方便国际化操作
  • 新增强制升级功能,通过后台接口 JSON 返回 forceUpgrade:true / false

Version 0.2 – Released date: 3-26-2016

  • 新增校验文件是否已下载

Version 0.1 – Released date: 5-8-2014

  • 发布 UpdateHelper 第一个版本