Best android open-source packages and libraries.

AppUpdate

:boom: An independent util library for checking app update info and hint message by dialog,download latest version with notification progress.
Updated 2 months ago

AppUpdate

an independent util library for checking app update info and hint message by dialog,download latest version with notification progress.


功能说明:

  1. 支持Android版本号9+,不依赖第三方库;
  2. 支持更新信息查询、线上新版apk文件下载;
  3. 支持默认更新提示对话框,同时支持自定义处理;

app更新接口json数据格式:

{
    "app_name": "apk更新demo",
    "download_url": "http://www.xxx/apk-v2.3.0.apk",
    "file_md5": "9d4522b59a92742124110a7abf440267",
    "file_size": "31227937",
    "is_forced": "0",
    "msg": "",
    "package": "com.lzj.appupdate",
    "remark": "1、全新首页,新视觉 新体验\n2、修复若干bug",
    "status": 0,
    "version_id": "102",
    "version_name": "v2.0.0"
}

version_id : 应用版本号码,必填;

download_url : 线上最新版apk文件下载地址,必填;

file_md5 : 线上最新版apk文件的md5值,必填;

is_forced : 是否为强制更新,0:不强制更新,1:强制更新, 默认为0;

app_name : 应用名称,可选;

file_size : 线上最新版apk文件的大小,可选;

version_name : 应用版本名称,可选;

package : 应用包名,可选;

remark : 应用升级提示语,可选;

status : 接口请求状态码,可选;

msg : 接口请求附加消息,可选;

How to Use


Step1: Add the dependency

dependencies {
       compile 'com.leo618:appupdate:1.0.1'
}

Step2: Use in code

UpdateManager.config(getApplication(), true, true);
UpdateManager.checkUpdate("http://ppwapp.simuwang.com/Other/getAndroidVersion?", null);
  • 需要使用到的权限:

      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    
  • 如果使用默认dialog显示更新信息需要在project/app/AndroidManifest.xml中加入UpdateDefaultDisplayDialogUI:

      <application >
      	...
          <activity
              android:name="com.leo618.appupdate.UpdateDefaultDisplayDialogUI"
              android:configChanges="keyboardHidden|orientation|screenSize"
              android:theme="@style/UpdateDefaultDisplayDialog"/>
      </application>
    
  • 适配7.0+系统的Uri权限问题,请在project/app/AndroidManifest.xml中加入如下:

      <application >
      	...
          <!--应用内部更新 适配7.0+的配置-->
          <provider
              android:name="android.support.v4.content.FileProvider"
              android:authorities="${applicationId}.fileprovider"
              android:exported="false"
              android:grantUriPermissions="true">
    
              <meta-data
                  android:name="android.support.FILE_PROVIDER_PATHS"
                  android:resource="@xml/file_provider_paths"/>
          </provider>
      </application>
    
  • 混淆

      -dontwarn com.leo618.appupdate.**
      -keep class com.leo618.appupdate.** { *; }
    

更新记录

2/21/2017 11:59:17 AM

1.UpdateDownLoader提供下载状态获取方法;

3/29/2017 10:37:50 AM

1.修正全局上下文的使用;

2.适配android 7.0+,使用FileProvider处理FileUriExposedException异常;

5/16/2017 10:15:09 AM

1.更改包名;

2.demo中新增启动授权检查;