{"adoption": {"forks": 352, "observed_at": "2026-08-28T04:04:40.549783+00:00", "stars": 1420}, "canonical_url": "https://ross.abutalabs.com/products/androidmodulepattern", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Android项目组件化示例代码，支持Fragment和View", "domain": ["mobile-development", "android-tools", "developer-tools", "tutorials"], "enriched": true, "function": ["developer-tools", "routing", "middleware"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["guiying712/AndroidModulePattern"], "name": "guiying712/AndroidModulePattern", "platform": ["jvm"], "pushed_at": "2018-03-12T09:15:58+00:00", "repo": "guiying712/AndroidModulePattern", "stars": 1420, "tags": ["android", "componentization", "modular-architecture", "sample-project", "arouter", "gradle", "demo"], "topics": ["androidmodule"], "urls": [], "use_cases": ["learn how to modularize an android app into components", "example of switching between integrated and component development modes in gradle", "see how to use ARouter for navigation between modules", "reference for structuring business components and a common base library", "understand fragment-based componentization in android"], "what_it_is": "A sample Android project demonstrating component-based (modular) architecture, showing how to split an app into independently developable business components with ARouter for navigation. It includes example components for app shell, main, girls/news business modules, and a common base library.", "when_to_avoid": ["you need an actively maintained production library or up-to-date tooling", "your project uses modern architectures like single-activity Compose or dynamic feature modules", "you need support for recent Android Studio/Gradle versions"], "when_to_choose": ["you are learning android componentization/modular architecture patterns", "you want a working reference for ARouter-based module routing", "you need a template for splitting an android project into business and functional components"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/androidmodulepattern", "repo": "guiying712/AndroidModulePattern", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "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:40.549783+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.549783+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:48.844698+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "de030eaa2c9f04aba7beaf490bed50b088118633b9286eaa14d457f5bdd55e98", "fetched_at": "2026-08-28T04:04:40.549783+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guiying712/AndroidModulePattern"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3510, "days_push": 3096, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}