| name | process-calljava-skill |
|---|---|
| description | 读取 aineed.json,筛选 is_processed=false 的项目,进入对应 project_path,根据 calljava_counts 定位 cpp 文件,批量规范化 callJava(...) 参数格式,并在处理完成后标记为已处理。核心目标是将 callJava 调用进行分类规范化。执行方式为 AI 直接查看并修改 cpp 代码,不使用脚本批量替换。 |
本技能用于 AI 直接审阅 Android 项目中的 C++ 代码,将 callJava(...) 调用规范化为统一格式,确保与 Java 层解析逻辑兼容。
- 读取 aineed.json 作为 AI 处理入口
- 筛选 is_processed=false 的项目
- 进入对应 project_path
- 根据 calljava_counts 定位需要 AI 查看的 C++ 文件
- 批量规范化 callJava(...) 参数格式
- 只修改真实代码中的 callJava("...") 字符串参数
- 注释中的 callJava 示例仅参考,不进行改写
- 处理完成后标记为已处理(is_processed=true)
- 核心目标是将 callJava 调用进行分类规范化
读取 aineed.json,筛选 is_processed=false 的项目,进入对应 project_path, 根据 calljava_counts 定位 cpp 文件,批量规范化 callJava(...) 参数格式,并在处理完成后标 记为已处理。核心目标是将 callJava 调用进行分类规范化。
所有 callJava(...) 调用必须统一改写为:
callJava("xxx!@@@@!yyy")否则 Java 层字符串解析会发生数组越界错误。
触发关键词(不区分大小写,包含部分匹配):
- 激励、奖励、奖励视频、看视频
- reward、Reward、rewarded、video reward
- RewardedVideo、rewardVideo、showReward
统一输出格式:
callJava("ShowRewaredVideoAd!@@@@!1")适用类型:插屏广告、普通广告、banner等
统一输出格式:
callJava("showTriggerScene!@@@@!xxx")其中 xxx 为根据代码上下文智能选择的场景文案。
适用类型:生命周期事件、UI事件、定时器、初始化等非广告事件
统一输出格式:
callJava("事件名!@@@@!1")对于非激励广告,必须使用以下标准化场景文案:
| 场景类型 | 标准文案 | 识别关键词 |
|---|---|---|
| 点击菜单按钮 | "点击菜单按钮" | menu、菜单、button |
| 点击列表项 | "点击列表项" | list、列表、item |
| 关卡开始 | "关卡开始" | level start、关卡开始、OnLevelStart |
| 关卡结束 | "关卡结束" | level end、关卡结束、OnLevelFinish |
| 特殊开始 | "特殊开始" | special start、特殊开始 |
| 关卡重开 | "关卡重开" | level restart、关卡重开 |
| 原游戏插屏 | "原游戏插屏" | fullscreen、interstitial、插屏 |
| 强制激励 | "强制激励" | force reward、强制激励 |
| 游戏暂停 | "游戏暂停" | pause、暂停、OnPause |
| 游戏控制 | "游戏控制" | control、控制 |
| 升级 | "升级" | upgrade、升级、level up |
| 付费解锁 | "付费解锁" | pay、付费、unlock |
| 场景切换 | "场景切换" | scene switch、场景切换 |
| 按钮设置 | "按钮设置" | settings、设置、config |
- 优先级1:代码上下文中已有明确中文文案
- 优先级2:函数名或注释包含关键词
- 优先级3:使用标准化场景文案
- 兜底方案:使用 "unknown"(尽量避免)
// 原始
callJava("rewardVideo");
callJava("showReward");
callJava("RewardedVideo");
// 规范化后
callJava("ShowRewaredVideoAd!@@@@!1");// 原始
callJava("showAd");
callJava("ShowFullScreen"); // 在OnLevelFinish函数中
// 规范化后
callJava("showTriggerScene!@@@@!原游戏插屏");
callJava("showTriggerScene!@@@@!关卡结束");// 原始
callJava("OnTick");
callJava("InitGame");
callJava("OnPause");
// 规范化后
callJava("OnTick!@@@@!1");
callJava("InitGame!@@@@!1");
callJava("OnPause!@@@@!1");- 读取 aineed.json 文件
- 验证文件格式和内容完整性
- 筛选 is_processed=false 的项目
- 获取项目的 project_path
- 进入 project_path/app/src/main/cpp 目录
- 根据 calljava_counts 打开对应 .cpp 文件由 AI 逐个阅读
- AI 定位真实执行路径中的 callJava 调用(非注释)
- 结合函数语义和附近日志/注释判断调用类型
- AI 直接按规则改写字符串参数
- 保持原有代码格式、缩进和逻辑结构不变
- 已是
!@@@@!规范格式的调用默认不重复改写
- AI 复核变更点,确认无注释误改
- 确认编译风险后更新 aineed.json 的 is_processed=true
- 记录本次 AI 处理结论
- ? 仅处理 aineed.json 中记录的项目
- ? 仅处理 calljava_counts 中统计的文件
- ? 仅处理 callJava("...") 直接调用形式(包括注释的calljava)
- ? 由 AI 直接查看并修改目标 cpp/h
- ? 不使用 Python 脚本批量处理 callJava
- ? 不处理 Java/Kotlin 层代码
- ? 不处理其他语言文件
- ? 不修改函数调用结构、变量、逻辑
- 绝不修改 Java 层 callJava(String msg1) 解析逻辑
- 绝不修改 Java 侧业务分发 switch-case 代码
- 不删除任何代码结构、注释或逻辑
- 不改变函数签名或调用方式
- 仅修改 callJava 的字符串参数部分
- 处理前后必须保证代码能正常编译和运行