{"adoption": {"forks": 188, "observed_at": "2026-08-28T04:03:54.284814+00:00", "stars": 1182}, "canonical_url": "https://ross.abutalabs.com/products/easyandroid", "card": {"archived": false, "artifact_type": "library", "description": "一系列简单、轻量、方便的Android开发工具集合(持续更新中),包括Android动态权限、SharedPreferences、反射、日志、Toast、Bundle、MVP、线程池、Html、图文混排、蒙层引导、拍照、图库选择等", "domain": ["mobile-development", "android-tools", "developer-tools", "cross-platform"], "enriched": true, "function": ["ui-components", "developer-tools", "logging", "concurrency", "file-upload"], "health_score": 20, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["easyandroidgroup/EasyAndroid"], "name": "easyandroidgroup/EasyAndroid", "platform": ["jvm"], "pushed_at": "2020-09-24T08:20:50+00:00", "repo": "easyandroidgroup/EasyAndroid", "stars": 1182, "tags": ["android-utilities", "runtime-permissions", "sharedpreferences", "toast", "reflection", "mvp-architecture", "thread-pool", "image-picker", "onboarding-overlay", "activity-result", "lightweight-components", "android", "mobile"], "topics": ["android", "permissions", "sharedpreferences", "reflection", "log", "toast", "mvp", "bundle", "photos", "executor", "kotlin", "activityresult", "dimensions", "html", "imagegetter", "guide"], "urls": [], "use_cases": ["request android runtime permissions easily", "simplify sharedpreferences read and write", "show toasts without boilerplate", "wrap thread pool and background task execution", "pick photos from camera or gallery", "show onboarding overlay guides highlighting views", "handle activity results without onActivityResult", "load images in html text in TextView"], "what_it_is": "EasyAndroid is a lightweight Kotlin library that bundles many small, independent utility components for Android development, such as runtime permissions, SharedPreferences access, logging, Toast, reflection, thread pools, Bundle handling, image picking, and overlay guides. Each component is designed to be minimal (under ~100 methods) and can be copied into a project individually if only part of the library is needed.", "when_to_avoid": ["you need a large, actively maintained framework with frequent updates (last release 2020)", "you already use comprehensive libraries like AndroidX or Jetpack that cover these utilities", "you need only one specific feature with strong long-term support guarantees"], "when_to_choose": ["you want small, copy-paste-friendly Android utility components instead of heavyweight frameworks", "you need a grab-bag of common Android helpers (permissions, toast, log, prefs) in one lightweight dependency", "you prefer Kotlin-based, minimal-method-count utilities"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/easyandroid", "repo": "easyandroidgroup/EasyAndroid", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "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:03:54.284814+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.284814+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:24:49.793076+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "552afc4617c44aa119f8a917e0350dd60784c4db4a7ccc8fcd2915f05bf40e71", "fetched_at": "2026-08-28T04:03:54.284814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/easyandroidgroup/EasyAndroid"}], "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": 3042, "days_push": 2169, "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}}