# felix-tv **Repository Path**: open-mfc/felix-tv ## Basic Information - **Project Name**: felix-tv - **Description**: 一个专为Android TV设计的导航应用,集成Mozilla GeckoView内核,项目核心代码全部由AI生成。 超安全,浏览器只能知道访问的网址,无法拦截读取任何网页内容。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-12-28 - **Last Updated**: 2026-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, 电视TV, 安卓应用, 浏览器 ## README # 小花狗 一个专为Android TV设计的导航应用,集成Mozilla GeckoView内核,项目核心代码全部由AI生成。引用图片均来自项目readmes文件夹,本地预览效果最佳。 ![preview.png](readmes\preview.png) ## 功能特点 ### 核心功能 - 🖥️ 专为TV界面优化,支持遥控器操作 - 🌐 集成GeckoView 143版本内核(Firefox引擎),提供更好的网页兼容性 - 🚀 独立浏览器内核,不依赖系统WebView - 💾 支持网页缓存 ### 导航功能 - 🔍 支持手动输入网址访问 - 🏠 首页快速导航(支持用户自定义设为首页) - ⬅️ 支持网页后退 - 🔄 支持页面刷新 - 📊 实时加载进度显示 ### 收藏管理 - ⭐ 地址栏快速收藏(空心/实心星图标) - 📝 添加/编辑/删除收藏链接 - 🏠 将收藏链接设为首页 - 💾 收藏列表持久化存储 - 🔄 实时检测收藏状态 ### 缩放控制 - 🔍 页面缩放功能(+/-按钮) - 📊 实时显示缩放百分比 - 💾 缩放级别自动保存 ### 智能焦点管理 - 🎯 防止焦点进入网页内容区域 - 📱 方向键导航控制(上下左右) - ✨ 焦点高亮显示(边框、背景色、缩放) - 🎨 平滑焦点移动动画 ### 配置管理 - ⚙️ 支持远程配置加载(可选) - 💾 配置缓存(24小时有效期) - 📡 网络状态检测 - 🔄 多级降级策略(远程配置 → 本地缓存 → 用户设置 → 默认值) ### 用户体验优化 - 🖼️ 支持全屏模式切换 - ⌨️ 智能键盘管理,自动隐藏软键盘 - 🚀 快速页面切换,立即中断当前加载 - 🔄 实时加载进度显示 - 📝 地址栏一键清空功能(点击星星图标) ### 技术特性 - 🌐 桌面用户代理模式,提供更好的网页兼容性 - 🔐 完善的权限管理 - 📱 支持全屏模式,自动隐藏系统栏 - 🎨 自定义工具栏样式 - 📊 完善的错误处理和日志记录 ## 技术架构 ### 开发环境 - **开发工具**: IDEA 2025 - **开发语言**: Java SDK 17 - **最低支持版本**: Android 6.0 (API 23) - **目标版本**: Android 14 (API 34) ### 核心技术栈 - **浏览器内核**: GeckoView 143 (Mozilla Firefox引擎) - **用户代理模式**: 桌面模式 (USER_AGENT_MODE_DESKTOP) - **架构支持**: 默认armeabi-v7a,可配置其他架构 ### 项目结构 ``` app/src/main/ ├── java/com/felix/tv/navigation/ │ ├── BrowserActivity.java # 主浏览器Activity │ ├── MainActivityContainer.java # 启动容器,负责配置加载 │ ├── FavoritesManager.java # 收藏管理(数据层) │ ├── FavoritesDialog.java # 收藏管理界面 │ ├── SettingsManager.java # 用户设置管理 │ └── ConfigManager.java # 动态配置管理 └── res/ ├── layout/ │ ├── activity_browser.xml # 浏览器界面布局 │ └── activity_main_container.xml # 启动页布局 └── values/ ├── strings.xml # 字符串资源 ├── colors.xml # 颜色资源 ├── themes.xml # 主题配置 └── styles.xml # 样式配置 ``` ## 构建项目,以IDEA 2025为例 ### 构建步骤 1. 参考`gradle copy.properties`文件复制一份修改名称为`gradle.properties`作为本地配置文件。其中APK签名配置请根据实际情况修改。 2. 所有镜像地址均已通过测试,可以在国内镜像正常网速下载,完成项目同步,构建,打包。 3. 项目使用Release模式构建生成的APK文件位于`app/build/outputs/apk/release/`目录下。 4. 默认仅包含armeabi-v7a架构的APK文件,其他架构可在`app/build.gradle`中配置。 5. 先同步项目,用来下载相关依赖包,然后构建项目,开发中如果认为代码没有问题但还是编译报错时可以选择`Clean Project`,构建项目截图如下: ![syncProjectAndBuild.png](readmes\syncProjectAndBuild.png) 6. 本机调试项目配置如下: ![setDebugSetting.png](readmes\setDebugSetting.png) 7. 添加`Android TV`虚机设备用于本机调试项目,截图如下: ![addTVDevice.png](readmes\addTVDevice.png) ### 构建命令 ```bash # Debug模式构建 ./gradlew assembleDebug # Release模式构建 ./gradlew assembleRelease # 清理项目 ./gradlew clean ``` ### APK命名规则 构建时APK文件名自动生成为:`小花狗-{abi}-{versionName}.{timestamp}.apk` 例如:`小花狗-armeabi-v7a-1.1.20260526123456.apk` ## 配置说明 ### 修改默认首页 编辑 `app/src/main/res/values/strings.xml` 文件,修改 `default_homepage_url` 的值: ```xml https://your-homepage-url.com ``` ### 配置CPU架构 编辑 `app/build.gradle` 文件,在 `android` -> `defaultConfig` 中添加或修改 `ndk.abiFilters`: ```gradle ndk { abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' } ``` ### 配置远程更新(可选) 编辑 `app/src/main/java/com/felix/tv/navigation/ConfigManager.java` 文件,修改 `CONFIG_URL` 的值: ```java private static final String CONFIG_URL = "https://api.example.com/tv/config"; ``` 返回JSON格式: ```json { "home_url": "https://your-default-homepage.com" } ``` ## 使用说明 ### 基本操作 1. **首页导航**:点击"首页"按钮快速返回默认首页 2. **输入网址**:在地址栏输入网址,点击"前往"或按回车键访问 3. **后退**:点击"返回"按钮返回上一页 4. **刷新**:点击"刷新"按钮重新加载当前页面 5. **关闭**:点击"关闭"按钮退出浏览器 6. **收藏**:点击"收藏"按钮打开收藏管理界面 7. **快速收藏**:点击地址栏右侧的星星图标快速收藏当前网址 8. **缩放**:使用"+/-"按钮调整页面缩放级别 ### 遥控器操作 - **方向键**:在工具栏按钮之间导航 - **确定键**:选中的按钮或输入框 - **返回键**:返回上一页或退出应用 - **缩放**:按住Ctrl/Cmd键同时按+/-键调整缩放 ### 收藏操作 - **添加收藏**:点击地址栏右侧空心星(☆)图标 - **移除收藏**:点击地址栏右侧实心星(★)图标 - **管理收藏**:点击"收藏"按钮打开收藏管理界面 - **设为首页**:在收藏管理界面选择"设为首页" ### 焦点管理 - 按下方向键时,如果焦点不在地址栏,会自动回到首页按钮 - 网页内容区域不会获取焦点,确保遥控器操作流畅 ## 技术亮点 ### 智能焦点管理 - 防止焦点进入网页内容区域,确保遥控器操作流畅 - 按下方向键时自动检测焦点位置并调整 - 完善的方向键导航控制 ### 收藏状态检测 - 实时检测地址栏URL是否已在收藏中 - 空心星(☆)表示未收藏,实心星(★)表示已收藏 - 点击图标切换收藏状态,带Toast提示 ### 配置管理 - 支持远程配置更新(可选) - 多级缓存策略,确保离线可用 - 完善的降级策略,保证应用稳定性 ### 用户体验优化 - URL输入框获取焦点时自动选中所有文本 - 输入完成后自动隐藏软键盘 - 加载进度实时显示 - 完善的错误处理和日志记录 ## 许可证 本项目采用开源许可证,详见 [LICENSE](LICENSE) 文件。