All Projects → NewHuLe → Appupdate

NewHuLe / Appupdate

🔥原生DownloadManager实现版本的检测更新,完美适配Android M/N/O/P/Q,兼容AndroidX

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Appupdate

android-downloader
An powerful download library for Android.
Stars: ✭ 375 (+200%)
Mutual labels:  downloadmanager
Thindownloadmanager
To download files and to avoid using DOWNLOAD_WITHOUT_NOTIFICATION permission if you are using Android's DownloadManager in your apps.
Stars: ✭ 762 (+509.6%)
Mutual labels:  downloadmanager
Uget Chrome Wrapper
Moved to https://github.com/ugetdm/uget-integrator and https://github.com/ugetdm/uget-extension
Stars: ✭ 74 (-40.8%)
Mutual labels:  downloadmanager
QuietDownload
🔥下载可以很简单。单任务下载、多任务下载、暂停全部任务、自动恢复下载、断点续传、任何一个界面监听进度等
Stars: ✭ 42 (-66.4%)
Mutual labels:  downloadmanager
Androiddownloader
An powerful download library for Android.
Stars: ✭ 287 (+129.6%)
Mutual labels:  downloadmanager
Download Manager
Download Manager with features like in IDM
Stars: ✭ 36 (-71.2%)
Mutual labels:  downloadmanager
DownloadManagerPlus
Using faster and easier than Android Download Manager
Stars: ✭ 80 (-36%)
Mutual labels:  downloadmanager
Rxdownloader
An Rx wrapper for Download Manager in Android
Stars: ✭ 107 (-14.4%)
Mutual labels:  downloadmanager
Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (+4176.8%)
Mutual labels:  downloadmanager
Fetch
The best file downloader library for Android
Stars: ✭ 1,124 (+799.2%)
Mutual labels:  downloadmanager
VandaDownloader
强大的下载特性支持,更加清晰的特性设计。
Stars: ✭ 25 (-80%)
Mutual labels:  downloadmanager
dl
Command-line file downloader tool
Stars: ✭ 39 (-68.8%)
Mutual labels:  downloadmanager
Downloader
Downloader for android with pause, resume, cancel, queue options
Stars: ✭ 40 (-68%)
Mutual labels:  downloadmanager
electron-download-manager
Manage downloadItems from Electron's BrowserWindows without user interaction, allowing single file download and bulk downloading
Stars: ✭ 113 (-9.6%)
Mutual labels:  downloadmanager
Updater
基于DownloadManager封装的更新器,使用超简单!
Stars: ✭ 82 (-34.4%)
Mutual labels:  downloadmanager
scihub
Copernicus Sentinel Science Hub rolling archive downloader
Stars: ✭ 28 (-77.6%)
Mutual labels:  downloadmanager
Wp Downloadmanager
Adds a simple download manager to your WordPress blog.
Stars: ✭ 11 (-91.2%)
Mutual labels:  downloadmanager
Android Download Manager Pro
Android/Java download manager library help you to download files in parallel mechanism in some chunks.
Stars: ✭ 1,568 (+1154.4%)
Mutual labels:  downloadmanager
Docker Jdownloader
JDownloader 2 Docker Image (Multiarch) - Passed 40M Downloads
Stars: ✭ 85 (-32%)
Mutual labels:  downloadmanager
Mzdownloadmanager
This download manager uses NSURLSession api to download files. It can download multiple files at a time. It can download large files if app is in background. It can resume downloads if app was quit.
Stars: ✭ 1,061 (+748.8%)
Mutual labels:  downloadmanager

Android版本更新(最新版本v1.7)

原生DownloadManager实现版本的检测更新,可采取静默模式,非静默模式(进度框),是否强制更新、是否MD5校验、完美适配Android M/N/O/P/Q

功能介绍

  • 兼容AndroidX,项目已经迁移到Androidx
  • 适配Android M,处理关于存储文件的运行时权限
  • 适配Android N,安卓增强了文件访问的安全性,利用FileProvider来访问文件
  • 适配Android O,增加未知来源应用的安装提示
  • 适配Android Q,关于Q增加沙箱,改变了应用程序访问设备外部存储上文件的方式如SD卡
  • 支持静默下载,下载完毕自动弹出安装
  • 支持下载进度监听与下载失败提示
  • 支持强制更新,未更新无法使用应用
  • 支持MD5文件防篡改及完整性校验
  • 支持自定义更新提示界面
  • 若系统不支持DownloadManager则自动切换到浏览器下载
  • 下载失败支持通过选择系统浏览器下载

