android_create_avd
Create Android Virtual Devices (AVDs) for mobile app testing and development. Configure device specifications, system images, and storage to simulate real Android environments.
Instructions
Create a new Android Virtual Device (AVD)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | AVD name (alphanumeric and underscores only) | |
| systemImageId | Yes | System image package ID | |
| device | No | Device definition (optional) | |
| sdcard | No | SD card size (e.g., 512M, 1G) |
Implementation Reference
- src/tools/android.ts:402-455 (handler)Full tool registration and handler implementation for 'android_create_avd'. Validates input, executes 'avdmanager create avd' command with parameters, handles timeout and errors, returns structured success response with AVD details.tools.set('android_create_avd', { name: 'android_create_avd', description: 'Create a new Android Virtual Device (AVD)', inputSchema: { type: 'object', properties: { name: { type: 'string', minLength: 1, description: 'AVD name (alphanumeric and underscores only)' }, systemImageId: { type: 'string', minLength: 1, description: 'System image package ID' }, device: { type: 'string', description: 'Device definition (optional)' }, sdcard: { type: 'string', description: 'SD card size (e.g., 512M, 1G)' } }, required: ['name', 'systemImageId'] }, handler: async (args: any) => { const validation = AndroidAvdCreateSchema.safeParse(args); if (!validation.success) { throw new Error(`Invalid request: ${validation.error.message}`); } const { name, systemImageId, sdcard, device } = validation.data; // Validate AVD name (only alphanumeric and underscores) if (!/^[a-zA-Z0-9_]+$/.test(name)) { throw new Error('AVD name can only contain alphanumeric characters and underscores'); } const args_cmd = ['create', 'avd', '--name', name, '--package', systemImageId]; if (device) { args_cmd.push('--device', device); } if (sdcard) { args_cmd.push('--sdcard', sdcard); } const result = await processExecutor.execute('avdmanager', args_cmd, { timeout: 300000, // 5 minutes timeout }); if (result.exitCode !== 0) { throw new Error(`AVD creation failed: ${result.stderr}`); } return { success: true, data: { avdName: name, systemImage: systemImageId, output: result.stdout, }, }; } });
- src/tools/android.ts:69-74 (schema)Zod schema for validating input parameters of android_create_avd tool: required name and systemImageId, optional device and sdcard.const AndroidAvdCreateSchema = z.object({ name: z.string().min(1), systemImageId: z.string().min(1), device: z.string().optional(), sdcard: z.string().optional(), });
- src/utils/tool-categories.ts:132-140 (registration)Tool metadata registration in global TOOL_REGISTRY, categorizing it as ESSENTIAL Android tool requiring AVDMANAGER with performance expectations.'android_create_avd': { name: 'android_create_avd', category: ToolCategory.ESSENTIAL, platform: 'android', requiredTools: [RequiredTool.AVDMANAGER], description: 'Create new Android Virtual Device', safeForTesting: false, performance: { expectedDuration: 5000, timeout: 60000 } },
- scripts/validate-tools.ts:170-170 (helper)Mapping in validation script associating android_create_avd with required system tool 'avdmanager' for environment checks.'android_create_avd': 'avdmanager',