{"adoption": {"forks": 119, "observed_at": "2026-08-28T04:04:06.025378+00:00", "stars": 1240}, "canonical_url": "https://ross.abutalabs.com/products/android_env", "card": {"archived": false, "artifact_type": "library", "description": "RL research on Android devices.", "domain": ["reinforcement-learning", "android-tools", "artificial-intelligence", "machine-learning"], "enriched": true, "function": ["reinforcement-learning", "simulation", "machine-learning"], "health_score": 99, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["google-deepmind/android_env"], "name": "google-deepmind/android_env", "platform": ["python"], "pushed_at": "2026-08-25T11:18:05+00:00", "repo": "google-deepmind/android_env", "stars": 1240, "tags": ["rl-environment", "gym-environment", "android-emulator", "deepmind", "agent-training", "touchscreen-control", "android", "linux", "macos"], "topics": ["reinforcement-learning", "android"], "urls": [], "use_cases": ["train RL agents to control an Android device", "define custom RL tasks on top of Android apps", "research GUI/screen-based agent learning", "benchmark agents on real-world mobile tasks", "set up a virtual Android device for RL experiments", "train agents to play Android games via touch events"], "what_it_is": "AndroidEnv is a Python library from DeepMind that exposes an Android device (real or emulated) as a Reinforcement Learning environment. Agents interact via a universal touchscreen action interface and receive pixel observations and task-defined rewards.", "when_to_avoid": ["you need a simple desktop or web RL environment", "you want lightweight unit testing of mobile apps rather than RL training", "you can't run an Android emulator or device in your setup", "you need iOS or cross-platform mobile RL"], "when_to_choose": ["you need an RL environment grounded in a real mobile OS", "you want to train agents that interact via touch gestures", "you need pixel-based observations with configurable task rewards", "you're doing DeepMind-style RL research on Android"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/android_env", "repo": "google-deepmind/android_env", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.025378+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:09:52.317299+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4867ac0f097e634cae3fb8ab91d2b6fbc0ae9b2624beeb47d893a884754ba99e", "fetched_at": "2026-08-28T04:04:06.025378+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-deepmind/android_env"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 58}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1960, "days_push": 8, "days_rel": 64, "gap_med": 433, "n_releases_24m": 2}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}