:running:BGAUpdate-Android:running:
============
## 功能介绍
- [x] 适配 Android 8.+ 系统
- [x] 检测新版 apk 文件是否已经下载过
- [x] RxJava1.x + Retrofit2.x 下载新版 apk 文件
- [x] RxBus 监听下载进度
- [x] 安装 apk 文件
- [x] 删除之前升级时下载的老的 apk 文件
## TODO
- [x] 支持 RxJava2.x
- [x] MD5 校验
## 效果图与示例 apk
![BGAUpdateDemo](https://cloud.githubusercontent.com/assets/8949716/21256759/256dce3e-c3af-11e6-98b3-373afcfa4cce.gif)
[点击下载 BGAUpdateDemo.apk](http://fir.im/BGAUpdateDemo) 或扫描下面的二维码安装
![BGABannerDemo apk文件二维](https://cloud.githubusercontent.com/assets/8949716/21256883/db23d4b2-c3af-11e6-9793-7ac5c6624e25.png)
## 使用
### 1.添加 Gradle 依赖
[![Download](https://api.bintray.com/packages/bingoogolapple/maven/bga-update/images/download.svg)](https://bintray.com/bingoogolapple/maven/bga-update/_latestVersion) bga-update 后面的「latestVersion」指的是左边这个 Download 徽章后面的「数字」,请自行替换。
```groovy
dependencies {
compile 'cn.bingoogolapple:bga-update:latestVersion@aar'
// 换成己工程里依赖的 rxjava 和 retrofit 版本
compile 'io.reactivex:rxjava:1.3.2'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
}
```
### 2.在 Activity 的 onCreate 方法中监听下载进度。demo 里引用了 rxlifecycle 这个库来防止 Activity 内存泄漏
```java
BGAUpgradeUtil.getDownloadProgressEventObservable()
.compose(this.<BGADownloadProgressEvent>bindToLifecycle())
.subscribe(new Action1<BGADownloadProgressEvent>() {
@Override
public void call(BGADownloadProgressEvent downloadProgressEvent) {
if (mDownloadingDialog != null && mDownloadingDialog.isShowing() && downloadProgressEvent.isNotDownloadFinished()) {
mDownloadingDialog.setProgress(downloadProgressEvent.getProgress(), downloadProgressEvent.getTotal());
}
}
});
```
### 3.下载新版 apk 文件。注意先申请 WRITE_EXTERNAL_STORAGE 权限
```java
@AfterPermissionGranted(RC_PERMISSION_DOWNLOAD)
public void downloadApkFile() {
String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
if (EasyPermissions.hasPermissions(this, perms)) {
// 如果新版 apk 文件已经下载过了,直接 return,此时不需要开发者调用安装 apk 文件的方法,在 isApkFileDownloaded 里已经调用了安装」
if (BGAUpgradeUtil.isApkFileDownloaded(mNewVersion)) {
return;
}
// 下载新版 apk 文件
BGAUpgradeUtil.downloadApkFile(mApkUrl, mNewVersion)
.subscribe(new Subscriber<File>() {
@Override
public void onStart() {
showDownloadingDialog();
}
@Override
public void onCompleted() {
dismissDownloadingDialog();
}
@Override
public void onError(Throwable e) {
dismissDownloadingDialog();
}
@Override
public void onNext(File apkFile) {
if (apkFile != null) {
BGAUpgradeUtil.installApk(apkFile);
}
}
});
} else {
EasyPermissions.requestPermissions(this, "使用 BGAUpdateDemo 需要授权读写外部存储权限!", RC_PERMISSION_DOWNLOAD, perms);
}
}
```
### 4.下次进入应用时删除之前升级时下载的老的 apk 文件
```
BGAUpgradeUtil.deleteOldApk();
```
## 代码是最好的老师,更多详细用法请查看 [demo](https://github.com/bingoogolapple/BGAUpdate-Android/tree/master/demo):feet:
## 贡献者
* [bingoogolapple](https://github.com/bingoogolapple)
* [chenfei0928](https://github.com/chenfei0928)
* [HYVincent](https://github.com/HYVincent)
## 关于我
| 新浪微博 | 个人主页 | 邮箱 | BGA系列开源库QQ群
| ------------ | ------------- | ------------ | ------------ |
| <a href="http://weibo.com/bingoogol" target="_blank">bingoogolapple</a> | <a href="http://www.bingoogolapple.cn" target="_blank">bingoogolapple.cn</a> | <a href="mailto:bingoogolapple@gmail.com" target="_blank">bingoogolapple@gmail.com</a> | ![BGA_CODE_CLUB](http://7xk9dj.com1.z0.glb.clouddn.com/BGA_CODE_CLUB.png?imageView2/2/w/200) |
## 打赏支持
如果您觉得 BGA 系列开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:
如果您目前正打算购买通往墙外的梯子,可以使用我的邀请码「YFQ9Q3B」购买 [Lantern](https://github.com/getlantern/forum),双方都赠送三个月的专业版使用时间:beers:
<p align="center">
<img src="http://7xk9dj.com1.z0.glb.clouddn.com/bga_pay.png" width="450">
</p>
## License
Copyright 2015 bingoogolapple
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.
没有合适的资源?快使用搜索试试~ 我知道了~
Android7.0版本升级安装
共54个文件
xml:16个
java:11个
png:10个
需积分: 50 15 下载量 93 浏览量
2018-11-29
15:19:34
上传
评论 5
收藏 146KB ZIP 举报
温馨提示
处理Android7.0版本升级和自动安装存在的问题,对权限的控制问题。
资源推荐
资源详情
资源评论
收起资源包目录
BGAUpdate-Android-master.zip (54个子文件)
BGAUpdate-Android-master
gradlew.bat 2KB
gradlew 5KB
gradle.properties 169B
sample
proguard-rules.pro 0B
src
main
res
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-hdpi
ic_launcher.png 3KB
values
colors.xml 208B
strings.xml 78B
styles.xml 892B
dimens.xml 211B
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xhdpi
ic_launcher.png 5KB
layout
dialog_downloading.xml 1KB
activity_main.xml 1KB
java
cn
bingoogolapple
update
sample
MainActivity.java 5KB
DownloadingDialog.java 1KB
AndroidManifest.xml 822B
build.gradle 1KB
library
gradle.properties 136B
src
main
res
xml
bga_upgrade_file_paths.xml 126B
java
cn
bingoogolapple
update
DownloadResponseBody.java 2KB
BGAUpgradeUtil.java 4KB
StorageUtil.java 3KB
BGADownloadProgressEvent.java 856B
RxUtil.java 1KB
AppUtil.java 1KB
Engine.java 4KB
AndroidManifest.xml 665B
consumer-proguard-rules.pro 1KB
build.gradle 842B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 230B
.gitignore 458B
CHANGELOG.md 296B
demo
proguard-rules.pro 0B
src
main
res
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-hdpi
ic_launcher.png 3KB
values
colors.xml 208B
strings.xml 76B
styles.xml 892B
dimens.xml 211B
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xhdpi
ic_launcher.png 5KB
layout
dialog_downloading.xml 1KB
activity_main.xml 1KB
java
cn
bingoogolapple
update
demo
MainActivity.java 5KB
DownloadingDialog.java 1KB
AndroidManifest.xml 814B
build.gradle 1KB
README.md 6KB
settings.gradle 39B
build.gradle 588B
共 54 条
- 1
资源评论
求教男人
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功