feat(android): 将 Android APK 运行时移植到 beta#650
Conversation
Sync android-apk.yml from openless-android so the workflow appears in Actions. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
把 Open-Less#650 引入的 AURA / 玻璃拟态界面大改回退到 beta-3 (v1.3.6-3) 的外观,同时保留 AURA 期间合入的功能与今日两处行为修复。 回退到 beta-3: - 外壳 FloatingShell、概览 / 历史页、卡片按钮 _atoms、设置弹窗、tokens.css / global.css - 移除随 AURA 加入的主题切换(themeMode.ts / ThemeSection.tsx) - 设置关闭按钮去掉圆形底(beta-3 本就透明) 保留:Apple 语音、手机远程录入、安卓、划词追问等功能,后端不动。 今日行为修复: - 风格页切换不再卡顿(prefs:changed 监听只订阅一次 + motion layoutDependency 限制 layout 重测) - ASR 本地引擎不再锁死,可在 provider 页直接切换(Apple 语音 macOS 直接可选) 为划词追问页补回其引用的 6 个 solid / radius token,避免回退后丢色。
摘要
无关联 upstream issue(不填写 Fixes 行)。
在 beta 分支上引入 Android debug APK 可构建、可安装、可 ADB 测试 的完整运行时层:Tauri mobile 入口、Rust/Kotlin/前端分层、CI workflow,以及应用内听写 + 悬浮窗/无障碍脚手架。桌面 macOS/Windows 行为通过
#[cfg(not(mobile))]/#[cfg(mobile)]隔离,不改变现有桌面语义。修复 / 新增 / 改进
.github/workflows/android-apk.yml(workflow_dispatch+v*-tauritag 触发,四 ABI split debug APK);Gradle wrapper 下载加固;ci.yml增加workflow_dispatch便于分支验证mobile_runtime.rs单主窗口入口;src/android/*JNI / overlay / accessibility / native_bridge;mobile_stubs/*桌面专属命令 stub;build.rsAndroidc++_static+c++abi链接(修复__cxa_pure_virtual)get_platform_capabilities供前端按能力隐藏桌面专属设置openless-all/app/android/kotlin/(Application、OverlayService、AccessibilityService、权限 Activity);manifest 合并脚本copy-android-scaffolding.mjs/merge-android-v1-manifest.mjs/merge-android-overlay-manifest.mjsplatform.ts能力探测;@android别名模块(权限面板、IPC);Settings / Onboarding / FloatingShell 等按supports*条件渲染tauri.android.conf.json、capabilities/mobile.json;docs/android-mobile-apk-overlay-plan.md、openless-all/app/android/README.md;README.md补充 Android debug APK 下载说明兼容
supportsAutoUpdate: false)#[cfg(not(mobile))]路径编译npm run tauri dev/build流程不变;新增 Android 构建需ANDROID_HOME/NDK_HOME与 Rust Android targets(仅主动跑tauri:android:*时需要)ci.yml仅多workflow_dispatch触发器Cargo.tomlAndroid 目标增加ndk-context、taoAndroid 等;桌面 target 依赖树不变测试计划
命令:
gh workflow run "Android APK (debug)" --repo HKLHaoBin/openless --ref openless-android-beta-to-beta;gh workflow run CI --repo HKLHaoBin/openless --ref openless-android-beta-to-beta结果:两次 run 均
success(commit1ea467a)证据路径:
openless-android-debug-arm64-v8a/armeabi-v7a/x86_64/x86(各 ~63–66 MB)命令(真机,可选但推荐):
adb install -r ci-artifacts/OpenLess-android-debug-arm64-v8a-*.apk→adb shell am start -n com.openless.app/.MainActivity→ 应用内录音 + 设置页权限面板结果:APK 安装启动无 native 符号崩溃(
__cxa_pure_virtual已修复);ndk-context在mobile_runtime.rs启动时初始化证据路径:本地
android-crash-only.log(不提交 git,见 AGENTS.md 阶段 1/5)