dotnet / dotnet/android

Add AVD Manager wrapper (avdmanager CLI)

Open
#12,069 0 comments 0 reactions 0 assignees View on GitHub
android-tools enhancement needs-triage
Dominant language
C#
Stars
2.1k
Forks
579
Avg merge
1d 19h
Merged PRs (30d)
252

Description

## Summary

Add `AvdManagerRunner` class to `Xamarin.Android.Tools.AndroidSdk` to wrap `avdmanager` CLI operations for programmatic AVD management.

## Background

The MAUI DevTools CLI needs to create, delete, and list Android Virtual Devices. This functionality should live in the shared `android-tools` package so it can be reused by VS, VS Code extensions, and CLI tools.

Reference implementation exists in `android-platform-support` (internal) `Mono.AndroidTools.AvdManager`.

## Proposed API Surface

`csharp
public class AvdManagerRunner
{
Task> ListAvdsAsync(CancellationToken ct = default);
Task CreateAvdAsync(string name, string device, string systemImage, CancellationToken ct = default);
Task DeleteAvdAsync(string name, CancellationToken ct = default);
}

public record AvdInfo(string Name, string Device, string Path, string Target, string Abi);
`

## Consumer

- **MAUI DevTools CLI** (`maui android emulator create/delete/list`) — see [MAUI DevTools Spec PR](https://github.com/dotnet/maui/pull/33865)

## Related

- dotnet/android-tools#271 (SDK bootstrap)
- dotnet/android#12067 (License acceptance)
- MAUI DevTools spec §6.8: Shared Libraries & Code Reuse

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.