できること
Android エミュレータのサポートを有効にすると、Devin はモバイル開発の一連の作業全体をカバーできます。PR のビルドとスモークテスト
Devin はエミュレータ上でアプリをビルドして実行し、各 PR ごとに重要なフローをクリック操作で確認します。機能が正しく動作していることを示す動画録画を確認して、そのままマージできます。
エンドツーエンドのモバイルテスト
ログイン、画面遷移、フォーム送信、チェックアウトなどの一連のユーザーフローを、モックではなく実際の Android スタック上でテストします。Devin はフローをステップごとにたどり、不具合があれば検出します。
UI の検証
さまざまな画面サイズや API レベルで、レイアウト、テーマ、レスポンシブ対応を検証します。Devin は重要なポイントでスクリーンショットを取得し、要素の重なりやテキストの切れといった視覚的な問題を検出します。
クラッシュと ANR のデバッグ
エミュレータ上で問題を再現し、
logcat の出力を取得し、挙動を調査して根本原因を特定し、修正を push するまで、すべてを 1 つのセッションで行えます。クロスプラットフォーム検証
React Native、Flutter、または Kotlin Multiplatform で開発していますか?Devin なら、同じセッション内で Web やデスクトップのビルドと並行して Android 側もテストできます。
インストルメント化テストの実行
Espresso や UI Automator のテストスイートをエミュレータ上で実行し、結果を受け取れます。別途 CI 用のデバイスファームや物理デバイスを用意する必要はありません。
複数構成でのテスト
複数の AVD を設定することで、異なる API レベルやデバイスプロファイルでアプリを検証できます。ユーザーに届く前に互換性の問題を見つけるのに役立ちます。
仕組み
Android エミュレータのサポートは、Devin の環境の他の部分と同じ宣言的構成システムに基づいています。ブループリントに Android SDK とエミュレータを追加すると、必要なものがすべてプリインストールされた VM を Devin のスナップショットが構築します。すべてのセッションはそのスナップショットから起動するため、エミュレータはすぐに利用できます。 セッション中、Devin は 2 つの方法でエミュレータを操作します。
エミュレータのウィンドウは Devin のデスクトップ上で実行されるため、webapp の Desktop タブから、Devin が app をリアルタイムで操作する様子を確認できます。
エミュレータのセットアップ
- Devin に任せる(推奨)
- ブループリントを手動で設定する
最も簡単に始める方法です。Devin が Android プロジェクトを解析し、適切な SDK コンポーネントをインストールして、エミュレータを設定します。
1
Devin セッションを開始する
新しいセッションを開き、Devin に Android エミュレーションのセットアップを依頼します。例: 「このリポジトリ用に Android エミュレータをセットアップして。」
2
内容を確認して承認する
Devin は、Android SDK、ビルドツール、エミュレータ設定を含むブループリントを提案します。タイムラインの提案カードを確認し、Approve をクリックします。
3
確認する
ビルドが完了したら、新しいセッションを開始します。すべてが正しく動作することを確認するため、Devin にエミュレータ上でアプリをビルドして実行するよう依頼します。
インストールされるもの
一般的な Android エミュレータのサポートのブループリントでは、次のコンポーネントがインストールされます。エミュレータの使い方
オンデマンドテスト
セッション中であれば、どのタイミングでも Devin にアプリのビルドと実行を依頼できます。特別な構文は不要で、自然な言葉で指示するだけです。- 「Android エミュレータでアプリをビルドして実行して」
- 「エミュレータでログインフローをテストして、録画を送って」
- 「エミュレータで設定画面を開いて、新しいトグルが表示されることを確認して」
- 「エミュレータで Espresso テストを実行して、結果を見せて」
adb を、視覚的な操作には Computer Use を利用します。
Testing & Recordings との統合
Android エミュレータのサポートは、Devin の Testing & Recordings ワークフローに直接組み込まれています。PR を作成すると、次のように進みます。- Devin が アプリをテスト するよう提案します — ボタンをクリックするか、直接依頼してください
- Devin がエミュレータ上でアプリをビルドして実行し、目的を絞ったテスト計画を実行します
- エミュレータ画面が、注釈付きの動画録画としてキャプチャされます
- その録画が送信されるため、テストの様子を確認したうえで、安心してマージできます
Skillの提案
Android アプリのテスト後、Devin は学習した内容――エミュレータの起動方法、実行する Gradle タスク、テスト対象の機能への移動方法――を書き留め、PR を通じて Skill の作成または更新を提案します。PR はそのままマージすることも、手順をより適切にするために調整することもできます。 これにより、Devin は時間とともにあなたの Android プロジェクトのテストをよりうまく行えるようになります。各セッションで得た学びは前回の内容に積み重なっていくため、Devin があなたのアプリを 2 回目にテストするときには、すでにビルド方法、起動すべきアクティビティ、そして特に重要なフローを把握しています。 また、いつでもプロンプトで Devin にこれを行うよう依頼できます (たとえば、「この Android アプリのビルド方法とテスト方法についての Skill を作成して」) 。詳しくは、Skills guide を参照してください。デスクトップ経由での操作
Android エミュレータは、Devin の Linux デスクトップ上でウィンドウとして動作します。つまり、次のことが可能です。- Devin は Computer Use を使ってエミュレータを操作できます — ボタンのタップ、スワイプ、テキスト入力、画面間の移動
- Devin webapp の Desktop タブから、リアルタイムで確認できます
- 録画には、Devin のデスクトップ上に表示されている他の内容とあわせて、エミュレータの画面も含まれます
adb の利用
Devin は adb を介してエミュレータをプログラムから操作することもでき、次のような用途で役立ちます。
- APK のインストール —
adb install app-debug.apk - インストルメント化テストの実行 —
adb shell am instrument -w com.example.test/androidx.test.runner.AndroidJUnitRunner - ログの取得 —
adb logcatでクラッシュや予期しない動作をデバッグ - スクリーンショットの取得 —
adb exec-out screencap -p > screenshot.png - ユーザー入力のシミュレーション —
adb shell input tap 500 800でスクリプト化された操作を実行
adb と Computer Use を使い分けます。速度と自動化には adb、視覚的な確認や複雑な UI フローには Computer Use を利用します。
ブループリントの使用例
一般的な Android セットアップ向けの、コピー&ペーストですぐ使えるブループリントです。各テンプレートは単体で完結しているので、ブループリントエディタに貼り付けて保存してください。ネイティブAndroid (Kotlin/Java + Gradle)
ネイティブAndroid (Kotlin/Java + Gradle)
React Native
React Native
Flutter
Flutter
Kotlin Multiplatform
Kotlin Multiplatform
トラブルシューティング
エミュレータが起動しない
主な原因: VM で KVM が利用できない、メモリが不足している、またはシステムイメージが不足している。 対処法: Devin は、エミュレータにハードウェアアクセラレーションが必要だと検出すると、KVM を自動的に設定しようとします。ほとんどの場合、これで手動対応なしに問題は解消します。Devin がこの設定を試みた後も KVM が利用できない場合は、エミュレータをソフトウェアレンダリングモードで起動できます。エミュレータの起動コマンドに-no-accel を追加してください。ただし、パフォーマンスは低下します。あわせて、ブループリントでエミュレータと互換性のある x86_64 システムイメージがインストールされることも確認してください。
SDKエラーでビルドに失敗する
よくある原因: SDKコンポーネントが不足している、ANDROID_HOME のパスが正しくない、または Gradle が適切なバージョンのビルドツールを見つけられないことが原因です。
対処法: ブループリントで ANDROID_HOME が正しく設定されていることを確認し、sdkmanager でプロジェクトに必要なプラットフォームのバージョンとビルドツールのバージョンをインストールしてください。プロジェクトの build.gradle で compileSdk、targetSdk、buildToolsVersion を確認し、ブループリントの設定もそれに合わせてください。
エミュレータが遅い
Android エミュレータは Devin の VM 内で実行されるため、パフォーマンスはシステムイメージとレンダリングモードに左右されます。 ヒント:- ハードウェアアクセラレーションによるエミュレーションには、
x86_64のシステムイメージを使用します (ARM ではなく) - GPU パススルーを必要としないソフトウェアレンダリングには、
-gpu swiftshader_indirectを使用します - Devin が画面表示を必要としない場合 (たとえば、
adb経由でインストルメント化テストを実行する場合) は、-no-window -no-audioを使用します - 画質の忠実さがそれほど重要でない場合は、より低解像度のデバイスプロファイルを検討してください
Devin がエミュレータ画面を操作できない
よくある原因: Desktop モードが有効になっていない、エミュレータのウィンドウが表示されていない、またはエミュレータがヘッドレスモードで実行されている可能性があります。 対処法: 組織の設定で Desktop モード が有効になっていることを確認してください。Devin にエミュレータを画面上で操作させる必要がある場合は、エミュレータの GUI が Devin のデスクトップに表示されるよう、-no-window フラグを付けずに起動してください。Devin に操作を依頼する前に、エミュレータが完全に起動していること (adb shell getprop sys.boot_completed が 1 を返すこと) を確認してください。
