AppMgr API Generator
Automatically generate complete API call chain from client to service for new AppMgr APIs.
Quick Start
Ask: "Add a new API named [ApiName] with parameters [params] and return type [type]"
The skill will:
- Ask for interface details (name, parameters, return type, functionality)
- Generate all necessary code modifications
- Show diff preview for each file
Generated Files
For each new API, code is generated for the following files:
interfaces/inner_api/app_manager/include/appmgr/app_mgr_client.hinterfaces/inner_api/app_manager/src/appmgr/app_mgr_client.cppinterfaces/inner_api/app_manager/include/appmgr/app_mgr_ipc_interface_code.hinterfaces/inner_api/app_manager/include/appmgr/app_mgr_proxy.hinterfaces/inner_api/app_manager/src/appmgr/app_mgr_proxy.cppinterfaces/inner_api/app_manager/include/appmgr/app_mgr_interface.hservices/appmgr/include/app_mgr_service.h(NEW)services/appmgr/src/app_mgr_service.cpp(NEW)services/appmgr/src/app_mgr_service_inner.cppservices/appmgr/src/app_mgr_service_inner.hservices/appmgr/src/appmgrstub/app_mgr_stub.cpp
Workflow
- Interface Definition: Provide API name, parameters, return type
- Code Generation: Use
scripts/generate_appmgr_api.py - Review: Check generated code before applying changes
- Apply: Apply changes to all files in the call chain
Architecture Overview
Complete call chain path:
AppMgrClient → AppMgrProxy → IPC → AppMgrStub → AppMgrService → AppMgrServiceInner
- AppMgrClient: Client-side API wrapper
- AppMgrProxy: Client-side IPC proxy, marshals parameters
- AppMgrStub: Server-side IPC handler, unmarshals parameters
- AppMgrService: Service implementation, checks service status and delegates
- AppMgrServiceInner: Business logic implementation
Implementation Notes
- Follow existing code patterns in ability_runtime
- Generate appropriate IPC serialization/deserialization code
- Handle synchronous/asynchronous calls appropriately
- Include error handling and logging
- Important: Ensure to include AppMgrService layer implementation (was missing in previous versions)
See references/patterns.md for advanced patterns or special cases.