Kongzue的App更新框架

网友投稿 681 2022-10-18

Kongzue的App更新框架

Kongzue的App更新框架

KongzueUpdateSDK

Kongzue APP更新工具

引入KongzueUpdateSDK到您的项目

引入方法:

implementation 'com.kongzue.kongzueupdatesdk:kongzueupdatesdk:1.4.6'

重要说明

本工具无需权限,但在 targetSdkVersion >= 26 的情况时可能出现安装程序闪退但不报错的问题,系 Android 8.0 的新规定,请注意在您的应用中额外添加权限:

本工具提供-、安装步骤,因网络请求框架不确定,本工具不包含到您服务器的检查更新的网络请求,请在获取到相应的更新信息请您自行完成。本工具需要您提供的参数对照表如下:

字段含义是否必须
info更新日志可选
ver版本号可选
downloadUrl-必须
me(Context)上下文索引必须
packageName包名必须
onDownloadListener--可选

需要的主要权限:

准备

修改 AndroidManifest.xml 因 Android 7.0规范限定,我们需要创建一个共享目录来存储-的文件 请在 AndroidManifest.xml 中加入如下代码

...

接下来在 res 目录下创建文件夹 xml,并添加文件 file_path.xml:

使用前请先创建UpdateInfo,举例方法如下

updateInfo = new UpdateInfo().setInfo("1.上线了极力要求以至于无法再拒绝的收入功能\n" + "2.出行的二级分类加入了地铁、地铁、地铁\n" + "3.「关于」新增应用商店评分入口,你们知道怎么做\n" + "4.「关于」还加入了GitHub地址,情怀+1s\n" + "5.全新的底层适配框架,优化更多机型").setVer("v2.5").setDownloadUrl("http://paywhere.kongzue.com/downloads/paywhere.apk");

开发模式

建议在开发过程中打开日志输出方便排查故障

UpdateUtil.DEBUGMODE = true;

此设置也可跟您的项目的 BuildConfig.DEBUG 进行关联。

-并安装

使用如下语句创建-工具: me(Context) 传入上下文索引,一般使用本 Activity 即可 packageName 可直接使用 BuildConfig.APPLICATION_ID 获取:

UpdateUtil updateUtil = new UpdateUtil(MainActivity.this);

开始-(结束后自动会弹出安装界面):

updateUtil.doUpdate(updateInfo);

取消-

updateUtil.cancel();

手动执行安装

updateUtil.installApk(MainActivity.this);

关于-的监听

您可以通过以下代码监听-过程:

UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID) .setOnDownloadListener(new UpdateUtil.OnDownloadListener() { @Override public void onStart(long downloadId) { Log.i("MainActivity", "onStart: -开始"); } @Override public void onDownloading(long downloadId, int progress) { Log.i("MainActivity", "onStart: -中:"+progress); } @Override public void onSuccess(long downloadId) { Log.i("MainActivity", "onStart: -完成"); } @Override public void onCancel(long downloadId) { Log.i("MainActivity", "onStart: -取消"); } })

其他

可选的更新提示对话框 KongzueUpdateSDK 提供了一个可选使用的简易更新提示对话框,调用方法如下:

UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID) .showNormalUpdateDialog(updateInfo, "检查到更新(" + updateInfo.getVer() + ")", "从商店-", "直接-", "取消");

其中"从商店-"、"直接-"可传 null,若使用 null 则会隐藏该按钮。

额外的小工具:

UpdateUtil.isWifi() //判断Wifi状态UpdateUtil.isShowProgressDialog = true; //是否开启进度对话框(默认关闭)

额外设置:

UpdateUtil.updateTitle = (String) //设置更新提示标题UpdateUtil.progressDialogTitle = (String) //-进度提示框和通知标题UpdateUtil.progressDescription = (String) //-进度通知内容

强制更新

从 1.4.3 版本起,在使用 showNormalUpdateDialog 方法时新增了一个可选参数 isForced,当它传入 true 值时会开启强制更新。

-完成后 UpdateUtil 会自动弹出安装,但因为安装过程不可控,用户可能手动返回,因此强烈建议开发者在 OnDownloadListener 的 onSuccess 事件中对软件进行退出,或者弹出一个自己的对话框阻止用户操作。

额外的,UpdateUtil 公开了 installApk(Context) 方法,使用该方法可以手动重新启动安装,但此方法必须通过 UpdateUtil -完成后才可以使用。

常见问题

在 Pixel 或原生系统中,未报错情况下出现-进度一直处于 0% 的情况 请检查网络是否可以正常连接 Google 服务器,因 Google 会进行 APK 安全性校验,若无法连接至 Google 会导致卡 0% 却不报错的问题。

开源协议

Copyright KongzueUpdateSDKLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License at http://apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.

更新日志:

1.4.6:

解决内存泄漏的问题;

1.4.5:

新增日志开关 DEBUGMODE;修复一些问题;

1.4.4:

新增-时通知,详细设置请参考本文档。新增公开方法 cancel() 取消-;默认情况下不显示-进度对话框,但若使用 showNormalUpdateDialog(...) 默认更新提示对话框启动,则会显示更新进度对话框;新增方法 showNormalUpdateDialog(UpdateInfo) 用于快速显示更新提示

1.4.3:

更新提示对话框的"从商店-"、"直接-"按钮新增 null 文本判断,若使用 null 则会隐藏该按钮。新增强制更新属性,使用默认更新提示对话框开启该属性时无法取消,且对话框无法关闭;

1.4.2:

修复当 updateInfo.getVer() 为空时导致安装失败的问题;

1.4.1:

修复 onDownloadListener.onSuccess 不执行的问题;

1.4.0:

修复进度显示可能存在问题的bug;

1.3.0:

修复安卓8.0设备上安装崩溃的问题;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:反射工具类
下一篇:maven手动上传jar包示例及图文步骤过程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~