{"adoption": {"forks": 517, "observed_at": "2026-08-28T04:07:22.012735+00:00", "stars": 2789}, "canonical_url": "https://ross.abutalabs.com/products/android-open-source-project-analysis", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Android open source project analysis. Note: The project has been moved to https://github.com/BeesAndroid/BeesAndroid.", "domain": ["android-tools", "operating-systems", "tutorials"], "enriched": true, "function": ["documentation"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["suceser/android-open-source-project-analysis"], "name": "suceser/android-open-source-project-analysis", "platform": [], "pushed_at": "2024-01-03T05:52:21+00:00", "repo": "suceser/android-open-source-project-analysis", "stars": 2789, "tags": ["android-framework", "aosp", "source-code-analysis", "chinese-language", "gitbook", "system-internals", "android"], "topics": [], "urls": [], "use_cases": ["understand how the Android framework works internally", "learn Android window management and system services from source code", "study AOSP architecture layer by layer", "prepare for Android system-level interview questions", "learn how to read large codebases like Android", "understand JNI, Binder IPC, and the Android runtime"], "what_it_is": "A series of in-depth articles (hosted on GitBook and GitHub) analyzing the Android Open Source Project internals, covering the framework, window management, system services, runtime, HAL, and Linux kernel layers. It is based on Android 7.1.1 (Nougat) source code and has since moved to the BeesAndroid project.", "when_to_avoid": ["you need analysis of recent Android versions (13+)", "you want actively maintained content - the project moved to BeesAndroid", "you need a tool or library rather than reading material"], "when_to_choose": ["you want a guided, article-based tour of Android OS internals", "you are studying Android 7.x-era framework source code", "you prefer diagrams and summaries over raw code dumps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/android-open-source-project-analysis", "repo": "suceser/android-open-source-project-analysis", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "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:07:22.012735+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.012735+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:15:30.655917+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20a96bac96f12f8a0b51191bd074326178c67525522c6c19cc7184f22da6dd48", "fetched_at": "2026-08-28T04:07:22.012735+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suceser/android-open-source-project-analysis"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3478, "days_push": 973, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}