Documentation Index
Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
Use this file to discover all available pages before exploring further.
Devin は Android アプリケーションを自身のマシン上で直接ビルドして実行できるため、Android 版の Computer Use とブラウザ操作に相当する機能を利用できます。Devin はアプリを開き、挙動を確認し、問題を再現し、アプリケーションが実際に動作する環境で変更内容を検証できます。録画 と組み合わせることで、その証拠として録画を送ることもできます。
Android エミュレータのサポートは現在、限定的に提供されています。Devin での利用にご興味がある場合は、詳細の確認とアクセス権の取得について、お問い合わせください。
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 つの方法でエミュレータを操作します。
| 方法 | できること | 利用する場面 |
|---|
adb (command line) | APK のインストール、テストの実行、ログの取得、スクリーンショットの撮影 | 自動ビルド、インストルメント化テスト、logcat のデバッグ |
| Computer Use (desktop) | エミュレータ画面を見ながら、タップ、スワイプ、入力、画面遷移を行う | エンドツーエンドの UI テスト、視覚的な確認、動画録画 |
エミュレータのウィンドウは Devin のデスクトップ上で実行されるため、webapp の Desktop タブから、Devin が app をリアルタイムで操作する様子を確認できます。
Devin に任せる(推奨)
ブループリントを手動で設定する
最も簡単に始める方法です。Devin が Android プロジェクトを解析し、適切な SDK コンポーネントをインストールして、エミュレータを設定します。Devin セッションを開始する
新しいセッションを開き、Devin に Android エミュレーションのセットアップを依頼します。例: 「このリポジトリ用に Android エミュレータをセットアップして。」
内容を確認して承認する
Devin は、Android SDK、ビルドツール、エミュレータ設定を含むブループリントを提案します。タイムラインの提案カードを確認し、Approve をクリックします。
確認する
ビルドが完了したら、新しいセッションを開始します。すべてが正しく動作することを確認するため、Devin にエミュレータ上でアプリをビルドして実行するよう依頼します。
必要な SDK コンポーネントやエミュレータ設定が明確な場合は、ブループリントを自分で作成できます。環境設定に移動する
Settings > Environment > Blueprints に移動し、Android のリポジトリを選択します。
ブループリントを作成する
Android SDK、platform tools、emulator、および システムイメージ を initialize に追加します。依存関係のインストールは maintenance に追加します。コピー&ペースト用のテンプレートについては、以下のブループリントの使用例を参照してください。 保存してビルドする
Save をクリックします。ビルドは自動的に開始されます (Android では SDK のダウンロードがあるため、通常 5~15 分かかります) 。進行状況は Settings > Environment > Snapshots で確認できます。
確認する
ビルドが Success と表示されたら、新しいセッションを開始します。確認のため、Devin にエミュレータを起動してアプリをビルドするよう依頼します。
一般的な Android エミュレータのサポートのブループリントでは、次のコンポーネントがインストールされます。
| Component | Purpose |
|---|
| Android SDK command-line tools | SDK の基本管理 (sdkmanager) |
| Platform tools | デバイス通信用の adb、fastboot |
| Build tools | APK のビルドに使用する aapt2、d8、zipalign |
| Android platform (e.g., API 34) | アプリの対象 API レベル |
| エミュレータ + システムイメージ | 仮想デバイス本体 |
Devin の環境内で最適なパフォーマンスを得るには、x86_64 の システムイメージ を利用してください。ARM image でも動作しますが、エミュレーション時の速度は大幅に低下します。
セッション中であれば、どのタイミングでも Devin にアプリのビルドと実行を依頼できます。特別な構文は不要で、自然な言葉で指示するだけです。
- 「Android エミュレータでアプリをビルドして実行して」
- 「エミュレータでログインフローをテストして、録画を送って」
- 「エミュレータで設定画面を開いて、新しいトグルが表示されることを確認して」
- 「エミュレータで Espresso テストを実行して、結果を見せて」
Devin はエミュレータを起動し (まだ起動していない場合) 、アプリをビルドして実行したうえで操作します。プログラムによる操作には adb を、視覚的な操作には Computer Use を利用します。
Testing & Recordings との統合
Android エミュレータのサポートは、Devin の Testing & Recordings ワークフローに直接組み込まれています。PR を作成すると、次のように進みます。
- Devin が アプリをテスト するよう提案します — ボタンをクリックするか、直接依頼してください
- Devin がエミュレータ上でアプリをビルドして実行し、目的を絞ったテスト計画を実行します
- エミュレータ画面が、注釈付きの動画録画としてキャプチャされます
- その録画が送信されるため、テストの様子を確認したうえで、安心してマージできます
これは Web アプリのテストと同じように動作します。唯一の違いは、Devin が Chrome ではなくエミュレータのウィンドウを操作することです。
Devin に Android アプリのビルド、起動、テストの方法を正確に伝える Skill を作成してください。これにより、繰り返しのセッションでセットアップ時間を短縮でき、一貫したテストを行えます。たとえば、Gradle のビルドコマンド、起動する Activity、確認するフローを含めてください。
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 のデスクトップ上に表示されている他の内容とあわせて、エミュレータの画面も含まれます
デスクトップ操作の仕組みについて詳しくは、Computer Use を参照してください。
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 でスクリプト化された操作を実行
Devin はタスクに応じて adb と Computer Use を使い分けます。速度と自動化には adb、視覚的な確認や複雑な UI フローには Computer Use を利用します。
一般的な Android セットアップ向けの、コピー&ペーストですぐ使えるブループリントです。各テンプレートは単体で完結しているので、ブループリントエディタに貼り付けて保存してください。
ネイティブAndroid (Kotlin/Java + Gradle)
initialize:
- name: "Install Android SDK"
run: |
export ANDROID_HOME="$HOME/android-sdk"
mkdir -p "$ANDROID_HOME/cmdline-tools"
cd "$ANDROID_HOME/cmdline-tools"
curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -o tools.zip
unzip -q tools.zip -d latest-tmp
mv latest-tmp/cmdline-tools "$ANDROID_HOME/cmdline-tools/latest"
rm -rf tools.zip latest-tmp
echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/.bashrc
echo 'export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH' >> ~/.bashrc
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"
yes | sdkmanager --licenses > /dev/null 2>&1
sdkmanager "platform-tools" "build-tools;34.0.0" "platforms;android-34" "emulator" "system-images;android-34;google_apis;x86_64"
echo "no" | avdmanager create avd -n devin -k "system-images;android-34;google_apis;x86_64" --device "pixel_6"
maintenance: |
./gradlew assembleDebug
knowledge:
- name: build
contents: ./gradlew assembleDebug
- name: test
contents: ./gradlew test
- name: lint
contents: ./gradlew lint
- name: emulator
contents: |
Start the emulator: emulator -avd devin -no-window -no-audio -gpu swiftshader_indirect &
Wait for boot: adb wait-for-device && adb shell getprop sys.boot_completed
Install APK: adb install app/build/outputs/apk/debug/app-debug.apk
initialize:
- name: "Install Node.js"
run: |
nvm install 20
nvm use 20
- name: "Install Android SDK"
run: |
export ANDROID_HOME="$HOME/android-sdk"
mkdir -p "$ANDROID_HOME/cmdline-tools"
cd "$ANDROID_HOME/cmdline-tools"
curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -o tools.zip
unzip -q tools.zip -d latest-tmp
mv latest-tmp/cmdline-tools "$ANDROID_HOME/cmdline-tools/latest"
rm -rf tools.zip latest-tmp
echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/.bashrc
echo 'export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH' >> ~/.bashrc
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"
yes | sdkmanager --licenses > /dev/null 2>&1
sdkmanager "platform-tools" "build-tools;34.0.0" "platforms;android-34" "emulator" "system-images;android-34;google_apis;x86_64"
echo "no" | avdmanager create avd -n devin -k "system-images;android-34;google_apis;x86_64" --device "pixel_6"
maintenance: |
npm install
cd android && ./gradlew assembleDebug
knowledge:
- name: build
contents: cd android && ./gradlew assembleDebug
- name: test
contents: npm test
- name: lint
contents: npm run lint
- name: emulator
contents: |
Start the emulator: emulator -avd devin -no-window -no-audio -gpu swiftshader_indirect &
Wait for boot: adb wait-for-device && adb shell getprop sys.boot_completed
Run on device: npx react-native run-android
initialize:
- name: "Install Flutter"
run: |
cd "$HOME"
git clone https://github.com/flutter/flutter.git -b stable --depth 1
echo 'export PATH=$HOME/flutter/bin:$PATH' >> ~/.bashrc
export PATH="$HOME/flutter/bin:$PATH"
flutter precache --android
yes | flutter doctor --android-licenses > /dev/null 2>&1
- name: "Install Android SDK"
run: |
export ANDROID_HOME="$HOME/android-sdk"
mkdir -p "$ANDROID_HOME/cmdline-tools"
cd "$ANDROID_HOME/cmdline-tools"
curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -o tools.zip
unzip -q tools.zip -d latest-tmp
mv latest-tmp/cmdline-tools "$ANDROID_HOME/cmdline-tools/latest"
rm -rf tools.zip latest-tmp
echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/.bashrc
echo 'export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH' >> ~/.bashrc
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"
yes | sdkmanager --licenses > /dev/null 2>&1
sdkmanager "platform-tools" "build-tools;34.0.0" "platforms;android-34" "emulator" "system-images;android-34;google_apis;x86_64"
echo "no" | avdmanager create avd -n devin -k "system-images;android-34;google_apis;x86_64" --device "pixel_6"
maintenance: |
flutter pub get
knowledge:
- name: build
contents: flutter build apk --debug
- name: test
contents: flutter test
- name: lint
contents: flutter analyze
- name: emulator
contents: |
Start the emulator: emulator -avd devin -no-window -no-audio -gpu swiftshader_indirect &
Wait for boot: adb wait-for-device && adb shell getprop sys.boot_completed
Run on device: flutter run -d emulator-5554
主な原因: VM で KVM が利用できない、メモリが不足している、またはシステムイメージが不足している。
対処法: Devin は、エミュレータにハードウェアアクセラレーションが必要だと検出すると、KVM を自動的に設定しようとします。ほとんどの場合、これで手動対応なしに問題は解消します。Devin がこの設定を試みた後も KVM が利用できない場合は、エミュレータをソフトウェアレンダリングモードで起動できます。エミュレータの起動コマンドに -no-accel を追加してください。ただし、パフォーマンスは低下します。あわせて、ブループリントでエミュレータと互換性のある x86_64 システムイメージがインストールされることも確認してください。
よくある原因: 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 を使用します
- 画質の忠実さがそれほど重要でない場合は、より低解像度のデバイスプロファイルを検討してください
よくある原因: Desktop モードが有効になっていない、エミュレータのウィンドウが表示されていない、またはエミュレータがヘッドレスモードで実行されている可能性があります。
対処法: 組織の設定で Desktop モード が有効になっていることを確認してください。Devin にエミュレータを画面上で操作させる必要がある場合は、エミュレータの GUI が Devin のデスクトップに表示されるよう、-no-window フラグを付けずに起動してください。Devin に操作を依頼する前に、エミュレータが完全に起動していること (adb shell getprop sys.boot_completed が 1 を返すこと) を確認してください。