本文へ移動
cccskills
無料GitHub で公開日本語紹介

android-background-test

スマホの前面操作を妨げず、ADB接続済みのAndroid実機でアプリを起動し、画面確認やタップ、入力などのテストを行います。

原文原文の説明を見る

在已通过 ADB 连接的 Android 真机上,用不显示在手机屏幕上的独立后台屏测试应用:启动、截图、点击、滑动、按键、写入中文文字,不打扰用户前台使用。需要手机亮屏且已解锁。不用于操作主屏、安装应用、绕过安全设置或清理其他会话。

lixiaolin94/skillsスター 767(GitHub 767 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • スマホを使いながらアプリを実機テストしたいとき
  • 画面遷移をスクリーンショットで確認したいとき
  • 中文入力を含むアプリ操作を試したいとき

日本語での紹介

できること

ADBで接続したAndroid実機に、ユーザーの画面には表示されないバックグラウンド画面を作り、その上で対象アプリを操作します。アプリの起動、スクリーンショットの取得、タップ、スワイプ、キー入力、中文の入力に対応しています。操作のたびにスクリーンショットで結果を確かめながら進めます。テストが終わったらセッションを閉じ、試した内容や画像の保存先、途中の中断、終了状態を報告します。

こんなときに便利

アプリの動作確認中も、利用者がスマートフォンの前面画面を使い続けたいときに向いています。画面遷移や入力後の状態を画像で確認しながら、実機上で操作を試せます。

使い方の例

  • 「このアプリをバックグラウンド画面で起動して、ログイン画面を確認してください」
  • 「入力欄に中文を入れて、送信前の画面を撮影してください」
  • 「ボタンをタップし、遷移先をスクリーンショットで確認してください」

注意点

adbとPython 3.9以降が必要です。端末はテスト中に画面を点灯し、ロック解除しておく必要があります。複数台接続時は対象端末を選びます。textは入力欄の内容を置き換えます。また入力時にはUiAutomationへ一時接続し、銀行・決済アプリではその旨を利用者に伝えます。対応確認済みの機種はnubia NX888J(Android 17)です。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(5)

  • SKILL.md4.4 KB
  • manifest.json801 B
  • references/safety.md2.4 KB
  • runtime/server.jar38.6 KB
  • scripts/android.py16.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Android 后台测试

在手机上创建一块用户看不到的后台屏,把被测应用开在上面操作,主屏保持用户自己的使用。依赖只有 adb 和 Python 3.9+ 标准库,不安装 APK。

脚本:python3 <本目录>/scripts/android.py <命令>。每条命令输出一行 JSON。

退出码含义你要做的
0成功继续
3会话被打断按“打断处理”询问用户
4被拒绝读 error 和 detail,向用户说明,不要换方式硬做
5设备或传输错误;session_lost 表示会话已结束报告,必要时重新 open
1 / 2内部错误 / 用法错误报告

开始前

  1. verify(只校验包)、doctor(只查本机)。
  2. 用 adb devices 确认 serial。多台设备时必须问用户用哪台,不要猜。
  3. 告诉用户:测试期间手机需要亮屏并已解锁;锁屏会暂停测试,60 秒内不解锁会话就结束。

流程

S=<serial>; W=<工作目录>; A="python3 <本目录>/scripts/android.py"
$A open --serial $S --component 包名/Activity --workdir $W   # 记下 sessionId
$A screenshot --workdir $W --session <id>                     # 返回 PNG 路径,查看后再操作
$A tap --workdir $W --session <id> X Y                        # 坐标是会话屏像素,默认 720x1600
$A swipe --workdir $W --session <id> X1 Y1 X2 Y2 --duration 300
$A key --workdir $W --session <id> BACK                       # BACK、ENTER、HOME 等
$A text --workdir $W --session <id> --value "中文内容"         # 先点输入框
$A status --workdir $W --session <id>
$A close --workdir $W --session <id>                          # 用完必须关闭
  • 每次操作后截图确认结果,不要凭坐标连续盲点。
  • text 会替换输入框全部内容,不是追加;需要追加就自己拼好完整文本。
  • text 期间会短暂连接 UiAutomation,应用能察觉到无障碍服务开启;在银行、支付类应用里使用前先告诉用户。被其他工具占用时返回 uiautomation_busy,不要抢。
  • 应用找不到入口 Activity 时,用 adb -s <serial> shell cmd package resolve-activity --brief -c android.intent.category.LAUNCHER <包名> 查询。
  • 应用被关掉后可以用 launch 在会话屏上重新启动。
  • 会话空闲 10 分钟会自动结束。

打断处理(退出码 3)

返回中的 interruption 包含 reason、detail、askUser、conflictId、grantable、expiresInSeconds。

  1. 停止操作。用 detail 告诉用户发生了什么,用 askUser 询问用户。
  2. 只有用户在对话中明确同意,才能调用 resolve --conflict <id> --grant;用户拒绝就 --deny。不得替用户同意,不得因为测试没完成就默认同意。
  3. 超时(expiresInSeconds 归零)、用户拒绝、或者用户正在手机上使用这个应用时,会话会自动结束,这是预期行为。
reason情况能否 grant
existing_task用户手机上已有这个应用的任务,接管会把它移到后台屏能,需用户同意
user_opened_app用户在手机上打开了正在测试的应用,任务已交给用户能;用户还在用时会失败并结束
device_locked手机锁屏或息屏,后台屏停止不能;请用户解锁,解锁后自动继续

硬边界

  • 每条设备命令都有明确 serial;不重启 ADB,不操作主屏,不清理不属于自己的会话。
  • 同一应用同一时间只能有一个会话(package_busy),不要关掉别人的会话来抢。
  • 不关闭安全设置、不绕过锁屏、不安装 APK、不改系统设置。拒绝或黑屏就如实报告。
  • 不承诺应用识别不到自动化。

遇到权限、告警或兼容问题时读 安全边界。

汇报

说明测试了什么、关键截图路径、遇到的打断和用户的答复、会话是否已关闭。已验证设备只有 nubia NX888J(Android 17);其他机型首次使用时如实说明“未验证”。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

web-shader-extractor

無料概要あり

WebGLやWebGPU、Canvasを使ったWebページの映像表現を調べ、根拠を記録しながらローカルで再現・移植する手順を支援します。

  • Canvasの背景演出をローカルで再現したいとき
  • WebGLの表現を別プロジェクトへ移したいとき
  • WebGPUやシェーダーの描画を調べたいとき
lixiaolin94/skills7672026年10月30日 更新

lixiaolin94 のスキルをすべて見る

このスキルの問題を報告する