AppUpdate
AppUpdate
AppUpdater for Android 是一个专注于App更新,一键傻瓜式集成App版本升级的轻量开源库。
无需担心各种细节的处理和适配问题;包括但不仅限于:通知栏适配、重复下载、文件访问授权、App安装等问题;这些 AppUpdater 都已帮您处理好。
- AppUpdater 核心库主要包括 app-updater 和 app-dialog 。
app-updater 主要负责后台下载更新App,无需担心下载时各种配置相关的细节,一键傻瓜式升级。
app-dialog 主要是提供常用的Dialog和DialogFragment,简化弹框提示的实现,布局样式可随意定制。
- 下载更新和弹框提示之所以分开是因为这本来就是两个功能。二者完全独立,可以在解耦同时减少侵入性。
如果你只需要单纯的 App下载更新功能,仅依赖 app-updater 即可; 如果你在需要App下载更新功能的同时,还需要有对话框来进行交互; 那么 app-updater + app-dialog 二者配合使用,谁用谁知道。
功能介绍
- ✅ 专注于App更新一键傻瓜式升级
- ✅ 够轻量,体积小
- ✅ 支持监听下载和自定义下载流程
- ✅ 支持下载失败时,可重新下载
- ✅ 支持文件MD5校验,避免重复下载
- ✅ 支持通知栏提示内容和流程全部可配置
- ✅ 支持取消下载
- ✅ 支持使用HttpsURLConnection或OkHttpClient进行下载
- ✅ 支持Android 10(Q)
- ✅ 支持Android 11(R)
- ✅ 支持Android 12(S)
Gif 展示
你也可以直接下载 演示App 体验效果
引入
Gradle:
- 在Project的 build.gradle 里面添加远程仓库
allprojects { repositories { //... mavenCentral() } }
- 在Module的 build.gradle 里面添加引入依赖项
//----------AndroidX 版本 //app-updater implementation 'com.github.jenly1314.AppUpdater:app-updater:1.2.0' //app-dialog implementation 'com.github.jenly1314.AppUpdater:app-dialog:1.2.0'
示例
//一句代码,傻瓜式更新 new AppUpdater(context,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(context) .setUrl(mUrl) .build() .start(); AppDialog.INSTANCE.dismissDialog(); } }); AppDialog.INSTANCE.showDialog(context,config);
//简单DialogFragment升级 AppDialogConfig config = new AppDialogConfig(context); config.setTitle("简单DialogFragment升级") .setConfirm("升级") .setContent("1、新增某某功能、\n2、修改某某问题、\n3、优化某某BUG、") .setOnClickConfirm(new View.OnClickListener() { @Override public void onClick(View v) { AppUpdater appUpdater = new AppUpdater.Builder(context) .setUrl(mUrl) .build(); appUpdater.setHttpManager(OkHttpManager.getInstance()) // 使用OkHttp的实现进行下载 .setUpdateCallback(new UpdateCallback() { // 更新回调 @Override public void onDownloading(boolean isDownloading) { // 下载中:isDownloading为true时,表示已经在下载,即之前已经启动了下载;为false时,表示当前未开始下载,即将开始下载 } @Override public void onStart(String url) { // 开始下载 } @Override public void onProgress(long progress, long total, boolean isChanged) { // 下载进度更新:建议在isChanged为true时,才去更新界面的进度;因为实际的进度变化频率很高 } @Override public void onFinish(File file) { // 下载完成 } @Override public void onError(Exception e) { // 下载失败 } @Override public void onCancel() { // 取消下载 } }).start(); AppDialog.INSTANCE.dismissDialogFragment(getSupportFragmentManager()); } }); AppDialog.INSTANCE.showDialogFragment(getSupportFragmentManager(), config);