All Projects → xingda920813 → Xdupdate

xingda920813 / Xdupdate

Licence: mit
Android 自动更新 / 阿里云 OSS 一键上传更新 (Android auto update / upload update by aliyun OSS)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Xdupdate

aliyun-oss-laravel
Laravel 的 Aliyun OSS 扩展, 支持 Laravel 9. Alibaba Cloud Object Storage Service For Laravel.
Stars: ✭ 91 (-1.09%)
Mutual labels:  oss, aliyun
tiny-oss
A tiny aliyun oss sdk for browser which focus on uploading.
Stars: ✭ 25 (-72.83%)
Mutual labels:  oss, aliyun
vue-oss
基于vue2+plupload的阿里云OSS上传组件(支持断点续传,可上传size>100M的文件)
Stars: ✭ 33 (-64.13%)
Mutual labels:  oss, aliyun
ali-img
阿里云图像处理工具包
Stars: ✭ 16 (-82.61%)
Mutual labels:  oss, aliyun
Aliyun Sdk Js
阿里云 SDK for Javascript,支持在浏览器和 Nodejs 环境使用,支持大部分阿里云服务。
Stars: ✭ 727 (+690.22%)
Mutual labels:  aliyun, oss
laravel-admin
LaravelAdmin是基于PHP开发的基础管理后台系统,做到开箱即用,为新项目开发省去了基础功能开发的步骤;此系统采用前后端分离模式,后端使用Laravel,前端使用vue;主要包含:登录、注销、可视化数据大屏、管理员、角色管理、菜单管理、权限管理、错误日志、登录日志、访问日志、获取服务器CPU使用率、内存使用率等功能。后端主要使用Artisan命令行、Jobs消息队列、 Rules验证规则、Restful API、Composer扩展包、Redis秒杀、Extend自定义扩展类:微信授权、钉钉告警推送、MongoDB、阿里云OSS、七牛云存储、七牛云直播、php-jwt TOKEN、Phpoffice、MySql数据库字典、Elasticsearch等技术。
Stars: ✭ 45 (-51.09%)
Mutual labels:  oss, aliyun
aliyun-oss-wordpress
使用阿里云对象存储 OSS 作为附件存储空间的WordPress插件。QQ交流群:887595381
Stars: ✭ 56 (-39.13%)
Mutual labels:  oss, aliyun
Ali Oss
Aliyun OSS(open storage service) JavaScript SDK for the browser and Node.js
Stars: ✭ 1,579 (+1616.3%)
Mutual labels:  aliyun, oss
Aliyunoss
阿里云 OSS 官方 SDK 的 Composer 封装,支持任何 PHP 项目,包括 Laravel、Symfony、TinyLara 等等。
Stars: ✭ 481 (+422.83%)
Mutual labels:  aliyun, oss
aliyun-oss-deploy
🙈 一个 nodejs 命令行工具,用于部署静态资源到 aliyun oss,支持代码方式和 CLI 方式!
Stars: ✭ 31 (-66.3%)
Mutual labels:  oss, aliyun
xayah
WEB文件管理器
Stars: ✭ 19 (-79.35%)
Mutual labels:  oss, aliyun
Aliyun Oss
Aliyun oss for Laravel5, also support flysystem adapter
Stars: ✭ 31 (-66.3%)
Mutual labels:  aliyun, oss
Aliyungo
Go SDK for Aliyun (Alibaba Cloud) - Golang API for ECS, OSS, DNS, SLB, RDS, RAM, MNS, STS, SLS, MQ, Push, OpenSearch, DM, Container Service etc.
Stars: ✭ 756 (+721.74%)
Mutual labels:  aliyun, oss
Waliyun
阿里云Node.js Open API SDK(完整版)
Stars: ✭ 40 (-56.52%)
Mutual labels:  aliyun, oss
Kivy Apk
Vbox+Ubuntu16.04打包生成kivy apk
Stars: ✭ 74 (-19.57%)
Mutual labels:  apk
Oss Spring Boot Starter
兼容S3协议的通用文件存储工具类
Stars: ✭ 81 (-11.96%)
Mutual labels:  oss
Ueditor Plus
Create By Xie Xianbin. RePackage ueditor for spring and other object storage service.
Stars: ✭ 71 (-22.83%)
Mutual labels:  oss
Rubel
Rubel is a cms built with Laravel and React.
Stars: ✭ 70 (-23.91%)
Mutual labels:  oss
Letscertbot
Let's Certbot is a tool builds automated scripts base on Certbot for obtaining, renewing, deploying SSL certificates.
Stars: ✭ 84 (-8.7%)
Mutual labels:  aliyun
Backgroundupdate
后台更新APP(两句代码实现)
Stars: ✭ 80 (-13.04%)
Mutual labels:  apk

XDUpdate

Android 自动更新 / 阿里云 OSS 一键上传更新

  • 支持Android 8.1,不会因FileUriExposedException而无法安装下载的APK

  • JSON、APK、Map文件的URL需要支持外链,即可以被直接访问,可考虑放在Git仓库、OSS或自己的服务器上

Alt text

Alt text

Alt text

引入

build.gradle中添加

