Repository navigation
SimpleDownloader ‐ introduction
There are already many open-source Android download libraries available. So why does SimpleDownloader exist?
It is designed specifically for modern Android with a strong focus on the things that became painful after Scoped Storage:
| Feature | Most older libraries | SimpleDownloader |
|---|---|---|
| SAF / Document Tree support | Weak or missing | First-class |
| MediaStore support | Rarely | Built-in |
| Proper file overwrite | Often broken | Clean API |
| Subfolder support (SAF + path) | Rare | Built-in |
| Automatic MIME type + filename | Manual | Automatic |
| Task persistence + restore | Varies | Strong + filterable |
| Foreground service + notifications | Usually needs extra work | Built-in + customizable |
| Auto concurrency | Fixed number | Adaptive |
| Simple fluent API | Mixed | Very clean |
Most popular download libraries were created before Android 10/11 Scoped Storage became mandatory.
They still work, but you often have to write a lot of extra code yourself for:
- Saving into a user-selected folder (SAF)
- Saving into MediaStore (Downloads/Images/Video)
- Handling unique filenames correctly
- Proper overwrite behavior
- Restoring downloads after process death
- Clean notifications + foreground service built-in
- unstable networks handling
SimpleDownloader tries to handle all of that out of the box with a very simple API.
- You need to download into user-picked folders (SAF)
- You want MediaStore support without extra code
- You want legacy file-system paths
- You want rech built-in notification with action buttons, thumbnails (built-in).
- You want built-in background running with foreground. Don't need manage lifestyle yourself.
- You want reliability for unstable networks.
- You want automatic file name, MIME type resolution.
- You want built-in Subfolder support
- You want built-in file overwrite support
- You want automatic file name and MIME type resolution
- Progress, speed, ETA, status, and lifecycle callbacks
- RetryPolicy, timeouts, headers, cookies, checksums.
- You want a modern, clean API
- You care about proper persistence and restore
- You don’t want to fight with storage permissions and MIME types
SimpleDownloader is trying to make the storage + modern Android side of downloading much less painful, something many older libraries still struggle with.
visit below link to learn full implementation:
https://github.com/jeetarc/SimpleDownloader/blob/main/README.md