Skip to content
rixingyikePublic

About

开源:恩言(大字有声圣经)App

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

恩言 · 大字有声圣经

专为长辈与深度阅读者设计的高清晰、大字排版有声圣经。基于 Flutter + Rust 混合架构构建,兼顾跨平台优雅交互与原生高性能音频调度。


跨平台支持 (Platform Support)

本项目核心业务代码与 Rust 底层库全面支持四大主流操作系统:

平台 状态 适用说明
🤖 Android 🌟 正式发布 沉浸式无状态栏阅读、前台通知栏播控、高保真原生 TTS 与真人语音
🖥️ macOS 🌟 正式发布 支持 Apple Silicon (M系列) 与 Intel 双架构独立原生瘦身版
📱 iOS 🛠️ 源码完备 支持 iPhone / iPad,工程目录位于 ios/
💻 Windows 🛠️ 源码完备 支持 Windows 10/11,工程目录位于 windows/

目录结构说明 (Project Structure)

enyan/
├── lib/                             # Flutter 跨平台业务代码
│   ├── core/                        # 核心服务层 (音频播放调度、数据库驱动、设置、依赖注入)
│   │   ├── services/playback_coordinator.dart  # 全局播放与高亮同步协调器
│   │   └── database/database_helper.dart       # SQLite 圣经数据存取
│   ├── features/                    # 业务功能模块
│   │   ├── bible_reading/           # 圣经章节阅读、大字排版与悬浮毛玻璃播控栏
│   │   └── settings/                # 语音引擎切换、音色微调、简繁体语言设置
│   ├── src/rust/                    # Flutter Rust Bridge 自动生成的 Dart 绑定层
│   └── main.dart                    # 应用统一入口(全局粘性沉浸模式)
├── android/                         # Android 原生工程(沉浸模式注入、媒体通知栏通信)
├── ios/                             # iOS 原生 Xcode 工程
├── macos/                           # macOS 原生 Xcode 工程(沙盒权限、音频输出配置)
├── windows/                         # Windows 原生 CMake 工程
├── rust/                            # Rust 本地高性能核心库 (文本处理、分词、TTS 原生绑定)
├── rust_builder/                    # CargoKit 跨平台 Rust 自动化编译套件
├── assets/                          # 应用内置核心资源
│   ├── chs/                         # 简体和合本 SQLite 数据库、字库与词典
│   ├── cht/                         # 繁体和合本 SQLite 数据库、字库与词典
│   └── audio_timestamps.json        # 经文时间戳索引(毫秒级高亮对应)
├── screenshots/                     # 真实设备效果截图
├── scripts/                         # 离线数据清洗、字库精简与音频转码脚本
├── server/                          # 本地离线音频资源测试服务 (Mock HTTP Server)
├── test/                            # 自动化单元测试
├── dev.sh                           # 跨平台一键开发与本地调试脚本
└── release.sh                       # 跨平台自动化构建、瘦身与多架构发布脚本

本地开发与真机调试 (Debugging & Testing)

1. 基础环境准备

  • Flutter SDK:3.22+(运行 flutter doctor 确认环境正常)
  • Rust:1.75+(运行 cargo --version)
  • Flutter Rust Bridge (FRB v2):cargo install flutter_rust_bridge_codegen@^2.0.0

2. 快速验证命令

# 获取依赖
flutter pub get

# 代码静态分析 (应保持 0 错误)
flutter analyze lib/ test/

# 运行核心单元测试
flutter test

# 清理历史构建缓存并重置环境
./dev.sh clean

3. macOS 桌面端调试

# 方式一:使用内置快捷脚本
./dev.sh macos

# 方式二:标准 Flutter 命令
flutter run -d macos
  • 终端按 r 进行热重载(Hot Reload),按 R 重启(Hot Restart)。

4. 红米 / Android 手机真机调试

本项目在红米(Redmi)真机上做了深度全屏沉浸与通知栏播控调优:

  1. 手机开发者设置:
    • 打开手机【设置】 -> 【我的设备】 -> 【全部参数】,连点【OS版本】7次开启开发者模式。
    • 进入【更多设置】 -> 【开发者选项】,开启 USB 调试、USB 安装 与 USB 调试 (安全设置)。
  2. 确认设备连接:
    adb devices
    # 识别到如 49hesoeuv4m7zdrw device 即表示联通
  3. 一键启动真机调试:
    ./dev.sh android
  4. 实时日志观察:
    # 查看经文高亮同步、TTS 或音频播放日志
    adb logcat -s flutter

5. iOS 与 Windows 调试说明

  • iOS:在 Mac 上执行 cd ios && pod install,使用 Xcode 打开 ios/Runner.xcworkspace 运行至模拟器或 iPhone 真机。
  • Windows:在已配置 Visual Studio C++ 环境的 Windows 设备上运行 flutter run -d windows。

版本发布与打包 (Release & Packaging)

一键全平台自动化发布(推荐)

项目内置自动化发布脚本 release.sh,能够全自动完成多架构 Android APK 编译、macOS Universal 瘦身分离、代码深度重新签名与 ZIP 压缩打包:

./release.sh

自动输出产物 (build/release/):

平台与架构 产物文件名 大小 适用设备
Android arm64 enyan-android-arm64.apk ~44 MB 主流现代 64 位安卓手机(Redmi Note/K 系列、华为、小米、Galaxy 等)
Android armv7 enyan-android-armv7.apk ~38 MB 老旧 32 位安卓手机设备
macOS Silicon enyan-macos-arm64.zip ~37 MB Apple Silicon 芯片 Mac(M1、M2、M3、M4 系列原生架构,经 lipo 瘦身重签)
macOS Intel enyan-macos-x64.zip ~39 MB Intel 酷睿芯片 Mac(原生 x86_64 架构,经 lipo 瘦身重签)
(macOS 通用版) enyan-macos-universal.zip ~60 MB 全架构双兼容备用包

Note

  • 根据发布策略,已全面剔除 Android 模拟器 (x86_64) 包,避免无谓的编译耗时并精简分发体积。
  • Android 各架构 APK 已通过 --split-per-abi 精简独立架构,相较于全量 Fat APK 体积减少近半。

单平台手动构建命令(备用)

  • Android 真机发布包(仅 arm64 与 armv7):
    flutter build apk --release --split-per-abi --target-platform=android-arm,android-arm64
  • macOS 桌面发布包:
    flutter build macos --release
  • 真机安装验证 Release 包:
    adb install -r build/release/enyan-android-arm64.apk

界面与效果预览

应用在真机上提供极简纯粹的大字阅读与贴心听经体验:

  • 自适应滚动沉浸:向上滚动浏览经文时,顶部标题栏平滑隐藏;向下滚动时自动唤出。
  • 穿透悬浮毛玻璃播控栏:无论是展开还是收起,经文全屏穿透至底部,伴随 5% 透光磨砂玻璃质感。
  • 毫秒级字句同步高亮:朗读定位精准对应圣经经文字句。

About

开源:恩言(大字有声圣经)App

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages