老人桌面,Old Launcher专为老年人设计的 Android(安卓) 简洁桌面,大字体、大图标、一键拨号,自动微信视频,简单好用,稳定
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
大字、大图标只是起点。银杏真正想解决的是:长辈能不能稳定地找到家人、拨出电话,并在不同手机和软件版本上继续用下去。 • 🌤️ 天气定位重写:授权定位权限后自动定位并匹配城市,不再需要手动设置;逆地理编码多级兜底,定位失败与天气失败分开提示; • 🗺️ 内置民政部口径全国省市区县地名库(3240 条含坐标),城市搜索支持模糊匹配、错别字纠正、省市拼接写法和常见简称,重名地区自动消歧; • 🎨 界面改版:设置、联系人、视频通话、应用管理等页面按统一设计规范重构,色彩语义、圆角、字号全面统一; • 📱 修复部分小米手机定位回调崩溃与来电弹窗异常,建议小米/红米用户尽快更新; • 🎥 微信视频:识别“微信未登录”与权限申请页面并明确提示,系统授权弹窗自动点允许;界面读取异常时自动重试恢复; • ✅ 860 tests(1 项为 Robolectric 已知偶发环境冲突,单独运行通过),Release 构建和 APK v2 签名校验通过。 很简单:我爷爷不会使用过于复杂的智能手机功能。 现在的手机字体小、入口多,年轻人觉得顺手的操作,老人可能要翻好几层。市面上有不少老人桌面,但我还是想自己做一个给爷爷用的:简单、干净、够用,遇到问题也能知道问题出在哪里。 天行健,君子以自强不息。查看完整 README ↗
大字、大图标只是起点。银杏真正想解决的是:长辈能不能稳定地找到家人、拨出电话,并在不同手机和软件版本上继续用下去。
v2.5.0 把微信语音 / 视频来电自动接听从实验转为正式能力,并补齐通话声音辅助、后台保活、反馈入口与版本特性页。
✅ v2.5.0 发布基线:1112 tests, 0 failed, 0 skipped(192 个测试类,连续两轮),Lint 0 errors,Release 构建和 APK v2 签名校验通过。
查看 v2.5.0 完整发布说明 · 查看 v2.4.1 发布说明 · 前往官网下载
很简单:我爷爷不会使用过于复杂的智能手机功能。
现在的手机字体小、入口多,年轻人觉得顺手的操作,老人可能要翻好几层。市面上有不少老人桌面,但我还是想自己做一个给爷爷用的:简单、干净、够用,遇到问题也能知道问题出在哪里。
天行健,君子以自强不息。
我相信,技术进步要向上突破,也要让普通人用得上。我是普通的计算机学生,我愿把所学变成责任,帮助更多人不被 AI 时代落下。借助新一代 AI,我更新了银杏,初衷不变:让老人更简单地使用手机,让科技更有温度。
银杏不是只把桌面图标放大。它把老人每天最常用的桌面、电话和微信视频做成主流程,并把最容易失败的微信自动操作单独做成了一套可观察、可切换、可诊断的执行系统。
普通坐标脚本只要按钮位置、启动页面或微信版本稍有变化,整条流程就会中断。银杏目前使用的是 语义页面识别 + 能力接口 + 轻量行为树:
观察当前页面 → 选择下一项能力 → 执行一次 → 验证结果 → 必要时局部换路
系统会识别微信首页、搜索页、联系人详情、聊天页和音视频菜单,而不是只记住“第几个位置”。当前能力包括:
[视频通话] 记录并尝试最短路径;当前有六条可组合入口路线:
| 路线 | 完整路径 |
|---|---|
| 当前聊天 | 当前聊天页 → + → 视频通话 → 视频通话 |
| 历史视频记录 | 微信首页 → 最近消息 → 目标聊天 → 点击最近的历史视频通话记录 |
| 最近消息 | 微信首页 → 最近消息 → 目标聊天 → + → 视频通话 → 视频通话 |
| 通讯录 | 微信首页 → 通讯录 → 找到联系人 → 联系人详情 → 音视频通话 → 视频通话 |
| 搜索 | 微信首页 → 搜索 → 输入联系人 → 点击搜索结果 → 聊天页/联系人详情 → 音视频入口 → 视频通话 |
| 聊天信息 | 聊天页 → 右上角 → 聊天信息 → 点击头像 → 联系人详情 → 音视频通话 → 视频通话 |
这六条路线不是六段互不相干的坐标脚本,而是一套可以组合和换线的能力网络,也是银杏针对真实微信环境做的重点工作:
首页切换标签后必须连续两次确认目标标签已选中,才会点击列表,避免使用切换前的旧无障碍节点。历史记录没有真正进入微信视频页时,会自动退回聊天菜单路线。
每个能力只负责一件事,每进入一个新页面都会重新计算可用入口的剩余操作数:发现更短且未失败的安全入口就立即换线;某条路线失败时也可以从当前状态切换备用路线,不必盲目重放整条操作。通讯录仍会继续逐屏查找联系人,不会因为存在搜索路线就立即退出。
当前交付的是从银杏主动发起微信视频,不包含微信来电自动接听。
不同厂商、Android 版本和微信版本可能使用不同控件。银杏提供微信视频示教,让家属在本机人工完成一次流程,用来校准搜索、联系人、更多、音视频入口和视频确认等固定语义控件。
这不是让手机“记住用户点过哪里”,而是帮助现有语义能力适配当前设备上的控件差异。
微信自动化失败时,银杏会生成脱敏的结构化样本,记录:
用户同意上传后,样本会进入项目维护者使用的内部排障后台。该后台不是银杏的公开功能,也不向普通用户或公众开放。维护者可以在后台将相同指纹的失败自动聚类,按能力、页面、路线、失败原因和处理状态筛选,查看一次完整能力链,并把样本标记为待处理、已复现、已修复或已忽略。
因此,陌生机型上的失败可以沉淀为明确的适配任务,而不是继续堆新的固定坐标。
家属可以开启“通话结束返回首页”。它不是持续抢占前台,而是一次性的通话会话:
这让长辈打完电话后回到熟悉的首页,同时不影响手机的正常使用。
| 能力 | 已实现的细节 |
|---|---|
| 极简首页 | 时间、日期、农历、天气、电话、微信视频和家属选定应用集中展示 |
| 电话联系人 | 本地增删改查、系统通讯录导入、头像、列表/宫格布局、一键拨号 |
| 微信视频联系人 | 本地管理、搜索、置顶、头像、通话次数排序和一键主动拨打 |
| 应用内天气 | 天气详情、城市管理、当前位置、磁盘缓存;定位失败时保留原城市,不把老人丢到第三方页面 |
| 系统电话接听 | 默认电话角色、InCallService、联系人自动接听、可调倒计时和接听结果诊断 |
| 通话后回首页 | 系统电话与微信视频共用一次性返回会话,并识别用户主动离开 |
| 安全守护 | 可选跌倒检测、误报取消和呼叫家人;公开数据回放结果与真机效果分开说明 |
| 项目 | 状态 |
|---|---|
| 桌面、联系人、天气、家属设置 | 主流程已实现(含清理缓存、首页卡片大小、使用前检查、「新」角标、家属入口提示) |
| 微信视频主动拨打 | 能力树、语义识别、备用路线、示教校准和失败样本已接入,仍持续验证更多微信版本与机型 |
| 系统电话自动接听 | 软件链路已完成,仍需扩大真实 SIM 和厂商 ROM 验证 |
| 跌倒检测 | 实验性安全能力,公开数据离线回放不代表所有真机准确率 |
| 自动跳过开屏广告 | 实验性能力,默认保守策略,只点“跳过”、不点广告 |
| 微信来电自动接听 | v2.5.0 起正式交付(默认开启、可关闭、只接一对一);vivo V1938CT 连续 6 通语音 / 视频验证通过,息屏 / 锁屏与多厂商 ROM 未验证 |
| 远程协助、云同步、账号体系 | 当前不在范围内 |
发布基线(v2.5.0,2026-10-31):单元测试 1112 tests, 0 failed, 0 skipped(192 个测试类,连续两轮);lintRelease 0 errors;Release 构建通过,APK 通过 v2 签名校验。v2.5.0 交付微信来电自动接听、通话声音辅助、后台保活、反馈入口与版本特性页。
任何基于无障碍服务操作第三方应用的方案都会受到系统、微信版本和厂商 ROM 的影响。银杏的目标不是假装这些差异不存在,而是让流程能够识别状态、有限恢复,并在失败后留下可分析的证据。
当前源码版本:v2.5.0
本仓库源码公开至
v2.3.0;v2.4.0起仅提供 APK,详见下方「许可与开源范围」。
系统要求:Android 7.0(API 24)及以上。
首次安装建议由家属完成:
环境要求:JDK 17+、Android SDK Platform 36,推荐使用 Android Studio。
# 单元测试(项目 testBuildType = deviceTest,任务名是 testDeviceTestUnitTest)
.\gradlew.bat :app:testDeviceTestUnitTest --no-parallel
# Debug APK
.\gradlew.bat :app:assembleDebug --no-parallel
# Lint
.\gradlew.bat :app:lintDebug --no-parallel
# Release APK
.\gradlew.bat :app:assembleRelease --no-parallel
build.bat 会把 JAVA_HOME 固定为 D:\Android\jbr;本机没有该路径时,直接设置自己的 JDK 再调 gradlew.bat 即可:
$env:JAVA_HOME = "<你的 JDK 17+ 路径>"
.\gradlew.bat :app:testDeviceTestUnitTest --no-parallel
Debug 输出目录:app/build/outputs/apk/debug/
yinxing/
├── app/
│ └── src/main/java/com/yinxing/launcher/
│ ├── feature/ # 首页、电话、视频、天气、设置、来电、跌倒、通话返回、首次配置
│ ├── data/ # 联系人、桌面、天气与设置数据
│ ├── automation/ # 微信示教与自动化领域模型、开屏广告跳过
│ ├── common/ # UI、日志、性能、权限、诊断等公共能力
│ └── (com.google.android.accessibility.selecttospeak) # 无障碍执行层
├── benchmark/ # Baseline Profile 与 Macrobenchmark
├── docs/ # 产品、架构、开发、隐私与发布文档
└── scripts/ # 文档与发布契约检查
微信无障碍执行层位于 com.google.android.accessibility.selecttospeak,业务入口、行为树、示教资料和诊断模型保持分层,避免把页面点击逻辑扩散到桌面业务中。
公开仓只保留对外读者需要的文档;内部工程、自动化规格、测试与发布流程资料不对外发布。
| 文档 | 内容 |
|---|---|
| 文档总览 | 公开文档索引与维护原则 |
| 当前功能状态 | 已发布能力、实验性边界与未交付范围 |
| 产品需求 | 产品定位、已发布范围与非功能要求 |
| 设计规范 | UI 唯一设计契约:色彩、字号、间距、组件与提示八式 |
| 产品原则 | 产品目标、原则与无障碍要求 |
| 首页兼容策略 | 默认桌面与厂商回退原则 |
| 许可说明 | 分版本许可与免费承诺 |
| 版本发布说明 | v2.5.0、v2.4.1、v2.4.0、v2.3.0、v2.2.0、v2.1.1、v2.1.0、 |
银杏面对的不是一台标准 Android 手机,而是不同品牌、系统版本、权限策略、字体设置和微信版本。欢迎提交真实设备上的成功或失败结果,也欢迎改进代码、文档、无障碍体验与适老设计。
提交日志、截图或设备信息前,请隐藏联系人、账号和电话号码等个人信息。
v2.4.0 起,银杏不再公开新版本源码;v2.3.0 及以前的源码继续按 GPL-3.0 公开,可自由获取、使用和修改。
GPL-3.0-only)许可继续有效,已经获取的副本和权利不受任何影响。版权持有人有权许可的全部历史原创代码现同时按 GPL-3.0-only 提供;已经取得的旧许可证权利仍然有效。详见 LICENSING.md。
用代码,陪伴那些被时代遗忘的人。