{"adoption": {"forks": 448, "observed_at": "2026-08-28T04:03:17.717862+00:00", "stars": 1029}, "canonical_url": "https://ross.abutalabs.com/products/security-samples", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Multiple samples showing the best practices in security APIs on Android.", "domain": ["security", "android-tools", "developer-tools", "tutorials"], "enriched": true, "function": ["security", "auth", "cryptography"], "health_score": 78, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["android/security-samples"], "name": "android/security-samples", "platform": ["jvm"], "pushed_at": "2026-08-07T17:06:01+00:00", "repo": "android/security-samples", "stars": 1029, "tags": ["android-security", "sample-code", "biometrics", "play-integrity", "keystore", "google-official", "android"], "topics": ["sample"], "urls": [], "use_cases": ["learn how to integrate the Play Integrity API end to end", "add biometric authentication to an Android app", "store data in device-protected storage with DirectBoot", "find canonical examples of Android security API usage", "set up APK signing for developer verification", "follow best practices for Android app security"], "what_it_is": "An official Google repository of Android sample apps demonstrating security best practices, including the Play Integrity API, biometric login, and DirectBoot device-protected storage. Written in Kotlin, it serves as reference code for integrating Android security APIs.", "when_to_avoid": ["you need a production-ready library rather than sample code", "you rely on the deprecated samples (BiometricLogin, DirectBoot) which are being deleted in March 2026", "you are not developing for Android"], "when_to_choose": ["you are building an Android app and need reference implementations of security APIs", "you want official, canonical sample code for biometrics or Play Integrity", "you are learning Android security best practices from maintained examples"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/security-samples", "repo": "android/security-samples", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "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:17.717862+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.717862+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:38.195771+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a17ebfdcc6303e58f28675eae3c7c58b10b98df7d746c89cb9f6a3bbf5bc910b", "fetched_at": "2026-08-28T04:03:17.717862+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/security-samples"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "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": 2598, "days_push": 26, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}