環境
この記事は以下の環境で動いています。
項目 | 値 |
---|---|
CPU | Core i5-8250U |
Ubuntu | 22.04 |
Flutter | 3.22.2 |
使用するタブレット環境
項目 | 値 |
---|---|
タブレット | Fire HD 8 Plus(第12世代) |
android version | FireOS8 (Android 11相当) |
android API level | 30 |
概要
ここまでflutterをUbuntuビルドで実行してきましたが、これをAndroid端末で動かせるようにします。
android API level
一口にandroidといっても様々なバージョンがあります。重要なバージョンが2つあります
- Androidバージョン
こちらは「設定アプリ」の「デバイス情報」等で確認できます。販売ページなどで記載しているのはこちらのバージョン番号です。 - APIレベル
こちらはandroidバージョンに1対1で対応する値です。Android開発者ページで確認することが出来ます。
例えばandroid13はAPIレベルは33です。
APIレベルは後述のSDKのインストール時に指定する必要があります。例えばAPIレベル30のSDKをインストールすると、Android13(APIレベル33)では実行できますが、Android10(APIレベル29)では実行できなくなります。
AndroidSDK
Android用のアプリを作るために必要なライブラリです。
開発者モード
通常のAndroid端末ではplayストアからインストールしたアプリしか実行できず、第3者の作成したアプリはインストールできません。Android端末で開発者モードを有効にすると、これらの操作が可能になります。
AndroidSDKのインストール
開発PCにAndroidSDKをインストールします。
javaとのインストール
sudo apt update
sudo apt install openjdk-17-jdk
AndroidSDKのインストール
downloadページの下部にある
commandlinetools-linux-xxxxxxxx_latest.zip
をダウンロードします。
これを展開して~/android-sdk/
に置きます。
flutter config --android-sdk /home/ubuntu/android-sdk/
を実行します。
flutter doctorで確認
flutter doctor
これで[✓] Android toolchain
という表示があれば成功です。
Android用ビルド
Android端末の開発者モード有効化
通常のAndroid端末は正式リリースされたアプリしかインストール・実行が出来ません。今回はローカルビルドしたアプリをインストール・実行するために「開発者モード」と「USBデバッグ」を有効にします。
- 「設定アプリ」を開く->「デバイス情報」を選択
- 「ビルド番号」を10回ほど連続でタップする
- 「設定アプリ」を開く->「システム」を選択->「開発者向けオプション」を選択
- 「USBデバッグ」をONにする
Android端末とPCの接続
開発者モードにしたAndroid端末をPCと接続します。
ADBの再起動
当環境だとこのままだとADBの接続不可のエラーが出ます。root権限で再起動します。
sudo ~/android-sdk/platform-tools/adb reboot
デバイスの接続確認
flutter devices
を実行して端末名を確認します。
$ flutter devices
Found 3 connected devices:
SO 52B (mobile) • HQ615X00B1 • android-arm64 • Android 13 (API 33)
Linux (desktop) • linux • linux-x64 • Ubuntu 22.04.4 LTS
6.5.0-28-generic
Chrome (web) • chrome • web-javascript • Google Chrome 123.0.6312.58
Android用ビルドの実行
flutter run -d HQ615X00B1
を実行すると、Android用のアプリのビルドとインストールを実行します。
このあと端末側にアプリが出現するので、それを実行します。
リリースビルド
上記のビルドはデバッグビルドで、問題発生時に様々な情報が提供される反面、処理負荷の問題があります(今回の例では問題になるほどではありませんが)
以下のコマンドでリリースビルドを行うことが出来ます。
flutter run -d HQ615X00B1 --release