一个现代化的 Android TV 启动器应用,基于 Material Design 3 设计系统,使用 Jetpack Compose 构建。
- 语言: Kotlin
- 最低 SDK: 21
- 目标 SDK: 34
- JDK: 17
- UI 框架: Jetpack Compose
- 设计系统: Material Design 3 (MD3)
- 架构: MVVM (Model-View-ViewModel)
- 依赖注入: Hilt
- 数据持久化: DataStore
- ✅ 自动发现已安装应用 - 实时扫描设备上的所有应用
- ✅ TV 应用识别 - 特别支持 Leanback Launcher 应用
- ✅ 精选应用推荐 - 自动识别流媒体和娱乐应用
- ✅ 应用图标加载 - 显示真实的应用图标
- ✅ 系统/用户应用分类 - 智能分类管理
- ✅ 一键启动应用 - 通过包名快速启动
- ✅ 多重启动方式 - 支持标准和 Leanback 启动
- ✅ 错误处理 - 优雅处理应用未找到或启动失败
- ✅ 用户反馈 - Toast 消息提示
- ✅ 本地化错误提示 - 多语言错误消息
- ✅ 完整 D-Pad 支持 - 所有组件支持遥控器导航
- ✅ 焦点管理 - 自动焦点处理和状态保持
- ✅ 视觉反馈 - 缩放、边框、阴影、发光效果
- ✅ 轮播导航 - 精选应用横向滚动
- ✅ 应用网格 - 高效的 LazyRow 实现
- ✅ 流畅动画 - Spring 弹性动画系统
- ✅ 多语言支持:
- 🇺🇸 English (默认)
- 🇨🇳 简体中文
- 🇪🇸 Español (西班牙语)
- 🇫🇷 Français (法语)
- ✅ 完全本地化 - 所有界面文本均已翻译
- ✅ RTL 支持 - 支持从右到左语言
- ✅ 系统语言自动检测
- ✅ 设置存储 - 基于 Jetpack DataStore
- ✅ 主题偏好 - 深色/浅色模式持久化
- ✅ 强调色保存 - 蓝色/绿色/紫色选择
- ✅ 动态颜色设置 - Android 12+ 动态颜色开关
- ✅ 响应式更新 - 使用 Flow 实时响应变化
- ✅ 纯黑背景 - Apple TV 标志性的 #000000 背景
- ✅ 深灰卡片 - #1C1C1E, #2C2C2E 优雅色调
- ✅ 白色焦点边框 - 4dp 纯白边框
- ✅ 大圆角 - 16-24dp 现代化圆角
- ✅ 重阴影 - 最高 32dp 的立体阴影
- ✅ 1.15倍缩放 - 焦点时的优雅放大
- ✅ Parallax 视差 - -8dp 浮动效果
- ✅ TV 专属组件 (androidx.tv:tv-material)
- ✅ 远距离可读性优化
- ✅ 流畅的焦点动画
- ✅ MD3 运动系统
- ✅ 精选应用轮播
- ✅ 应用网格浏览
- ✅ 遥控器导航优化
- ✅ 实时主题切换
- ✅ 弹性动画 (Spring dampingRatio: 0.75)
- ✅ 焦点状态突出
- ✅ 主题选择器 UI
- 蓝色主题 - 清新专业,适合商务环境
- 绿色主题 - 舒适自然,适合休闲观看
- 紫色主题 - 典雅时尚,适合个性化体验
- 动态颜色 - Android 12+ 系统壁纸取色
- 针对电视远距离观看优化
- 提升字体大小和行高
- 增强字母间距以提高可读性
- 支持完整的 MD3 排版等级
- 符合 MD3 运动系统规范
- 弹性(Spring)动画增强交互感
- 流畅的淡入淡出过渡
- 焦点缩放和发光效果
app/
├── src/main/
│ ├── java/com/ben1231/bentvlauncher/
│ │ ├── data/ # 数据层
│ │ │ └── SettingsDataStore.kt # 主题偏好设置
│ │ ├── di/ # 依赖注入模块
│ │ │ └── DataStoreModule.kt
│ │ ├── ui/
│ │ │ ├── component/ # UI 组件
│ │ │ │ ├── AnimatedAppCard.kt # 增强动画卡片
│ │ │ │ └── ThemeSelector.kt # 主题选择器
│ │ │ ├── screen/ # 屏幕/页面
│ │ │ │ └── HomeScreen.kt # 主屏幕 + 设置
│ │ │ └── theme/ # MD3 主题系统
│ │ │ ├── Theme.kt # 主题配置
│ │ │ ├── ColorSchemes.kt # 色彩方案
│ │ │ └── Typography.kt # 排版系统
│ │ ├── BenTVLauncherApplication.kt
│ │ ├── MainActivity.kt
│ │ └── MainViewModel.kt # 主题状态管理
│ ├── res/ # 资源文件
│ └── AndroidManifest.xml
└── build.gradle
- 使用 Android Studio 打开项目
- 等待 Gradle 同步完成
- 连接 Android TV 设备或启动模拟器
- 点击 Run 按钮
- Jetpack Compose (BOM 2024.02.00)
- Compose UI
- Compose Animation
- Material3
- AndroidX TV Material (1.0.0-alpha10)
- Material Design 3 Components (1.11.0)
- Hilt (2.48) - 依赖注入
- DataStore Preferences (1.0.0) - 数据持久化
- Kotlin (1.9.10)
- Android Studio Hedgehog 或更高版本
- JDK 17
- Gradle 8.2+
- Android SDK 34
- Android TV 设备或模拟器(推荐 API 31+)
- 在主屏幕点击右上角的设置按钮(⚙)
- 选择深色或浅色模式
- 选择您喜欢的强调色(蓝色、绿色、紫色)
- 主题会即时应用
- 方向键 - 在应用之间移动焦点
- 确认键 - 启动选中的应用
- 返回键 - 返回或关闭主题选择器
应用支持多种主题组合:
- 深色模式 + 蓝色强调色
- 浅色模式 + 绿色强调色
- 深色模式 + 紫色强调色
- 动态颜色(Android 12+)
- 完整的 MD3 色彩系统(primary, secondary, tertiary, error 等)
- 动态颜色支持(Android 12+)
- TV 专属的 Surface、Border、Glow 效果
- 大尺寸文字(适合 3米+ 观看距离)
- 焦点高亮和边框
- 流畅的弹性动画
- D-Pad 导航优化
- State Flow 响应式状态管理
- DataStore 异步持久化
- Compose 声明式 UI
- Hilt 依赖注入优化
- 动态应用列表加载
- 应用图标显示
- 搜索功能
- 最近使用应用
- 应用分类
- 壁纸自定义
MIT License
Ben1231
基于 Material Design 3 设计系统打造 🎨 为 Android TV 优化 📺