You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppUpdater/README.md

8.8 KiB

AppUpdater

Image

Download MavenCentral JCenter JitPack CI CircleCI API License Blog QQGroup

AppUpdater for Android 是一个专注于App更新,一键傻瓜式集成App版本升级的轻量开源库。(无需担心通知栏适配;无需担心重复点击下载;无需担心App安装等问题;这些AppUpdater都已帮您处理好。) 核心库主要包括app-updater和app-dialog。

下载更新和弹框提示分开,是因为这本来就是两个逻辑。完全独立开来能有效的解耦。

  • app-updater 主要负责后台下载更新App,无需担心下载时各种配置相关的细节,一键傻瓜式升级。
  • app-dialog 主要是提供常用的Dialog和DialogFragment,简化弹框提示,布局样式支持自定义。

app-updater + app-dialog 配合使用,谁用谁知道。

功能介绍

  • 专注于App更新一键傻瓜式升级
  • 够轻量,体积小
  • 支持监听下载过程
  • 支持下载失败,重新下载
  • 支持下载优先取本地缓存
  • 支持通知栏提示内容和过程全部可配置
  • 支持取消下载
  • 支持使用OkHttpClient下载
  • 支持Android 10(Q)
  • 支持Android 11(R)
  • 支持Android 12(S)

Gif 展示

Image

你也可以直接下载 演示App 体验效果

引入

Gradle:

  1. 在Project的 build.gradle 里面添加远程仓库
allprojects {
    repositories {
        //...
        mavenCentral()
    }
}
  1. 在Module的 build.gradle 里面添加引入依赖项

    //----------AndroidX 版本
    //app-updater
    implementation 'com.github.jenly1314.AppUpdater:app-updater:1.1.3'
    //app-dialog
    implementation 'com.github.jenly1314.AppUpdater:app-dialog:1.1.3'

以前发布至JCenter的版本


    //----------AndroidX 版本
    //app-updater
    implementation 'com.king.app:app-updater:1.0.10-androidx'
    //app-dialog
    implementation 'com.king.app:app-dialog:1.0.10-androidx'

    //----------Android Support 版本
    //app-updater
    implementation 'com.king.app:app-updater:1.0.10'
    //app-dialog
    implementation 'com.king.app:app-dialog:1.0.10'

示例

    //一句代码,傻瓜式更新
    new AppUpdater(getContext(),url).start();
    //简单弹框升级
    AppDialogConfig config = new AppDialogConfig(context);
    config.setTitle("简单弹框升级")
            .setConfirm("升级") //旧版本使用setOk
            .setContent("1、新增某某功能、\n2、修改某某问题、\n3、优化某某BUG、")
            .setOnClickConfirm(new View.OnClickListener() { //旧版本使用setOnClickOk
                @Override
                public void onClick(View v) {
                    new AppUpdater.Builder()
                            .setUrl(mUrl)
                            .build(getContext())
                            .start();
                    AppDialog.INSTANCE.dismissDialog();
                }
            });
    AppDialog.INSTANCE.showDialog(getContext(),config);
    //简单DialogFragment升级
    AppDialogConfig config = new AppDialogConfig(context);
    config.setTitle("简单DialogFragment升级")
            .setConfirm("升级") //旧版本使用setOk
            .setContent("1、新增某某功能、\n2、修改某某问题、\n3、优化某某BUG、")
            .setOnClickConfirm(new View.OnClickListener() { //旧版本使用setOnClickOk
                @Override
                public void onClick(View v) {
                    new AppUpdater.Builder()
                            .setUrl(mUrl)
                            .setFilename("AppUpdater.apk")
                            .build(getContext())
                            .setHttpManager(OkHttpManager.getInstance())//不设置HttpManager时,默认使用HttpsURLConnection下载,如果使用OkHttpClient实现下载,需依赖okhttp库
                            .start();
                    AppDialog.INSTANCE.dismissDialogFragment(getSupportFragmentManager());
                }
            });
    AppDialog.INSTANCE.showDialogFragment(getSupportFragmentManager(),config);

更多使用详情,请查看app中的源码使用示例或直接查看API帮助文档

混淆

app-updater Proguard rules

app-dialog Proguard rules

版本记录

v1.1.3:2021-04-25

  • 统一日志管理
  • 适配Android 12(S)
  • 优化细节

v1.1.2:2021-11-18

  • AppDialog对外提供更多与WindowManager.LayoutParams相关的配置

v1.1.1:2021-9-14

  • 对外提供更多可配置参数
  • 优化细节

v1.1.0:2021-7-2 (从v1.1.0开始不再发布至JCenter)

  • 后续版本只支持androidx,版本名称不再带有androidx标识
  • 优化细节

v1.0.10:2021-3-4

  • AppDialogConfig添加构造参数,简化自定义扩展用法
  • 优化细节

v1.0.9:2020-12-11

  • 优化默认Dialog样式的显示细节

v1.0.8:2020-1-2

  • 支持MD5校验
  • 对外提供获取Dialog方法

v1.0.7:2019-12-18

  • 优化细节

v1.0.6:2019-11-27

  • 新增OkHttpManager 如果使用了OkHttpManager则必须依赖okhttp
  • 优化细节 (progress,total 变更 int -> long)

v1.0.5:2019-9-4

  • 支持取消下载

v1.0.4:2019-6-4 开始支持AndroidX版本

  • 支持添加请求头

v1.0.3:2019-5-9

  • 新增支持下载APK优先取本地缓存,避免多次下载相同版本的APK文件
  • AppDialog支持隐藏Dialog的标题

v1.0.2:2019-3-18

  • 新增通知栏是否震动和铃声提示配置
  • AppDialogConfig新增getView(Context context)方法

v1.0.1:2019-1-10

  • 升级Gradle到4.6

v1.0 :2018-6-29

  • AppUpdater初始版本

赞赏

如果您喜欢AppUpdater,或感觉AppUpdater帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 😃

您也可以扫描下面的二维码,请作者喝杯咖啡

关于我

Name: Jenly

Email: jenly1314#gmail.com / jenly1314#vip.qq.com

CSDN: jenly121

CNBlogs: jenly

GitHub: jenly1314

Gitee: jenly1314

加入QQ群: 20867961