目录

  • 效果图
  • 功能介绍
  • Demo下载体验
  • DownloadManager
  • UpdateConfiguration
  • 使用提醒
  • 使用步骤
  • 使用技巧
  • 版本更新记录
  • 哪些App正在使用

效果图

Android app更新提示无权限_断点下载

 

Android app更新提示无权限_Android app更新提示无权限_02


Android app更新提示无权限_Android app更新提示无权限_03

 

Android app更新提示无权限_版本更新_04


Android app更新提示无权限_Android app更新提示无权限_05

 

Android app更新提示无权限_Android N_06

Android app更新提示无权限_Android app更新提示无权限_07


Demo下载体验

点击下载Demo进行体验

DownloadManager:配置文档

初始化使用DownloadManager.getInstance(this)

属性

描述

默认值

是否必须设置

context

上下文

null

true

apkUrl

apk的下载地址

null

true

apkName

apk下载好的名字

null

true

downloadPath

apk下载的位置 (2.7.0以上版本已过时)

getExternalCacheDir()

false

showNewerToast

是否提示用户 “当前已是最新版本”

false

false

smallIcon

通知栏的图标(资源id)

-1

true

configuration

这个库的额外配置

null

false

apkVersionCode

更新apk的versionCode

(如果设置了那么库中将会进行版本判断

下面的属性也就需要设置了)

Integer.MIN_VALUE

false

apkVersionName

更新apk的versionName

null

false

apkDescription

更新描述

null

false

apkSize

新版本的安装包大小(单位M)

null

false

apkMD5

新安装包的md5(32位)

null

false

UpdateConfiguration:配置文档

属性

描述

默认值

notifyId

通知栏消息id

1011

notificationChannel

适配Android O的渠道通知

详情查阅源码

httpManager

设置自己的下载过程

null

enableLog

是否需要日志输出

true

onDownloadListener

下载过程的回调

null

jumpInstallPage

下载完成是否自动弹出安装页面

true

showNotification

是否显示通知栏进度(后台下载提示)

true

forcedUpgrade

是否强制升级

false

showBgdToast

是否提示 “正在后台下载新版本…”

true

onButtonClickListener

按钮点击事件回调

null

dialogImage

对话框背景图片资源(图片规范参考demo)

-1

dialogButtonColor

对话框按钮的颜色

-1

dialogButtonTextColor

对话框按钮的文字颜色

-1

dialogProgressBarColor

对话框进度条和文字颜色

-1

使用提醒

因为目前会配合AppUpdate日志查询平台会产生一些网络数据,这些信息收集绝不用于任何恶意用途。
如果你不想使用,可以下载源代码进行集成并将HttpUtil代码移除即可。

  • 统计有多少App集成了AppUpdate
    HttpUtil#postUsage
  • 上报下载的错误信息
    HttpUtil#postException

使用步骤

第一步: app/build.gradle进行依赖
implementation 'com.azhon:appupdate:onGitHub'
  • 如果你使用的是AndroidX,请依赖appupdateX
implementation 'com.azhon:appupdateX:onGitHub'
第二步:创建DownloadManager,更多用法请查看这里示例代码
DownloadManager manager = DownloadManager.getInstance(this);
manager.setApkName("appupdate.apk")
        .setApkUrl("https://raw.githubusercontent.com/azhon/AppUpdate/master/apk/appupdate.apk")
        .setSmallIcon(R.mipmap.ic_launcher)
        .download();

如果需要显示内置的对话框那么你需要调用manager.setApkVersionCode()将新版本的versionCode填进去

第三步:混淆打包,只需保持ActivityService不混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service

使用技巧

  • 框架内部支持中/英文 国际化(其他语言只需要在对应的string.xml中取相同的名字即可)
  • 查看版本库中的Log只需要过滤AppUpdate开头的Tag
  • 支持校验安装包的MD5避免重复下载,只需要DownloadManager设置安装包的MD5即可
  • 下载完成 打开新版本后删除旧安装包文件,实现思路请移步此处
//旧版本apk的文件保存地址
boolean b = ApkUtil.deleteOldApk(this, getExternalCacheDir().getPath() + "/appupdate.apk");
  • 温馨提示:升级对话框中的内容是可以上下滑动的哦!
  • 如果需要实现自己一套下载过程,只需要继承BaseHttpDownloadManager 并使用listener更新进度
public class MyDownload extends BaseHttpDownloadManager {}

版本更新记录

  • v3.0.0(2020/06/05)
  • [修复] 解决高版本不能使用http明文网络请求问题
  • [新增] 上报错误信息至服务器