# android-downloader
**Repository Path**: common-source-code/android-downloader
## Basic Information
- **Project Name**: android-downloader
- **Description**: 感谢大佬:https://github.com/ixuea/android-downloader
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-11-24
- **Last Updated**: 2023-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
android-downloader
=====
English | [中文][14]
[](https://jitpack.io/#com.ixuea/android-downloader)

[Report an issue][10], iOS and macOS use [CocoaDownloader][12].
Android Downloader is a open source multithread and mulitask downloadInfo framework for Android.
Try out the sample application [on the Apk file][20].

Download
=======
Add it in your root build.gradle at the end of repositories:
```
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
Add the dependency:
```gradle
dependencies {
implementation 'com.ixuea:android-downloader:latest'
}
```
For info on using the bleeding edge, see the [Snapshots][50] wiki page.
ProGuard
=======
If your project uses ProGuard, you need to add the following configuration to your project proguard-rules.pro file
```pro
-keep public class * implements com.ixuea.android.downloader.db.DownloadDBController
```
How do I use Android Downloader?
=======
For more information on [GitHub wiki][200] and [Javadocs][201].
1.Add network network permissions()
-------
```xml
```
2.Create a DownloadManager instance
-----------------------------------
```java
downloadManager = DownloadService.getDownloadManager(context.getApplicationContext());
```
Simple use as follows
3.Download a file
-----------------
```java
//create download info set download uri and save path.
File targetFile = new File(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "a.apk");
final DownloadInfo downloadInfo = new DownloadInfo.Builder().setUrl("http://example.com/a.apk")
.setPath(targetFile.getAbsolutePath())
.build();
//set download callback.
downloadInfo.setDownloadListener(new DownloadListener() {
@Override
public void onStart() {
tv_download_info.setText("Prepare downloading");
}
@Override
public void onWaited() {
tv_download_info.setText("Waiting");
bt_download_button.setText("Pause");
}
@Override
public void onPaused() {
bt_download_button.setText("Continue");
tv_download_info.setText("Paused");
}
@Override
public void onDownloading(long progress, long size) {
tv_download_info
.setText(FileUtil.formatFileSize(progress) + "/" + FileUtil
.formatFileSize(size));
bt_download_button.setText("Pause");
}
@Override
public void onRemoved() {
bt_download_button.setText("Download");
tv_download_info.setText("");
downloadInfo = null;
}
@Override
public void onDownloadSuccess() {
bt_download_button.setText("Delete");
tv_download_info.setText("Download success");
}
@Override
public void onDownloadFailed(DownloadException e) {
bt_download_button.setText("Continue");
tv_download_info.setText("Download fail:" + e.getMessage());
}
});
//submit download info to download manager.
downloadManager.download(downloadInfo);
```
Compatibility
=======
* **Android SDK**: Android Downloader requires a minimum API level of 21.
Build
=======
Samples
=======
Follow the steps in the [Build][60] section to setup the project and then:
```gradle
./gradlew :app:run
```
You may also find precompiled APKs on the releases page.
## More
See the example code.
## Author
Smile - @ixueadev on GitHub, Email is ixueadev@163.com, See more ixuea([http://www.ixuea.com][100])
Android development QQ group: 702321063.
[10]: https://gitee.com/common-source-code/android-downloader/issues/new
[12]: http://a.ixuea.com/8
[13]: https://gitee.com/common-source-code/android-downloader
[14]: https://gitee.com/common-source-code/android-downloade/blob/master/docs/zh.md
[20]: https://gitee.com/common-source-code/android-downloader/releases
[30]: https://raw.github.com/ixuea/android-downloader/master/samples/art/download-a-file.png
[31]: https://raw.github.com/ixuea/android-downloader/master/samples/art/use-in-list.png
[32]: https://raw.github.com/ixuea/android-downloader/master/samples/art/download-manager-downloading.png
[33]: https://raw.github.com/ixuea/android-downloader/master/samples/art/download-manager-downloaded.png
[40]: https://gitee.com/common-source-code/android-downloader/releases
[50]: https://gitee.com/common-source-code/android-downloader/releases
[60]: https://gitee.com/common-source-code/android-downloader#build
[100]: http://a.ixuea.com/3
[200]: https://gitee.com/common-source-code/android-downloader/wiki
[201]: https://gitee.com/common-source-code/android-downloader/wiki