gitextract_70x6n_qo/ ├── .github/ │ └── workflows/ │ └── tests.yml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── android_env/ │ ├── __init__.py │ ├── apps/ │ │ ├── MODULE.bazel │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── androidenv/ │ │ │ ├── accessibilityforwarder/ │ │ │ │ ├── AccessibilityForwarder.kt │ │ │ │ ├── AccessibilityForwarderTest.kt │ │ │ │ ├── AccessibilityTreeCreator.kt │ │ │ │ ├── AccessibilityTreeCreatorTest.kt │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── AndroidManifest_lite.xml │ │ │ │ ├── FlagsBroadcastReceiver.kt │ │ │ │ ├── FlagsBroadcastReceiverTest.kt │ │ │ │ ├── LogFlags.kt │ │ │ │ ├── ParentChildNodePair.kt │ │ │ │ ├── UniqueIdsGenerator.kt │ │ │ │ └── res/ │ │ │ │ └── xml/ │ │ │ │ └── accessibility_forwarder_service.xml │ │ │ └── catch/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── BUILD.bazel │ │ │ ├── GameLogic.kt │ │ │ ├── GameLogicThread.kt │ │ │ ├── MainActivity.kt │ │ │ ├── RenderThread.kt │ │ │ ├── res/ │ │ │ │ ├── layout/ │ │ │ │ │ └── main.xml │ │ │ │ └── values/ │ │ │ │ └── strings.xml │ │ │ └── sprite/ │ │ │ ├── BUILD.bazel │ │ │ ├── Background.kt │ │ │ ├── Ball.kt │ │ │ ├── LineSegment.kt │ │ │ ├── Paddle.kt │ │ │ ├── Point.kt │ │ │ └── Sprite.kt │ │ └── javatests/ │ │ └── com/ │ │ └── google/ │ │ └── androidenv/ │ │ └── catch/ │ │ ├── AndroidManifest.xml │ │ ├── BUILD.bazel │ │ ├── GameLogicTest.kt │ │ ├── GameLogicThreadTest.kt │ │ ├── MainActivityTest.kt │ │ ├── RenderThreadTest.kt │ │ └── sprite/ │ │ ├── BUILD.bazel │ │ ├── BackgroundTest.kt │ │ ├── BallTest.kt │ │ ├── PaddleTest.kt │ │ └── SpriteTest.kt │ ├── components/ │ │ ├── __init__.py │ │ ├── action_fns.py │ │ ├── action_fns_test.py │ │ ├── action_type.py │ │ ├── adb_call_parser.py │ │ ├── adb_call_parser_test.py │ │ ├── adb_controller.py │ │ ├── adb_controller_test.py │ │ ├── adb_log_stream.py │ │ ├── adb_log_stream_test.py │ │ ├── app_screen_checker.py │ │ ├── app_screen_checker_test.py │ │ ├── config_classes.py │ │ ├── coordinator.py │ │ ├── coordinator_test.py │ │ ├── device_settings.py │ │ ├── device_settings_test.py │ │ ├── dumpsys_thread.py │ │ ├── dumpsys_thread_test.py │ │ ├── errors.py │ │ ├── errors_test.py │ │ ├── log_stream.py │ │ ├── log_stream_test.py │ │ ├── logcat_thread.py │ │ ├── logcat_thread_test.py │ │ ├── pixel_fns.py │ │ ├── pixel_fns_test.py │ │ ├── setup_step_interpreter.py │ │ ├── setup_step_interpreter_test.py │ │ ├── simulators/ │ │ │ ├── __init__.py │ │ │ ├── base_simulator.py │ │ │ ├── base_simulator_test.py │ │ │ ├── emulator/ │ │ │ │ ├── __init__.py │ │ │ │ ├── emulator_launcher.py │ │ │ │ ├── emulator_launcher_test.py │ │ │ │ ├── emulator_simulator.py │ │ │ │ └── emulator_simulator_test.py │ │ │ └── fake/ │ │ │ ├── __init__.py │ │ │ ├── fake_simulator.py │ │ │ └── fake_simulator_test.py │ │ ├── specs.py │ │ ├── specs_test.py │ │ ├── task_manager.py │ │ └── task_manager_test.py │ ├── env_interface.py │ ├── environment.py │ ├── environment_test.py │ ├── loader.py │ ├── loader_test.py │ ├── proto/ │ │ ├── __init__.py │ │ ├── a11y/ │ │ │ ├── __init__.py │ │ │ ├── a11y.proto │ │ │ ├── android_accessibility_action.proto │ │ │ ├── android_accessibility_forest.proto │ │ │ ├── android_accessibility_node_info.proto │ │ │ ├── android_accessibility_node_info_clickable_span.proto │ │ │ ├── android_accessibility_tree.proto │ │ │ ├── android_accessibility_window_info.proto │ │ │ └── rect.proto │ │ ├── adb.proto │ │ ├── emulator_controller.proto │ │ ├── snapshot.proto │ │ ├── snapshot_service.proto │ │ ├── state.proto │ │ └── task.proto │ └── wrappers/ │ ├── __init__.py │ ├── a11y/ │ │ ├── __init__.py │ │ ├── a11y_events.py │ │ ├── a11y_events_test.py │ │ ├── a11y_forests.py │ │ ├── a11y_forests_test.py │ │ ├── a11y_servicer.py │ │ └── a11y_servicer_test.py │ ├── a11y_grpc_wrapper.py │ ├── a11y_grpc_wrapper_test.py │ ├── base_wrapper.py │ ├── base_wrapper_test.py │ ├── discrete_action_wrapper.py │ ├── discrete_action_wrapper_test.py │ ├── flat_interface_wrapper.py │ ├── flat_interface_wrapper_test.py │ ├── float_pixels_wrapper.py │ ├── float_pixels_wrapper_test.py │ ├── gym_wrapper.py │ ├── gym_wrapper_test.py │ ├── image_rescale_wrapper.py │ ├── image_rescale_wrapper_test.py │ ├── last_action_wrapper.py │ ├── last_action_wrapper_test.py │ ├── rate_limit_wrapper.py │ ├── rate_limit_wrapper_test.py │ ├── tap_action_wrapper.py │ └── tap_action_wrapper_test.py ├── docs/ │ ├── emulator_guide.md │ ├── environment.md │ ├── example_tasks.md │ ├── instructions.md │ └── tasks_guide.md ├── examples/ │ ├── __init__.py │ ├── run_acme_agent.py │ ├── run_human_agent.py │ └── run_random_agent.py ├── pyproject.toml └── setup.py