AB Download Manager
项目描述
AB Download Manager 是一款功能强大的开源桌面应用程序,帮助用户更高效地管理和组织下载任务。该工具提供现代化的用户界面和丰富的功能特性,让下载管理变得更加简单便捷。
功能特性
- ⚡️ 高速下载 - 优化的下载引擎提供更快的下载速度
- ⏰ 队列和调度器 - 智能管理下载队列和定时下载任务
- 🌐 浏览器扩展 - 与浏览器无缝集成
- 💻 跨平台支持 - 支持 Windows、Linux 和 macOS 系统
- 🌙 多主题界面 - 提供深色和浅色主题的现代化UI
- 🎨 自定义列 - 支持拖拽重新排序表格列
- 🔧 主机特定设置 - 为特定主机保存用户名、密码、线程数等设置
- 📁 智能文件管理 - 自动修复服务器提供文件名中的非法字符
- ❤️ 完全免费开源 - 开源项目,持续更新改进
安装指南
下载安装
Linux 系统自动安装
使用提供的安装脚本进行一键安装:
# 运行安装脚本
./installer.sh
安装脚本会自动:
- 检测系统包管理器(支持 apt 和 dnf)
- 安装必要的依赖项
- 下载最新版本的程序
- 创建桌面启动器
- 配置应用程序
系统要求
- Linux 系统(支持 Debian、Ubuntu、Fedora、CentOS 等)
- 需要 curl、tar 等基础工具
- 支持多显示器环境
- 自动适应系统缩放比例
使用说明
基础使用
安装完成后,应用程序将出现在系统应用程序菜单中,也可以通过命令行启动:
ABDownloadManager
特色功能使用
拖拽移动操作:
- 按住 Shift 键进行拖拽即可使用移动操作
自定义下载设置:
- 为不同主机配置独立的下载参数
- 设置自定义线程数和用户代理
- 配置下载大小显示单位
浏览器集成
安装浏览器扩展程序,实现一键下载功能。
核心代码
安装脚本核心逻辑
#!/usr/bin/env bash
# 安装脚本核心代码
remove_if_exists() {
local target="$1"
if [ -z "$target" ]; then
logger "No target specified in remove_if_exists function"
return 1
fi
if [ -e "$target" ]; then
logger "File \"$target\" Removed"
rm -rf "$target"
else
logger "File \"$target\" does not exist"
fi
}
detect_package_manager() {
# 检测操作系统和包管理器
if [ -f /etc/os-release ]; then
source /etc/os-release
local OS=${NAME}
elif type lsb_release >/dev/null 2>&1; then
local OS=$(lsb_release -si)
else
logger error "Your Linux Distro is not Supported."
exit 1
fi
# 识别包管理器类型
if `grep -E 'Debian|Ubuntu' <<< $OS > /dev/null` ; then
systemPackage="apt"
elif `grep -E 'Fedora|CentOS|Red Hat' <<< $OS > /dev/null`; then
systemPackage="dnf"
fi
}
卸载脚本核心代码
#!/usr/bin/env bash
# 卸载脚本核心代码
delete_app() {
# 查找并终止应用程序进程
PIDS=$(pidof "$APP_NAME") || true
if [ -n "$PIDS" ]; then
echo "Found $APP_NAME with PID(s): $PIDS. Attempting to kill..."
kill $PIDS 2>/dev/null || echo "Graceful kill failed..."
sleep 2
PIDS=$(pidof "$APP_NAME") || true
if [ -n "$PIDS" ]; then
echo "Process still running. Force killing..."
kill -9 $PIDS 2>/dev/null || echo "Force kill failed..."
fi
fi
# 清理应用程序文件
remove_if_exists "$HOME/.local/share/applications/com.abdownloadmanager.desktop"
remove_if_exists "$HOME/.local/bin/$APP_NAME"
remove_if_exists "$HOME/.local/$APP_NAME"
remove_if_exists "$HOME/.config/autostart/com.abdownloadmanager.desktop"
logger "AB Download Manager completely removed"
}
构建配置模块
// 共享构建模块配置
implementation("$definedGroupId:$definedProjectName:$projectVersion")
// 该模块可在 buildSrc 和主构建中共享使用
// 支持模块化部署,可独立迁移到其他仓库
AB Download Manager 持续更新改进,提供稳定可靠的下载管理解决方案。项目支持多语言翻译,欢迎社区参与贡献。