Downloader — это очень легкая и мощная библиотека быстрой загрузки, размер которой составляет всего около 50 КБ. Для большинства приложений это наиболее экономичная библиотека загрузки. API, предоставляемый Downloader, более простой и легкий, а Downloader обеспечивает синхронную загрузку и системное уведомление. прогресс и т. д. Функция.
Поддержка последовательной, многопоточной параллельной загрузки.
Поддержка загрузки возобновления точки останова
Поддержка фрагментированной передачи
Поддержка уведомлений о системе
Поддержка синхронных и асинхронных загрузок.
Поддержка пользовательских путей
Поддержка добавления заголовков запросов
Поддержка конфигурации тайм-аута
Предоставьте простой API
Поддержка перенаправленных загрузок
Поддержка обратного вызова прогресса
Конфигурация количества повторных попыток
Поддерживает автоматическую установку после загрузки APK-файла.
Поддерживает такие операции, как приостановка и возобновление загрузки.
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
Поддерживать
реализация «com.github.Justson: Downloader: v5.0.4»
Андроидкс
реализация «com.github.Justson: Downloader: v5.0.4-androidx»
Файл file = DownloadImpl.getInstance(getApplicationContext()) .url("http://shouji.360tpcdn.com/170918/93d1695d87df5a0c0002058afc0361f1/com.ss.android.article.news_636.apk") .получать();
DownloadImpl.getInstance(getApplicationContext()) .url("http://shouji.360tpcdn.com/170918/f7aa8587561e4031553316ada312ab38/com.tencent.qqlive_13049.apk") .enqueue();
DownloadImpl.getInstance(getApplicationContext()) .target(новый файл(this.getExternalCacheDir(), "com.ss.android.article.news_636.apk")) .setUniquePath(ложь) .setForceDownload(истина) .url("http://shouji.360tpcdn.com/170918/93d1695d87df5a0c0002058afc0361f1/com.ss.android.article.news_636.apk") .enqueue(new DownloadListenerAdapter() {@Overridepublic void onStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength, Extra extra) {super.onStart(url, userAgent, contentDisposition, mimetype, contentLength, extra); }@Overridepublic void onProgress(String url, long downloaded, long length, long UsedTime) {super.onProgress(url, downloaded, length, UsedTime);Log.i(TAG, "progress:" + downloaded + "url:" + URL); }@Overridepublic boolean onResult (Throwable throwable, путь Uri, URL-адрес строки, дополнительные дополнительные сведения) {Log.i(TAG, "path:" + path + " url:" + url + " length:" + new File(path.getPath ()).length()); return super.onResult(throwable, path, url, extra); } });
/data/data/com.download.sample(packagename)/cache/download/private/filename.jpg /data/data/com.download.sample(packagename)/cache/download/public/filename.jpg