Android 设备连接与边缘计算项目全景

📅 2026/8/2 5:13:11
Android 设备连接与边缘计算项目全景
Android 设备连接与边缘计算项目全景移动端设备软件正在从“单一 App 功能”转向完整的设备连接层摄像头负责采集串口和 MQTT 负责通信支付 SDK 负责业务闭环IoT LinkSDK 负责云端设备管理Rockchip 相关组件则把 SSH 维护和 NPU 推理带到边缘设备。本文整理一组面向 Android、IoT、支付、串口通信和 Rockchip 平台的开源项目帮助开发者快速理解各项目的定位、组合方式和使用边界。项目地图项目主要方向适用场景链接scanner-androidCamera2、Compose、二维码扫码、相机预览、二维码编解码GitHubmqtt-service-androidEclipse Paho MQTT ServiceAndroid MQTT 长连接与后台服务GitHubiot-link-androidAlibaba Cloud IoT Alink、MQTT、SSH/SFTP设备注册、OTA、远程维护GitHubchina-pay-android微信、支付宝、银联支付Jetpack Compose 支付流程GitHubserial-api-android串口、JNI、协议解析、TCP Proxy工控设备、传感器、串口网关GitHubrockchip-ssh-stcp-androidSSH、SFTP、SCP 服务Rockchip 开发板远程维护GitHubrockchip-rknn-androidRKNN Runtime、YOLO、目标跟踪RK3588 NPU 边缘推理GitHub1. Scanner Compose Library项目地址scanner-android这是一个面向现代 Android 的 Kotlin 扫码库包名为android.scanner.api最低支持 Android API 26。它将 Camera2 的 Bitmap 流、Compose 扫描框、二维码 Bitmap 编解码和生命周期管理组合在一起适合收款码、资产标签、设备二维码和现场巡检等场景。主要能力包括根据设备能力自动选择接近目标值的相机分辨率Compose 扫描框支持区域、边框和背景颜色配置QR Code 编码与解码可选调试日志ScannerPreview.close()生命周期释放最小相机预览示例valcameraremember{ScannerPreview(contextcontext,configScannerPreviewConfig(cameraId0,width1280,height720,torchEnabledfalse,autoFocustrue,),)}valbitmapbycamera.bitmap.collectAsState()DisposableEffect(camera){camera.start()onDispose{camera.close()}}ScannerOverlay(bitmapbitmap)二维码编解码可以直接使用valencodedBarcodeCodec.encodeQr(scanner-value,BitmapSize(512,512))if(encodedisScanOutcome.Success){valdecodedBarcodeCodec.decode(encoded.value)}宿主应用必须自行声明并申请相机权限在权限授予前不要启动预览。2. Android MQTT Service项目地址mqtt-service-android该项目是 Eclipse Paho Android Service 的社区维护版本面向仍然依赖org.eclipse.paho.android.service的应用。重点不在重新发明 MQTT 协议而在于延续 Android MQTT Service 的使用方式补充现代 Android 和部分 Rockchip 开发板环境下的兼容性维护。项目通过 GitHub Packages 发布典型依赖配置如下repositories{maven{urluri(https://maven.pkg.github.com/RelinRan/MqttService)credentials{usernameproviders.gradleProperty(gpr.user).orNull?:System.getenv(GITHUB_ACTOR)passwordproviders.gradleProperty(gpr.key).orNull?:System.getenv(GITHUB_TOKEN)}}}dependencies{implementationio.github.relinran:mqtt-service:1.1.0}GitHub Packages 即使面对公开包也可能要求认证令牌应放在用户级 Gradle 配置中不能提交到仓库。若只需要轻量 MQTT 发布/订阅也可以下载 Release 中的 AAR独立 JAR 不包含 Android Manifest 和资源。3. IoT Link SDK项目地址iot-link-android这是一个 Android 端 Alibaba Cloud IoT Alink 协议实现同时提供通用 MQTT 客户端层。功能覆盖设备认证、属性、事件、服务、OTA、设备日志、远程配置、设备任务、设备分发、网关拓扑、子设备、标签、设备影子、网络诊断和 MQTT 文件上传。可选的安全远程扩展提供 SSH、SFTP 和 Rockchip 设备控制能力。最低支持 Android API 24Java/Kotlin JVM 目标为 11。核心入口是android.mqtt.iot.link.LinkSDK。动态注册并连接设备LinkSDK.initialize(contextapplicationContext,productKeyPRODUCT_KEY,productSecretPRODUCT_SECRET,deviceNameDEVICE_NAME,secureMode2,authTyperegister,remotefalse,)其中secureMode 2表示在本地没有设备密钥时执行动态注册注册凭据会被持久化生产环境建议默认关闭remote只有确实需要远程维护时才启用安全隧道。设备日志和远程配置可以通过状态流读取LinkSDK.publishLog(DeviceLogEntry(modulewash-flow,logLevelDeviceLogLevel.ERROR,code4103,logContentstep recognition failed,))valconfigLinkSDK.remoteConfigState.value LinkSDK.publishRemoteConfig()远程配置下载、签名校验和应用由业务层负责任务文档、远程文件和云端下发内容都应按不可信输入处理。4. China Pay Android项目地址china-pay-android这是一个 Kotlin-first 的 Jetpack Compose 支付 SDK支持微信 APP 支付、支付宝 APP 支付和银联支付。所有支付客户端使用挂起函数start()通过StateFlowPayState...暴露状态适合在 Compose 页面中统一渲染Launching、Pending、Cancelled、Failure和Success。微信支付示例valpaymentremember(order){WechatPay(context,order)}valstatebypayment.state.collectAsStateWithLifecycle()Button(onClick{scope.launch{payment.start()}}){Text(Pay with WeChat)}DisposableEffect(Unit){onDispose{payment.close()}}支付宝使用服务端签名后的完整orderInfovalpaymentAlipayPay(activity,AlipayPayRequest(orderInfosignedOrderInfo))scope.launch{payment.start()}支付项目最重要的边界是客户端回调不是最终支付凭证。订单必须由服务端创建和签名服务端通过支付平台通知或主动查询确认成功后再调用confirmSuccess不要仅依据客户端回调发货、充值或记账。5. Serial API Android项目地址serial-api-android这是一个面向 Linux 串口设备的 Kotlin-first Android 串口 SDK最低支持 Android API 26提供 JNI 串口传输、协程会话、状态流、顺序写队列、重连、请求/响应匹配、增量帧解析和串口转 TCP 代理。创建会话并发送命令valsessionSerialPortApi.create(applicationContext)valconnectedsession.connect(SerialConfig(path/dev/ttyS4,baudRate115_200,modeSerialMode.ReadWrite,readBufferSize512,))if(connected.isSuccess){valhandlesession.send(SerialCommand(byteArrayOf(0x01,0x03,0x00,0x00)))valresulthandle.completion.await()}对于有固定帧格式的设备可以配置帧头、长度字段、字节序、帧尾和校验valparserSerialFrameParser(FrameConfig(headerbyteArrayOf(0x55,0xAA.toByte()),lengthOffset2,lengthSize2,lengthByteOrderByteOrder.LITTLE_ENDIAN,footerbyteArrayOf(0x0D,0x0A),checksumChecksums.Crc16Modbus,maximumFrameSize2048,))库内置 XOR-8、SUM-8 和 CRC16-Modbus也支持自定义校验器。串口会话结束时调用disconnect()生命周期彻底结束时调用close()。6. Rockchip SSH/SFTP 服务项目地址rockchip-ssh-stcp-android这是一个适用于 Rockchip Android 开发板的 SSH/SFTP/SCP 服务和 Android Library基于 Apache MINA SSHD支持前台服务、开机自启动、交互式 Shell、远程执行、文件上传下载以及 Android 存储路径别名。典型使用流程是在设备端安装 APK配置用户名、密码和端口保存并启动服务电脑与设备处于同一局域网后连接ssh-p2222androiddevice-ipsftp-P2222androiddevice-ipscp-P2222./local.txt androiddevice-ip:/sdcard/Download/local.txtRoot 设备可以从/浏览更完整的 Android 文件系统非 Root 设备通常从/storage/emulated/0开始并受 Android 沙箱、SELinux 和厂商权限限制。Android 11 及以上设备还需要根据系统提示授予“所有文件访问”权限。该项目适合受控局域网维护不应将弱密码 SSH 服务直接暴露到公网。批量部署前应完成密码策略、权限审计和目标硬件验证。7. Rockchip RKNN Android Runtime项目地址rockchip-rknn-android这是面向 Rockchip NPU 的 Android 推理库当前重点支持 RK3588。它负责 RKNN Runtime 发现、模型会话、图像预处理、JNI 推理、输出张量解码、多模型分发和目标跟踪支持 YOLO 检测、姿态模型及分类等工作负载。要求包括 Android API 24、兼容 RKNPU2 Runtime 的设备、arm64-v8a或armeabi-v7a以及通过 RKNN-Toolkit2 转换得到的.rknn模型。.tflite、.onnx和.pt文件不能直接交给 Android RKNN Runtime。显式注册模型并执行检测valruntimeRknnRuntime()valstateruntime.initialize(context,RknnOptions(modelRootmodelRoot,debugBuildConfig.DEBUG),)check(stateRknnState.READY)runtime.registerModel(RknnModelConfig(iddetector,typeRknnModelType.OBJECT_DETECTOR,fileNameyolo.rknn,inputWidth640,inputHeight640,labelslistOf(person,helmet),decoderTypeRknnDecoderType.YOLO_END_TO_END,scoreThreshold0.25f,nmsThreshold0.5f,))valresultruntime.detectObjects(detector,bitmap)runtime.unregisterModel(detector)runtime.close()实时相机输入可以使用ModelApi.detectAsync()。同一个模型只允许一个进行中的请求避免摄像头帧无限排队不同模型在RunMode.PARALLEL下可以并发执行。模型目录建议使用context.filesDir或getExternalFilesDir(null)减少存储权限问题。如何组合这些项目智能终端或巡检设备scanner-android负责扫描设备二维码serial-api-android负责连接传感器或控制器iot-link-android负责把设备身份、状态、日志和 OTA 接入云端rockchip-rknn-android则承担本地视觉推理。Rockchip 远程维护平台在设备端组合rockchip-ssh-stcp-android与iot-link-android的安全隧道能力可以把文件传输、Shell、诊断和云端设备管理纳入同一套运维流程。建议默认关闭公网暴露使用强密码、网络隔离和服务端审计。支付型 Android 应用china-pay-android适合 Compose 页面状态管理但支付订单和最终支付判断必须放在服务端。扫码能力可以和scanner-android配合用于扫描付款码、订单码或设备绑定码。工业串口网关serial-api-android负责串口帧和设备协议TCP Proxy 用于将串口能力转发到局域网如果网关还需要云端状态同步再由iot-link-android负责 MQTT/Alink 上报。选型建议需要 Camera2 Compose 扫码选择scanner-android。需要传统 Android MQTT Service选择mqtt-service-android。需要阿里云 IoT 设备生命周期和 Alink选择iot-link-android。需要微信、支付宝或银联 APP 支付选择china-pay-android。需要串口协议、JNI、重连和 TCP 转发选择serial-api-android。需要 Rockchip 板卡 SSH/SFTP 维护选择rockchip-ssh-stcp-android。需要 RK3588 NPU 推理、YOLO 或跟踪选择rockchip-rknn-android。结语这组项目覆盖了 Android 设备从输入采集、近场通信、云端连接、支付交互到边缘 AI 和远程维护的多个关键层次。实际落地时应优先明确硬件平台、Android API、权限边界、网络模型和服务端职责再选择单个库或组合方案。支付验签、远程 SSH、设备密钥、模型文件和云端任务都属于高风险边界应在生产环境中配合服务端校验、最小权限和审计机制使用。完整项目链接scanner-androidmqtt-service-androidiot-link-androidchina-pay-androidserial-api-androidrockchip-ssh-stcp-androidrockchip-rknn-android