better done than better said

困ったときに調べた結果

crodova開発環境 androidのエミュレータ, 実機での実行

開発環境の構築は記事を参照。*1

androidガイドラインはあるんですが若干説明が足りてないと翻訳がおかしいところがあるので補足が必要です。 Android プラットフォーム ガイド - Apache Cordova

android studioをインストール。*2

環境変数を設定

export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"
export PATH="$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/tools:$PATH"
export PATH="$PATH:$ANDROID_SDK_ROOT/tools"
export PATH="$PATH:$ANDROID_SDK_ROOT/platform-tools"

ターミナルを更新してadbコマンドが打てれば設定完了。
あとはandroid studioを立ち上げてconfigure -> AVDManager(emulate download), SDKManager(api, Download)で必要なものをインストールする。

ここまでできれば以下のコマンドでエミュレータで実行できます。

# 実行したい端末一覧を確認
$ cordova run android --list 
Available android devices:
Available android virtual devices:
Nexus7
Pixel_2_API_28

$ cordova emulate android --target="Pixel_2_API_28"

実機で実行する場合は

  • 端末の設定→端末情報→ビルド番号を複数回タップして開発者モードに変更
  • 開発者向けオプション -> USBデバックをONへ あとは以下のコマンドで動作します。
$ cordova run android

しかしcordova emulateでの起動はバージョン一致していないと動作しないなど挙動が不安定なのでandroid studioでrunするのが安定して開発に取り組めるかもしれません。

  • ~/platforms/androidandroid studioで開く
  • cordova-project -> java -> com.sjisjis.cordova.app(id) -> MainAciviyを洗濯してrunでOK

その他ハマりどころ

*1:環境はmac

*2:versionは3.3