azhon / AppUpdate

Android App update library. Android版本更新库,简单、轻量、可随意定制
Apache License 2.0
2.29k stars 336 forks source link
android apk app-update high-scalability kotlin kotlin-coroutines simple

English Doc

如果你是Flutter,请使用flutter_app_update

本库核心逻辑(必读):

1、当调用了apkVersionCode()设置了最新的VersionCode,则内部会自动判断是否显示对话框、下载和安装

相关文档链接

目录

效果图

     

功能介绍

Demo下载体验

点击下载Demo进行体验

扫码加入QQ群

使用步骤

第一步:app/build.gradle添加依赖

implementation 'io.github.azhon:appupdate:4.3.4'
由于GooglePlay政策禁止应用内更新,所以可以通过多渠道的方式进处理 - [GooglePlay政策](https://support.google.com/googleplay/android-developer/answer/9888379?hl=en&ref_topic=9877467) - 本库提供了一个没有任何实现的版本[点击查看详细内容](https://github.com/azhon/AppUpdate/blob/main/app/build.gradle) ```groovy android { //... productFlavors { other {} googlePlay {} } } dependencies { otherImplementation 'io.github.azhon:appupdate:latest-version' googlePlayImplementation 'io.github.azhon:appupdate-no-op:latest-version' } ```

第二步:创建DownloadManager

Kotlin ```java val manager = DownloadManager.Builder(this).run { apkUrl("your apk url") apkName("appupdate.apk") smallIcon(R.mipmap.ic_launcher) //设置了此参数,那么内部会自动判断是否需要显示更新对话框,否则需要自己判断是否需要更新 apkVersionCode(2) //同时下面三个参数也必须要设置 apkVersionName('v4.2.2') apkSize("7.7MB") apkDescription("更新描述信息(取服务端返回数据)") //省略一些非必须参数... build() } manager?.download() ```
Java ```java DownloadManager manager = new DownloadManager.Builder(this) .apkUrl("your apk url") .apkName("appupdate.apk") .smallIcon(R.mipmap.ic_launcher) //设置了此参数,那么内部会自动判断是否需要显示更新对话框,否则需要自己判断是否需要更新 .apkVersionCode(2) //同时下面三个参数也必须要设置 .apkVersionName("v4.2.2") .apkSize("7.7MB") .apkDescription("更新描述信息(取服务端返回数据)") //省略一些非必须参数... .build(); manager.download(); ```

第三步:混淆打包,只需保持ActivityService不混淆

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service

使用技巧

//旧版本apk的文件保存地址
val result = ApkUtil.deleteOldApk(this, "${externalCacheDir?.path}/appupdate.apk")
class MyDownload : BaseHttpDownloadManager() {}

常见问题

 android:configChanges="orientation|screenSize|keyboardHidden"

版本更新记录

赞赏

如果这个库有帮助到你并且你很想支持库的后续开发和维护,那么你可以扫描下方二维码随意打赏我,我将不胜感激赞赏列表