# flowDown **Repository Path**: bojue_613/flow-down ## Basic Information - **Project Name**: flowDown - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-15 - **Last Updated**: 2026-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android Video Downloader 一个基于 Kotlin + Jetpack Compose 的 Android 视频下载应用,支持普通文件下载和 M3U8/HLS 视频流下载。 ## ✨ 功能特性 - 📥 **多格式下载** - 支持普通视频文件和 M3U8/HLS 流媒体 - ⏸️ **断点续传** - 下载中断后可从断点继续 - 🔐 **AES 解密** - 支持加密 HLS 流的自动解密 - 🎬 **视频压缩** - 内置 FFmpeg 视频压缩功能 - 📱 **后台下载** - Foreground Service 保证后台稳定运行 - 🎥 **内置播放器** - 基于 ExoPlayer 的视频播放器 - 📋 **剪贴板检测** - 自动检测剪贴板中的视频链接 - 🗂️ **文件管理** - 已下载文件的浏览、重命名、删除 ## 🛠️ 技术栈 | 类别 | 技术 | |------|------| | 语言 | Kotlin | | UI | Jetpack Compose + Material3 | | 架构 | MVVM + Clean Architecture | | 依赖注入 | Hilt | | 数据库 | Room | | 网络 | OkHttp | | 异步 | Kotlin Coroutines + Flow | | 视频处理 | FFmpeg (mobile-ffmpeg) | | 视频播放 | Media3 ExoPlayer | | 图片加载 | Coil | ## 📋 系统要求 - Android 8.0 (API 26) 及以上 - JDK 17 ## 🚀 快速开始 ### 克隆项目 ```bash git clone cd android-downloader ``` ### 构建运行 ```bash # Debug 构建 ./gradlew assembleDebug # 安装到设备 ./gradlew installDebug ``` ### 在 Android Studio 中打开 1. 打开 Android Studio 2. 选择 `File > Open` 3. 选择项目根目录 4. 等待 Gradle 同步完成 5. 点击 Run 运行应用 ## 📁 项目结构 ``` app/src/main/java/com/downloader/android/ ├── core/ # 核心业务逻辑 │ ├── download/ # 下载器实现 │ ├── m3u8/ # M3U8 解析与处理 │ ├── ffmpeg/ # FFmpeg 视频处理 │ └── util/ # 工具类 ├── data/ # 数据层 │ ├── local/ # Room 数据库 │ └── repository/ # 数据仓库实现 ├── domain/ # 领域层 │ ├── model/ # 业务模型 │ ├── usecase/ # 用例 │ └── repository/ # 仓库接口 ├── presentation/ # 表现层 │ ├── ui/ # Compose UI 组件 │ ├── navigation/ # 导航配置 │ └── theme/ # 主题配置 ├── service/ # 后台服务 └── di/ # Hilt 依赖注入模块 ``` ## 📱 应用截图 ## 🔧 配置说明 ### 权限 应用需要以下权限: - `INTERNET` - 网络访问 - `FOREGROUND_SERVICE` - 后台服务 - `POST_NOTIFICATIONS` - 通知权限 (Android 13+) - `READ/WRITE_EXTERNAL_STORAGE` - 存储访问 (Android 10 以下) ### FFmpeg 项目使用本地编译的 mobile-ffmpeg (支持 libx264),AAR 文件位于 `app/libs/` 目录。 ## 📖 文档 - [技术设计文档](docs/technical-design.md) - [视频压缩功能](docs/compress-feature-summary.md) - [批量压缩功能](docs/batch-compress-feature.md) ## 🤝 贡献 欢迎提交 Issue 和 Pull Request。 ## 📄 License