本文へ移動
ハック!でAI

スマホとPCを遠隔で動かす 第2回

Android端末を自動で遠隔操作?!アプリしかないあのサービスも遠隔で見られるかも

佐々木 航@w_sasakiwith Claude Code読了 約11分
Android の電卓の画面。離れた所から 12×34 を入力して、結果の 408 を読み取った

この記事でわかること

  • adb と中継経由の時間(条件が違う 10 回ずつ)
  • ログイン不要のアプリを遠隔で動かせた例
  • 写らなかった画面と、先に確かめる規約・方針

確認した環境: Android 11(国内向けスマホ・Chrome のシークレットタブ)/ adb 1.0.41 / 2026年10月14日に確認

Android は、離れた場所から画面を見て、押す操作もできます。この記事では、USB でつないだ adb と、インターネットの中継を通すユーザー補助のアプリの 2 つの道を、編集部が実機で測りました。画面を 1 枚取る時間は、どちらも約 1 秒でした。ただし 2 つは測った条件が違うので、速さの優劣を決める比較ではありません。Chrome のシークレットタブは、どちらの道でも写りませんでした。ログインの要らないアプリは、離れた所から動かせました。アプリしかないサービスを遠隔で扱うときの、先に確かめる決まりもまとめます。

画面を 1 枚取る時間は adb が 831 ミリ秒、中継経由が 900 ミリ秒。押してから画面が変わるまでは adb が 1.76 秒、中継経由が 1.16 秒。押す命令が返るまでは 0.96 秒と 0.22 秒で、2 つは測った条件が違う。Chrome のシークレットタブは写らなかった。電卓で 408 を読み取れた。端末は Android 11。規約を先に確かめる
実験のまとめ。数字は 2026年10月14日の編集部の実測(10 回ずつの中央値)撮影・作図: 編集部

離れた所から Android を動かす道

1 は USB の adb で、Android を Mac に USB でつなぎ Mac から adb で命令を出す。端末で USB デバッグを ON にする。2 は中継を通すアプリで、端末に入れたユーザー補助のアプリが、インターネットの中継を通して命令を受ける。端末の設定で権限を許可する
実験した 2 つの道撮影・作図: 編集部
  • ① USB の adb。 adb は、PC から Android と通信するコマンドです。使うには、端末の「開発者向けオプション」で USB デバッグを ON にします(公式のドキュメント)。この記事では、端末をつないだ Mac の中で adb を動かして測りました。
  • ② 中継を通す、ユーザー補助のアプリ。 編集部が検証用に入れたアプリで、端末の設定でユーザー補助の権限を許可して使います。離れた場所のサーバーが、インターネットの中継を通して、画面の写し・クリック・スクロール・文字入力などの命令を送ります。アプリの名前は、この記事では出しません。

公式のドキュメントには、adb を無線でつなぐ「ワイヤレス デバッグ」も載っています。Android 11 以上の端末と、同じ無線ネットワークにつないだ PC が条件で、最初に 1 回ペアリングをします。編集部は今回、無線では試していません。

ユーザー補助サービスは、公式のドキュメントでは、画面の内容を調べ、利用者の代わりにアプリを操作するアプリと説明されています。障害のある人や、一時的に端末を十分に操作できない人を助けるための機能で、スクリーン リーダーなどが例です。

実験 1: 画面を 1 枚取る時間

設定アプリのホームの画面(190KB ほどの PNG)を、10 回ずつ取りました。

  • ① adb: adb exec-out screencap -p(公式のドキュメントにある書き方)を、Mac の中で動かして、ファイルに書き終わるまでを測りました。
  • ② 中継経由: 離れたサーバーから、中継を通して画面の写しを取り、受け取って画像にするまでを測りました。続けて取ると結果が返らないことがあったので、取る間を 2 秒あけました。
棒グラフ。画面を 1 枚取る時間は adb が 831 ミリ秒、中継経由が 900 ミリ秒。押してから変わった画面が取れるまでは adb が 1,760 ミリ秒、中継経由が 1,157 ミリ秒。そのうち押す命令が返るまでは adb が 961 ミリ秒、中継経由が 218 ミリ秒
画面の取得時間と、押してから画面が変わるまでの時間(10 回ずつの中央値)。段ごとに縮尺が違う撮影・作図: 編集部

結果は、adb が中央値 831 ミリ秒(796〜922)、中継経由が中央値 900 ミリ秒(846〜1,154)でした。どちらも 1 秒前後で、10 回すべて成功しました。

観察したことが 2 つあります。

  • 画面が写真のように細かいと、取る時間が延びました。ホーム画面(約 1.7MB の PNG)を中継経由で 7 回取ったところ、2.9〜3.0 秒でした。adb は、この画面では測っていません。
  • 押した直後に続けて画面を取ると、中継経由では結果が返らないことが何度かありました。原因は調べていません。

実験 2: 押してから画面が変わるまで

