Andorid|UpdateAppUtils软件快速更新框架的使用方法

实现效果

效果图

添加依赖

repositories {
   jcenter()
}

根据自己使用的APP的框架选用不同的包引入:

dependencies {
    // For developers using AndroidX in their applications
    implementation 'com.teprinciple:updateapputilsx:2.3.0'
 
    // For developers using the Android Support Library
    implementation 'com.teprinciple:updateapputils:2.3.0'
}

声明权限

AndroidManifest.xml文件中声明所需要的动态权限:

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>

初始化

这三个变量可通过服务器实现从数据库中获取,本文只是写死了地址还没有实现服务端功能…

首先需要定义三个全局变量,也可以选择直接写到方法里:

    //APK的地址
    private String apkUrl = "此处填写APK地址";
    //更新弹窗标题
    private String updateTitle = "发现新版本";
    //更新弹窗简介
    private String updateContent = "1、...\n2、...\n3、更多功能等你探索";

Activity中的*onCreate()*方法中初始化框架:

		//初始化
        UpdateAppUtils.init(this);

实现功能

可以写进一个方法来调用也可直接写在Activity中的*onCreate()*方法中实现:

    public void UpdateApp(){

        //更新配置信息
        UpdateConfig updateConfig = new UpdateConfig();
        //检查Wifi状态
        updateConfig.setCheckWifi(true);
        //开启MD5校验
        updateConfig.setNeedCheckMd5(true);
        //开启下载进度条
        updateConfig.setAlwaysShowDownLoadDialog(true);
        //关闭通知栏进度条
        updateConfig.setShowNotification(false);
        //关闭下载提示框
        updateConfig.setShowDownloadingToast(false);

        //UI配置信息
        UiConfig uiConfig = new UiConfig();
        uiConfig.setUiType(UiType.PLENTIFUL);

        //功能Api
        UpdateAppUtils
                .getInstance()
                .apkUrl(apkUrl)
                .updateTitle(updateTitle)
                .updateContent(updateContent)
                .uiConfig(uiConfig)
                .updateConfig(updateConfig)
                .setMd5CheckResultListener(new Md5CheckResultListener() {
                    @Override
                    public void onResult(boolean result) {
                        if(result == false) {
                            Toast.makeText(MainActivity.this, "Md5检验未通过,请晚些再更新!", Toast.LENGTH_SHORT).show();
                        }
                    }
                })
                .update();
    }

框架其余Api说明:

1、UpdateAppUtils Api

api说明默认值必须设置
funapkUrl(apkUrl:String)更新包服务器urlnulltrue
funupdate()UpdateAppUtils入口-true
funupdateTitle(title:String)更新标题版本更新啦!false
funupdateContent(content:String)更新内容发现新版本,立即更新false
funupdateConfig(config:UpdateConfig)更新配置查看源码false
funuiConfig(uiConfig:UiConfig)更新弹窗UI配置查看源码false
funsetUpdateDownloadListener()下载过程监听nullfalse
funsetMd5CheckResultListener()md5校验结果回调nullfalse
funsetOnInitUiListener()初始化更新弹窗UI回调nullfalse
fundeleteInstalledApk()删除已安装的apk-false
funsetCancelBtnClickListener()暂不更新按钮点击监听-false
funsetUpdateBtnClickListener()立即更新按钮点击监听-false

2、UpdateConfig:更新配置说明

属性说明默认值
isDebug是否输出【UpdateAppUtils】为Tag的日志true
force是否强制更新,强制时无取消按钮false
apkSavePathapk下载存放位置包名目录
apkSaveNameapk保存文件名项目名
downloadBy下载方式DownLoadBy.APP
needCheckMd5是否需要校验apk签名md5false
checkWifi检查是否wififalse
isShowNotification是否显示通知栏进度true
notifyImgRes通知栏图标项目icon
serverVersionName服务器上apk版本名
serverVersionCode服务器上apk版本号
alwaysShow是否每次显示更新弹窗(非强更)true
thisTimeShow本次是否显示更新弹窗(非强更)false
alwaysShowDownLoadDialog是否需要显示更新下载进度弹窗(非强更)false
showDownloadingToast开始下载时是否显示Toasttrue

3、UiConfig:更新弹窗Ui配置说明

