asp.net core文档下载_推荐一个必备的开源项目 (附下载链接)
点击上方“阿拉奇学Java”,选择“置顶或者星标”
优质文章第一时间送达!
推荐阅读 | 大白话讲解技术专业用语
很多人都会遇到下载相关的需求,如果是只下载一个文件那还好,可需求有时候并不会那么简单,领导一句话:下载要支持多任务并行下载,产品经理妹子再来一句:用户下载失败后,下次进来要能接着之前的继续下载,好像有个专业的名词,嗯,叫做断点续传。
这个时候你的压力就来了:mmp,又要多任务并行,又要断点续传,你行你来!
今天我给大家推荐个开源库,解决这一问题。这个开源库是我无意间看到的,觉得还不错,就想着分享给你们。
这个开源库的地址是:https://github.com/AriaLyy/Aria
已经有2.9k star,它的特点是:
简单、方便
可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用
支持HTTP\FTP断点续传下载、多任务自动调度
支持多文件打包下载,多文件共享同一进度(如:视频 + 封面 + 字幕)
支持下载FTP文件夹
支持HTTP表单上传
支持文件FTP断点续传上传
支持FTPS断点续传,see
支持https地址下载
支持多线程分块下载,能更有效的发挥机器IO性能
等等
看起来很牛逼,是不是?下面简单介绍下使用方式。
引入库
implementation 'com.arialyy.aria:core:3.7.8-pre-1'annotationProcessor 'com.arialyy.aria:compiler:3.7.8-pre-1'
# 如果需要使用ftp,请增加该组件implementation 'com.arialyy.aria:ftpComponent:3.7.8-pre-1'# 如果需要使用m3u8下载功能,请增加该组件implementation 'com.arialyy.aria:m3u8Component:3.7.8-pre-1'
如果出现android support依赖错误,请将
compile 'com.arialyy.aria:core:'
替换为
api('com.arialyy.aria:core:'){ exclude group: 'androidx.appcompat.app'}
如果你使用的是kotlin,请使用kotlin官方提供的方法配置apt:
https://www.kotlincn.net/docs/reference/kapt.html
使用
由于Aria涉及到文件和网络的操作,因此需要你在manifest文件中添加以下权限,如果你希望在6.0以上的系统中使用Aria,那么你需要动态向安卓系统申请文件系统读写权限。
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
例子为单任务下载,只需要很简单的代码,便可以实现下载功能。
创建任务
long taskId = Aria.download(this) .load(DOWNLOAD_URL) //读取下载地址 .setFilePath(DOWNLOAD_PATH) //设置文件保存的完整路径 .create(); //创建并启动下载
- 停止\恢复任务
Aria.download(this) .load(taskId) //读取任务id .stop(); // 停止任务 .resume(); // 恢复任务
任务状态的获取
基于解耦合的考虑,Aria的下载功能是和状态获取相分离的,状态的获取并不会集成到链式代码中,但是Aria提供了另一种更简单更灵活的方案。
通过注解,你可以很容易获取任务的所有状态。
将对象注册到Aria
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Aria.download(this).register();}
- 通过注解获取任务执行状态注意:
- 注解回掉采用Apt的方式实现,所以,你不需要担心这会影响你机器的性能
- 被注解的方法不能被private修饰
- 被注解的方法只能有一个参数,并且参数类型必须是
DownloadTask
或UploadTask
或DownloadGroupTask
- 方法名可以为任意字符串
//在这里处理任务执行中的状态,如进度进度条的刷新@Download.onTaskRunning protected void running(DownloadTask task) { if(task.getKey().eques(url)){ .... 可以通过url判断是否是指定任务的回调 } int p = task.getPercent(); //任务进度百分比 String speed = task.getConvertSpeed(); //转换单位后的下载速度,单位转换需要在配置文件中打开 String speed1 = task.getSpeed(); //原始byte长度速度}
@Download.onTaskComplete void taskComplete(DownloadTask task) { //在这里处理任务完成的状态}
更详细的使用方式我就不介绍了,大家参考文档吧:
https://aria.laoyuyu.me/aria_doc
看到这里啦,说明你对这篇文章感兴趣,帮忙转发一下或者点击文章右下角在看。感谢啦!关注公众号,回复「进群」即可进入无广告技术交流群。同时送上250本电子书+学习视频作为见面礼!有你想看的精彩 大白话讲解技术专业用语看完知乎轮子哥的编程之路,我只想说,收下我的膝盖...慌了,居然被问到怎么做高并发系统的限流史上最易懂的 Kubernetes 儿童插图指南程序员开发了一款软件,完成了舔狗的绝地反杀(代码开源)!来,手撸一个简版Redis(附源码)在服务器上排除问题的头 5 分钟
asp.net core文档下载_推荐一个必备的开源项目 (附下载链接)相关推荐
- api 开源文档编写_如何为您的开源项目编写有效的文档
api 开源文档编写 不幸的是,好的代码并不能说明一切. 即使是解决世界上最紧迫问题的设计最精美,编写最出色的代码库,也不会自己采用. 开源创建者您需要为您的代码说话,并为您的创作注入生命. 那就是技 ...
- .NET文档处理套包GroupDocs.Total for .NET新版发布 | 附下载
GroupDocs.Total for .NET 是.NET的文档管理套包, 能够在.NET应用程序中查看.导出.注释.比较.签名.自动化和搜索文档. GroupDocs.Total for .NET ...
- asp html转word文档,asp生成word文档
asp生成word文档 今天在处理一个在线申请功能时候,需要生成word文档.在网上找了些资料学习,终于成功了.下面是个简单的例子.其中程序包括index.htm,createdoc.asp.在之前你 ...
- 推荐一个Python的开源小工具大合集!
今天推荐一个python的开源项目 python写的各种小工具,涉及的知识比较多,包括pyqt5.简单的爬虫.文本匹配.计算器.二维码制作.端口扫描器等等. 开源地址 https://github.c ...
- 有奖征集!HMS Core文档众测,人人都是体验官
HMS Core经历多个版本的发展,开放了越来越多的能力.开发者文档是开发者接触HMS Core的第一界面,为了提升开发者接入效率和体验,产品资料团队在2020年开展了第一季文档体验官活动,收集了10 ...
- 用于文档上下文感知推荐的卷积矩阵分解
论文:Kim D H, Park C, Oh J, et al. Convolutional Matrix Factorization for Document Context-Aware Recom ...
- python docx 合并文档 图片_不再为处理PDF烦恼,python处理操作PDF全攻略
本篇聊下Python对pdf的各种操作,包含pdf转word,pdf转图片,pdf翻转,加密,加水印等. pdf转换word文档 保留格式 pdf转换为word文档,被大众经常使用的是纯Python库 ...
- python开发技术文档范文_程序员编写技术文档的新手指南
这是一篇帮助你给第一个项目写文档的指南. 万事开头难,我希望这份指南能把你引导到正确的道路上. 最后,你应该有一个可以公开发布的项目. 请轻松地阅读完这篇文章,或者简单地把它当作参考. 为什么要写文档 ...
- 多人在线编辑文档 开发_太方便了,支持多人同时编辑,电脑和手机端实时同步保存...
平时很多小伙伴都有编辑文档的需求,而且有时需要分工合作,将它们发送给自己的朋友或者同事等等,多人一起才能完成一项任务.除了互相来回发送显得不方便外,只能用手机或电脑单一的编辑,不能随时随地操作也很影响 ...
最新文章
- 利用Charles抓https包
- BEC攻击危害惊人 3年造成23亿美元损失
- ios android 录音格式,跨系统的录音格式兼容性问题: iOS Android
- 数据库事务的四大特征
- php asp写法,asp/php常用的库连接文件代码写法大全
- mysql outfile raw_解决 Mysql outfile 的报错问题!
- VMware vSAN性能测试那点后续的事
- Android学习笔记---android平台中利用,SAX解析xml
- asyncawait异步请求处理办法
- MVC模式利用xib文件定制collectionCell
- 学了python能干啥举例-学了Python可以做哪些有趣的东西
- 【IO面试题】打印目录树形结构,并输出到file.txt中
- 计算机专业 哪里的好,正规计算机专业哪里好
- out.print 嵌套html代码_代码规范之前端编写码规范
- 关系抽取(relation extraction)综述
- matlab改变直方图数量级,直方图规定化——Matlab实现及其原理
- sql server备份及导出表数据和结构
- pacs系统数据库服务器,医用PACS系统数据库云计算的设计
- 全屋智能抢占“中控”,华为、海尔、小米们谁离用户最近?
- 管理好你的20~30岁
热门文章
- 创建目录_Word创建自动目录,你会了吗?
- python编程入门第一课教案_python编程从入门到实践 第一课:输入输出
- caused by: java.lang.outofmemory_Caused by: java.lang.OutOfMemoryError: PermGen space
- Python+OpenCV:理解k近邻(kNN)算法(k-Nearest Neighbour (kNN) algorithm)
- Halcon PDF文档(hdevelop_users_guide)学习总结之二——创建新算子
- Use Namesapce 使用方法简介
- 中国计算机信息系统集成行业协会有含金量吗,系统集成工程师证书的含金量怎么样...
- 利用Python制作一个“电子记事本”
- jQuery系列 第五章 jQuery框架动画特效
- 打破“信息孤岛”不能透支信息安全