修复一个表创建失败的问题 https://github.com/AriaLyy/Aria/issues/570

修复一个非分块模式下导致下载失败的问题 https://github.com/AriaLyy/Aria/issues/571
修复一个服务器端无法创建socket连接,却没有返回码导致客户端卡住的问题 https://github.com/AriaLyy/Aria/issues/569
修复文件删除后,组合任务没有重新下载的问题 https://github.com/AriaLyy/Aria/issues/574
优化缓存队列和执行队列
This commit is contained in:
laoyuyu
2019-12-22 11:30:29 +08:00
parent 27c889e171
commit 8dc16ce302
38 changed files with 563 additions and 718 deletions

View File

@@ -32,7 +32,7 @@
3、只对新的多线程下载任务有效
4、只对多线程的任务有效
-->
<useBlock value="true"/>
<useBlock value="false"/>
<!--设置下载线程数下载线程数不能小于1
注意:

View File

@@ -1,161 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<aria>
<!--注意,修改该配置文件中的属性会覆盖代码中所设置的属性-->
<!--Aria框架配置-->
<app>
<!--是否使用AriaCrashHandler来捕获异常异常日志保存在/mnt/sdcard/Android/data/{package_name}/files/log/-->
<useAriaCrashHandler value="true"/>
<!--设置Aria的日志级别{@link ALog#LOG_LEVEL_VERBOSE}-->
<logLevel value="2"/>
<!-- 是否检查网络 true: 检查网络false: 不检查网络-->
<netCheck value="true"/>
<!--除非无法使用注解否则不建议使用广播来接受任务状态true使用广播接收任务状态false不适用广播接收状态 -->
<!-- http://aria.laoyuyu.me/aria_doc/api/use_broadcast.html -->
<useBroadcast value="true"/>
<!--断网的时候是否重试true断网也重试false断网不重试直接走失败的回调-->
<notNetRetry value="false"/>
</app>
<!--普通下载任务-->
<download>
<!--设置任务最大下载速度0表示不限速单位为kb-->
<maxSpeed value="0"/>
<!--
多线程下载是否使用块下载模式,{@code true}使用,{@code false}不使用
注意:
1、使用分块模式在I/O性能底下的手机上合并文件需要的时间会更加长
2、优点是使用多线程的块下载初始化时文件初始化时将不会预占用对应长度的空间
3、只对新的多线程下载任务有效
4、只对多线程的任务有效
-->
<useBlock value="false"/>
<!--设置下载线程数下载线程数不能小于1
注意:
1、线程下载数改变后新的下载任务才会生效
2、如果任务大小小于1m该设置不会生效
3、从3.4.1开始如果线程数为1文件初始化时将不再预占用对应长度的空间下载多少byte则占多大的空间
对于3.4.1之前版本的未完成的老任务,依然采用原来的文件空间占用方式;
-->
<threadNum value="3"/>
<!--设置下载队列最大任务数, 默认为2-->
<maxTaskNum value="3"/>
<!--设置下载失败重试次数默认为10-->
<reTryNum value="5"/>
<!--设置重试间隔单位为毫秒默认2000毫秒-->
<reTryInterval value="5000"/>
<!--设置url连接超时时间单位为毫秒默认5000毫秒-->
<connectTimeOut value="5000"/>
<!--设置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"/>
<!--进度更新更新间隔默认1000毫秒-->
<updateInterval value="1000"/>
</download>
<!--普通上传任务-->
<upload>
<!--设置任务最大上传速度0表示不限速单位为kb-->
<maxSpeed value="0"/>
<!--设置IO流读取时间单位为毫秒默认20000毫秒该时间不能少于10000毫秒-->
<iOTimeOut value="10000"/>
<!--设置写文件buff大小该数值大小不能小于2048数值变小速度会变慢-->
<buffSize value="8192"/>
<!--是否需要转换速度单位转换完成后为1b/s、1kb/s、1mb/s、1gb/s、1tb/s如果不需要将返回byte长度-->
<convertSpeed value="true"/>
<!--设置上传队列最大任务数, 默认为2-->
<maxTaskNum value="2"/>
<!--设置上传失败重试次数默认为10-->
<reTryNum value="3"/>
<!--设置重试间隔,单位为毫秒-->
<reTryInterval value="2000"/>
<!--设置url连接超时时间单位为毫秒默认5000毫秒-->
<connectTimeOut value="5000"/>
<!--执行队列类型见com.arialyy.aria.core.QueueMod默认类型为wait-->
<queueMod value="wait"/>
<!--进度更新更新间隔默认1000毫秒-->
<updateInterval value="1000"/>
</upload>
<!-- 下载类组合任务 -->
<dGroup>
<!--组合任务下载队列最大任务数, 默认为2-->
<maxTaskNum value="2"/>
<!--设置下载失败重试次数默认为10-->
<reTryNum value="1"/>
<!--设置重试间隔单位为毫秒默认2000毫秒-->
<reTryInterval value="5000"/>
<!--执行队列类型见com.arialyy.aria.core.QueueMod默认类型为wait-->
<queueMod value="wait"/>
<!--进度更新更新间隔默认1000毫秒-->
<updateInterval value="1000"/>
<!-- =============================以下为子任务的配置====================================-->
<!--能同时下载的子任务最大任务数默认3-->
<subMaxTaskNum value="5"/>
<!--子任务下载失败时的重试次数默认为5-->
<subReTryNum value="5"/>
<!--子任务下载失败时的重试间隔单位为毫秒默认2000毫秒-->
<subReTryInterval value="5000"/>
<!--子任务url连接超时时间单位为毫秒默认5000毫秒-->
<connectTimeOut value="5000"/>
<!--子任务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"/>
<!--子任务的最大下载速度0表示不限速单位为kb; -->
<maxSpeed value="0"/>
</dGroup>
</aria>

View File

@@ -117,6 +117,8 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
module.startNextActivity(MainActivity.this, data.get(position),
M3U8LiveDLoadActivity.class);
break;
case 8: // sftp
break;
}
}
});