compile 'com.xdandroid:xdupdate:+'

自动更新

1.准备描述更新信息的JSON文件

{
"versionCode":4,                          //新版本的versionCode,int型
"versionName":"1.12",                     //新版本的versionName,String型
"url":"http://contoso.com/app.apk",       //APK下载地址,String型
"note":"Bug修复",                         //更新内容,String型
"md5":"D23788B6A1F95C8B6F7E442D6CA7536C", //32位MD5值,String型
"size":17962350                           //大小(字节),int型
}

2.构建XdUpdateAgent对象

XdUpdateAgent updateAgent = new XdUpdateAgent
.Builder()
.setDebugMode(false)	//是否显示调试信息(可选,默认:false)
.setUpdateBean(XdUpdateBean updateBean)	//设置通过其他途径得到的XdUpdateBean(2选1)
.setJsonUrl("http://contoso.com/update.json")	//JSON文件的URL(2选1)
.setShowDialogIfWifi(true)	//设置在WiFi下直接弹出AlertDialog而不使用Notification(可选,默认:false)
.setOnUpdateListener((needUpdate, updateBean) -> {
	//取得更新信息JSON后的回调(可选),回调在主线程,可执行UI操作;
	//needUpdate为是否需要更新,updateBean为JSON对应的数据结构
	if (!needUpdate) Toast.makeText(context,"您的应用为最新版本",Toast.LENGTH_SHORT).show();
})
.setDownloadText("立即下载")	//可选,默认为左侧所示的文本
.setInstallText("立即安装(已下载)")
.setLaterText("以后再说")
.setHintText("版本更新")
.setDownloadingText("正在下载")
.setIconResId(R.mipmap.ic_launcher)	//设置在通知栏显示的通知图标资源ID(可选,默认为应用图标)
.build();

3.检查更新

updateAgent.update(getActivity());

适用于 App 入口的自动检查更新。默认策略下:

1.若用户选择“以后再说”或者划掉了通知栏的更新提示,则当天该版本不再提示更新,防止当天每次打开应用时都提示导致用户不胜其烦;

2.在任何网络环境下,均推送一条通知栏更新提示,点击通知后弹出对话框,防止直接弹框带来不好的用户体验。

可调用 XdUpdateAgent.Builder.setShowDialogIfWifi(true) 设置在 WiFi 下直接弹出更新提示框 (AlertDialog) 而不使用 Notification 的形式。

updateAgent.forceUpdate(getActivity());

适用于应用“设置”页面的手动检查更新。此方法无视上面的 2 条默认策略,如果有更新,总是对用户进行提示,且总是使用提示框 (AlertDialog) 的形式。

4.若不想使用JSON文件,可传入由其他途径得到的XdUpdateBean

	XdUpdateAgent.Builder.setUpdateBean(XdUpdateBean updateBean);

可使用第三方推送服务的自定义消息/透传功能,接收到服务端推送过来的JSON(String)后,解析成一个XdUpdateBean,传入上述方法,即可使用推送带过来的JSON进行更新提示。

注意不是普通消息,这样会直接在通知栏上显示内容,不会进到自定义的代码处理块。

阿里云 OSS 一键上传更新

位于/XdUploadClient/下,XdUpdateClient.jar为程序主体,XdUpdateClient.cmd为Windows下使用的上传脚本,XdUpdateClient.sh为Linux下使用的上传脚本,config.properties为配置文件,其他文件为源码。

一般使用只需把上述 4 个文件放到一个目录(下面称为工作目录)下即可。

1.将更新过的APK命名为 (包名).apk,放到工作目录下

2.编辑config.properties配置文件

packageName = com.xdandroid.myproject		//包名
releaseNote = Bug修复		//更新内容
cdnDomain = http://my-project.oss-cn-shenzhen.aliyuncs.com/		//文件URL的主机名部分(斜线后置)
endpoint = http://oss-cn-shenzhen.aliyuncs.com		//OSS的Endpoint(无斜线)
accessKeyId = xXxxxXxXxxXxxxxX		//OSS的AccessKeyId
accessKeySecret = xXxxxxxXXxxXxxxXxxXxxXXXXxxXxx		//OSS的AccessKeySecret
bucketName = my-project		//OSS的BucketName
pathPrefix = download/		//文件URL的路径部分(不含文件名, 斜线后置)

上传后的APK安装包的URL为 : cdnDomain + pathPrefix + packageName + ".apk"

上传后的JSON文件的URL为 : cdnDomain + pathPrefix + packageName + ".json"

3.将JSON文件的URL填入XdUpdateAgent.Builder的setJsonUrl(String jsonUrl)

4.运行XdUpdateClient.cmd/XdUpdateClient.sh,等待上传完成

Linux系统下,XdUpdateClient.sh需具有"可执行"文件系统权限。

5.指定使用的配置文件(可选)

运行XdUpdateClient.jar时可以带一个参数,传入配置文件的路径,即可使用该配置文件,而不是默认的config.properties。

	java -jar XdUploadClient.jar my-project.properties

若不带参数运行XdUpdateClient.jar,将使用与XdUpdateClient.jar同目录下的config.properties。

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].