All Projects → lingochamp → Filedownloader

lingochamp / Filedownloader

Licence: apache-2.0
Multitask、MultiThread(MultiConnection)、Breakpoint-resume、High-concurrency、Simple to use、Single/NotSingle-process

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Filedownloader

Fgdownloader
用于断点下载、任务队列、上传进度、下载进度
Stars: ✭ 143 (-98.63%)
Mutual labels:  downloader, download, breakpoint
Prdownloader
PRDownloader - A file downloader library for Android with pause and resume support
Stars: ✭ 2,947 (-71.69%)
Mutual labels:  downloader, breakpoint, filedownloader
Pyinstalive
Python script to download Instagram livestreams and replays.
Stars: ✭ 336 (-96.77%)
Mutual labels:  downloader, download
Bilili
🍻 bilibili video (including bangumi) and danmaku downloader | B站视频(含番剧)、弹幕下载器
Stars: ✭ 379 (-96.36%)
Mutual labels:  downloader, download
Downthemall
The DownThemAll! WebExtension
Stars: ✭ 512 (-95.08%)
Mutual labels:  downloader, download
Pyinstastories
Python script to download Instagram stories from Instagram users.
Stars: ✭ 260 (-97.5%)
Mutual labels:  downloader, download
Photon
A lightweight multi-threaded downloader based on aria2.
Stars: ✭ 3,030 (-70.89%)
Mutual labels:  downloader, download
Update4j
Create your own auto-update framework
Stars: ✭ 497 (-95.22%)
Mutual labels:  downloader, download
github-release-downloader
CLI tool to download all release assets from a git repository
Stars: ✭ 26 (-99.75%)
Mutual labels:  downloader, download
Aria2 Pro Docker
Aria2 Pro | A perfect Aria2 Docker image | 更好用的 Aria2 Docker 容器镜像
Stars: ✭ 802 (-92.29%)
Mutual labels:  downloader, download
Pget
The fastest file download client
Stars: ✭ 724 (-93.04%)
Mutual labels:  downloader, download
Flickr Set Get
A simple command line app to download photos from a flickr set
Stars: ✭ 57 (-99.45%)
Mutual labels:  downloader, download
keeptune
Google Chrome Extension to download on Bandcamp, Soundcloud...
Stars: ✭ 49 (-99.53%)
Mutual labels:  downloader, download
Negibox
All in one downloader 全能下载器
Stars: ✭ 335 (-96.78%)
Mutual labels:  downloader, download
twitch-downloader
Download Twitch VODs and Clips
Stars: ✭ 37 (-99.64%)
Mutual labels:  downloader, download
Pluradl.py
Automated download of Pluralsight courses
Stars: ✭ 406 (-96.1%)
Mutual labels:  downloader, download
Docker Jdownloader
JDownloader 2 Docker Image (Multiarch) - Passed 40M Downloads
Stars: ✭ 85 (-99.18%)
Mutual labels:  downloader, download
Treehouse-dl
Scipt allow download treehouse all videos and other stuff :3
Stars: ✭ 21 (-99.8%)
Mutual labels:  downloader, download
YoutubePlayer
Play and download YouTube videos. Extract audio from video. With minimalist beautiful gui.
Stars: ✭ 19 (-99.82%)
Mutual labels:  downloader, download
Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (-48.64%)
Mutual labels:  downloader, download

FileDownloader

Android multi-task file download engine.

Download Build Status

中文文档

FileDownloader2

Now, FileDownloader2-OkDownload is released, okdownload will contain all advantage on the FileDownloader and beyond.

Because of FileDownloader unit-test coverage is very low, so all farther features and enhances will be achieved on the okdownload instead of FileDownloader, and FileDownloader will only focuses on bug fixes.

DEMO

Installation

FileDownloader is installed by adding the following dependency to your build.gradle file:

dependencies {
    implementation 'com.liulishuo.filedownloader:library:1.7.7'
}

Snapshots of the development version are available in Sonatype's snapshots repository, you can include on your gradle project through:

repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

Open customize component

From now on, FileDownloader support following components to be customized by yourself:

Name Interface Default Impl
Connection FileDownloadConnection FileDownloadUrlConnection
OutputStream FileDownloadOutputStream FileDownloadRandomAccessFile
Database FileDownloadDatabase RemitDatabase
ConnectionCountAdapter ConnectionCountAdapter DefaultConnectionCountAdapter
IdGenerator IdGenerator DefaultIdGenerator
ForegroundServiceConfig ForegroundServiceConfig ForegroundServiceConfig
  • If you want to use okhttp as your connection component, the simplest way is this repo.
  • If you don't want to use any database on FileDownloader(the database on FileDownloader is used for persist tasks' breakpoint info) just using NoDatabaseImpl.java

How to valid it?

Just create your own DownloadMgrInitialParams.InitCustomMaker and put those customized component to it, finally init the FileDownloader with it: FileDownloader#init

Adaptation

Adapt to Android 8.0

The restriction of background service has been tightened since Android 8.0, for more details, please refer to here. So, after Android 8.0, the download service will be a foreground service when start downloading during app is in background and you will see a notification with a title named "FileDownloader" start from FileDownloader 1.7.6. You can refer to here to custom the notification.

Adapt to Android 9.0

Starting with Android 9.0 (API level 28), cleartext support is disabled by default, you can have a look at here to know about more details. FileDownloader demo has handled this problem start with 1.7.6.

According to the migration notes, the FOREGROUND_SERVICE permission has been added to the library manifest since FileDownloader 1.7.6.

Welcome PR

If you can improve the unit test for this project would be great.

Usage

By default, the FileDownloadService runs on the separate process, if you want to run it on the main process, just configure on the filedownloader.properties, and you can use FileDownloadUtils.isDownloaderProcess(Context) to check whether the FileDownloadService can run on the current process.

For more readable, Moved to Wiki.

LICENSE

Copyright (c) 2015 LingoChamp Inc.

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].