效果图

关于使用

  • 工程build.gradle目录添加
	allprojects {
		repositories {
			...
			maven { url 'https://www.jitpack.io' }
		}
	}
  • 项目build.gradle文件添加
 	dependencies {
	       implementation 'com.github.NewHuLe:AppUpdate:v1.7'
	}
  • 代码调用示例,简单写法,更多配置参考demo
        AppUpdate appUpdate = new AppUpdate.Builder()
                //更新地址(必须)
                .newVersionUrl("https://imtt.dd.qq.com/16891/8EC4E86B648D57FDF114AF5D3002C09B.apk")
                // 版本号(非必须)
                .newVersionCode("v1.7")
                // 文件大小(非必须)
                .fileSize("5.8M")
                // 更新内容(非必填,默认“1.用户体验优化\n2.部分问题修复”)
                .updateInfo("1.用户体验优化\n2.部分问题修复")
                .build();
        new UpdateManager().startUpdate(MainActivity.this, appUpdate);
  • 更高级调用写法(详细的配置请查看AppUpdate参数):
        // 更新的数据参数
        AppUpdate appUpdate = new AppUpdate.Builder()
                //更新地址(必传)
                .newVersionUrl("https://imtt.dd.qq.com/16891/apk/5CACCB57E3F02E46404D27ABAA85474C.apk")
                // 版本号(非必填)
                .newVersionCode("v1.6")
		//【建议】:自定义布局在静默下载模式下使用
                // 通过传入资源id来自定义更新对话框,注意取消更新的id要定义为btnUpdateLater,立即更新的id要定义为btnUpdateNow(非必填)
                .updateResourceId(R.layout.dialog_update)
                // 更新的标题,弹框的标题(非必填,默认为应用更新)
                .updateTitle(R.string.update_title)
                // 更新内容的提示语,内容的标题(非必填,默认为更新内容)
                .updateContentTitle(R.string.update_content_lb)
                // 更新内容(非必填,默认“1.用户体验优化\n2.部分问题修复”)
                .updateInfo("1.用户体验优化\n2.部分问题修复")
                // 文件大小(非必填)
                .fileSize("5.8M")
                // 保存文件路径(默认前缀:Android/data/包名/files/ 文件名:download)
                .savePath("/A/B")
                //是否采取静默下载模式(非必填,只显示更新提示,后台下载完自动弹出安装界面),否则,显示下载进度,显示下载失败
                .isSilentMode(false)
                //是否强制更新(非必填,默认不采取强制更新,否则,不更新无法使用)
                .forceUpdate(0)
                 //文件的MD5值,默认不传,如果不传,不会去验证md5(非静默下载模式生效,若有值,且验证不一致,会启动浏览器去下载)
                .md5("2d9feb595d3aa093e9ee49412d2c8805")
                .build();
        new UpdateManager().startUpdate(MainActivity.this, appUpdate);
  • 注意自v1.7版本后,无需再自己监听强制退出与未知来源权限的控制,均已经迁移到库中

更新日志

  • v1.7
    1.简化集成步骤,强制退出与未知来源均已迁移到library
  • v1.6
    1.混淆已迁移至aar,依赖的项目无需混淆
    2.优化一加手机在Android Q上下载不稳定情况
  • v1.5
    1.修复部分机型(目前只发现Nexus 6P)下载无反应,这是系统下载默认通过计量网络连接的bug
  • v1.4
    1.非静默下载模式下,按下Home键,此时系统会调用onSaveInstance(),对弹框造成的影响优化
    2.关于下载进度可能出现负值优化,由于大文件进度换算超出了int范围,改用long类型
    3.若本地已经下载最新apk文件,点击立即更新,覆盖安装时,关闭提醒框
    4.使用Java7新的try-with-resources ,凡是实现了AutoCloseable接口的可自动close(),所以无需在手动close()
    5.库内部其他健壮性优化
  • v1.3
    1.非静默下载模式下,将下载进度条与下载失败融合进更新提醒框,不在单独开启下载进度弹框与下载失败弹框
    2.自动检测本地是否有最新的安装文件,如果有直接安装,无需下载
    3.库内部优化(AppUpdateUtils更名为UpdateManager)
  • v1.2
    1.更改通知栏的默认下载显示,由手机系统决定通知栏是否显示下载进度。
  • v1.1
    1.优化静默下载
    2.版本号与文件大小改为非必传
  • v1.0
    1.初次提交

License

Copyright 2019 胡乐

Licensed 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://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed 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 and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].