設定アプリのホームで「ディスプレイ」の項目を押して、変わった画面が取れるまでを測りました。押すたびに、設定アプリのホームに戻す操作を入れました(戻す時間は測りません)。画面が変わったかは、押す前の写しと、押した後の写しの内容を比べて決めました。

  • ① adb: input tap で押し、すぐに画面を取って、押す前の写しと比べました。
  • ② 中継経由: クリックの命令を送り、返ってきたら画面を取って、押す前の写しと比べました。

中央値は、adb が 1,760 ミリ秒(1,736〜1,869)、中継経由が 1,157 ミリ秒(1,016〜3,248)でした。押す命令だけが返るまでは、adb が 961 ミリ秒(943〜1,061)、中継経由が 218 ミリ秒(100〜320)でした。中継経由の最大の 3,248 ミリ秒は、1 枚目の写しが変化を捉えず、2 枚目まで取った回です。

  • 20 回のうち 18 回は、押す命令が返った時点で、画面がもう変わっていました。そのため、この時間は、「押す命令の時間」+「画面を 1 枚取る時間」にほぼ等しい値です。画面が変わった瞬間そのものではなく、上限に近い値です。
  • 確かめられたこと: 「押す命令が返るまで」の時間は、adb では Mac で adb shell input tap を実行して終わるまで、中継経由では離れたサーバーから命令を送って返事が来るまでです。測った範囲が違います。adb の input tap は 1 回で約 1 秒(中央値 0.96 秒)、中継経由のクリックの命令は約 0.2 秒(中央値 0.22 秒)で返りました。
  • 確かめていないこと: この差が出た理由です。adb の命令の実行方法や、アプリ側の仕組みによる差かもしれませんが、調べていません。

この結果から、「adb は押す操作が遅い」「中継は速い」とは言えません。端末の機種、画面の内容、ネットワークで変わるので、編集部の端末での 1 回の測定として読んでください。

実験 3: 画面の写しが取れなかった画面

銀行のアプリやパスワード管理のアプリなどには、画面の写しを拒む仕組みを使うよう勧められているものがあります。Android では、FLAG_SECURE という窓の旗です。

FLAG_SECURE とは

公式のドキュメントには、次のように書かれています。

  • FLAG_SECURE は、画面の写しを許さず、窓を安全でない表示先(キャストなど)に出さない、窓の旗です。
  • 銀行のアプリやパスワード管理のアプリなど、守りたい情報を扱うアプリに役立つ、とされています。
  • 旗のついた窓の写しは、できた画像が空白になる、と書かれています。
  • 重ねて表示する攻撃を防ぎきれない場合がある、とも書かれています。

Google Play のヘルプには、Play のアプリは、この旗を尊重するよう求められ、ほかのアプリの旗を回避する手段を提供したり作ったりしてはいけない、と書かれています。回避の方法は、この記事では扱いません。

編集部の確認

Chrome のシークレットタブを開き、2 つの方法で画面の写しを取りました。これは編集部の観察です。シークレットタブが FLAG_SECURE を使っているのか、Chrome が画面の写しを拒む仕様なのかは、Chrome の公式の資料では確かめられませんでした。ここでは、編集部の端末で起きたことだけを書きます。

左はふつうの画面で、設定アプリが写る。中央は adb の screencap で、できたファイルは 0 バイト。右は中継経由の写しで、真っ黒の画像が返った
シークレットタブの画面の写し。adb は画像ができず、中継経由は真っ黒の画像撮影・作図: 編集部
  • adb の screencap。 端末の中で画面の写しをファイルに書く書き方では、終了コードが 1 で、できたファイルは 0 バイトでした。画面を直接受け取る書き方(exec-out)では、終了コードは 0 でしたが、できたファイルは 0 バイトでした。どちらも画像はできませんでした。
  • ユーザー補助のアプリの写し。 画像は返りましたが、真っ黒でした。大きさは 16KB ほどで、ふつうの画面(190KB ほど)より小さくなっていました。

どちらの方法でも、編集部の端末では、シークレットタブの内容は画像として取れませんでした。ほかの端末や Chrome の版で同じになるかは、確かめていません。

Android のユーザー補助サービスが画面の写しを取る公式の機能(takeScreenshot)は、API 30(Android 11)で加わりました(公式の API の差分)。窓を指定して写しを頼む機能と、「保護された内容がある」ことを知らせるエラーの種類は、API 34(Android 14)で加わっています。編集部の端末は Android 11 です。検証用のアプリが takeScreenshot を使っているかは確かめていません。端末の版によって、返り方が違う可能性があります。

実験 4: ログインの要らないアプリを遠隔で動かす

「アプリしかないサービス」を遠隔で扱う例として、ログインも個人の情報も出ない、端末に入っている電卓を使いました。ホーム画面から、離れたサーバーと中継だけで動かしています。

