{"id":2130714,"url":"https://github.com/noitaro/android-auto-play-opencv","last_synced_at":"2025-04-05T22:04:02.540Z","repository":{"id":43678941,"uuid":"248928670","full_name":"noitaro/android-auto-play-opencv","owner":"noitaro","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-02T07:50:38.000Z","size":1008,"stargazers_count":54,"open_issues_count":0,"forks_count":14,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T21:03:09.557Z","etag":null,"topics":["android","opencv","python"],"latest_commit_sha":null,"homepage":"https://noitaro.github.io/android-auto-play-opencv/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noitaro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-21T07:37:21.000Z","updated_at":"2025-03-14T22:34:44.000Z","dependencies_parsed_at":"2024-08-04T23:30:46.780Z","dependency_job_id":"fa991404-a1de-46cb-a1c8-992e424d447c","html_url":"https://github.com/noitaro/android-auto-play-opencv","commit_stats":{"total_commits":46,"total_committers":4,"mean_commits":11.5,"dds":0.4565217391304348,"last_synced_commit":"1374d3f7a78cfc53ba7fde3b8c86351b45fa2d01"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noitaro%2Fandroid-auto-play-opencv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noitaro%2Fandroid-auto-play-opencv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noitaro%2Fandroid-auto-play-opencv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noitaro%2Fandroid-auto-play-opencv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noitaro","download_url":"https://codeload.github.com/noitaro/android-auto-play-opencv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406085,"owners_count":20933803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","opencv","python"],"created_at":"2024-01-21T23:25:46.039Z","updated_at":"2025-04-05T22:04:02.521Z","avatar_url":"https://github.com/noitaro.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# android-auto-play-opencv\nOpenCV の画像認識を使って、Android を自動操作するライブラリです。\n\nAndroid を操作する時に [Android Debug Bridge (adb)](https://developer.android.com/studio/command-line/adb \"Android Debug Bridge (adb)  |  Android Developers\") を使うので、マウスカーソルが奪われません。\n\nNoxPlayer を操作することも出来ます。\n\n## Installation\n+ ライブラリのインストール\n```\npip install android-auto-play-opencv\n```\n\n+ このライブラリを使うには、[Android SDK Platform-Tools](https://developer.android.com/studio/releases/platform-tools \"SDK Platform Tools release notes  |  Android Developers\") に含まれる ```adb.exe``` が必要です。\n\n## How to use\n```python\n# This Python file uses the following encoding: utf-8\n\n# pip install android-auto-play-opencv\nimport android_auto_play_opencv as am\n\nadbpath = '..\\\\platform-tools\\\\'\n\ndef main():\n\n    aapo = am.AapoManager(adbpath)\n    \n    while True:\n    \n        # 画面キャプチャ\n        aapo.screencap()\n        \n        # 早送りボタンは常にタップ\n        if aapo.touchImg('./umamusume/hayaokuri.png'):\n            # タップ出来たら待機\n            aapo.sleep(1)\n    \n        # Google Playダイアログが出たら、キャンセルの位置をタップ\n        elif aapo.chkImg('./umamusume/google-play.png'):\n            aapo.touchPos(135, 630)\n            aapo.sleep(1)\n\nif __name__ == '__main__':\n    main()\n```\n\n### 完成品\n* [ウマ娘自動リセマラ周回](https://github.com/noitaro/python-umamusume)\n\n## Reference\n\n### start\nアプリを起動する。\n```python\n# FGOを起動する.\naapo.start('com.aniplex.fategrandorder/jp.delightworks.Fgo.player.AndroidPlugin')\n```\n\n### end\nアプリを終了する。\n```python\n# FGOを終了する.\naapo.end('com.aniplex.fategrandorder')\n```\n\n### sleep\n処理を待機させる。\n```python\n# 5秒待機.\naapo.sleep(5)\n```\n\n### screencap\nAndroid の画面をキャプチャする。\n```python\n# 画面キャプチャ\naapo.screencap()\n```\n\n### chkImg\n[`screencap`](#screencap) で取得したスクリーンショットに、テンプレート画像があるか確認します。タップはしません。\n```python\nif aapo.chkImg('./template/stage_clear.png'):\n    # あった時の処理.\n    pass\n```\n\n### chkImg2\n[`screencap`](#screencap) で取得したスクリーンショットに、テンプレート画像があるか確認します。タップはしません。見つけた座標も返してくれます。\n```python\n# 古龍の心臓 が見つかったら位置を戻す。\nresult, x, y = aapo.chkImg2('./template/koryunosinzo.png')\nprint('result=' + str(result) + ', x=' + str(x) + ', y=' + str(y))\n\nif result:\n    # 見つかった位置から指定ピクセルズラしてロングタップ(5秒)\n    aapo.longTouchPos(x+50, y+50, 5000)\n```\n引数_multiをTrueにすると、複数の結果を返してくれます。\n```Python\nret, poss = aapo.chkImg2('tenpure.png',_multi = True)\nif ret:\n    for i in range(len(poss)):\n        pos = poss[i]\n        print(f'X={pos[0]}, Y={pos[1]}')\n        pass\n    pass\n```\n### touchImg\n[`screencap`](#screencap) で取得したスクリーンショットに、テンプレート画像があればタップします。タップ結果を返してくれます。\n```python\naapo.touchImg('./template/stage_clear.png')\n```\n\n### touchPos\n指定位置をタップします。\n```python\n# X=750、Y=400 の位置をタップする.\naapo.touchPos(750, 400)\n```\n第3引数を指定すると、ロングタップします。\n```python\n# X=750、Y=400 の位置を5秒間タップする.\naapo.longTouchPos(750, 400, 5000)\n```\n\n### swipeTouchPos\n指定位置をスワイプします。\n```python\n# X=750、Y=800 から、X=750、Y=400 まで、1秒かけてスワイプする.\naapo.swipeTouchPos(750, 800, 750, 400, 1000)\n```\n\n### inputtext\n文字を入力します。\n```python\n# abc を入力する.\naapo.inputtext('abc')\n```\n\n### inputkeyevent\nHOMEキーやバックキーを送ります。\n```python\n# ホームキーを押す.\naapo.inputkeyevent(3)\n# バックキーを押す.\naapo.inputkeyevent(4)\n```\n\n### inputkeyevent\n[`screencap`](#screencap) で取得したスクリーンショットを保存します。\n```python\n# キャプチャ画像を保存\naapo.imgSave('screenshot.png')\n\n# 現在の日時でキャプチャ画像を保存\naapo.imgSave('img/screenshot_' + datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.png')\n# ↑をする場合「import datetime」をファイルの先頭に書くこと。\n```\n\n### デバイス選択\n複数の端末で同時実行できます。\n```python\nimport inquirer  # pip install inquirer\naapo = am.AapoManager('C:\\\\Program Files\\\\Nox\\\\bin\\\\')\ndevicesselect = [\n    inquirer.List(\n        \"device\",\n        message=\"デバイスを選択して下さい。\",\n        choices=aapo.adbl.devices\n    )\n]\nselected = inquirer.prompt(devicesselect)\naapo.adbl.setdevice(selected['device'])\naapo.screencap()\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoitaro%2Fandroid-auto-play-opencv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoitaro%2Fandroid-auto-play-opencv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoitaro%2Fandroid-auto-play-opencv/lists"}