Game24
Android 原生 + 跨端 Web 项目

专注于逻辑与体验的
沉浸式24点游戏

不仅仅是一款益智游戏,更是对 Android 底层特性的深度实践。项目涵盖了 DFS 回溯算法、第三方表达式解析引擎集成、UI动效设计、SQLite持久化、以及内存防漏与状态机管理。

核心技术与架构剖析

在开发过程中,我不仅关注功能的实现,更注重代码的健壮性(Robustness)、算法性能以及边缘场景(Edge Cases)的处理。

DFS 回溯求解引擎

基于深度优先搜索(DFS)实现了24点求解核心逻辑 `Calculate24.js`。通过递归穷举4个数字的四则运算排列组合,在毫秒级找出合法解,并将其用于系统自动发牌前的“死局”检测。

动态表达式计算与正则精度

引入 Apache Commons JEXL 引擎安全解析用户输入的字符串公式。为解决 Java 整数除法丢失精度的问题,巧妙运用正则表达式 replaceAll("\\d+", "$0.0") 动态转换为浮点数计算。

SQLite 历史与 LRU 限额

通过 `SQLiteOpenHelper` 实现错题/提示记录的本地持久化。考虑到存储控制,在执行插入时编写了限制最高 200 条记录的逻辑,超量时使用 SQL 子查询动态删除最旧记录,防止数据库膨胀。

粘性沉浸式适配与属性动画

深度适配 Android 11+ 刘海屏及 `WindowInsetsController` 沉浸式模式。洗牌、发牌利用 `ObjectAnimator` 与 `View.animate()` 配合弹簧插值器实现了极佳的操作手感。

Handler 防抖与防泄漏

针对玩家连续点击可能导致的 Toast 堆叠延迟,基于主线程 `Handler` 封装了 2000ms 的防抖机制。在 Activity 销毁周期中严格清空队列、释放 MediaPlayer 资源,杜绝内存泄漏。

多模式架构与倒计时生命周期

拆分练习与限时挑战模式。基于 `CountDownTimer` 独立调度时间流,并在切入后台(onPause)或呼出菜单时精准打断与恢复系统状态(计时器、音乐、全局按键锁定),逻辑严丝合缝。

核心技术栈全景

Java / Android SDK HTML5/JS (跨端网页版) Apache Commons JEXL 3 SQLite & Cursor 解析 Handler & Looper 机制 ObjectAnimator / ValueAnimator MediaPlayer 媒体流操控 WindowInsets 沉浸式 API

获取完整游戏体验

提供原生 Android APK 安装包,以及可全平台运行的 H5 网页版。