手順は 1 アプリの一覧を開く、2 電卓を開く、3 1 2 × 3 4 = を押す。右に、中継経由で取った電卓の画面があり、結果の 408 が表示されている
電卓を遠隔で動かして、12×34 の結果 408 を画像から読み取った撮影・作図: 編集部
  1. 画面を上にスクロールする命令で、アプリの一覧を開きます。
  2. 一覧の画像を見て、電卓のアイコンの位置をクリックします。
  3. 電卓のボタンの位置を画像から決めて、1 2 × 3 4 = の順に 6 回クリックします。
  4. 画面の写しを取ると、408 と表示されていました。

使えたのは、画面の写し・クリック・スクロールです。画面の中の部品の一覧は、この道では取れないので、位置は画像から決めました。アプリの一覧の画像には、端末に入っているほかのアプリの名前が写るので、記事には載せていません。

「アプリしかないサービス」とは

表。会員証・ポイントは、店のカードの代わりにアプリの画面を見せる。端末の機能を使うは、カメラ・位置情報・近距離無線などを使う機能。予約・注文は、アプリの中だけで予約や注文が済む。ゲーム・動画は、アプリの画面でしか遊べない・見られない
アプリでしか使えないサービスの種類(一般的な例)撮影・作図: 編集部

ブラウザの画面がなく、スマホのアプリでだけ使える機能があるサービスは、いくつかの種類に分けられます。特定のサービスの話ではありません。

こうしたアプリの画面を、離れた所から見て、操作できる場合があります。電卓の例では、画面の写しとクリックだけで、結果が読み取れました。ただし、できることと、してよいことは別です。アプリの規約で、自動操作が決められていることがあります。画面の写しを拒むアプリもあります。次の節の確認が先です。

気をつけること: 先に確かめる 4 つ

表。ユーザー補助の機能は、画面の内容を調べ利用者の代わりに操作できる、障害のある人などを助ける道具のための機能。Google Play の方針は、ユーザー補助の API を使い、自律的に計画して実行する使い方は禁止で、決まった手順の自動化は禁止していない。画面の保護の FLAG_SECURE は、画面の写しなどを止める旗で、Google Play は回避しないことを求めている。アプリの規約はサービスごとに違う
使う前に、公式の文書で確かめること撮影・作図: 編集部
  1. 持ち主の許可。 自動で操作するのは、自分の端末か、持ち主が許可した端末だけにしてください。他人の端末や、他人のアカウントを、許可なく操作しないでください。
  2. アプリの規約。 自動操作について、サービスごとに決まりがあります。使う前に、各サービスの規約を確かめてください。
  3. Google Play の方針。 ユーザー補助の API を使うアプリについて、Google Play のヘルプには、アプリが自律的に動作を始め、計画し、実行することを可能にする使い方は禁止と書かれています。決まった手順の自動化は禁止していないとも書かれています。確認済みのアクセシビリティ ツールは、障害のある人を助ける本来の目的の範囲で、この禁止の対象外とされています。Google Play で配るアプリの方針なので、自分でアプリを作って配るときは、このヘルプを確かめてください。
  4. 画面の保護。 画面の写しを拒む画面は、その持ち主が守りたい情報を扱っています。回避しようとしないでください。

選び方の目安

表。端末が手元にあり Mac や PC につなげるときは USB の adb で、画面の部品の一覧も取れる。端末が離れた場所にあるときは中継を通すユーザー補助のアプリで、離れた場所のサーバーから操作でき、部品の一覧は取れない。写しが取れない画面は、シークレットタブがどちらの道でも写らなかった。回避はしない。他人の端末やアカウントは、本人の許可がなければ操作しない
状況と、向いている道撮影・作図: 編集部

adb で部品の一覧を取る方法は、第 1 回で扱いました。OS の外から画面とキーボードを扱う道は、第 3 回で扱います。

まとめ

  • 離れた所から Android の画面を取る時間は、USB の adb が約 0.8 秒、中継経由が約 0.9 秒でした。
  • 押す操作は、中継経由で約 0.2 秒で返りました。
  • Chrome のシークレットタブは、どちらの道でも写りませんでした。回避はしません。
  • ログイン不要のアプリは、遠隔で動かせました。ほかのアプリでは、規約と Google Play の方針、画面の保護を、先に公式の文書で確かめてください。

参考にした公式の情報

XFacebookはてブLINE

執筆者

佐々木 航@w_sasaki

with Claude Code

プロフィール

株式会社Game 代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

この記事は、Claude Code を使って執筆しました。画面の画像は、検証環境で実際に操作して撮影したものです(引用の画像は出典を記載しています)。内容の誤りはお問い合わせからお知らせください。

連載

スマホとPCを遠隔で動かす
全 3 回の目次
  1. 1スマホの自動操作はできる?!iOSとAndroid端末の違い
  2. 2Android端末を自動で遠隔操作?!アプリしかないあのサービスも遠隔で見られるかも(この記事)
  3. 3IP-KVMとは?!次元が違うリモートデスクトップが話題に

あわせて読みたい