AppFunctions 技能
将 Android 应用功能转化为可由 AI 智能体在设备上发现与调用的系统服务。
技能明确要求不暴露敏感数据和需要用户确认破坏性操作,并有安全约束和最小权限原则,但权限管理和确认流程的具体实施细节不足;未发现恶意或隐蔽行为,未触发红线。扣除因权限和确认机制不完整。
指令和参考文档内部一致,提供了详细的步骤和示例,但未包含测试套件或实际可复现的执行证据,错误处理仅提供少量故障排除,未覆盖所有边界情况。扣除因缺少测试和完整错误处理。
技能使用场景和触发条件清晰,目标受众明确,但未明确能力边界和非适用场景,且未提及中国大陆网络环境的适配,可能依赖海外服务。扣除因边界不清晰和环境适配不足。
文档层次分明,包含前置条件、步骤、示例和故障排除,且提供LICENSE和作者信息,但缺少明确的版本历史、更新日志和维护责任声明。扣除因版本治理不足。
技能核心任务描述明确,预期输出清晰,但未能验证输出的直接可用性,且替代方案收益不明确。扣除因缺乏实际验证。
关键声明有文档支撑,但仅有一份官方来源,缺乏第三方佐证,且未提供可执行测试或CI证据。扣除因证据类型单一。
- 技能可能依赖海外服务(如Google Maven、Androidx等),中国大陆网络环境下可能不可达,需注意适配。
- 未提供版本历史和变更日志,维护责任不明确,长期更新风险。
- 静态审查未能验证实际执行,可靠性和效果评分基于文档推断,实际使用前需进行测试。
这个 Skill 能做什么,适合哪些场景?
该技能帮助开发者分析 Android 应用,识别可暴露为 AppFunctions 的关键用户工作流,并生成相应的 Kotlin 代码。AppFunctions 是 Android 16 及以上系统提供的平台 API,允许系统智能体在不开界面时直接调用应用功能。技能涵盖从发现、实现、KDoc 优化到 ADB 测试的完整流程,并确保文档对 AI 友好。要求应用 targetSdk 36 及以上、compileSdk 37 及以上,推荐使用 Jetpack 库以保证向后兼容。
分析 Android 代码库以识别可暴露的 AppFunctions(如创建笔记、播放媒体、发送消息等)。生成 Kotlin 代码实现 AppFunctions 并配置系统级与构建依赖。优化 KDoc 文档,使 AI 智能体(包括 MCP)能正确理解函数用途。提供 ADB 命令用于列出、调用和验证应用函数的注册状态。
- 开发者想要让 AI 智能体免打开界面直接执行应用内操作,如创建笔记或播放媒体。
- 需要将现有 Android 应用功能通过 AppFunctions 暴露给系统,使智能体可发现并调用。
- 希望优化函数文档,让 MCP 或 LLM 能准确调用 API。
- 需要调试和验证已注册的 AppFunctions,使用 ADB 进行测试。
- 需要迁移旧版本(alpha09 及以下)的 AppFunctions 配置到新的服务入口点架构。
这个 Skill 有哪些优点和局限?
- 遵循 Android 平台官方标准,持续维护并熟悉谷歌最佳实践
- 覆盖从发现到测试的完整开发流程,步骤明确
- KDoc 优化有助于 AI 与 MCP 更准确理解函数
- 提供 ADB 交互命令,方便本地验证
- 要求应用满足较高 SDK 版本(targetSdk 36+),对旧项目迁移成本高
- 仅适用于 Android 16 及以上系统,Jetpack 库需额外引入
- 未提供实际测试用例或示例代码,可能需自行验证
- 资料中未说明是否支持所有应用类型或复杂场景
如何安装这个 Skill?
使用 Android CLI 将本技能安装到当前目录,命令:android skills add --skill=appfunctions --project=.。若希望安装所有技能,使用 android skills add --all;不指定代理时,默认安装到 ~/.gemini/antigravity/skills。
如何使用这个 Skill?
安装技能后,向 AI 助手提出需求,例如:“发现我的应用中的 AppFunctions” 或 “实现 AppFunctions 并配置 Hilt”,技能会按步骤引导完成。确保应用满足前置条件:targetSdk 36+、compileSdk 37+,并始终使用 Jetpack 库。