android 文件管理 ca,Aria - 文件管理(file) - 开源代码

Aria项目源于15年工作中遇到的一个文件下载管理的需求,当时被下载折磨的痛不欲生,从那时起便萌生了编写一个简单易用,稳当高效的下载框架,aria经历了1.0到3.0的开发,算是越来越接近当初所制定的目标了。

Aria有以下特点:简单、方便可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用

支持任务自动调度,使用者不需要关心任务状态切换的逻辑

支持https地址下载在配置文件中很容易就可以设置CA证书的信息

支持300、301、302重定向下载链接下载

支持上传操作

下载

68747470733a2f2f6170692e62696e747261792e636f6d2f7061636b616765732f617269616c79792f6d6176656e2f417269612f696d616765732f646f776e6c6f61642e737667compile 'com.arialyy.aria:Aria:3.1.1'

由于Aria涉及到文件和网络的操作,因此需要你在manifest文件中添加以下权限

使用Aria进行下载添加任务(不进行下载),当其他下载任务完成时,将自动下载等待中的任务Aria.download(this)

.load(DOWNLOAD_URL)

.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk")//文件保存路径

.add();

下载Aria.download(this)

.load(DOWNLOAD_URL)     //读取下载地址

.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk")    //设置文件保存的完整路径

.start();   //启动下载

暂停Aria.download(this).load(DOWNLOAD_URL).pause();

恢复下载Aria.download(this).load(DOWNLOAD_URL).resume();

取消下载Aria.download(this).load(DOWNLOAD_URL).cancel();

下载状态获取

如果你希望读取下载进度或下载信息,那么你需要创建事件类,并在onResume(Activity、Fragment)或构造函数(Dialog、PopupWindow),将该事件类注册到Aria管理器。创建事件类final static class MySchedulerListener extends Aria.DownloadSchedulerListener{

@Override public void onTaskPre(DownloadTask task) {

super.onTaskPre(task);

}

@Override public void onTaskStop(DownloadTask task) {

super.onTaskStop(task);

}

@Override public void onTaskCancel(DownloadTask task) {

super.onTaskCancel(task);

}

@Override public void onTaskRunning(DownloadTask task) {

super.onTaskRunning(task);

}

}

将事件注册到Aria@Override protected void onResume() {

super.onResume();

Aria.whit(this).addSchedulerListener(new MySchedulerListener());

}

Aria参数配置

配置文件设置参数

创建aria_config.xml文件,将其放在assets目录下,添加以下内容<?xml  version="1.0" encoding="utf-8"?>

代码中设置参数

除了文件方式外修改Aria参数外,同样的,你也可以在代码中动态修改Aria参数通过Aria.get(this).getDownloadConfig()或Aria.get(this).getUploadConfig()直接获取配置文件,然后修改参数如以下所示:// 修改最大下载数,调用完成后,立即生效

// 如当前下载任务数是4,修改完成后,当前任务数会被Aria自动调度任务数

Aria.get(this).getDownloadConfig().setMaxTaskNum(3);

常用接口停止所有任务Aria.download(this).stopAllTask();删除所有任务Aria.download(this).removeAllTask();获取当前任务的下载速度 速度参数有点特殊,需要下载事件支持@Override public void onTaskRunning(DownloadTask task) {

//如果你打开了速度单位转换配置,将可以通过以下方法获取带单位的下载速度,如:1 m/s

String convertSpeed = task.getConvertSpeed();

//如果你有自己的单位格式,可以通过以下方法获取原始byte长度

long speed = task.getSpeed();

}获取下载的文件大小、当前进度百分比 同样的,你也可以在DownloadTask对象中获取下载的文件大小@Override public void onTaskRunning(DownloadTask task) {

//获取文件大小

long fileSize = task.getFileSize();

//获取单位转换后的文件大小

String fileSize1 = task.getConvertFileSize();

//当前进度百分比

int percent = task.getPercent();

}

tips:为了防止内存泄露的情况,事件类需要使用staic进行修饰

上传添加任务(只添加,不上传)Aria.upload(this)

.load(filePath)     //文件路径

.setUploadUrl(uploadUrl)  //上传路径

.setAttachment(fileKey)   //服务器读取文件的key

.add();上传Aria.upload(this)

.load(filePath)     //文件路径

.setUploadUrl(uploadUrl)  //上传路径

.setAttachment(fileKey)   //服务器读取文件的key

.start();取消上传Aria.upload(this).load(filePath).cancel();

混淆配置-dontwarn com.arialyy.aria.**

-keep class com.arialyy.aria.**{*;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值