{"adoption": {"forks": 413, "observed_at": "2026-08-28T04:04:51.140965+00:00", "stars": 1482}, "canonical_url": "https://ross.abutalabs.com/products/android-serialport-api", "card": {"archived": false, "artifact_type": "library", "description": "Fork自Google开源的Android串口通信Demo，修改成Android Studio项目", "domain": ["android-tools", "hardware", "developer-tools"], "enriched": true, "function": ["sdk", "developer-tools"], "health_score": 20, "homepage": "https://code.google.com/archive/p/android-serialport-api/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["licheedev/Android-SerialPort-API"], "name": "licheedev/Android-SerialPort-API", "platform": ["jvm"], "pushed_at": "2024-09-06T03:27:13+00:00", "repo": "licheedev/Android-SerialPort-API", "stars": 1482, "tags": ["serial-port", "android-library", "hardware-communication", "root-access", "android"], "topics": ["android", "serialport"], "urls": [], "use_cases": ["communicate with serial devices from an Android app", "read and write to a UART port on Android", "configure serial port parity, data bits, and stop bits in Java", "connect Android tablet to industrial hardware over RS232", "Android library for serial port communication"], "what_it_is": "An Android library for serial port (RS232/UART) communication, forked from Google's open-source android-serialport-api demo and modernized into an Android Studio project. It provides a SerialPort class with configurable baud rate, data bits, parity, and stop bits, requiring a rooted device with su access.", "when_to_avoid": ["your device is not rooted, since su access is required", "you need USB-based serial adapters rather than native UART device files", "you target non-Android platforms"], "when_to_choose": ["you need raw serial port I/O on a rooted Android device", "you want a maintained Android Studio-ready fork of the classic Google serial port demo", "you need configurable serial parameters like 7E2 or 8N1"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/android-serialport-api", "repo": "licheedev/Android-SerialPort-API", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "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:51.140965+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.140965+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.688774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9ef9b8b8cbee3e787642eb1f6e06197871e6f87b0a282b84086a8860e3089403", "fetched_at": "2026-08-28T04:04:51.140965+00:00", "kind": "readme", "missing": false, "url": "https://github.com/licheedev/Android-SerialPort-API"}, {"content_hash": "4518c8b1eedd3c677d53b4319948b17f17f55f0a2a654c5a9a7f91ecc1ea0882", "fetched_at": "2026-08-29T11:40:39.982703+00:00", "kind": "homepage", "missing": false, "url": "https://code.google.com/archive/p/android-serialport-api/"}], "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": 3446, "days_push": 726, "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}}