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.
- package/.github/FUNDING.yml +3 -0
- package/.github/workflows/build-release.yml +103 -0
- package/.github/workflows/ci.yml +32 -0
- package/.versionrc.json +15 -0
- package/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +270 -0
- package/analysis_options.yaml +30 -0
- package/bin/avdm.dart +176 -0
- package/docs/.nojekyll +0 -0
- package/docs/404.html +28 -0
- package/docs/README.md +171 -0
- package/docs/_coverpage.md +8 -0
- package/docs/_sidebar.md +15 -0
- package/docs/assets/404.png +0 -0
- package/docs/assets/avdmbanner.png +0 -0
- package/docs/assets/badges.png +0 -0
- package/docs/assets/banner-light.png +0 -0
- package/docs/assets/cover.png +0 -0
- package/docs/assets/favicon.png +0 -0
- package/docs/assets/logo.png +0 -0
- package/docs/commands/create.md +24 -0
- package/docs/commands/delete.md +18 -0
- package/docs/commands/launch.md +17 -0
- package/docs/commands/list.md +32 -0
- package/docs/getting-started.md +135 -0
- package/docs/index.html +105 -0
- package/docs/theme.css +99 -0
- package/example/bin/example.dart +15 -0
- package/lib/avd_utils.dart +186 -0
- package/lib/commands/create.dart +86 -0
- package/lib/commands/delete.dart +31 -0
- package/lib/commands/launch.dart +68 -0
- package/lib/commands/list.dart +183 -0
- package/lib/src/version.dart +37 -0
- package/npm/LICENSE +21 -0
- package/npm/README.md +97 -0
- package/npm/bin/avdm-linux +0 -0
- package/npm/bin/avdm-macos +0 -0
- package/npm/bin/avdm-windows.exe +0 -0
- package/npm/index.js +16 -0
- package/npm/package.json +18 -0
- package/package.json +16 -0
- package/pubspec.yaml +28 -0
- package/scripts/debug_list_devices.dart +15 -0
- package/scripts/sync-versions.js +13 -0
- package/test/create_command_test.dart +38 -0
- package/test/list_avds_test.dart +76 -0
- package/test/utils_test.dart +52 -0
package/docs/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+

|
|
2
|
+
[](https://pub.dev/packages/avd_manager)
|
|
3
|
+
[](https://buymeacoffee.com/guimbobabag)
|
|
4
|
+
[](https://github.com/sponsors/Tdebo21)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](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 - [](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
|
+
[](https://buymeacoffee.com/guimbobabag)
|
|
171
|
+
[](https://github.com/sponsors/Tdebo21)
|
package/docs/_sidebar.md
ADDED
|
@@ -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
|
+
- [](https://github.com/Tdebo21/avd_manager)
|
|
11
|
+
- [](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 - [](https://github.com/Tdebo21/avd_manager)
|
|
135
|
+
- Contribute or open issues to improve the tool
|
package/docs/index.html
ADDED
|
@@ -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
|
+
}
|