できること
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 レベルやデバイスプロファイルでアプリを検証できます。ユーザーに届く前に互換性の問題を見つけるのに役立ちます。
仕組み
エミュレータのウィンドウは Devin のデスクトップ上で実行されるため、webapp の Desktop タブから、Devin が app をリアルタイムで操作する様子を確認できます。
エミュレータのセットアップ
- Devin に任せる(推奨)
- ブループリントを手動で設定する
最も簡単に始める方法です。Devin が Android プロジェクトを解析し、適切な SDK コンポーネントをインストールして、エミュレータを設定します。
1
Devin セッションを開始する
新しいセッションを開き、Devin に Android エミュレーションのセットアップを依頼します。例: 「このリポジトリ用に Android エミュレータをセットアップして。」
2
内容を確認して承認する
Devin は、Android SDK、ビルドツール、エミュレータ設定を含むブループリントを提案します。タイムラインの提案カードを確認し、Approve をクリックします。
3
確認する
ビルドが完了したら、新しいセッションを開始します。すべてが正しく動作することを確認するため、Devin にエミュレータ上でアプリをビルドして実行するよう依頼します。
インストールされるもの
エミュレータの使い方
オンデマンドテスト
- 「Android エミュレータでアプリをビルドして実行して」
- 「エミュレータでログインフローをテストして、録画を送って」
- 「エミュレータで設定画面を開いて、新しいトグルが表示されることを確認して」
- 「エミュレータで Espresso テストを実行して、結果を見せて」
adb を、視覚的な操作には Computer Use を利用します。
Testing & Recordings との統合
- Devin が アプリをテスト するよう提案します — ボタンをクリックするか、直接依頼してください
- Devin がエミュレータ上でアプリをビルドして実行し、目的を絞ったテスト計画を実行します
- エミュレータ画面が、注釈付きの動画録画としてキャプチャされます
- その録画が送信されるため、テストの様子を確認したうえで、安心してマージできます
Skillの提案
デスクトップ経由での操作
- Devin は Computer Use を使ってエミュレータを操作できます — ボタンのタップ、スワイプ、テキスト入力、画面間の移動
- Devin webapp の Desktop タブから、リアルタイムで確認できます
- 録画には、Devin のデスクトップ上に表示されている他の内容とあわせて、エミュレータの画面も含まれます
adb の利用
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 (Kotlin/Java + Gradle)
ネイティブAndroid (Kotlin/Java + Gradle)
React Native
React Native
Flutter
Flutter
Kotlin Multiplatform
Kotlin Multiplatform
トラブルシューティング
エミュレータが起動しない
-no-accel を追加してください。ただし、パフォーマンスは低下します。あわせて、ブループリントでエミュレータと互換性のある x86_64 システムイメージがインストールされることも確認してください。
SDKエラーでビルドに失敗する
ANDROID_HOME のパスが正しくない、または Gradle が適切なバージョンのビルドツールを見つけられないことが原因です。
対処法: ブループリントで ANDROID_HOME が正しく設定されていることを確認し、sdkmanager でプロジェクトに必要なプラットフォームのバージョンとビルドツールのバージョンをインストールしてください。プロジェクトの build.gradle で compileSdk、targetSdk、buildToolsVersion を確認し、ブループリントの設定もそれに合わせてください。
エミュレータが遅い
- ハードウェアアクセラレーションによるエミュレーションには、
x86_64のシステムイメージを使用します (ARM ではなく) - GPU パススルーを必要としないソフトウェアレンダリングには、
-gpu swiftshader_indirectを使用します - Devin が画面表示を必要としない場合 (たとえば、
adb経由でインストルメント化テストを実行する場合) は、-no-window -no-audioを使用します - 画質の忠実さがそれほど重要でない場合は、より低解像度のデバイスプロファイルを検討してください
Devin がエミュレータ画面を操作できない
-no-window フラグを付けずに起動してください。Devin に操作を依頼する前に、エミュレータが完全に起動していること (adb shell getprop sys.boot_completed が 1 を返すこと) を確認してください。
