android 检查更新逻辑,《Android APP应该有的东西》之功能篇:版本检测更新

《Android APP该有的东西》之功能篇:版本检测更新

自从友盟的自动更新下线之后,一大批app选择了自己写更新逻辑。是的,这里的逻辑并不复杂,完全可以自己写,但是不复杂不代表不麻烦,像是否强制更新、是否能开启循环检测等功能,跟后台配合起来就显得麻烦了。

后来发现了腾讯的Bugly,他是这么介绍的:升级功能是专为App的灰度升级而开发的组件,在bugly内测页面配置好App的更新策略,策略指定的老版本App在启动时会自动检测更新并提示升级,为团队的应用分发,灰度内测提供一站式解决方案。

本文就自己写更新逻辑和集成腾讯bugly自动更新记录一下说明和代码,如果有朋友恰好需要,又恰好看到了,又恰好用上了,又恰好解决了问题,算是功德一件咯~

首先是跟后台配合的更新

讲思路:一般的解决思路都是这样,进入app就开始检测更新,然后弹出Dialog告诉用户,用户点击更新按钮,开启线程下载文件,同时显示下载进度,下载完成自动弹出安装界面,用户安装完成更新。

检测更新涉及到跟后台的交互,可用json和xml说明新版本信息。

其中:

必须包括的内容有:versionCode版本号、更新说明、下载地址

可能包含的信息有:MD5值、新版本截图等

请求拿到数据之后对比本地版本号,开始后面的操作。

此处封装了一个完整的类UpdateManager来解决更新问题,以下为逻辑代码,详细实现参看文末Demo

public class UpdateManager {

//构造方法

public UpdateManager(Context context) {

this.mContext = context;

}

//检测更新

public void checkUpdate() {

if (isUpdate()) {

// 显示提示对话框

showNoticeDialog();

}

}

//判断更新

private boolean isUpdate() {}

//显示软件更新对话框

private void showNoticeDialog() {

//下载

//显示下载进度

}

//安装

private void installApk() {}

}

然后只需要在想使用的类里面new出UpdateManage实例对象,在想使用的地方调用checkUpdate方法。

这里面有很多比较繁琐的内容,比如发放强制更新版本,绘制美观的更新界面,在状态栏的进度显示等等。

使用腾讯bugly自动更新

其实参看官方的应用升级SDK说明就很容易集成了,集成方式本身就很简单,教程也给得清楚明了。

这里也是给出思路:

1.集成jar包或者Gradle依赖,jar包下载和Gradle依赖的写法去官网看哇

2.在想要实现升级的地方配置:

Bugly.init(getApplicationContext(), "添加产品后出现的APPID", true);//bugly自动升级

3.Manifest文件加上更新弹窗的activity:

android:name="com.tencent.bugly.beta.ui.BetaActivity"

android:theme="@android:style/Theme.Translucent"/>

4.以及权限配置:

5.在bugly后台上传新版本的apk包,并配置更新策略。

这时候打开低于bugly后台apk里面的versionCode的旧应用,就会在三秒左右的时间里自动检测更新了。

最后的说明

自己写的要满足要求很麻烦,bugly算是给出来一个比较满意的方案,但是PM和UI一定要求某种效果的话,还是得自己去写这个升级策略了,终极定制化还是得落到自己手里的。

另外,Demo里面的targetSdkVersion是24,所以涉及到动态权限的问题,使用RxPermissions处理了一下。

Android-快速完成6.0运行时动态权限申请

【功能篇】扩展阅读

本文作者:paradoxie

个人主页:谢盒盒的小黑屋,不止说技术

简书地址:简书主页,专注说技术

github地址:paradoxie

转载请注明出处,蟹蟹!

-------我的梦想真的是做一条咸鱼!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Delphi中开发Android应用程序时,可以实现自动更新功能。下面我将简要介绍相关步骤。 第一步,需要准备应用的新版本。可以将新版本应用上传到服务器或者通过其他方式提供给用户下载。 第二步,使用Delphi提供的网络请求组件,例如TIdHTTP,连接到服务器并检查是否有新版本的应用。可以通过向服务器发送请求,在返回的数据中包含应用的版本信息。 第三步,将返回的服务器数据与当前设备上安装的应用版本进行比较。如果服务器提供的新版本号大于当前版本号,则表示存在新版本。 第四步,如果有新版本,则向用户提示更新。可以通过展示一个对话框来通知用户有新版本可供下载和安装。 第五步,使用Delphi提供的下载组件,例如TDownloadURL,下载新版本应用的安装包。可以将下载的应用安装包保存到设备的指定目录中。 第六步,使用Delphi提供的安装API,例如PackageInstaller,自动安装新版本的应用。可以调用相应的安装方法来完成应用的安装。 最后,新版本应用安装完成后,可以向用户展示一个提示,告知更新成功,并提醒用户重新启动应用程序以应用变更生效。 总结起来,通过利用Delphi的网络请求、下载和安装组件,可以实现Android应用的自动更新功能,让用户能够及时获得应用的新版本。 ### 回答2: Delphi是一种用于开发应用程序的编程语言和集成开发环境。它支持多种操作系统平台,包括Windows、iOS和Android。 在Delphi中,我们可以使用一些方法来实现Android应用程序的自动更新。 首先,我们需要一个服务器来存储我们的应用程序文件和相关信息。当有新版本可用时,我们可以通过检查服务器上的版本号来确定是否需要更新。 其次,我们可以使用网络连接来下载新版本的应用程序文件。Delphi中有一些组件可以方便地实现文件下载功能,我们可以使用它们来实现自动更新。 在下载完成后,我们可以使用Delphi中的文件操作功能来安装新版本的应用程序。这可以通过使用Android操作系统提供的API来实现。 另外,我们还可以使用Delphi中的一些界面控件来显示更新进度和完成提示信息,以便用户了解当前的更新状态。 最后,为了确保应用程序的安全性,我们还可以在每次启动应用程序时进行版本检查,以便及时提醒用户更新。 综上所述,使用Delphi开发Android应用程序的自动更新功能是可行的。我们可以通过服务器、网络连接、文件操作和界面控件等功能来实现这一目标。这样,用户可以方便地获取到最新的应用程序版本,提升用户体验。 ### 回答3: Delphi的Android应用程序可以实现自动更新。在实现自动更新的过程中,我们可以采取以下几个步骤。 首先,需要在应用程序中添加一个检查更新功能。可以通过与服务器端的接口进行通信,获取应用程序的最新版本号和下载链接。 其次,当用户打开应用程序时,可以在后台自动检测应用程序的版本号,与服务器上的最新版本号进行比较。如果发现新版本,则弹出对话框提示用户更新应用程序。 接下来,用户点击更新按钮后,应用程序会自动下载最新版本的安装包。可以使用Delphi自带的下载组件或者第三方框架进行下载操作。 下载完成后,需要使用Delphi的安装包管理器来安装新版本的应用程序。可以使用ShellExecute函数来调用安装包管理器进行安装操作。 最后,完成安装后,用户可以重新打开应用程序,并开始使用最新版本的应用。 需要注意的是,在实现自动更新的过程中,要确保应用程序正确处理后台任务的执行和网络请求的逻辑。此外,还要确保从服务器端获取的最新版本的安全性和合法性,避免用户的设备受到不必要的风险。 总结起来,Delphi的Android应用程序可以通过与服务器端的通信,实现自动更新功能。通过检查最新版本号、下载安装包和安装新版本的步骤,用户可以方便地获取并使用最新版本的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值