Android开发笔记--检查更新app功能

这篇博客详细介绍了如何在Android应用中实现检查更新的功能,包括从用户触发更新检查,到对比版本信息,下载新版本,直至最终更新的完整流程。作者强调了检查更新的核心逻辑,如获取服务器的JSON数据,解析并比较版本号,以及如何处理下载和更新操作。此外,还提供了MyApplication类的使用,以及在manifest.xml中设置versionCode和versionName的重要性。
摘要由CSDN通过智能技术生成

android检查更新app是一个比较常见的功能。但是功能也比较单一。也是一块可以复用的代码。所以我这里想把自己检查更新的代码写下来。如果想使用直接移植过去就好。也不用重复开发了。

整个检查更新的大致过程

1.需要用户触发检查更新,所以界面里做个btn
2.用户点击btn后触发事件,弹出一个dialog或者toast提示用户是否是最新版本,需不需要更新
3.btn点击触发后,我们不能直接在UI层里做检查更新的操作。所以检查更新的逻辑就要开线程。这里的代码一想就是重点了吧。所以封装出来让btn onClick事件调用比较好。
4.检查更新的逻辑一般都是这样的:
第一,检查。
客户端内持有一个检查更新的url.这个url存在的目的就是为了检查是不是最新版本。一般这个url从服务端传来的内容包括:apk下载url、最新的apk版本、apk包名、apk更新信息。哈哈。是不是特别熟悉?传来的东西我们需要解析啦!那么,就要和后端的小伙伴商量定接口了吧?这里直接意淫一下,我们的接口定好了。服务器就用json提供上面说的四块儿内容。我们从url取出来就是json格式的数据了。拿回来以后直接json解析,解析完了就封装到本地的封装对象供我们使用。
既然是检查,那你拿回来最新版本的信息是不是跟本地有对比才有新旧之分?顺理成章。我们需要拿到本地的版本信息。上网查查有没有这么一个类啊?哎呦喂,果然有!就是PackageManager。好,通过它。我们有了本地的版本信息啦!下面就是一个核心而又简单的逻辑了。对比版本,if 后台版本>本地版本,那么下载后台版本(这里还不是更新呢)。else 告诉用户已经是最新版本。
第二,下载。
这一块想一想跟检查貌似以两块代码。嗯,我分开写,方便理思路。利用上面检查给的apk下载url下载到本地文件夹。下载的过程有时候需要给用户展示。所以这里用handler在ui展现一下下载过程。
第三,更新。
下载好了,剩下更新了。

MyApplication.java

这里写一个MyApplication类继承自Application,在里面获取一个全局的context,从此不再为拿不到context心烦了。

public class MyApplication extends Application {
   
    public static Context mContext;
    @Override
    public void onCreate() {
        super.onCreate();
        mContext = getApplicationContext();
    }
}

manifest.xml

versionCode versionName要写出来。是用来比较版本的。这里选用versionCode比较。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.zharma.updatetest"
    android:versionCode="1"
    android:versionName="1.0.0">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值