avd_manager 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.github/FUNDING.yml +3 -0
  2. package/.github/workflows/build-release.yml +103 -0
  3. package/.github/workflows/ci.yml +32 -0
  4. package/.versionrc.json +15 -0
  5. package/CHANGELOG.md +9 -0
  6. package/LICENSE +21 -0
  7. package/README.md +270 -0
  8. package/analysis_options.yaml +30 -0
  9. package/bin/avdm.dart +176 -0
  10. package/docs/.nojekyll +0 -0
  11. package/docs/404.html +28 -0
  12. package/docs/README.md +171 -0
  13. package/docs/_coverpage.md +8 -0
  14. package/docs/_sidebar.md +15 -0
  15. package/docs/assets/404.png +0 -0
  16. package/docs/assets/avdmbanner.png +0 -0
  17. package/docs/assets/badges.png +0 -0
  18. package/docs/assets/banner-light.png +0 -0
  19. package/docs/assets/cover.png +0 -0
  20. package/docs/assets/favicon.png +0 -0
  21. package/docs/assets/logo.png +0 -0
  22. package/docs/commands/create.md +24 -0
  23. package/docs/commands/delete.md +18 -0
  24. package/docs/commands/launch.md +17 -0
  25. package/docs/commands/list.md +32 -0
  26. package/docs/getting-started.md +135 -0
  27. package/docs/index.html +105 -0
  28. package/docs/theme.css +99 -0
  29. package/example/bin/example.dart +15 -0
  30. package/lib/avd_utils.dart +186 -0
  31. package/lib/commands/create.dart +86 -0
  32. package/lib/commands/delete.dart +31 -0
  33. package/lib/commands/launch.dart +68 -0
  34. package/lib/commands/list.dart +183 -0
  35. package/lib/src/version.dart +37 -0
  36. package/npm/LICENSE +21 -0
  37. package/npm/README.md +97 -0
  38. package/npm/bin/avdm-linux +0 -0
  39. package/npm/bin/avdm-macos +0 -0
  40. package/npm/bin/avdm-windows.exe +0 -0
  41. package/npm/index.js +16 -0
  42. package/npm/package.json +18 -0
  43. package/package.json +16 -0
  44. package/pubspec.yaml +28 -0
  45. package/scripts/debug_list_devices.dart +15 -0
  46. package/scripts/sync-versions.js +13 -0
  47. package/test/create_command_test.dart +38 -0
  48. package/test/list_avds_test.dart +76 -0
  49. package/test/utils_test.dart +52 -0
