高级
接下来
- 解压后用 IntelliJ IDEA 或 Android Studio 打开文件夹(这是一个普通的 Gradle 项目)。
- 运行 ./gradlew lwjgl3:run(Windows 上用 gradlew.bat)在桌面查看应用。
- 在 core/src/main/java 中编辑第一个窗口——所有平台运行的都是这份代码。
- ZIP 中的 README 列出了所选每个平台的运行和发布命令。
ZIP 中包含什么
一个共享模块core 包含所有界面和全部逻辑,平台模块只负责启动它。
可用的启动器桌面端(Windows、macOS 和 Linux)、Android、iOS 和 Web 启动器已接入 CrossFly 后端,并带有各自所需的构建任务。
权限已声明每个库都带有自己的 Android 权限和 iOS 使用说明,首次运行不会因缺少声明而中断。
版本已固定所有 CrossFly 构件使用同一版本,并附带 Gradle wrapper——除 JDK 外无需安装其他东西。
可添加的库
每个库都是框架仓库中的一个文件夹,在出现在这里之前会单独构建,也会与所有其他库一起构建。
生物识别登录
dev.crossfly.device.Biometry:指纹和面部解锁(Android BiometricPrompt,iOS Face ID / Touch ID)。
蓝牙
dev.crossfly.device.bluetooth:设备发现和连接,包含 Android 12+ 权限和桌面端的 BlueCove。
相机和条码
dev.crossfly.device.Camera 和 CameraBarcode:拍照和读取二维码/条码。桌面端使用网络摄像头。
桌面端 Web 视图实验性
通过 JavaFX WebView 在桌面端使用 WebContainer。Android 和 iOS 使用系统 Web 视图,无需额外配置。
GitHub Actions 持续集成实验性
一个工作流:每次 push 和 pull request 时构建所选的每个平台,并在有测试时运行测试。
单元测试 (JUnit 5)
在 core 模块中加入 JUnit 5 和第一个测试。用 gradlew core:test 运行。
定位 (GPS)
dev.crossfly.device.Location:单次定位和持续跟踪,并声明各系统要求的权限。
地图
dev.crossfly.map:免密钥使用 OpenStreetMap,在 Android 上提供 API 密钥后可用 Google 地图。
桌面端视频录制实验性
crossfly-media:通过 FFmpeg 在桌面端录制音视频;FFmpeg 各桌面系统的原生库会显著增大桌面构建。
界面测试
打开界面、逐一点按,并将布局与已录制的基线比较。用 gradlew lwjgl3:run -Ptest 运行;有变化时以 1 退出。
语音转文字
在 Android 和 iOS 上使用系统识别器听写,桌面端使用离线引擎。
CrossFly Sync私有仓库
离线优先:在桌面和 Android 上将本地 SQLite 存储与 CrossFly Sync 服务器同步。
文字转语音
朗读文字:Android、iOS 和 Web 使用系统语音,桌面端使用 libgdx-tts。
库会持续增加
上面的列表读取自随框架发布的 starter。新库以一个文件夹的形式加入,下次更新时就会出现在本页——包括等待 CrossFly 新版本的库,它们会标注所需的版本。