ITミュージアム

Mac と Android の仮装デバイスを接続する手順と APIレベルの対象について(Flutter – VSCode)

2023/04/11 2023/08/01

この記事は、VSCodeを利用したFlutterによるAndroidアプリ開発を前提としたものです。
コマンドラインは使っていません。
仮装デバイス(エミュレータ)の設定については、Android Studio で開発を行っている方にとっても参考になる情報だと思います。

目次

  1. Android デバイスを設定・登録・選択
  2. 仮装デバイス(エミュレータ)でアプリを実行
  3. Androidバージョンとセキュリティアップデートの提供保証期限
  4. Android – APIレベル の対象

1. Android デバイスを設定・登録・選択

Androidの場合は、初めに自分で仮想デバイスを設定・登録する必要があります。
作り方は Android developer 公式サイト も参考になります。私もここを参考にしました。
以下、そこから私がまとめたものです。

VSCodeのエクスプローラから > android を右クリック
[Open in Android Studio]

open android studio

Android Studio が立ち上がったら、Device Managerウィンドウを開きましょう。

方法は下記3つ。

その1:
[Tools]
[Device Manager]

device-manager-1

その2:
[View]
– [Tool Windows]
– [Device Manager]

その3:
右上にあるアイコンをクリック

device-manager-2

Device Manager ウィンドウが開いたら

[Create device] ボタンをクリック

create-device

[Select Hardware] ウィンドウが表示されます。

android-device-choose

Play Store 欄にストアマークが表示されているデバイスは、ハードウェアプロファイルにPlayストアが含まれていることを示しています。

入れたい仮装デバイス、例えば Category [Phone] Name [Pixel 6] を選択して
[Next]

[System Image] が開きます。

android-device-select-system

基本的には [Recommended] タブに推奨されるものが表示され、選択された状態となっています。

アプリが必要とするAPIレベルよりも低いシステムイメージでは、そのアプリを実行できないので、仮装デバイスを入れる際もここに留意しておきましょう。

アプリを制作する際の API Level の指定については、

Flutterの場合
(プロジェクト) / Android / app / build.gradle
ファイル内 minSdkVersion で指定していると思います。

以上を踏まえた上で、API Levelを選び [Next]

[Android Virtual Device(AVD)] が開きます。

android-device-verify-config

AVD Name 欄に表示されている機種名を確認して [Finish]

これでAndroidの仮装デバイスの設定ができました。

(PR)

2. 仮装デバイス(エミュレータ)でアプリを実行

VSCode で main.dart を表示させます。

右下のデバイスを選択

デバイス選択

デバイスがプルダウンで選択できると思いますので、さきほど追加した仮装デバイスを選択しましょう。

Android仮装デバイスが立ち上がります。

2-1. 言語の選択

最初に立ち上げた時や、(cold boot) を選択した場合は、初期設定状態となるため、日本語に変更します。

デバイスによって項目が違うと思いますが、おそらく参考になると思うので、Nexusの場合を明記しておきます。

[Settings]
– [System]
– [Language & input]
– [Languages]
+ Add a language…

[日本語] を選択(かなり下です)

[日本語] を [English] の上に持っていくと、日本語に変更された状態となります。

2-2. アプリを実行

三角のボタンをクリックして実行します。

デバイスで実行

2-3 仮装デバイス(エミュレータ)で実行しようとして下記のようなエラーがでる場合

Installing build/app/outputs/apk/app.apk…
Error: ADB exited with exit code 1
Performing Streamed Install

adb: failed to install /Users/xxx/development/xxxx/build/app/outputs/apk/app.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]
Error launching application on Android SDK built for x86.

仮装デバイスのストレージ容量が一杯になっている可能性があります。
この場合は下記要領で削除することでエラーが解消される可能性があります。
お試しください。

-> 仮装デバイスにインストールされた不要アプリを削除する

-> 仮装デバイスのデータを削除する
各デバイスの右端設定ボタンを右クリックし [Wipe Data] をクリック

wipe-data

Confirm画面が表示されるので
[Yes] をクリック

confirm-data-wipe

もういちど、仮装デバイスで実行してみましょう。

3. Androidバージョンとセキュリティアップデートの提供保証期限

Google Pixel 3a XL 以前

Androidバージョンアップ、セキュリティアップデートともに提供終了しています。

Google Pixel 4 以降

提供保証期限は下記のとおりです。

Android バージョンアップセキュリティ アップデート
Pixel 4,4XL2022.102022.10
Pixel 4a2023.82023.8Android 12
Pixel 4a (5G)2023.112023.11
Pixel 52023.102023.10
Pixel 5a (5G)2024.82024.8
Pixel 6,6Pro2024.102026.10
Pixel 6a2025.72027.7
Pixel 7,7 Pro2025.102027.10Android 13

最新情報は Google Support ページ を確認してください。

最新の Android機種一覧ページ もあります。

(PR)

4. Android – APIレベル の対象

アプリを Google Play へ公開する場合は、APIレベルを確認しておく必要があります。

AndroidバージョンとAPIレベルの対比メモ:

APIレベル21 Android5 2014/11-
APIレベル29 Android10 2019/9-
APIレベル30 Android11 2020/9-
APIレベル31 Android12 2021/10-
APIレベル33 Android13 2022/8-

Google Play の対象 API レベルの要件については Android developer ページ にも詳しく掲載されています。

ー 抜粋 ー
「2023 年 8 月より、新しいアプリは Android 13(API レベル 33)以降を対象とする必要があります。ただし、Android 11(API レベル 30)以降を対象とする必要のある Wear OS アプリは除きます。
2023 年 11 月より、アプリのアップデートは Android 13 以降を対象とし、Android 13 での動作変更に対応する必要があります。ただし、Android 11 以降を対象とする必要のある Wear OS アプリは除きます。」

Android13(APIレベル33)以降が対象必須となるのは

アプリの新規登録 -> 2023年8月から
アプリのアップデート -> 2023年11月から

ということですね。

追記:2023.4.6

「デベロッパーが新しいアプリとアプリのアップデートの対象 API レベルの対応期限を混同することがないよう、期限を毎年 8 月 31 日に統一します。API レベル 31 以降を対象にするためのアプリの更新にさらに時間が必要な場合は、2023 年 11 月 1 日までの期限延長をリクエストできます。」

という案内がありました。今後は8月を区切りとして考えていけばよいという感じでしょうか。

まとめ

「新しいバージョンの Android を搭載したAndroid端末では、一部の古いバージョンのアプリは新規ユーザーに提供されなくなります」と明記されているように、iOS 、Android どちらも アプリ開発を行っていく上で、OSのアップデートに対応していくことは必須です。

仮装デバイス(エミュレータ)を使ってチェックできるのはとても便利ですので、適宜、うまく利用しながらアプリ開発を行いましょう

-> iOS Simulator の接続方法はこちら

おすすめ記事

(PR)