package/docs/README.md ADDED
@@ -0,0 +1,171 @@
1
+ ![AVD Manager CLI Banner](./assets/banner-light.png)
2
+ [![pub version](https://img.shields.io/pub/v/avd_manager.svg)](https://pub.dev/packages/avd_manager)
3
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-%E2%98%95-yellow)](https://buymeacoffee.com/guimbobabag)
4
+ [![Sponsor](https://img.shields.io/badge/sponsor-GitHub-brightgreen)](https://github.com/sponsors/Tdebo21)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![npm version](https://badge.fury.io/js/avd-manager-cli.svg)](https://badge.fury.io/js/avd-manager-cli)
7
+
8
+ # Welcome :tada: to 📱 AVD Manager CLI
9
+
10
+ A lightweight DART CLI tool for managing Android Virtual Devices with ease and speed.
11
+
12
+ ## Features
13
+
14
+ - ✨ Create and manage AVDs programmatically
15
+ - 🚀 List available AVDs and their sizes
16
+ - 🔧 Launch AVDs with custom options
17
+ - 📋 Delete and clean up unused AVDs
18
+ - 🎯 Cross-platform support (macOS, Windows, Linux)
19
+ - :heart: Open source
20
+
21
+ ## 📦 Installation
22
+
23
+ You can install **AVD Manager CLI** using your preferred package manager, from Pub.dev, or by downloading the binary from the releases page.
24
+
25
+ ```bash
26
+ # Example installation using Homebrew (macOS)
27
+
28
+ brew tap Tdebo21/avd_manager
29
+ brew install avd_manager
30
+ ```
31
+
32
+ # Get help
33
+
34
+ ```bash
35
+ avdm --help
36
+ ```
37
+
38
+ - **Installing from Pub.dev**
39
+
40
+ ### Prerequisites
41
+
42
+ - **Dart SDK** 3.0 or higher ([Install Dart](https://dart.dev/get-dart))
43
+ - **Android SDK** with emulator tools ([Install Android Studio](https://developer.android.com/studio))
44
+ - **Java JDK** 11 or higher
45
+
46
+ ### macOS
47
+
48
+ ```bash
49
+ # Install from pub.dev
50
+ dart pub global activate avdm_manager
51
+
52
+ # Verify installation
53
+ avdm --version
54
+ ```
55
+
56
+ ### Windows
57
+
58
+ ```powershell
59
+ # Using pub.dev
60
+ dart pub global activate avdm_manager
61
+
62
+ # Add Dart global bin to PATH if not already done:
63
+ # %APPDATA%\Pub\Cache\bin
64
+
65
+ # Verify installation
66
+ avdm --version
67
+ ```
68
+
69
+ ### Linux
70
+
71
+ ```bash
72
+ # Using pub.dev
73
+ dart pub global activate avdm_manager
74
+
75
+ # Add Dart global bin to PATH (usually automatic, but verify):
76
+ # ~/.pub-cache/bin
77
+
78
+ # Verify installation
79
+ avdm --version
80
+ ```
81
+
82
+ - **Installing using npm**
83
+
84
+ ```bash
85
+ npm install -g avd-manager-cli
86
+ ```
87
+
88
+ - **Installing from GitHub Releases (Binaries)** -
89
+ Users without Dart SDK can download executable from the releases page, add to PATH.
90
+
91
+ ## 📚 Commands Overview
92
+
93
+ See the sidebar for detailed command documentation.
94
+
95
+ - **[list](commands/list.md)** – Show available AVDs
96
+ - **[create](commands/create.md)** – Create a new AVD
97
+ - **[launch](commands/launch.md)** – Start a virtual device
98
+ - **[delete](commands/delete.md)** – Remove an AVD
99
+
100
+ ## License
101
+
102
+ MIT License - See [LICENSE](https://github.com/Tdebo21/avd_manager/blob/main/LICENSE)
103
+
104
+ ## Usage
105
+
106
+ Once installed, simply run:
107
+
108
+ ```bash
109
+ avdm --help
110
+ ```
111
+
112
+ You’ll see a list of available commands and options.
113
+
114
+ ```bash
115
+ avdm list [options]
116
+ ```
117
+
118
+ ## Options
119
+
120
+ - `--sort [size|name]` - Sort AVDs by size or name
121
+ - `--min-size <size>` - Only show AVDs larger than this size (e.g., 500MB, 1GB)
122
+ - `-h, --help` - Show help information
123
+
124
+ ## Examples Usage
125
+
126
+ ```bash
127
+ # List all AVDs
128
+ avdm list
129
+
130
+ # Sort by name
131
+ avdm list --sort name
132
+
133
+ # Filter by minimum size
134
+ avdm list --min-size 1GB
135
+
136
+ # Create a new AVD
137
+ avdm create Pixel_API_35 --device pixel --api 35
138
+
139
+ # Delete an AVD
140
+ avdm delete Pixel_API_35
141
+
142
+ # Launch a specific AVD with defaults
143
+ avdm launch TestDevice
144
+ ```
145
+
146
+ ## 🧩 Troubleshooting
147
+
148
+ If you encounter issues:
149
+
150
+ - Ensure Android SDK tools are installed
151
+ - Verify that avdmanager and sdkmanager are available in your PATH
152
+
153
+ ## 📝 Changelog
154
+
155
+ See the full changelog in `CHANGELOG.md` for version history and updates by visiting the GitHub Repository - [![GitHub](https://img.shields.io/badge/GitHub-avd_manager-blue)](https://github.com/Tdebo21/avd_manager)
156
+
157
+ ## ❤️ Support & Sponsorship
158
+
159
+ If this tool saves you time or improves your workflow, consider supporting the project:
160
+
161
+ ⭐ Star the repository
162
+
163
+ 🐛 Submit issues
164
+
165
+ 🤝 Contribute pull requests
166
+
167
+ ☕ Sponsor development
168
+
169
+ Your support keeps the project growing.
170
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-%E2%98%95-yellow)](https://buymeacoffee.com/guimbobabag)
171
+ [![Sponsor](https://img.shields.io/badge/sponsor-GitHub-blue)](https://github.com/sponsors/Tdebo21)
@@ -0,0 +1,8 @@
1
+ ![Logo](./assets/logo.png)
2
+
3
+ # AVD Manager CLI
4
+
5
+ > Manage Android Virtual Devices from your terminal
6
+
7
+ [Get Started](getting-started.md)
8
+ [View on GitHub](https://github.com/Tdebo21/avd_manager)
@@ -0,0 +1,15 @@
1
+ - [Home](README.md)
2
+ - [Getting Started](getting-started.md)
3
+
4
+ * **Commands**
5
+ - [List AVDs](./commands/list.md)
6
+ - [Create AVD](./commands/create.md)
7
+ - [Delete AVD](./commands/delete.md)
8
+ - [Launch AVD](./commands/launch.md)
9
+ * **Links**
10
+ - [![GitHub](https://img.shields.io/badge/GitHub-avd_manager-blue)](https://github.com/Tdebo21/avd_manager)
11
+ - [![Pub.dev](https://img.shields.io/badge/Pub.dev-avd_manager-blue)](https://pub.dev/packages/avd_manager)
12
+
13
+ ```
14
+
15
+ ```
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,24 @@
1
+ # 🛠 Create AVD
2
+
3
+ The `create` command sets up a new Android Virtual Device using a given system image and name.
4
+
5
+ ## 🔧 Usage
6
+
7
+ ```bash
8
+ avdm create <avd-name> --api image "<system-image>"
9
+ ````
10
+
11
+ ## 🏷 Options
12
+
13
+ | Flag | Description |
14
+ | --------- | -------------------------------------- |
15
+ | `--api` | API level (e.g. 28) |
16
+ | `--abi` | ABI for the system image (e.g. x86, x86_64, arm64-v8a) |
17
+
18
+ ✅ **Tip:** Use `sdkmanager --list` to find available system images.
19
+
20
+ ## ✅ Example
21
+
22
+ ```bash
23
+ avdm create Pixel_24 --api=24 image "system-images;android-24;google_apis;x86_64"
24
+ ```
@@ -0,0 +1,18 @@
1
+ # 🗑 Delete AVD
2
+
3
+ The `delete` command removes an AVD from your system permanently.
4
+
5
+ ## ⚠️ Caution
6
+
7
+ This operation **cannot be undone**.
8
+
9
+ ## 🔧 Usage
10
+
11
+ ```bash
12
+ avdm delete <avd_name>
13
+ ````
14
+ ## ✅ Example
15
+
16
+ ```bash
17
+ avdm delete Pixel_34
18
+ ```
@@ -0,0 +1,17 @@
1
+ # 🚀 Launch AVD
2
+
3
+ The `launch` command boots up the specified AVD in the emulator.
4
+
5
+ ## 🔧 Usage
6
+
7
+ ```bash
8
+ avdm launch <avd-name>
9
+ ````
10
+
11
+ ## ✅ Example
12
+
13
+ ```bash
14
+ avdm launch <existing_avdm_name> (i.e avdm launch Pixel_34)
15
+ ```
16
+
17
+ This launches the emulator window for the specified device.
@@ -0,0 +1,32 @@
1
+ # 📋 List AVDs
2
+
3
+ The `list` command shows all available Android Virtual Devices (AVDs) on your system.
4
+
5
+ ## 🔧 Usage
6
+
7
+ ```bash
8
+ avdm list [--sort name|size] [--min-size 1GB]
9
+ ```
10
+
11
+ ## 🏷 Options
12
+
13
+ | Flag | Description |
14
+ | ------------ | -------------------------------------------------- |
15
+ | `--sort` | Sort AVDs by `name` or `size` |
16
+ | `--min-size` | Show only AVDs larger than given size (e.g. `2GB`) |
17
+
18
+ ## ✅ Examples
19
+
20
+ ```bash
21
+ # List all AVDs
22
+ avdm list
23
+
24
+ # List and sort by size
25
+ avdm list --sort size
26
+
27
+ # List only AVDs > 2GB
28
+ avdm list --min-size 2GB
29
+
30
+ # List and sort by name
31
+ avdm list --sort name
32
+ ```
@@ -0,0 +1,135 @@
1
+ # Getting Started
2
+
3
+ Welcome to **AVD Manager CLI** — a simple and efficient command-line tool for managing Android Virtual Devices (AVDs) directly from your terminal.
4
+
5
+ This quick-start guide will help you install, configure, and use the CLI in just a few steps.
6
+
7
+ ---
8
+
9
+ ## 🧩 Prerequisites
10
+
11
+ Before you begin, make sure you have:
12
+
13
+ - **Android SDK** installed
14
+ - **Java JDK 11+**
15
+ - **Android SDK tools** (`avdmanager`, `sdkmanager`) available in your PATH
16
+ - **Node.js** (if installing via npm)
17
+ - **Homebrew** (if installing via Homebrew)
18
+
19
+ ---
20
+
21
+ ## ⚙️ Installation
22
+
23
+ ### Using npm
24
+
25
+ You can install AVD Manager CLI globally using npm:
26
+
27
+ ```bash
28
+ npm install -g avd-manager-cli
29
+ ```
30
+
31
+ Or clone the repository manually:
32
+
33
+ ```bash
34
+ git clone https://github.com/Tdbo21/avd_manager.git
35
+ cd avd_manager
36
+ npm install
37
+ ```
38
+
39
+ ### Using Homebrew
40
+
41
+ Alternatively, using Homebrew (macOS users):
42
+
43
+ ### Tap Homebrew repository
44
+
45
+ ```bash
46
+ brew tap Tdebo21/avd_manager
47
+ ```
48
+
49
+ ### Install the tool
50
+
51
+ ```bash
52
+ brew install avd_manager
53
+ ```
54
+
55
+ ### Use it
56
+
57
+ ```bash
58
+ avdm --help
59
+ ```
60
+
61
+ ### To update
62
+
63
+ ```bash
64
+ brew upgrade avd_manager
65
+ ```
66
+
67
+ ### Uninstall (if needed)
68
+
69
+ ```bash
70
+ brew uninstall avd_manager
71
+ ```
72
+
73
+ ### Using Dart (pub.dev)
74
+
75
+ ```bash
76
+ dart pub global activate avd_manager
77
+ ```
78
+
79
+ ## 🚀 First Run
80
+
81
+ After installation, verify the CLI is working:
82
+
83
+ ```bash
84
+ avdm --help
85
+ ```
86
+
87
+ You should see a list of available commands and their usage.
88
+
89
+ ## 🧭 Common Commands
90
+
91
+ | Command | Description |
92
+ | -------------------------------------------------------- | ------------------------ |
93
+ | `avdm `list | Lists all available AVDs |
94
+ | `avdm `create `Pixel_API_35 `--device `pixel `--api `35` | Creates a new AVD |
95
+ | `avdm `delete `Pixel_API_35` | Deletes an existing AVD |
96
+ | `avdm `launch `Pixel_API_35` | Launches an existing AVD |
97
+
98
+ ## 🧪 Example Workflow
99
+
100
+ List existing AVDs
101
+
102
+ ```bash
103
+ avdm list
104
+ ```
105
+
106
+ Create a new AVD
107
+
108
+ ```bash
109
+ avdm create Pixel_API_35 --device pixel --api 35
110
+ ```
111
+
112
+ Delete an AVD
113
+
114
+ ```bash
115
+ avdm delete Pixel_API_35
116
+ ```
117
+
118
+ Launch an AVD
119
+
120
+ ```bash
121
+ avdm launch Pixel_API_35
122
+ ```
123
+
124
+ ## 🧰 Troubleshooting
125
+
126
+ If you encounter issues:
127
+
128
+ - Ensure your Android SDK path is correctly set
129
+ - Check permissions for the .android directory
130
+
131
+ ## 🧩 Next Steps
132
+
133
+ - Explore the [README](README.md)section for detailed usage
134
+ - Visit the GitHub Repository - [![GitHub](https://img.shields.io/badge/GitHub-avd_manager-blue)](https://github.com/Tdebo21/avd_manager)
135
+ - Contribute or open issues to improve the tool
@@ -0,0 +1,105 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>AVD Manager (avdm) - CLI Documentation</title>
7
+ <link
8
+ rel="stylesheet"
9
+ href="https://cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css"
10
+ />
11
+ <link rel="icon" href="./assets/favicon.png" type="image/png" />
12
+ <link rel="stylesheet" href="./theme.css" />
13
+ <style>
14
+ :root {
15
+ --primary-color: #007bff;
16
+ --text-color: #333;
17
+ --border-color: #eee;
18
+ --code-theme-bg: #f4f4f4;
19
+ }
20
+ body {
21
+ font-family:
22
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
23
+ sans-serif;
24
+ }
25
+ </style>
26
+ <!-- Prism for Syntax Highlighting and Copy Button -->
27
+ <link
28
+ rel="stylesheet"
29
+ href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.css"
30
+ />
31
+ <link
32
+ rel="stylesheet"
33
+ href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css"
34
+ />
35
+ <link
36
+ rel="stylesheet"
37
+ href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.css"
38
+ />
39
+ </head>
40
+ <body>
41
+ <div id="app"></div>
42
+ <div id="theme-toggle">🌗 Toggle Theme</div>
43
+ <script>
44
+ const toggle = document.getElementById("theme-toggle");
45
+ const currentTheme = localStorage.getItem("theme");
46
+
47
+ if (currentTheme) {
48
+ document.documentElement.setAttribute("data-theme", currentTheme);
49
+ }
50
+
51
+ toggle.addEventListener("click", () => {
52
+ const theme =
53
+ document.documentElement.getAttribute("data-theme") === "dark"
54
+ ? "light"
55
+ : "dark";
56
+
57
+ document.documentElement.setAttribute("data-theme", theme);
58
+ localStorage.setItem("theme", theme);
59
+ });
60
+ </script>
61
+ <!-- Docsify Configuration -->
62
+ <script>
63
+ window.$docsify = {
64
+ name: "AVD Manager (avdm) CLI",
65
+ repo: "https://github.com/Tdebo21/avd_manager",
66
+ loadSidebar: true,
67
+ alias: { "/.*/_sidebar.md": "/_sidebar.md" },
68
+ homepage: "README.md",
69
+ coverpage: true,
70
+ subMaxLevel: 2,
71
+ sidebarDisplayLevel: 1,
72
+ search: true,
73
+ themeColor: "#007bff",
74
+ notFoundPage: "404.html",
75
+ auto2top: true,
76
+ maxLevel: 3,
77
+ // Code highlighting
78
+ highlight: {
79
+ style: "atom-one-dark",
80
+ },
81
+ // Plugins
82
+ plugins: [
83
+ function (hook, vm) {
84
+ hook.doneEach(function () {
85
+ // Re-initialize Prism after content loads
86
+ if (window.Prism) {
87
+ Prism.highlightAll();
88
+ }
89
+ });
90
+ },
91
+ ],
92
+ };
93
+ </script>
94
+ <script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
95
+ <script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
96
+ <!-- Prism Syntax Highlighting -->
97
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
98
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"></script>
99
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"></script>
100
+ <!-- Emoji plugin -->
101
+ <script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.min.js"></script>
102
+ <!-- Zoom image plugin -->
103
+ <script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.min.js"></script>
104
+ </body>
105
+ </html>
package/docs/theme.css ADDED
@@ -0,0 +1,99 @@
1
+ /* ------------------------------
2
+ LIGHT THEME (default)
3
+ ------------------------------ */
4
+ :root {
5
+ --bg-color: #ffffff;
6
+ --text-color: #1a1a1a;
7
+ --link-color: #1e88e5;
8
+ --sidebar-bg: #f5f5f5;
9
+ --sidebar-text: #333333;
10
+ --accent: #3ddc84;
11
+ }
12
+
13
+ /* ------------------------------
14
+ DARK THEME
15
+ ------------------------------ */
16
+ [data-theme="dark"] {
17
+ --bg-color: #121212;
18
+ --text-color: #e0e0e0;
19
+ --link-color: #64b5f6;
20
+ --sidebar-bg: #1e1e1e;
21
+ --sidebar-text: #cccccc;
22
+ --accent: #3ddc84;
23
+ }
24
+
25
+ /* ------------------------------
26
+ Apply Variables
27
+ ------------------------------ */
28
+ html,
29
+ body {
30
+ background: var(--bg-color);
31
+ color: var(--text-color);
32
+ transition:
33
+ background-color 0.35s ease,
34
+ color 0.35s ease;
35
+ }
36
+
37
+ .sidebar {
38
+ background: var(--sidebar-bg);
39
+ color: var(--sidebar-text);
40
+ }
41
+
42
+ .sidebar a {
43
+ color: var(--sidebar-text);
44
+ }
45
+
46
+ a {
47
+ color: var(--link-color);
48
+ }
49
+
50
+ .markdown-section h1,
51
+ .markdown-section h2,
52
+ .markdown-section h3 {
53
+ color: var(--accent);
54
+ }
55
+
56
+ /* Toggle Button */
57
+ #theme-toggle {
58
+ position: fixed;
59
+ top: 15px;
60
+ right: 20px;
61
+ background: var(--accent);
62
+ color: #000;
63
+ padding: 6px 12px;
64
+ border-radius: 6px;
65
+ cursor: pointer;
66
+ font-size: 14px;
67
+ z-index: 999;
68
+ user-select: none;
69
+ }
70
+ /* Customize Prism copy button */
71
+ .prism-toolbar {
72
+ background: rgba(0, 0, 0, 0.8);
73
+ border-radius: 4px;
74
+ }
75
+
76
+ .prism-toolbar-item button {
77
+ background: #007bff;
78
+ color: white;
79
+ border: none;
80
+ padding: 8px 12px;
81
+ border-radius: 3px;
82
+ cursor: pointer;
83
+ font-size: 12px;
84
+ }
85
+
86
+ .prism-toolbar-item button:hover {
87
+ background: #0056b3;
88
+ }
89
+
90
+ /* Code block styling */
91
+ pre {
92
+ border-radius: 6px;
93
+ border: 1px solid #e0e0e0;
94
+ background: #f5f5f5;
95
+ }
96
+
97
+ code {
98
+ font-family: "Courier New", monospace;
99
+ }
@@ -0,0 +1,15 @@
1
+ import 'package:avd_manager/avd_utils.dart';
2
+ import 'package:avd_manager/commands/list.dart' hide getAvailableAvds;
3
+
4
+ Future<void> main() async {
5
+ //list available AVDs with their sizes
6
+ final avdData = await getAvailableAvds();
7
+ if (avdData.isEmpty) {
8
+ print('No AVDs found in the system.');
9
+ return;
10
+ }
11
+ for (final avd in await getAvailableAvds()) {
12
+ final sizeStr = formatSize(avd.sizeBytes);
13
+ print('AVD: ${avd.name}, Size: ($sizeStr)');
14
+ }
15
+ }