You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
AriaLyy f9a65fe38b fix bug https://github.com/AriaLyy/Aria/issues/100 https://github.com/AriaLyy/Aria/issues/98 7 years ago
Aria fix bug https://github.com/AriaLyy/Aria/issues/100 https://github.com/AriaLyy/Aria/issues/98 7 years ago
AriaAnnotations ftp 断点上传 7 years ago
AriaCompiler ftp 断点上传 7 years ago
AriaFtpPlug readme 7 years ago
app fix bug https://github.com/AriaLyy/Aria/issues/100 https://github.com/AriaLyy/Aria/issues/98 7 years ago
aria/src/main 3.2.19 7 years ago
gradle/wrapper merge dev code 7 years ago
img .. 7 years ago
.gitignore ftp 断点上传 7 years ago
BroadCast.md 3.1.2代码合并 7 years ago
CHINESE_README.md chinese readme 7 years ago
DEV_LOG.md fix bug https://github.com/AriaLyy/Aria/issues/100 https://github.com/AriaLyy/Aria/issues/98 7 years ago
DownloadApi.md Update DownloadApi.md 7 years ago
ENGLISH_README.md 英文文档 7 years ago
LICENSE Added files via upload 9 years ago
MORE_API.md fix bug https://github.com/AriaLyy/Aria/issues/100 https://github.com/AriaLyy/Aria/issues/98 7 years ago
README.md fix bug https://github.com/AriaLyy/Aria/issues/100 https://github.com/AriaLyy/Aria/issues/98 7 years ago
build.gradle 任务组增加文件大小设置api 7 years ago
gradle.properties 速度单位转换 7 years ago
gradlew 修复目录结构 9 years ago
gradlew.bat 修复目录结构 9 years ago
settings.gradle ftp 7 years ago

README.md

Aria

图标

ENGLISH DOC

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

Aria有以下特点:

  • 简单、方便
    • 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用
    • 一行代码实现HTTP\FTP断线续传、多任务自动调度
    • 一行代码实现HTTP任务组\FTP文件夹下载
    • 一行代码实现HTTP\FTP断点续传上传
  • 支持https地址下载
    • 在配置文件中很容易就可以设置CA证书的信息
  • 支持300、301、302重定向下载链接下载

如果你觉得Aria对你有帮助,您的star和issues将是对我最大支持.^_^

下载

Download Download

compile 'com.arialyy.aria:aria-core:3.2.20'
annotationProcessor 'com.arialyy.aria:aria-compiler:3.2.20'

示例

多任务下载 网速下载限制 下载任务组


使用

由于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"/>

使用Aria

基本使用

例子为单任务下载,只需要很简单的代码,便可以实现下载功能

Aria.download(this)
    .load(DOWNLOAD_URL)     //读取下载地址
    .setDownloadPath(DOWNLOAD_PATH) //设置文件保存的完整路径
    .start();   //启动下载

任务状态的获取

基于解耦合的考虑,Aria的下载功能是和状态获取相分离的,状态的获取并不会集成到链式代码中,但是Aria提供了另一种更简单更灵活的方案。 通过注解,你可以很容易获取任务的所有状态。

  1. 将对象注册到Aria
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Aria.download(this).register();
}
  1. 通过注解获取任务执行状态 注意:
  • 注解回掉采用Apt的方式实现,所以,你不需要担心这会影响你机器的性能
  • 被注解的方法不能被private修饰
  • 被注解的方法只能有一个参数,并且参数类型必须是DownloadTaskUploadTaskDownloadGroupTask
  • 方法名可以为任意字符串
//在这里处理任务执行中的状态,如进度进度条的刷新
@Download.onTaskRunning(DOWNLOAD_URL) protected void running(DownloadTask task) {
	int p = task.getPercent();	//任务进度百分比
    String speed = task.getConvertSpeed();	//转换单位后的下载速度,单位转换需要在配置文件中打开
   	String speed1 = task.getSpeed(); //原始byte长度速度
}

@Download.onTaskComplete(DOWNLOAD_URL) void taskComplete(DownloadTask task) {
	//在这里处理任务完成的状态
}

更多注解使用方法

HTTP任务组下载\FTP下载;HTTP\FTP文件上传

参数配置

更多说明,见WIKI

混淆配置

-dontwarn com.arialyy.aria.**
-keep class com.arialyy.aria.**{*;}
-keep class **$$DownloadListenerProxy{ *; }
-keep class **$$UploadListenerProxy{ *; }
-keep class **$$DownloadGroupListenerProxy{ *; }
-keepclasseswithmembernames class * {
    @Download.* <methods>;
    @Upload.* <methods>;
    @DownloadGroup.* <methods>;
}

其他

有任何问题,可以在issues给我留言反馈。
Aria交流群:524329160


License

Copyright 2016 AriaLyy(https://github.com/AriaLyy/Aria)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.