配置文件修改

This commit is contained in:
AriaLyy
2017-05-23 18:04:31 +08:00
parent b67ff4ca11
commit aac060b9bb
11 changed files with 370 additions and 463 deletions

129
README.md
View File

@ -1,15 +1,20 @@
# Aria
![图标](https://github.com/AriaLyy/DownloadUtil/blob/v_2.0/app/src/main/res/mipmap-hdpi/ic_launcher.png)</br>
Aria,让上传、下载更容易实现</br>
Aria项目源于15年工作中遇到的一个文件下载管理的需求当时被下载折磨的痛不欲生从那时起便萌生了编写一个简单易用稳当高效的下载框架aria经历了1.0到3.0的开发,算是越来越接近当初所制定的目标了。
Aria有以下特点
- 简单
-Dialog、popupWindow等组件中使用
- 支持多线程、多任务下载
- 支持多任务自动调度
- 可以直接获取速度
- 支持https地址下载
- 支持上传操作
+ 简单、方便
-以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用
- 支持任务自动调度,使用者不需要关心任务状态切换的逻辑
- [通过Aria的事件能很容易获取当前下载任务的下载状态](#二、下载状态获取)
- [一句代码就可以动态设置最大下载数](#通过代码修改Aria参数)
- [一句代码加可以获取当前的下载速度](#其它好用的API)
- [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数)
+ 支持https地址下载
- 在配置文件中很容易就可以设置CA证书的信息
+ 支持300、301、302重定向下载链接下载
+ 支持上传操作
Aria怎样使用
* [下载](#使用)
@ -20,7 +25,7 @@ Aria怎样使用
## 下载
[![Download](https://api.bintray.com/packages/arialyy/maven/Aria/images/download.svg)](https://bintray.com/arialyy/maven/Aria/_latestVersion)</br>
```java
compile 'com.arialyy.aria:Aria:3.0.3'
compile 'com.arialyy.aria:Aria:3.1.0'
```
## 示例
@ -72,7 +77,8 @@ compile 'com.arialyy.aria:Aria:3.0.3'
Aria.download(this).load(DOWNLOAD_URL).cancel();
```
### 二、如果你希望读取下载进度或下载信息那么你需要创建事件类并在onResume(Activity、Fragment)或构造函数(Dialog、PopupWindow)将该事件类注册到Aria管理器。
### 二、下载状态获取
如果你希望读取下载进度或下载信息那么你需要创建事件类并在onResume(Activity、Fragment)或构造函数(Dialog、PopupWindow)将该事件类注册到Aria管理器。
* 创建事件类
```java
@ -104,8 +110,99 @@ compile 'com.arialyy.aria:Aria:3.0.3'
}
```
### 关于下载的其它api
[Download API](https://github.com/AriaLyy/Aria/blob/master/DownloadApi.md)
### 三、Aria参数配置
#### 通过文件修改Aria配置参数
创建`aria_config.xml`文件,将其放在`assets`目录下,添加以下内容
```xml
<?xml version="1.0" encoding="utf-8"?>
<aria>
<!--注意,修改该配置文件中的属性会覆盖代码中所设置的属性-->
<download>
<!--设置下载线程,线程下载数改变后,新的下载任务才会生效-->
<threadNum value="4"/>
<!--是否打开下载广播默认为false-->
<openBroadcast value="false"/>
<!--设置下载队列最大任务数, 默认为2-->
<maxTaskNum value="2"/>
<!--设置下载失败重试次数默认为10-->
<reTryNum value="10"/>
<!--设置重试间隔单位为毫秒默认2000毫秒-->
<reTryInterval value="2000"/>
<!--设置url连接超时时间单位为毫秒默认5000毫秒-->
<connectTimeOut value="5000"/>
<!--设置IO流读取时间单位为毫秒默认20000毫秒该时间不能少于10000毫秒-->
<iOTimeOut value="20000"/>
<!--设置写文件buff大小该数值大小不能小于2048数值变小下载速度会变慢-->
<buffSize value="8192"/>
<!--设置https ca 证书信息path 为assets目录下的CA证书完整路径name 为CA证书名-->
<ca name="" path=""/>
<!--是否需要转换速度单位转换完成后为1b/s、1k/s、1m/s、1g/s、1t/s如果不需要将返回byte长度-->
<cnvertSpeed value="false"/>
</download>
<upload>
<!--是否打开上传广播默认为false-->
<openBroadcast value="false"/>
<!--设置上传队列最大任务数, 默认为2-->
<maxTaskNum value="2"/>
<!--设置上传失败重试次数默认为10-->
<reTryNum value="10"/>
<!--设置重试间隔,单位为毫秒-->
<reTryInterval value="2000"/>
<!--设置url连接超时时间单位为毫秒默认5000毫秒-->
<connectTimeOut value="5000"/>
</upload>
</aria>
```
#### 通过代码修改Aria参数
除了文件方式外修改Aria参数外同样的你也可以在代码中动态修改Aria参数</br>
通过`Aria.get(this).getDownloadConfig()`或`Aria.get(this).getUploadConfig()`直接获取配置文件,然后修改参数</br>
如以下所示:
```java
// 修改最大下载数,调用完成后,立即生效
// 如当前下载任务数是4修改完成后当前任务数会被Aria自动调度任务数
Aria.get(this).getDownloadConfig().setMaxTaskNum(3);
```
### 其它好用的API
* 停止所有任务
```java
Aria.download(this).stopAllTask();
```
* 删除所有任务
```java
Aria.download(this).removeAllTask();
```
* 获取当前任务的下载速度
速度参数有点特殊,需要[下载事件支持](#下载事件监听)
``` java
@Override public void onTaskRunning(DownloadTask task) {
//如果你打开了速度单位转换配置将可以通过以下方法获取带单位的下载速度1 m/s
String convertSpeed = task.getConvertSpeed();
//如果你有自己的单位格式可以通过以下方法获取原始byte长度
long speed = task.getSpeed();
}
```
**tips:为了防止内存泄露的情况事件类需要使用staic进行修饰**
@ -132,9 +229,7 @@ compile 'com.arialyy.aria:Aria:3.0.3'
* 取消上传
```java
Aria.upload(this)
.load(filePath)
.cancel();
Aria.upload(this).load(filePath).cancel();
```
## 其他
@ -142,7 +237,11 @@ compile 'com.arialyy.aria:Aria:3.0.3'
***
## 后续版本开发规划
* 实现上传队列调度功能
## 开发日志
+ v_3.1.0 添加Aria配置文件优化代码
+ v_3.0.3 修复暂停后删除任务闪退问题添加删除记录的api
+ v_3.0.2 支持30x重定向链接下载
+ v_3.0.0 添加上传任务支持修复一些已发现的bug