Downloader es una biblioteca de descarga rápida muy liviana y potente, con un tamaño de solo 50 KB. Para la mayoría de las aplicaciones, es la biblioteca de descarga más rentable. La API proporcionada por Downloader es más simple y liviana, y Downloader proporciona descarga sincrónica y notificación del sistema. progreso, etc. Función.
Admite descarga paralela en serie y multiproceso
Descarga de currículum de punto de interrupción de soporte
Admite transferencia fragmentada
Progreso de notificación del sistema de soporte
Admite descargas sincrónicas y asincrónicas
Admite rutas personalizadas
Soporte para agregar encabezados de solicitud
Configuración de tiempo de espera de soporte
Proporcionar API sencilla
Admite descargas redirigidas
Devolución de llamada de progreso de soporte
Reintentar la configuración del recuento
Admite instalación automática después de descargar el archivo APK
Admite operaciones como pausar y reanudar descargas
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
Apoyo
implementación 'com.github.Justson:Downloader:v5.0.4'
Androidx
implementación 'com.github.Justson:Downloader:v5.0.4-androidx'
Archivo de archivo = DownloadImpl.getInstance(getApplicationContext()) .url("http://shouji.360tpcdn.com/170918/93d1695d87df5a0c0002058afc0361f1/com.ss.android.article.news_636.apk") .conseguir();
DescargarImpl.getInstance(getApplicationContext()) .url("http://shouji.360tpcdn.com/170918/f7aa8587561e4031553316ada312ab38/com.tencent.qqlive_13049.apk") .en cola();
DescargarImpl.getInstance(getApplicationContext()) .target(nuevo archivo(this.getExternalCacheDir(), "com.ss.android.article.news_636.apk")) .setUniquePath(falso) .setForceDownload(verdadero) .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(URL de cadena, larga descarga, larga duración, tiempo usado prolongado) {super.onProgress(url, descargado, longitud, tiempo usado);Log.i(TAG, "progreso:" + descargado + "url:" + URL); }@Overridepublic boolean onResult(Throwable throwable, Uri path, String url, Extra extra) {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