GithubHelp home page GithubHelp logo

clearboy88 / appupdate-2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azhon/appupdate

0.0 0.0 0.0 30.28 MB

Android App update library. Android版本更新库,简单、可随意定制

License: Apache License 2.0

Java 100.00%

appupdate-2's Introduction

扫码加入QQ群(群号:828385813)

目录

效果图

     

功能介绍

  • 支持AndroidX
  • 支持后台下载
  • 支持强制更新
  • 支持自定义下载过程
  • 支持 设备 >= Android M 动态权限的申请
  • 支持通知栏进度条展示(或者自定义显示进度)
  • 支持Android N
  • 支持Android O
  • 支持Android P
  • 支持Android Q
  • 支持中/英文双语(国际化)
  • 支持自定义内置对话框样式
  • 支持取消下载(如果发送了通知栏消息,则会移除)
  • 支持下载完成 打开新版本后删除旧安装包文件
  • 使用HttpURLConnection下载,未集成其他第三方框架

Demo下载体验

点击下载Demo进行体验

使用步骤

第一步:

添加maven仓库地址
  • gradle:7.0.0以下在root/build.gradle添加如下代码
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  • gradle:7.0.0或以上在setting.gradle中添加如下代码
dependencyResolutionManagement {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
app/build.gradle添加依赖
implementation 'com.github.azhon:AppUpdate:3.0.6'

第二步:创建DownloadManager,更多用法请查看这里示例代码

UpdateConfiguration configuration = new UpdateConfiguration()

DownloadManager manager = DownloadManager.getInstance(this);
manager.setApkName("appupdate.apk")
        .setApkUrl("https://raw.githubusercontent.com/azhon/AppUpdate/main/apk/appupdate.apk")
        .setSmallIcon(R.mipmap.ic_launcher)
        //非必须参数
        .setConfiguration(configuration)
        //设置了此参数,那么会自动判断是否需要更新弹出提示框
        .setApkVersionCode(2)
        .setApkDescription("更新描述信息(取服务端返回数据)")
        .download();

如果需要显示内置的对话框那么你需要调用manager.setApkVersionCode()将新版本的versionCode填进去

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

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

使用技巧

  • 框架内部支持中/英文 国际化(其他语言只需要在对应的string.xml中取相同的名字即可)
  • 如果你需要修改框架内部的一些文字,你只需要在string.xml中取相同的名字即可以覆盖框架内设定的
  • 查看版本库中的Log只需要过滤AppUpdate开头的Tag
  • 支持校验安装包的MD5避免重复下载,只需要DownloadManager设置安装包的MD5即可
  • 下载完成 打开新版本后删除旧安装包文件,实现思路请移步此处
//旧版本apk的文件保存地址
boolean b = ApkUtil.deleteOldApk(this, getExternalCacheDir().getPath() + "/appupdate.apk");
  • 温馨提示:升级对话框中的内容是可以上下滑动的哦!
  • 如果需要实现自己一套下载过程,只需要继承BaseHttpDownloadManager 并使用listener更新进度
public class MyDownload extends BaseHttpDownloadManager {}

版本更新记录

赞赏

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

appupdate-2's People

Contributors

azhon avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.