View File

@@ -97,7 +97,7 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
.setDirPath(
Environment.getExternalStorageDirectory().getPath() + "/Download/group_imgs")
//.setSubFileName(getModule(GroupModule.class).getSubName2())
//.setSubFileName(getModule(GroupModule.class).getSubName())
.setSubFileName(getModule(GroupModule.class).getSubName())
.unknownSize()
.option(getHttpOption())
.ignoreFilePathOccupy()

View File

@@ -103,7 +103,8 @@ public class CommonModule extends BaseViewModule {
R.drawable.ic_ftp_dir,
R.drawable.ic_ftp,
R.drawable.ic_ts,
R.drawable.ic_live
R.drawable.ic_live,
R.drawable.ic_sftp
};
int i = 0;
for (String title : titles) {

View File

@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M694.4,1.6L163.2,1.6C113.6,1.6 73.6,41.6 73.6,91.2v843.2c0,49.6 40,89.6 89.6,89.6h475.2c-20.8,-14.4 -33.6,-36.8 -33.6,-64L604.8,758.4c0,-41.6 32,-84.8 75.2,-84.8h209.6l1.6,-475.2L694.4,1.6zM307.2,545.6c-6.4,9.6 -14.4,16 -25.6,20.8 -11.2,4.8 -24,8 -38.4,8 -24,0 -41.6,-4.8 -54.4,-14.4 -12.8,-9.6 -20.8,-24 -24,-43.2l30.4,-4.8c1.6,12.8 8,20.8 16,27.2 8,6.4 19.2,9.6 33.6,9.6 14.4,0 22.4,-3.2 28.8,-9.6s9.6,-11.2 9.6,-17.6c0,-6.4 -3.2,-12.8 -9.6,-16 -4.8,-3.2 -14.4,-4.8 -30.4,-9.6 -22.4,-6.4 -38.4,-11.2 -46.4,-14.4 -8,-4.8 -16,-9.6 -19.2,-17.6 -4.8,-8 -6.4,-16 -6.4,-24s1.6,-16 4.8,-22.4c3.2,-6.4 8,-12.8 14.4,-17.6 4.8,-3.2 14.4,-9.6 22.4,-12.8 8,-3.2 17.6,-3.2 27.2,-3.2 14.4,0 22.4,1.6 33.6,6.4 6.4,3.2 19.2,12.8 24,20.8 4.8,6.4 8,16 11.2,27.2l-30.4,4.8c-1.6,-9.6 -4.8,-16 -11.2,-22.4 -6.4,-4.8 -16,-8 -27.2,-8 -14.4,0 -22.4,1.6 -27.2,4.8 -6.4,4.8 -11.2,11.2 -11.2,17.6 0,3.2 0,8 1.6,11.2 3.2,3.2 6.4,6.4 11.2,8 3.2,1.6 12.8,3.2 27.2,8 22.4,6.4 36.8,11.2 44.8,14.4 8,3.2 16,9.6 20.8,17.6 4.8,6.4 8,16 8,25.6 0,8 -3.2,17.6 -8,25.6zM465.6,417.6h-91.2v44.8h78.4v32h-78.4v80L336,574.4L336,385.6h129.6v32zM633.6,417.6h-56v156.8h-38.4v-156.8h-56v-32h150.4v32zM790.4,473.6c-4.8,8 -9.6,14.4 -16,19.2 -6.4,4.8 -12.8,8 -19.2,9.6 -9.6,1.6 -22.4,3.2 -40,3.2h-25.6v72h-38.4v-192h60.8c22.4,0 38.4,1.6 44.8,3.2 11.2,3.2 19.2,9.6 27.2,19.2s11.2,22.4 11.2,36.8c0,11.2 -1.6,20.8 -4.8,28.8zM694.4,196.8L694.4,51.2l145.6,145.6h-145.6z"
android:fillColor="@color/icon_color"/>
<path
android:pathData="M736,419.2c-4.8,-1.6 -14.4,-1.6 -27.2,-1.6h-19.2v52.8h20.8c14.4,0 25.6,-1.6 30.4,-3.2 4.8,-1.6 9.6,-4.8 11.2,-9.6 3.2,-4.8 4.8,-9.6 4.8,-14.4 0,-6.4 -1.6,-12.8 -6.4,-17.6 -3.2,-3.2 -9.6,-4.8 -14.4,-6.4zM795.2,867.2c-11.2,0 -22.4,9.6 -22.4,22.4 0,9.6 6.4,17.6 14.4,20.8v30.4h14.4v-30.4c8,-3.2 14.4,-11.2 14.4,-20.8 1.6,-12.8 -8,-22.4 -20.8,-22.4zM795.2,764.8c-16,0 -28.8,12.8 -28.8,28.8v28.8h57.6v-28.8c1.6,-16 -12.8,-28.8 -28.8,-28.8z"
android:fillColor="@color/icon_color"/>
<path
android:pathData="M892.8,705.6L699.2,705.6c-32,0 -57.6,25.6 -57.6,56L641.6,960c0,30.4 25.6,56 57.6,56h195.2c32,0 57.6,-25.6 57.6,-56L952,761.6c-1.6,-30.4 -27.2,-56 -59.2,-56zM883.2,955.2c0,8 -6.4,14.4 -14.4,14.4h-144c-8,0 -14.4,-6.4 -14.4,-14.4L710.4,832c0,-8 6.4,-14.4 14.4,-14.4h22.4v-28.8c0,-27.2 22.4,-51.2 51.2,-51.2 27.2,0 51.2,22.4 51.2,51.2v28.8h22.4c8,0 14.4,6.4 14.4,14.4v123.2z"
android:fillColor="@color/icon_color"/>
</vector>

View File

@@ -32,14 +32,15 @@
<string name="error_file_name_null">文件名为空</string>
<string-array name="main_items">
<item>http 下载</item>
<item>http 上传</item>
<item>http 组合任务下载</item>
<item>HTTP 下载</item>
<item>HTTP 上传</item>
<item>HTTP 组合任务下载</item>
<item>FTP 下载</item>
<item>FTP 文件夹下载</item>
<item>FTP 文件上传</item>
<item>M3U8 点播文件下载</item>
<item>M3U8 直播文件下载</item>
<item>SFTP 下载</item>
</string-array>
<string-array name="main_items_desc">
@@ -51,6 +52,7 @@
<item>上传单个文件到服务器</item>
<item>下载M3U8点播文件</item>
<item>下载M3U8直播文件</item>
<item>SFTP单文件下载</item>
</string-array>
<string-array name="download_items">