Android スマホで繰り返し操作を自動化する方法

今回は、Android 端末で繰り返し操作を行う必要がある場合に、自動で「繰り返し操作」ができるようにする方法を紹介します。仕事では「繰り返しのテスト操作」プライベートでは「ゲームの単純作業の繰り返し」などに利用できると思います。

ゲームの自動化は、運営からアカウントBANされる可能性があります。自己責任でご利用ください。
この方法はアプリの改造ではなく、外部からタップするのと同じ情報を送るため、自分がゲームする時間も含め24時間続けたりしない限りは、問題になりにくいと思います(睡眠時間の6~8時間程度を開ければ怪しまれないと推測しますが、保証はできません)。

方法は 2種類

一般的に、以下の方法が考えられます。iphoneでも、2 番目のやり方は探せばあると思いますが、iphoneを持っていないのでよくわかりません。

  1. スマホ・タブレットを PC につないで、adb を利用して操作する。
  2. タップ操作マクロアプリを使う。(機種付属のものも含む)

このブログでは、1番目の方法について詳しく紹介します。2番目の方法は Play ストア を「マクロ」や「自動タップ」などで検索してみてください。多くの人が使っていて、評価が高いアプリを入れましょう。私はこの手のアプリを入れるのに抵抗があるので、端末メーカ純正のアプリか、自分で1番目の方法で実施することが多いです。adb は Android Debug Bridge と言って、google 純正の Android デバッグ用のツールです。

マクロアプリはそれなりの権限が要求される場合があります。十分注意して信頼できるアプリを選択してください。
スポンサーリンク

adb を利用した自動化

それでは、adb を利用した自動化について以下のような手順で説明を進めます。

  1. PC で adb を利用できるようにする
  2. スマホを開発者モードにする
  3. タップする位置を調べる
  4. adbコマンドをbat に組み込み実行する

PC で adb を利用できるようにする

PC で adb を利用できるようにします。以下を参考にして adb が利用できるようにしてください。(以下は、Windows 用の紹介です。linux や MAC を利用している人なら、adb のインストールは問題ないと思います。)

以前、Nexus 5X を復旧する方法を紹介しましたが、たくさんアクセスをいただいております。adb/fastboot のインストール方法に関しては別途検索してもらうように記載...

スマホを開発者モードにする

adb は google が提供する純正の開発ツールです。android 側でadbでの操作を許可すれば、色々なことができます。

設定>システム>端末情報>ソフトウェア情報 とたどり「ビルド番号」を連打でタップします。

すると、先ほどまで無かった 設定>システム>開発者向けオプション というものが出てきます。ここに入り、開発者向けオプション と USBデバッグを「ON」にします。

adb が 利用できると adb のインストールされた PC に USB でスマホをつなげば、データ(個人情報)の吸出しも簡単に出来てしまいます。気になる人は、利用しないときは開発者向けオプション か、USBデバッグ を OFFにしておくのが良いでしょう。

タップする位置を調べる

開発者向けオプション の下のほうに行くと、ポインタの位置というメニューがあります。これをONにすると、上のほうにタップした位置表示されます。スワイプした軌跡に線が引かれるのでかなり見にくいですが、タップする位置(X座標とY座標)を調べるために必要です。(私の利用している ZenFone 5 では、スピーカ部分に被ってY座標が見えなくなるので、以下のスクショでは片手モードを利用しています。)

これで、タップする座標の位置がわかります。自動化したい操作で、タップしたい位置を「すべて」これで調べて記録していきます。

adbコマンドをbat に組み込み実行する

adb を利用できるようにした PC と スマホを接続します。以下のような、「MTPの接続確認」と「USBデバッグの許可」画面が出ます。「MTPの接続確認」は「キャンセル」で閉じます。「USBデバッグの許可」は自分がUSBを接続しているので「このパソコンからのUSBデバッグを常に許可する」をチェックし、OK をタップします。

Windows からコマンドプロンプトを開いて、以下のコマンドを実行してみます。X座標とY座標で指定した位置がタップされます。(例えば、アプリのアイコンの位置をタップするようにしておくとアプリを起動できます。)

adb shell input tap X座標 Y座標

例えば、以下のように先ほど調べた、座標を入れてみます。私のスマホのホーム画面で以下を実行するとアプリ一覧が開きます。(アプリ一覧がタップされる位置)

adb shell input tap 570 2000

これが1回のタップの基本系で、はじめての人は、まずここまでできればあとひといきな感じです。

1回のタップを以下のように繰り返したい一回分の操作として記載し、auto_play.bat というファイル名で保存します。(以下は特に何かのゲームの自動化ではありませんが、雰囲気は以下のようになります。)

解説:
rem は、batファイルのコメントで実行はされません。何のための タップ動作かを記載しておくとよいでしょう。timeout は次のタップまでの待ち時間(秒)です。(ロード時間が長くなる場合があるので、少し余裕を持たせるのがコツです。)keyevent で、バックキー(KEYCODE_BACK)やホームキー(KEYCODE_HOME‎)やメニューキー(KEYCODE_MENU)を送ることもできます。
@echo off

rem ステージ選択

adb shell input tap 980 283
timeout /t 7
rem フレンド選択
adb shell input tap 480 580
timeout /t 5
rem 自動戦闘開始
adb shell input tap 780 383
rem 自動戦闘待ち
timeout /t 300
rem ランクアップスキップ
adb shell input keyevent KEYCODE_BACK
timeout /t 5
rem 取得アイテムスキップ
adb shell input keyevent KEYCODE_BACK
timeout /t 5

windows でこのbatファイルを実行(ダブルクリック)して、うまく1回分の操作が動けば成功です。1回分が作れたら、先ほど作った、auto_play.bat を呼び出す loop.bat を作成します。以下の、loop.bat を利用する場合、LOOP_CNT が繰り返し回数になります。100でも1000でも繰り返します。

まずは少ない数で問題なく繰り返しができることを確認しましょう。1回分の操作の考慮が甘い状態で繰り返させるとおかしな動作をする場合があります。
@echo off

set LOOP_CNT=3

rem auto_play.bat を LOOP_CNT 回実行

for /l %%n in (1,1,%LOOP_CNT%) do (
  echo.
  echo.
  echo ++++++++++++++++++++++++++++++++++++++
  echo %%n 回目...
  echo ++++++++++++++++++++++++++++++++++++++
  call %~dp0auto_play.bat
)
echo.
echo.
echo ++++++++++++++++++++++++++++++++++++++
echo 終了しました
echo ++++++++++++++++++++++++++++++++++++++
echo.
echo.
pause

以下の様にloop.bat と auto_play.bat は同じフォルダに入れて loop.bat をダブルクリックで実行します。