android 版本更新为什么使用服务,一行代码帮你搞定Android版本更新

UpdateAppUtils2.0

d8aa9e1a-806e-4abd-a7d5-e00166aded6d.svg

24040200-c339-471d-97df-7dd03680ffca.svg

一行代码,快速实现app在线下载更新 A simple library for Android update app

UpdateAppUtils2.0 特点

Kotlin First,Kotlin开发

支持AndroidX

支持Md5签名验证

支持自定义任意UI

适配中英文

适配至Android9.0

通知栏图片自定义

支持修改是否每次显示弹窗(非强更)

支持安装完成后自动删除安装包

UpdateAppUtils2.0功能结构变化巨大,建议使用2.0以上版本;2.0以前版本文档

效果图

e914c7892611313b07a51a0176d46b77.png

dd0f2495c9a3582e24e39931ad7c309a.png

e7875b43d918616303862186c2bd0fde.png

c6c9aca11800ba44c9c89755fd27b451.png

e22a21f25885c897ecd12524191e1d87.png

c6fae3ec9c4202c0fe6fbd6fb0fcd814.png

集成

repositories {

jcenter()

}

// Support

implementation 'com.teprinciple:updateapputils:2.0.2'

// AndroidX

implementation 'com.teprinciple:updateapputilsX:2.0.2'

使用

下面为kotlin使用示例,Java示例请参考JavaDemo

1、快速使用

UpdateAppUtils

.getInstance()

.apkUrl(apkUrl)

.updateTitle(updateTitle)

.updateContent(updateContent)

.update()

2、多配置使用

// ui配置

val uiConfig = UiConfig().apply {

uiType = UiType.PLENTIFUL

cancelBtnText = "下次再说"

updateLogoImgRes = R.drawable.ic_update

updateBtnBgRes = R.drawable.bg_btn

titleTextColor = Color.BLACK

titleTextSize = 18f

contentTextColor = Color.parseColor("#88e16531")

}

// 更新配置

val updateConfig = UpdateConfig().apply {

force = true

checkWifi = true

needCheckMd5 = true

isShowNotification = true

notifyImgRes = R.drawable.ic_logo

apkSavePath = Environment.getExternalStorageDirectory().absolutePath +"/teprinciple"

apkSaveName = "teprinciple"

}

UpdateAppUtils

.getInstance()

.apkUrl(apkUrl)

.updateTitle(updateTitle)

.updateContent(updateContent)

.updateConfig(updateConfig)

.uiConfig(uiConfig)

.setUpdateDownloadListener(object : UpdateDownloadListener{

// do something

})

.update()

3、md5校验说明

为了保证app的安全性,避免apk被二次打包的风险。UpdateAppUtils内部提供了对签名文件md5值校验的接口;

首先你需要保证当前应用和服务器apk使用同一个签名文件进行了签名(一定要保管好自己的签名文件,否则检验就失去了意义),

然后你需要将UpdateConfig 的 needCheckMd5 设置为true,并在Md5CheckResultListener监听中,监听校验返回结果。具体使用可参考

CheckMd5DemoActivity

UpdateAppUtils

.getInstance()

.apkUrl(apkUrl)

.updateTitle(updateTitle)

.updateContent(updateContent)

.updateConfig(updateConfig) // needCheckMd5设置为true

.setMd5CheckResultListener(object : Md5CheckResultListener{

override fun onResult(result: Boolean) {

// true:检验通过,false:检验失败

}

})

4、自定义UI

UpdateAppUtils内置了两套UI,你可以通过修改UiConfig进行UI内容的自定义;

当然当内部UI模板与你期望UI差别很大时,你可以采用完全自定义UI

5、删除已安装APK

UpdateAppUtils在应用启动时,通过对比当前应用和已下载apk的VersionCode是否相同来判断已下载apk是否已安装;

如果两者VersionCode相同则认为apk已经安装,应被删除。

// 在Application或者MainActivity中调用,以达到安装成功启动后删除已安装apk

UpdateAppUtils.getInstance().deleteInstalledApk()

Api说明

1、UpdateAppUtils Api

api说明默认值必须设置

fun apkUrl(apkUrl: String)更新包服务器urlnulltrue

fun update()UpdateAppUtils入口-true

fun updateTitle(title: String)更新标题版本更新啦!false

fun updateContent(content: String)更新内容发现新版本,立即更新false

fun updateConfig(config: UpdateConfig)更新配置查看源码false

fun uiConfig(uiConfig: UiConfig)更新弹窗UI配置查看源码false

fun setUpdateDownloadListener()下载过程监听nullfalse

fun setMd5CheckResultListener()md5校验结果回调nullfalse

fun setOnInitUiListener()初始化更新弹窗UI回调nullfalse

fun deleteInstalledApk()删除已安装的apk-false

2、UpdateConfig:更新配置说明

属性说明默认值

isDebug是否输出【UpdateAppUtils】为Tag的日志true

force是否强制更新,强制时无取消按钮false

apkSavePathapk下载存放位置包名目录

apkSaveNameapk保存文件名项目名

downloadBy下载方式DownLoadBy.APP

needCheckMd5是否需要校验apk签名md5false

checkWifi检查是否wififalse

isShowNotification是否显示通知栏进度true

notifyImgRes通知栏图标项目icon

serverVersionName服务器上apk版本名无

serverVersionCode服务器上apk版本号无

alwaysShow是否每次显示更新弹窗(非强更)true

thisTimeShow本次是否显示更新弹窗(非强更)false

showDownloadingToast开始下载时是否显示Toasttrue

3、UiConfig:更新弹窗Ui配置说明

属性说明默认值

uiTypeui模板UiType.SIMPLE

customLayoutId自定义布局idfalse

updateLogoImgRes更新弹窗logo图片资源id-

titleTextSize标题字体大小16sp

titleTextColor标题字体颜色-

contentTextSize内容字体大小14sp

contentTextColor内容字体颜色-

updateBtnBgColor更新按钮背景颜色-

updateBtnBgRes更新按钮背景资源id-

updateBtnTextColor更新按钮字体颜色-

updateBtnTextSize更新按钮文字大小14sp

updateBtnText更新按钮文案立即更新

cancelBtnBgColor取消按钮背景颜色-

cancelBtnBgRes取消按钮背景资源id-

cancelBtnTextColor取消按钮文字颜色-

cancelBtnTextSize取消按钮文字大小14sp

cancelBtnText取消按钮文案暂不更新

downloadingToastText开始下载时的Toast提示文字更新下载中...

downloadingBtnText下载中 下载按钮以及通知栏标题前缀,进度自动拼接在后面下载中

downloadFailText下载出错时,下载按钮及通知栏标题下载出错,点击重试

Demo体验

更新日志

2.0.2

9.0Http适配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值