Created Aria参数配置 (markdown)

laoyuyu
2017-08-31 11:30:32 +08:00
parent 72f24ae987
commit d4f9df2165

98
Aria参数配置.md Normal file

@ -0,0 +1,98 @@
## Aria参数配置
在Aria中你可以在配置文件或调用Aria代码配置Aria的参数。
## 配置文件设置参数
创建`aria_config.xml` 文件,将其放在`assets`目录下
```xml
<?xml version="1.0" encoding="utf-8"?>
<aria>
<!--注意,修改该配置文件中的属性会覆盖代码中所设置的属性-->
<download>
<!--设置下载线程线程下载数改变后新的下载任务才会生效如果任务大小小于1m该设置也不会生效-->
<threadNum value="3"/>
<!--设置下载队列最大任务数, 默认为2-->
<maxTaskNum value="2"/>
<!--设置下载失败重试次数默认为10-->
<reTryNum value="10"/>
<!--设置重试间隔单位为毫秒默认2000毫秒-->
<reTryInterval value="5000"/>
<!--设置url连接超时时间单位为毫秒默认5000毫秒-->
<connectTimeOut value="1000"/>
<!--设置IO流读取时间单位为毫秒默认20000毫秒该时间不能少于10000毫秒-->
<iOTimeOut value="10000"/>
<!--设置写文件buff大小该数值大小不能小于2048数值变小下载速度会变慢-->
<buffSize value="8192"/>
<!--设置https ca 证书信息path 为assets目录下的CA证书完整路径name 为CA证书名-->
<ca name="" path=""/>
<!--是否需要转换速度单位转换完成后为1b/s、1kb/s、1mb/s、1gb/s、1tb/s如果不需要将返回byte长度-->
<convertSpeed value="true"/>
<!--执行队列类型见com.arialyy.aria.core.QueueMod默认类型为wait-->
<queueMod value="wait"/>
</download>
<upload>
<!--是否需要转换速度单位转换完成后为1b/s、1kb/s、1mb/s、1gb/s、1tb/s如果不需要将返回byte长度-->
<convertSpeed value="true"/>
<!--设置上传队列最大任务数, 默认为2-->
<maxTaskNum value="2"/>
<!--设置上传失败重试次数默认为10-->
<reTryNum value="10"/>
<!--设置重试间隔,单位为毫秒-->
<reTryInterval value="2000"/>
<!--设置url连接超时时间单位为毫秒默认5000毫秒-->
<connectTimeOut value="5000"/>
<!--执行队列类型见com.arialyy.aria.core.QueueMod默认类型为wait-->
<queueMod value="wait"/>
</upload>
</aria>
```
## 代码中设置参数
除了文件方式外修改Aria参数外同样的你也可以在代码中动态修改Aria参数</br>
通过`Aria.get(this).getDownloadConfig()``Aria.get(this).getUploadConfig()`直接获取配置文件,然后修改参数</br>
如以下所示:
```java
// 修改最大下载数,调用完成后,立即生效
// 如当前下载任务数是4修改完成后当前任务数会被Aria自动调度任务数
Aria.get(this).getDownloadConfig().setMaxTaskNum(3);
```
## 一些参数说明
### 执行队列类型
* wait模式
队列模式为等待模式。</br>
当正在执行的任务数已经达到队列设置的最大任务数时继续下载新任务Aria则会把新任务缓存到缓存队列中
* now模式
队列模式为优先下载模式。</br>
当正在执行的任务数已经达到队列设置的最大任务数时继续下载新任务Aria会停止执行队列中的队首任务新任务会立刻下载
### 设置最大任务数说明Wait模式下的说明
* 如果你在下载任务中最大任务数设置为3
- 当你连续下载的任务数小于3任务会自动执行
- 当正在执行的任务有3个时如果你继续开始新任务Aria则会将新任务存放在缓存队列中
- 当正在执行的任务数有3个时并且缓存队列中有1个任务这时如果你调用`setMaxTaskNum(4);`接口将最大任务数设置为4则Aria会自动执行缓存队列中的任务直到正在执行的任务数达到最大任务数为止
- 如果正在执行的任务数有3个这时如果你调用`setMaxTaskNum(2);`接口将最大任务数设置为2那么Aria会自动停止正在执行的队列中的第一个任务。
* 在Aria中上传任务和下载任务的最大任务数相互独立互不影响的。
在上传类型的任务中设置的最大的上传任务数为2同时设置的最大下载任务为4。那么在下载队列中连续打开4个任务也不会暂停任何一个上传任务。