属性说明默认值
uiTypeui模板UiType.SIMPLE
customLayoutId自定义布局idfalse
updateLogoImgRes更新弹窗logo图片资源id-
titleTextSize标题字体大小16sp
titleTextColor标题字体颜色-
contentTextSize内容字体大小14sp
contentTextColor内容字体颜色-
updateBtnBgColor更新按钮背景颜色-
updateBtnBgRes更新按钮背景资源id-
updateBtnTextColor更新按钮字体颜色-
updateBtnTextSize更新按钮文字大小14sp
updateBtnText更新按钮文案立即更新
cancelBtnBgColor取消按钮背景颜色-
cancelBtnBgRes取消按钮背景资源id-
cancelBtnTextColor取消按钮文字颜色-
cancelBtnTextSize取消按钮文字大小14sp
cancelBtnText取消按钮文案暂不更新
downloadingToastText开始下载时的Toast提示文字更新下载中…
downloadingBtnText下载中下载按钮以及通知栏标题前缀,进度自动拼接在后面下载中
downloadFailText下载出错时,下载按钮及通知栏标题下载出错,点击重试

所有代码

注释已经写的很详细了,其余就不做赘述了,以下是全部代码:

package com.example.updatedemo;

import androidx.appcompat.app.AppCompatActivity;
import constant.UiType;
import listener.Md5CheckResultListener;
import model.UiConfig;
import model.UpdateConfig;
import update.UpdateAppUtils;

import android.os.Bundle;
import android.widget.Toast;

import org.jetbrains.annotations.NotNull;

/**
 *
 * @author 纸鱼
 * @since 2022-11-07 22:50
 *
 */
public class MainActivity extends AppCompatActivity {

    //APK的地址
    private String apkUrl = "此处填写APK地址";
    //更新弹窗标题
    private String updateTitle = "发现新版本";
    //更新弹窗简介
    private String updateContent = "1、...\n2、...\n3、更多功能等你探索";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //初始化
        UpdateAppUtils.init(this);

        UpdateApp();

    }

    public void UpdateApp(){

        //更新配置信息
        UpdateConfig updateConfig = new UpdateConfig();
        //检查Wifi状态
        updateConfig.setCheckWifi(true);
        //开启签名文件MD5校验
        updateConfig.setNeedCheckMd5(true);
        //开启下载进度条
        updateConfig.setAlwaysShowDownLoadDialog(true);
        //关闭通知栏进度条
        updateConfig.setShowNotification(false);
        //关闭下载提示框
        updateConfig.setShowDownloadingToast(false);

        //UI配置信息
        UiConfig uiConfig = new UiConfig();
        uiConfig.setUiType(UiType.PLENTIFUL);

        //功能Api
        UpdateAppUtils
                .getInstance()
                .apkUrl(apkUrl)
                .updateTitle(updateTitle)
                .updateContent(updateContent)
                .uiConfig(uiConfig)
                .updateConfig(updateConfig)
                .setMd5CheckResultListener(new Md5CheckResultListener() {
                    @Override
                    public void onResult(boolean result) {
                        if(result == false) {
                            Toast.makeText(MainActivity.this, "Md5检验未通过,请晚些再更新!", Toast.LENGTH_SHORT).show();
                        }
                    }
                })
                .update();
    }
}

结语

作者给的Api表格里的功能以及UI样式很全,可根据需要自行定制,如果对UI风格不满意可以去作者的GitHub上看自定义UI的教程。
UpdateAppUtils框架GitHub地址:https://github.com/teprinciple/UpdateAppUtils

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 扩边软件是一种可以帮助用户改变或扩展其 Android 设备屏幕边框大小的应用程序。通常情况下,Android 设备的屏幕边框默认设置为固定大小,而某些用户可能希望根据自己的偏好进行调整。 使用 Android 扩边软件,用户可以轻松地调整屏幕的边框大小,使其更宽或更窄,以适应自己的需求。这种软件提供了一种简单而方便的方法来调整边框的大小,而不需要进行复杂的设置或改变设备的系统设置。 通过调整边框大小,Android 扩边软件可以改善用户体验。例如,对于那些希望在阅读电子书、浏览网页或观看视频时获得更大屏幕空间的用户来说,扩大屏幕边框可能特别有用。同时,一些用户可能喜欢较窄的边框,以便更多地展示屏幕内容。 此外,Android 扩边软件还可以帮助人们应对一些视觉障碍。有些用户可能由于视力问题无法清晰地看到边框上的内容,通过扩大边框的大小,他们可以更轻松地阅读和使用设备。 需要注意的是,使用 Android 扩边软件可能会对设备的性能产生一些影响。如果边框的大小过大,可能会影响设备的流畅性和响应速度。因此,在调整边框大小时,用户需要权衡自己的偏好和设备的性能。 总的来说,Android 扩边软件可以让用户根据个人喜好和需求,自定义调整Android设备的屏幕边框大小,提供更优化的用户体验和更好的视觉效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值