Android实现APP版本更新

2023-11-08

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android实现APP版本更新 的相关文章

随机推荐