{"id":46323933,"url":"https://github.com/706412584/gameutil","last_synced_at":"2026-03-04T16:01:26.473Z","repository":{"id":320380485,"uuid":"1081853698","full_name":"706412584/GameUtil","owner":"706412584","description":"功能强大的Android游戏存档管理SDK | 支持AES加密、反作弊、JSON导入、异步操作、性能监控 | JitPack发布","archived":false,"fork":false,"pushed_at":"2025-11-25T14:56:02.000Z","size":3627,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-28T14:50:16.279Z","etag":null,"topics":["android","android-library","anti-cheat","async","encryption","game-development","game-save","josn","library","performance","save-manager","sdk"],"latest_commit_sha":null,"homepage":"https://jitpack.io/#706412584/GameUtil","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/706412584.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-23T11:38:35.000Z","updated_at":"2025-11-25T14:56:06.000Z","dependencies_parsed_at":"2025-10-23T14:36:02.407Z","dependency_job_id":null,"html_url":"https://github.com/706412584/GameUtil","commit_stats":null,"previous_names":["706412584/gameutil"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/706412584/GameUtil","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/706412584%2FGameUtil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/706412584%2FGameUtil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/706412584%2FGameUtil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/706412584%2FGameUtil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/706412584","download_url":"https://codeload.github.com/706412584/GameUtil/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/706412584%2FGameUtil/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30085799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T15:40:14.053Z","status":"ssl_error","status_checked_at":"2026-03-04T15:40:13.655Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","anti-cheat","async","encryption","game-development","game-save","josn","library","performance","save-manager","sdk"],"created_at":"2026-03-04T16:01:25.003Z","updated_at":"2026-03-04T16:01:26.417Z","avatar_url":"https://github.com/706412584.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 游戏存档工具 (GameUtil)\n\n[![](https://jitpack.io/v/706412584/GameUtil.svg)](https://jitpack.io/#706412584/GameUtil)\n[![License](https://img.shields.io/badge/license-学习研究-blue.svg)](LICENSE)\n[![Platform](https://img.shields.io/badge/platform-Android-green.svg)](https://developer.android.com)\n[![API](https://img.shields.io/badge/API-23%2B-brightgreen.svg)](https://android-arsenal.com/api?level=23)\n\n一个基于Json架构开发、功能强大、高性能的Android游戏存档管理SDK，支持JSON导入/导出、自动分表、异步操作、性能监控等特性。\n\n\u003e 🎉 **现已发布到 JitPack！** 支持远程依赖导入，无需下载源码即可使用。\n\n## 主要特性\n\n### 🎯 核心功能\n- ✅ **AES-GCM加密** - 军事级加密算法保护存档安全\n- ✅ **反作弊系统** - 设备ID验证、完整性校验、时间戳验证\n- ✅ **主表分表支持** - 灵活的数据分片存储\n- ✅ **线程安全** - 完全的并发安全保障\n\n### 🚀 性能优化\n- ✅ **LRU缓存** - 智能缓存机制，读取性能提升30倍\n- ✅ **异步保存** - 不阻塞主线程，批量操作提升5倍性能\n- ✅ **数据压缩** - GZIP压缩，节省75%存储空间\n- ✅ **性能监控** - 实时统计操作耗时、吞吐量、错误率\n\n### 📦 JSON操作\n- ✅ **完整JSON导入** - 一键导入游戏存档JSON\n- ✅ **自动分表** - 支持前缀、大小、自定义多种分表策略\n- ✅ **批量操作** - 批量导入/导出，高效处理海量数据\n- ✅ **格式验证** - 自动验证JSON格式和数据完整性\n\n---\n\n## 快速开始\n\n### 1. 添加依赖\n\n#### 方式一：使用 JitPack 远程依赖（推荐）\n\n[![](https://jitpack.io/v/706412584/GameUtil.svg)](https://jitpack.io/#706412584/GameUtil)\n\n**步骤1：** 在项目的 `settings.gradle` 中添加 JitPack 仓库：\n\n```gradle\ndependencyResolutionManagement {\n    repositories {\n        google()\n        mavenCentral()\n        maven { url 'https://jitpack.io' }  // 添加 JitPack 仓库\n    }\n}\n```\n\n**步骤2：** 在 `app/build.gradle` 中添加依赖：\n\n```gradle\ndependencies {\n    // 存档管理库\n    implementation 'com.github.706412584.GameUtil:savelibrary:v2.1.5'\n    \n    // 反作弊库\n    implementation 'com.github.706412584.GameUtil:anticheat:v2.1.5'\n}\n```\n\n\u003e ⚠️ **注意**：模块名必须小写（`savelibrary` 和 `anticheat`）\n\n#### 方式二：本地项目依赖\n\n如果您克隆了本项目，可以直接依赖本地模块：\n\n```gradle\ndependencies {\n    implementation project(':Savelibrary')\n    implementation project(':AntiCheat')\n}\n```\n\n### 2. 基础使用\n\n```java\n// 初始化存档管理器\nFile saveDir = new File(context.getFilesDir(), \"saves\");\nGameSaveManager manager = new GameSaveManager(saveDir);\n\n// 启用性能优化\nmanager.setPerformanceMonitorEnabled(true);\nmanager.setCompressionEnabled(true);\n\n// 保存存档\nSaveData saveData = new SaveData(\"save001\");\nsaveData.set(\"player_name\", \"玩家1\");\nsaveData.set(\"level\", 10);\nmanager.saveSave(saveData);\n\n// 读取存档\nSaveData loaded = manager.loadSave(\"save001\");\n```\n\n### 3. JSON导入\n\n```java\n// 准备JSON数据\nString jsonStr = \"{\"\n    + \"\\\"player_name\\\": \\\"张三\\\",\"\n    + \"\\\"level\\\": 10,\"\n    + \"\\\"inventory_weapon\\\": \\\"sword\\\",\"\n    + \"\\\"quest_main\\\": \\\"救公主\\\"\"\n    + \"}\";\n\n// 定义分表策略\nMap\u003cString, String\u003e prefixMapping = new HashMap\u003c\u003e();\nprefixMapping.put(\"inventory_\", \"inventory\");\nprefixMapping.put(\"quest_\", \"quest\");\n\n// 导入并自动分表\nJsonImportUtil.ImportResult result = manager.importFromJsonWithPrefix(\n    \"save001\", \n    jsonStr, \n    prefixMapping\n);\n```\n\n---\n\n## 核心模块\n\n### 1. GameSaveManager\n主要的存档管理器，提供存档的增删改查、JSON导入导出等功能。\n\n```java\nGameSaveManager manager = new GameSaveManager(saveDir);\n\n// 同步操作\nmanager.saveSave(saveData);\nmanager.loadSave(\"save001\");\n\n// 异步操作\nmanager.saveAsync(saveData, callback);\nmanager.batchLoadAsync(saveIds);\n\n// JSON导入\nmanager.importFromJson(\"save001\", jsonStr);\n```\n\n### 2. JsonImportUtil\nJSON导入导出工具，支持多种分表策略。\n\n```java\n// 前缀策略\nPrefixBasedStrategy prefixStrategy = new PrefixBasedStrategy();\nprefixStrategy.addMapping(\"inventory_\", \"inventory\");\n\n// 大小策略\nSizeBasedStrategy sizeStrategy = new SizeBasedStrategy(10240); // 10KB\n\n// 组合策略\nCompositeStrategy compositeStrategy = new CompositeStrategy();\ncompositeStrategy.addStrategy(prefixStrategy);\ncompositeStrategy.addStrategy(sizeStrategy);\n```\n\n### 3. AsyncSaveManager\n异步存档管理器，提供高性能的异步操作。\n\n```java\n// 异步保存\nasyncManager.saveAsync(saveData, new SaveCallback() {\n    @Override\n    public void onSuccess(String saveId) {\n        // 保存成功\n    }\n    \n    @Override\n    public void onFailure(String saveId, Exception error) {\n        // 保存失败\n    }\n});\n\n// 批量操作\nBatchResult result = asyncManager.batchSave(saveDataList);\n```\n\n### 4. PerformanceMonitor\n性能监控器，实时统计系统性能指标。\n\n```java\n// 启用监控\nmanager.setPerformanceMonitorEnabled(true);\n\n// 查看统计\nSystem.out.println(manager.getPerformanceReport());\nSystem.out.println(manager.getCacheStats());\nSystem.out.println(manager.getSystemStats());\n```\n\n### 5. LruCache\nLRU缓存实现，提升读取性能。\n\n```java\nLruCache\u003cString, String\u003e cache = new LruCache\u003c\u003e(50);\ncache.put(\"key\", \"value\");\nString value = cache.get(\"key\");\n\n// 统计信息\nSystem.out.println(cache.getStats());\nSystem.out.println(\"命中率: \" + cache.getHitRate());\n```\n\n---\n\n## 性能对比\n\n### 读取性能\n| 操作 | 无缓存 | LRU缓存 | 提升 |\n|-----|-------|---------|------|\n| 首次读取 | 15ms | 15ms | - |\n| 二次读取 | 15ms | 0.5ms | **30倍** |\n| 缓存命中率 | 0% | 80%+ | - |\n\n### 保存性能\n| 操作 | 同步 | 异步 | 提升 |\n|-----|-----|------|------|\n| 单次保存 | 阻塞15ms | 不阻塞 | **无感知** |\n| 批量100个 | 阻塞1.5s | 300ms | **5倍** |\n\n### 存储空间\n| 数据类型 | 原始 | 压缩后 | 压缩率 |\n|---------|-----|--------|-------|\n| JSON文本 | 100KB | 25KB | **75%** |\n| 重复数据 | 500KB | 80KB | **84%** |\n\n---\n\n## 架构设计\n\n```\nGameUtil\n├── Savelibrary            # 存档管理库\n│   ├── GameSaveManager        # 主管理器\n│   │   ├── SaveData           # 存档数据模型\n│   │   ├── SaveTableManager   # 分表管理（含LRU缓存）\n│   │   └── AntiCheatManager   # 反作弊管理\n│   │\n│   ├── AsyncSaveManager       # 异步操作管理\n│   │   ├── 线程池\n│   │   ├── 任务队列\n│   │   └── 批量操作\n│   │\n│   ├── JsonImportUtil         # JSON导入工具\n│   │   ├── PrefixBasedStrategy   # 前缀分表策略\n│   │   ├── SizeBasedStrategy     # 大小分表策略\n│   │   └── CompositeStrategy     # 组合策略\n│   │\n│   ├── PerformanceMonitor     # 性能监控\n│   │   ├── 操作统计\n│   │   ├── 吞吐量计算\n│   │   └── 错误率统计\n│   │\n│   └── Utilities\n│       ├── AESUtils           # AES加密工具\n│       ├── LruCache           # LRU缓存\n│       └── CompressionUtil    # 压缩工具\n│\n└── AntiCheat              # 反作弊模块 🆕\n    ├── SecurityDetector       # 安全检测器\n    ├── RootDetector           # Root检测\n    ├── EmulatorDetector       # 模拟器检测\n    ├── HookDetector           # Hook框架检测\n    ├── DebugDetector          # 调试器检测\n    ├── SignatureValidator     # 签名验证\n    ├── ProxyDetector          # 代理检测\n    ├── MultiInstanceDetector  # 多开检测\n    ├── MemoryHackDetector     # 内存修改器检测\n    └── TimeCheatDetector      # 时间作弊检测\n```\n\n---\n\n## 使用场景\n\n### 场景1：小型独立游戏\n```java\n// 简单配置，不分表\nGameSaveManager manager = new GameSaveManager(saveDir);\nmanager.saveSave(saveData);\n```\n\n### 场景2：中型RPG游戏\n```java\n// 启用分表和缓存\nGameSaveManager manager = new GameSaveManager(saveDir);\nmanager.setPerformanceMonitorEnabled(true);\n\n// 按模块分表\nMap\u003cString, String\u003e prefixMapping = new HashMap\u003c\u003e();\nprefixMapping.put(\"inventory_\", \"inventory\");\nprefixMapping.put(\"quest_\", \"quest\");\nprefixMapping.put(\"skill_\", \"skill\");\n```\n\n### 场景3：大型在线游戏\n```java\n// 完整配置\nGameSaveManager manager = new GameSaveManager(saveDir);\nmanager.setPerformanceMonitorEnabled(true);\nmanager.setCompressionEnabled(true);\n\n// 组合策略：前缀+大小\nCompositeStrategy strategy = new CompositeStrategy();\nstrategy.addStrategy(new PrefixBasedStrategy(prefixMapping));\nstrategy.addStrategy(new SizeBasedStrategy(10240));\n\n// 异步批量操作\nmanager.batchSaveAsync(saveDataList);\n```\n\n---\n\n## 最佳实践\n\n### 1. 性能优化\n- ✅ 开发阶段启用性能监控\n- ✅ 大存档（\u003e10KB）启用压缩\n- ✅ 使用异步保存避免卡顿\n- ✅ 批量操作提升效率\n\n### 2. 分表策略\n- 小型游戏（\u003c100KB）：不分表\n- 中型游戏（100KB-1MB）：按模块分表\n- 大型游戏（\u003e1MB）：组合策略\n\n### 3. 资源管理\n```java\n// 应用退出时释放资源\n@Override\nprotected void onDestroy() {\n    super.onDestroy();\n    manager.shutdown();\n}\n```\n\n---\n\n## 模块文档\n\n### 存档管理库\n详细使用指南请查看 [Savelibrary 使用指南](Savelibrary/README.md)\n\n### 反作弊模块 🆕\n一个强大的应用安全检测库，支持10种常见破解和作弊检测：\n\n- ✅ **Root检测** - 检测设备Root状态\n- ✅ **模拟器检测** - 检测各类Android模拟器\n- ✅ **Hook框架检测** - 检测Xposed、Frida等\n- ✅ **调试器检测** - 检测调试器连接\n- ✅ **签名验证** - 防止应用被篡改\n- ✅ **代理检测** - 检测网络代理设置\n- ✅ **多开检测** - 检测虚拟环境和多开\n- ✅ **内存修改器检测** - 检测GameGuardian等\n- ✅ **时间作弊检测** - 检测系统时间修改\n- ✅ **VPN检测** - 检测VPN连接\n\n**快速使用：**\n```java\n// 创建安全检测器\nSecurityDetector detector = new SecurityDetector(context, \n    new SecurityDetector.SecurityCallback() {\n    \n    @Override\n    public void onThreatDetected(String type, String desc, int level) {\n        Log.w(\"Security\", type + \": \" + desc);\n    }\n    \n    @Override\n    public void onDetectionComplete(boolean passed, \n                                   List\u003cDetectionResult\u003e threats) {\n        if (!passed) {\n            // 处理安全威胁\n            handleThreats(threats);\n        }\n    }\n});\n\n// 执行检测\ndetector.performSecurityCheck();\n\n// 获取安全分数 (0-100)\nint score = detector.getSecurityScore();\n```\n\n详细使用指南请查看 [AntiCheat 使用指南](AntiCheat/使用指南.md)\n\n---\n\n## 技术栈\n\n- **语言**: Java 11\n- **最低SDK**: Android API 23 (Android 6.0)\n- **加密**: AES-GCM-256\n- **压缩**: GZIP\n- **线程**: ExecutorService + ReadWriteLock\n\n---\n\n## 许可证\n\n本项目仅供学习和研究使用。\n\n---\n\n## 更新日志\n\n### v2.1 (2025-10-23)\n- 🆕 **新增反作弊模块**\n  - ✅ Root检测\n  - ✅ 模拟器检测\n  - ✅ Hook框架检测（Xposed、Frida、Substrate）\n  - ✅ 调试器检测\n  - ✅ 签名验证\n  - ✅ 代理检测\n  - ✅ 多开检测\n  - ✅ 内存修改器检测\n  - ✅ 时间作弊检测\n  - ✅ 安全分数评估系统\n\n### v2.0 (2025-10-23)\n- ✅ 添加JSON导入导出功能\n- ✅ 添加LRU缓存机制\n- ✅ 添加异步保存功能\n- ✅ 添加数据压缩功能\n- ✅ 添加性能监控功能\n- ✅ 支持自动分表策略\n\n### v1.0\n- ✅ 基础存档管理\n- ✅ AES加密\n- ✅ 反作弊系统\n- ✅ 主表分表支持\n\n---\n\n## 🚀 发布说明\n\n### JitPack 仓库\n\n本项目已发布到 JitPack，可以通过远程依赖方式使用：\n\n- **仓库主页**: https://jitpack.io/#706412584/GameUtil\n- **最新版本**: `v2.1.2`\n\n### 依赖引用\n\n```gradle\n// 存档管理库（包含所有存档管理功能）\nimplementation 'com.github.706412584.GameUtil:savelibrary:v2.1.2'\n\n// 反作弊库（包含所有安全检测功能）\nimplementation 'com.github.706412584.GameUtil:anticheat:v2.1.2'\n```\n\n### 版本选择\n\n| 版本 | 说明 |\n|------|------|\n| `v2.1.2` | 最新稳定版（推荐） |\n| `latest.release` | 始终指向最新发布版本 |\n| `master-SNAPSHOT` | 最新开发版本（不推荐生产环境） |\n\n---\n\n## 联系方式\n\n如有问题或建议，欢迎提出Issue。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F706412584%2Fgameutil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F706412584%2Fgameutil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F706412584%2Fgameutil/lists"}