{"adoption": {"forks": 1196, "observed_at": "2026-08-28T04:05:45.266856+00:00", "stars": 1859}, "canonical_url": "https://ross.abutalabs.com/products/alidili-demos", "card": {"archived": false, "artifact_type": "learning-resource", "description": "🔥折线图、Retrofit、RxJava、RxLifecycle、DataBinding、MVP、MVVM、自动化测试工具UiAutomator、自定义控件、RecyclerView扩展组件、NDK开发、Design Support Library、蓝牙BLE开发、正则表达式", "domain": ["android-tools", "mobile-development", "tutorials", "developer-tools"], "enriched": true, "function": ["developer-tools", "testing", "data-visualization", "workflow-automation"], "health_score": 55, "homepage": "http://www.yangle.tech", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["alidili/Demos"], "name": "alidili/Demos", "platform": ["jvm"], "pushed_at": "2025-12-25T01:46:48+00:00", "repo": "alidili/Demos", "stars": 1859, "tags": ["android-demos", "retrofit", "rxjava", "mvp", "mvvm", "databinding", "uiautomator", "mpandroidchart", "sample-code", "tutorial", "android", "mobile"], "topics": [], "urls": [], "use_cases": ["learn how to draw line charts with MPAndroidChart in Android", "example of using Retrofit with RxJava for network requests", "understand MVP architecture with a working Android demo", "see how RxLifecycle prevents RxJava memory leaks", "learn Android DataBinding and MVVM with sample code", "get started with UiAutomator for Android UI automation testing", "reference examples of custom Android views and RecyclerView extensions", "learn BLE Bluetooth development on Android"], "what_it_is": "A collection of Android demo projects in Java, each accompanying a blog tutorial on topics like MPAndroidChart line charts, Retrofit + RxJava, MVP/MVVM architecture, DataBinding, and UiAutomator automated testing. It serves as hands-on sample code for learning common Android development patterns and libraries.", "when_to_avoid": ["you need a production-ready library or framework to drop into your app", "you are looking for Kotlin-first or Jetpack Compose examples", "you need actively maintained, up-to-date dependency versions for production use"], "when_to_choose": ["you are learning Android development and want runnable sample code paired with tutorials", "you need reference implementations of MVP/MVVM, Retrofit+RxJava, or DataBinding patterns", "you want a starting point for UiAutomator automated testing on Android"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/alidili-demos", "repo": "alidili/Demos", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "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:05:45.266856+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.266856+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:15:58.572502+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6404d22ee44f63c03a08d7631caabcca203813f7bedd311b3e8142b826d13abd", "fetched_at": "2026-08-28T04:05:45.266856+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alidili/Demos"}, {"content_hash": "ed92e731598a7f5fb154ce2fa1d547a87205c705603790feac3aa89e7ab385b9", "fetched_at": "2026-08-29T10:54:58.608798+00:00", "kind": "homepage", "missing": false, "url": "http://www.yangle.tech"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 58, "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": 3362, "days_push": 252, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}