UpdateHelper

Travis [Hex.pm]() [Hex.pm]()

UpdateHelper 是什么?

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

UpdateHelper 是干什么的?

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

UpdateHelper 要怎么使用?

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

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

2.客户端操作如下:

    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

            }
        });
    */

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"/>

UpdateHelper 原理是什么?

UpdateHelper 通过接口返回的数据 versionCode,与当前 APP 的 versionCode 匹配,如果版本号比当前 APP 的 versionCode 大,则存在新版本,弹出更新提示对话框;否则提示当前版本是最新版。

注:当遇到网络中断或阻塞等问题时,处理方式也为提示当前版本是最新版。

UpdateHelper 运行截图

Change Logs


Version 1.0 - Released date: 1-8-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第一个版本