Android开发经验谈Android技术知识Android开发

一个简单好用的版本更新库

2020-05-08  本文已影响0人  i小灰

描述

效果图

1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg

功能介绍

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

使用步骤

第一步: app/build.gradle进行依赖

implementation 'com.azhon:appupdate:2.8.0'

implementation 'com.azhon:appupdateX:2.8.0'

第二步:兼容Android N 及以上版本,在app/build.gradle添加如下代码

defaultConfig {

    //每个应用拥有不同的authorities,防止相同的在同一个手机上无法同时安装
    resValue "string", "authorities", applicationId
}

第三步:创建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

使用技巧

//旧版本apk的文件保存地址
boolean b = ApkUtil.deleteOldApk(this, getExternalCacheDir().getPath() + "/appupdate.apk");

public class MyDownload extends BaseHttpDownloadManager {}

版本更新记录


下载源码

点击下载

开源

项目地址: https://github.com/azhon/AppUpdate

项目分类: Android

授权协议 : Apache-2.0

上一篇 下一篇

猜你喜欢

热点阅读