{"id":17210669,"url":"https://github.com/justson/downloader","last_synced_at":"2025-04-05T19:14:05.229Z","repository":{"id":25219717,"uuid":"103480670","full_name":"Justson/Downloader","owner":"Justson","description":"A cost-effective Android file downloader","archived":false,"fork":false,"pushed_at":"2022-12-22T08:57:33.000Z","size":16744,"stargazers_count":422,"open_issues_count":3,"forks_count":85,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-29T18:08:17.992Z","etag":null,"topics":["android","androiddownload","download","downloader","file","filedownload"],"latest_commit_sha":null,"homepage":"https://github.com/Justson/Downloader","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Justson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-14T03:21:07.000Z","updated_at":"2025-02-27T07:37:11.000Z","dependencies_parsed_at":"2023-01-14T02:20:51.698Z","dependency_job_id":null,"html_url":"https://github.com/Justson/Downloader","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Justson%2FDownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Justson%2FDownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Justson%2FDownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Justson%2FDownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Justson","download_url":"https://codeload.github.com/Justson/Downloader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247386266,"owners_count":20930619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","androiddownload","download","downloader","file","filedownload"],"created_at":"2024-10-15T02:54:59.677Z","updated_at":"2025-04-05T19:14:05.201Z","avatar_url":"https://github.com/Justson.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Downloader\nDownloader 是一个非常轻巧以及功能强大快速下载库，只有50KB 左右大小，对于大多数应用来说，性价比最高的一个下载库， Downloader 提供的API更简单、轻量且Downloader提供同步下载，系统通知进度等功能。\n\n## 预览图\n\n\u003ca href=\"img/download1.jpg\"\u003e\u003cimg src=\"img/download1.jpg\" width=\"48%\"/\u003e\u003c/a\u003e \u003ca href=\"img/download2.jpg\"\u003e\u003cimg src=\"img/download2.jpg\" width=\"48%\"/\u003e\u003c/a\u003e \n\n## 特性\n\n* 支持串行，多线程并行下载\n* 支持断点续传\n* 支持分块传输\n* 支持系统通知进度\n* 支持同步,异步下载\n* 支持自义定路径\n* 支持添加请求头\n* 支持超时配置\n* 提供简易的Api\n* 支持重定向下载\n* 支持进度回调\n* 重试次数配置\n* 支持下载APK文件完成后自动安装\n* 支持暂停，恢复下载等操作\n\n## 下载\n```\nallprojects {\n\trepositories {\n\t\t\t...\n\t\t\tmaven { url 'https://jitpack.io' }\n\t}\n}\n```\n\n* Support\n\n   ```groovy\n\timplementation 'com.github.Justson:Downloader:v5.0.4' \n\t```\n\n* Androidx\n\n   ```groovy\n    implementation 'com.github.Justson:Downloader:v5.0.4-androidx'\n   ```\n\n## 例子\n\n#### 同步\n```java\nFile file = DownloadImpl.getInstance(getApplicationContext())\n\t\t\t\t.url(\"http://shouji.360tpcdn.com/170918/93d1695d87df5a0c0002058afc0361f1/com.ss.android.article.news_636.apk\")\n\t\t\t\t.get();\n```\n\n#### 异步\n```java\nDownloadImpl.getInstance(getApplicationContext())\n                .url(\"http://shouji.360tpcdn.com/170918/f7aa8587561e4031553316ada312ab38/com.tencent.qqlive_13049.apk\")\n                .enqueue();\n```\n\n#### 进度监听\n```java\nDownloadImpl.getInstance(getApplicationContext())\n\t\t.target(new File(this.getExternalCacheDir(), \"com.ss.android.article.news_636.apk\"))\n\t\t.setUniquePath(false)\n\t\t.setForceDownload(true)\n.url(\"http://shouji.360tpcdn.com/170918/93d1695d87df5a0c0002058afc0361f1/com.ss.android.article.news_636.apk\")\n\t\t.enqueue(new DownloadListenerAdapter() {\n\t\t\t\t\t@Override\n\t\t\t\t\tpublic void onStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength, Extra extra) {\n\t\t\t\t\t\tsuper.onStart(url, userAgent, contentDisposition, mimetype, contentLength, extra);\n\t\t\t\t\t}\n\n\t\t\t\t\t@Override\n\t\t\t\t\tpublic void onProgress(String url, long downloaded, long length, long usedTime) {\n\t\t\t\t\t\tsuper.onProgress(url, downloaded, length, usedTime);\n\t\t\t\t\t\tLog.i(TAG, \" progress:\" + downloaded + \" url:\" + url);\n\t\t\t\t\t}\n\n\t\t\t\t\t@Override\n\t\t\t\t\tpublic boolean onResult(Throwable throwable, Uri path, String url, Extra extra) {\n\t\t\t\t\t\tLog.i(TAG, \" path:\" + path + \" url:\" + url + \" length:\" + new File(path.getPath()).length());\n\t\t\t\t\t\treturn super.onResult(throwable, path, url, extra);\n\t\t\t\t\t}\n\t\t});\n```\n\n### 默认的文件目录\n```\n/data/data/com.download.sample(packagename)/cache/download/private/filename.jpg\n/data/data/com.download.sample(packagename)/cache/download/public/filename.jpg\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustson%2Fdownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustson%2Fdownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustson%2Fdownloader/lists"}