Android实现APP版本更新

UpdateAppUtils2.0是一款用于Android应用在线更新的库,支持Kotlin开发、AndroidX、MD5签名验证及自定义UI。内置中英文适配,支持至Android9.0,提供通知栏图片自定义等功能。

UpdateAppUtils2.0

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

UpdateAppUtils2.0 特点

  • Kotlin First,Kotlin开发
  • 支持AndroidX
  • 支持Md5签名验证
  • 支持自定义任意UI
  • 适配中英文
  • 适配至Android9.0
  • 通知栏图片自定义
  • 支持修改是否每次显示弹窗(非强更)
  • 支持安装完成后自动删除安装包

效果图

   

 

集成

repositories {
   jcenter()    
}

// Support
implementation 'com.teprinciple:updateapputils:2.0.0'

// AndroidX
implementation 'com.teprinciple:updateapputilsX:2.0.0'

使用

下面为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()

更多内容参见源码

Demo体验

demo.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值