scoop で Flutter の開発環境を用意する。Android Studio 無しで


Android アプリの開発をするときは Android Studio をインストールして付属してくる Android SDK を使うことが一般的ですが、私は他のエディタで開発したかったので Android Studio をインストールしたくありませんでした。

Android Studio をインストールせずに Windows 上に Flutter の開発環境を構築したので、その方法をメモしておきます。

## 環境

- x86_64
- Windows 11 Home
- Powershell 7

## Java

JDK はすでにインストールされているものとする。

## Flutter と Android Command-line Tool

scoop で flutter と android-clt をインストールする。

```sh
scoop install flutter android-clt
```

続いて android-clt に含まれる sdkmanager を使って必要なものをインストールする。

```sh
sdkmanager --list # インストール済みのパッケージと利用可能なパッケージを表示する
sdkmanager platform-tools # adb などのコマンドをインストールする <https://developer.android.com/tools?hl=ja#tools-platform>
sdkmanager "platforms;android-29" # Android SDK をインストールする。数字は開発対象のバージョンに合わせる
sdkmanager "build-tools;29.0.3"
```

Android SDK のバージョンについては [Android SDK API Level 一覧 #Android - Qiita](https://qiita.com/irgaly/items/bd2ffe3725424690b856) を参照すると良い。

`flutter doctor` を実行してエラーがなければ OK

## エミュレータ

エミュレータを作成するにはシステムイメージが必要なのでダウンロードする。

```sh
sdkmanager "system-images;android-30;default;x86_64"
```

`emulator` パッケージもインストールする。

```sh
sdkmanager emulator
```

android-clt に含まれる avdmanager を使って Android Virtual Device（AVD）を作成する。`--device` に指定できる値は `avdmanager list device` で確認できる。

```sh
avdmanager create avd --name android30 --package "system-images;android-30;default;x86_64" --device "pixel"
```

作成できているか確認する。

```sh
> avdmanager list avd
Available Android Virtual Devices:
    Name: android30
  Device: pixel (Google)
    Path: C:\Users\hoge\.config\.android\avd\android30.avd
  Target: Default Android System Image
          Based on: Android 11.0 ("R") Tag/ABI: default/x86_64
  Sdcard: 512 MB
```

環境変数 `ANDROID_AVD_HOME` を設定する。この場合は `C:\\Users\\hoge\\.config\\.android\\avd` にする。

ハードウェアアクセラレーションが利用可能かどうか確認する。

```sh
> . "$(scoop prefix android-clt)\emulator\emulator" -accel-check

INFO    | Storing crashdata in: C:\Users\hoge\AppData\Local\Temp\\AndroidEmulator\emu-crash-34.2.15.db, detection is enabled for process: 24760
accel:
0
Please disable Hyper-V before using the Android Emulator.  Start a command prompt as Administrator, run 'bcdedit /set hypervisorlaunchtype off', reboot.WHPX (10.0.22631) is installed and usable.
accel
```

私の環境では WHPX (Windows Hypervisor Platform) が利用できるようである (`WHPX is installed and usable` と書いてるので多分そう)。できない場合は [Configure hardware acceleration for the Android Emulator  |  Android Studio  |  Android Developers](https://developer.android.com/studio/run/emulator-acceleration#accel-vm) を見ると良いと思う。

エミュレータを起動する。

```sh
. "$(scoop prefix android-clt)\emulator\emulator" -avd android30
```

ウィンドウが開いてその中に Android の画面が出ているはずである。うまく行ったら☓を押してウィンドウを閉じる。

Flutter からエミュレータが認識されているか確認する。

```sh
flutter emulators
```

認識されていれば OK。

## 参考資料

- [Android Studio を入れずに Android 開発環境を構築する](https://zenn.dev/110416/articles/0945183fe53740)
- [コマンドライン ツール  |  Android Studio  |  Android Developers](https://developer.android.com/tools?hl=ja)
- [Android SDK API Level 一覧 #Android - Qiita](https://qiita.com/irgaly/items/bd2ffe3725424690b856)
- [最近、neovimでFlutter開発することが幸せです](https://zenn.dev/mjhd/articles/dd41dcf4fb9fdd)
- [akinsho/flutter-tools.nvim: Tools to help create flutter apps in neovim using the native lsp](https://github.com/akinsho/flutter-tools.nvim)
- [Make Android apps | Flutter](https://docs.flutter.dev/get-started/install/windows/mobile)
- [Android Emulator の仮想デバイスを使用する  |  Android Open Source Project](https://source.android.com/docs/setup/test/avd?hl=ja)
- [avdmanager  |  Android Studio  |  Android Developers](https://developer.android.com/tools/avdmanager?hl=ja)
- [Configure hardware acceleration for the Android Emulator  |  Android Studio  |  Android Developers](https://developer.android.com/studio/run/emulator-acceleration#accel-vm)