一款功能丰富的现代化 Android 闹钟应用,采用 Material Design 3 设计风格。
- 指定日期闹钟 - 为特定日期设置闹钟,支持多选日期
- 特殊闹钟 - 自动同步中国工作日历,支持三种响铃模式:
- 所有工作日(周一至周五,自动跳过节假日)
- 仅假期后第一个工作日(包括周末后的周一)
- 所有节假日(包括法定节假日和周末)
- 普通闹钟 - 按周重复的闹钟,可自定义重复日期
- 全屏响铃,黑色背景,时间居中显示
- 后台闹钟支持(即使应用被杀死也能正常响铃)
- 贪睡功能,每个闹钟可独立设置贪睡时长(默认5分钟)
- 振动支持
- 闹钟复制功能
- 针对国产手机厂商的电池优化引导(华为、小米、OPPO、vivo 等)
- 12月跨年提醒,提示用户设置下一年闹钟
- 支持预取下一年工作日历数据(12月开放,通过左下角菜单进入)
- 预取时自动为特殊闹钟追加新一年日期,无需手动重新设置
- 自动缓存节假日信息,离线可用
- 使用精确闹钟调度,确保准时响铃
- 前台服务确保闹钟可靠送达
- 开机广播接收器,设备重启后自动重新调度闹钟
- 单闹钟实例 - 同一时间只响一个闹钟(行业标准)
- 语言: Kotlin
- UI: Material Design 3 (Material You)
- 架构: MVVM,使用 ViewModel 和 LiveData
- 数据库: Room 持久化库
- 网络: Retrofit + Gson(用于节假日数据)
- 异步: Kotlin 协程
- 最低 SDK: 29 (Android 10)
- 目标 SDK: 36 (Android 16)
应用需要以下权限:
SCHEDULE_EXACT_ALARM- 用于精确的闹钟定时USE_EXACT_ALARM- 用于精确闹钟调度(Android 12+)WAKE_LOCK- 用于唤醒设备响铃FOREGROUND_SERVICE- 用于可靠的前台闹钟服务POST_NOTIFICATIONS- 用于闹钟通知RECEIVE_BOOT_COMPLETED- 用于重启后重新调度闹钟VIBRATE- 用于闹钟振动SYSTEM_ALERT_WINDOW- 用于在锁屏上显示闹钟
- Android Studio Ladybug 或更新版本
- JDK 11 或更高版本
- Android SDK API 36
- 克隆仓库:
git clone https://github.com/yourusername/ClockApp.git
cd ClockApp-
在 Android Studio 中打开并同步项目
-
构建 APK:
./gradlew assembleDebug或构建发布版:
./gradlew assembleRelease- 按照上述步骤构建 APK
- 将 APK 传输到设备
- 安装并授予必要权限
为确保闹钟在国产手机上正常工作,请进行以下设置:
- 关闭电池优化(针对本应用)
- 允许自启动
- 允许后台活动
不同品牌的设置路径:
- 华为/荣耀: 设置 > 电池 > 耗电管理 > 启动管理
- 小米/红米: 设置 > 省电与电池 > 应用智能省电
- OPPO/一加: 设置 > 电池 > 应用耗电管理
- vivo/iQOO: 设置 > 电池 > 后台耗电管理
app/
├── data/
│ ├── api/ # Retrofit API(节假日数据)
│ ├── db/ # Room 数据库和 DAO
│ ├── model/ # 数据模型(Alarm、CalendarData)
│ └── repository/ # 数据仓库
├── receiver/ # 广播接收器(闹钟、开机)
├── service/ # 闹钟前台服务
└── ui/
├── alarm/ # 闹钟详情/编辑页面
├── main/ # 闹钟列表主页面
└── ring/ # 闹钟响铃页面
应用使用 holiday-cn 提供的中国节假日数据,通过 jsDelivr CDN 获取,以准确判断工作日和节假日。
本项目采用 MIT 协议开源 - 详见 LICENSE 文件。
如遇到任何问题或有疑问,请 提交 Issue。
注意: 本应用主要面向中国用户设计,支持中国工作日历。部分功能可能需要针对其他地区进行适配。