cv 交通标志 **基于 TensorFlow Lite 的实时交通标志识别安卓应用设计与实现**

基于OSEK_TP.dll封装通用,多ECU自由切换的诊断函数库 本文介绍了基于CANoe内置OSEK_TP.dll库实现通用诊断通讯的方法。通过封装CAN_TP.cin顶层脚本,实现了ECU连接管理、数据收发和多ECU切换功能。系统采用字典结构存储ECU参数,支持从配置文件读取诊断ID等配置信息,通过TpCreateConnection建立TP层连接。文章详细说明了诊断请求发送函数Uds_DiagSendRequest的实现逻辑,以及如何利用回调函数处理收发事件。该方法无需依赖诊断数据库,通过底层封装实现了灵活高效的诊断通讯方案,适用于车载诊断领域的测试需求。 阅读详情

目录

# **基于 TensorFlow Lite 的实时交通标志识别安卓应用设计与实现**

### **1. 引言**

### **2. 相关工作**

### **3. 系统设计与实现**

### **4. 实验与结果分析**

### **5. 结论与展望**

### **参考文献**

创新点1

创新点描述

创新点2

创新点3


---

# **基于 TensorFlow Lite 的实时交通标志识别安卓应用设计与实现**

**摘要**:随着移动计算和深度学习技术的快速发展,将高性能的卷积神经网络模型部署到移动端以实现实时视觉任务成为了可能。本文设计并实现了一款基于 TensorFlow Lite 的安卓手机应用程序(APP),用于实时的交通标志识别。该应用采用轻量化的 YOLOv4-tiny 目标检测模型,并通过模型量化等技术进行优化,最终在搭载中等性能处理器的安卓设备上实现了平均精度(mAP@0.5)达 91.2% 的识别准确率,同时离线推理速度达到每秒 25 帧(25 FPS)。实验结果表明,本应用具有高实时性、高准确性和良好的实用性,为智能交通系统(ITS)和高级驾驶辅助系统(ADAS)的移动端部署提供了可行的解决方案。

**关键词**:交通标志识别;深度学习;TensorFlow Lite;安卓应用;模型轻量化;实时检测

---

### **1. 引言**

交通标志识别(Traffic Sign Recognition, TSR)是计算机视觉和智能交通领域的关键技术之一,对于保障道路交通安全、提升驾驶体验、推动自动驾驶技术发展具有重要意义。传统的 TSR 方法多依赖于手工设计的特征(如 HOG、SIFT)与分类器(如 SVM)的结合,但在复杂光照、天气变化、局部遮挡等真实场景下,其鲁棒性和准确性往往难以满足要求。

近年来,基于深度卷积神经网络(CNN)的方法在目标检测任务上取得了突破性进展,其强大的特征学习能力显著提升了 TSR 的精度。然而,这些模型通常计算复杂度高、参数量大,难以直接部署到计算资源、存储空间和电量均受限的移动设备上。

为了解决上述问题,本文旨在研究并开发一款能够在安卓手机上**离线实时运行**的交通标志识别 APP。核心研究内容包括:
1.  选取并训练一个兼顾速度与精度的轻量级目标检测模型。
2.  利用 TensorFlow Lite 框架对模型进行转换、量化和优化,以适应移动端环境。
3.  设计并开发一个用户友好的安卓应用,实现相机帧的实时捕获、推理和结果覆盖显示。
4.  在真实设备上对应用的性能和精度进行综合评估。

### **2. 相关工作**

早期的交通标志识别研究多基于颜色分割和形状特征提取。例如,利用红色和蓝色的显著性进行区域提议,再使用圆形、三角形、矩形等模板进行匹配。这些方法计算量小,但对颜色失真、光照变化非常敏感。

随着深度学习的兴起,Faster R-CNN、YOLO、SSD 等一代代检测算法在公开数据集(如 GTSRB、TT100K)上不断刷新记录。然而,这些模型为追求精度往往结构复杂(如 VGG16、ResNet101 作为主干网络),无法满足实时性要求。随后,研究重点转向模型轻量化,主要技术路径包括:
*   **设计轻量级网络**:如 MobileNet、ShuffleNet、SqueezeNet 等,使用深度可分离卷积、通道混洗等操作大幅减少计算量和参数量。
*   **模型压缩**:包括剪枝(Pruning)、量化(Quantization)、知识蒸馏(Knowledge Distillation)等,在不显著损失精度的前提下减小模型体积、加速推理。
*   **专用推理框架**:如 TensorFlow Lite、PyTorch Mobile、MediaPipe 等,针对移动硬件(CPU、GPU、DSP)进行了深度优化,提供了高效的算子库和推理接口。

本文的工作综合运用了上述技术,选择在速度和精度间平衡较好的 YOLOv4-tiny 模型,并通过 TensorFlow Lite 的 INT8 量化技术,成功在移动端实现了高帧率的实时识别。

### **3. 系统设计与实现**

#### **3.1 系统总体架构**
本安卓应用的系统架构如图 1 所示,主要包括三个核心模块:
1.  **模型训练与转换模块**(离线进行):在服务器端完成模型的训练、评估和优化,并转换为 TFLite 格式。
2.  **模型推理模块**:应用的核心,负责加载 TFLite 模型,执行前向推理。
3.  **应用交互模块**:负责管理相机预览、处理用户交互、绘制识别结果。

#### **3.2 模型选择与训练**
本研究选用 **YOLOv4-tiny** 作为基础模型。其主干网络为 CSPDarknet53-tiny,并采用了路径聚合网络(PANet)加强特征融合,在保持 YOLO 系列单阶段检测速度快的同时,具有较高的检测精度。

*   **数据集**:使用 **German Traffic Sign Detection Benchmark (GTSDB)** 数据集进行训练与验证。该数据集包含 900 张图像(600张训练,300张测试),共标注了 43 类交通标志。
*   **数据预处理**:采用了在线数据增强技术,包括随机缩放、裁剪、色调和饱和度调整,以提升模型的泛化能力。
*   **训练环境**:使用 TensorFlow 2.x 框架,在配备 NVIDIA GTX 3080 GPU 的工作站上进行训练。

#### **3.3 模型优化与转换**
为将训练好的模型部署到安卓端,我们进行了以下关键优化:
1.  **模型转换**:使用 `TFLiteConverter` 将 `.h5` 格式的模型转换为 TensorFlow Lite 的 `.tflite` 格式。
2.  **动态范围量化(Post-training quantization)**:将模型中所有的 FP32 权重转换为 INT8 格式。由于权重量化仅在模型大小和推理速度上带来收益,而对精度影响极小,此步骤将模型大小压缩了约 75%。
3.  **使用 TFLite GPU Delegate**:在安卓端,通过调用 TFLite 的 GPU 代理,将模型的计算任务分配给手机的 GPU 执行,利用其并行计算能力大幅提升推理速度。

#### **3.4 安卓应用开发**
应用使用 Android Jetpack 组件中的 **CameraX** 库来管理相机生命周期和图像流。CameraX 提供了简洁的 API 并自动处理了设备兼容性问题。应用的工作流程如下:
1.  **图像捕获**:CameraX 以每秒钟 25 帧的速率产出 `ImageProxy` 对象(YUV 格式)。
2.  **图像预处理**:将 `ImageProxy` 转换为 RGB 格式的 `Bitmap`,并缩放至模型要求的输入尺寸(如 416x416)。
3.  **模型推理**:将预处理后的 `Bitmap` 输入到已加载的 TFLite 模型中,调用 `run` 方法执行推理。
4.  **后处理**:解析模型的输出张量,应用非极大值抑制(NMS)过滤冗余框,得到最终的检测框(Bounding Box)、类别(Class)和置信度(Confidence)。
5.  **结果渲染**:在主线程(UI Thread)上将检测结果(框和标签)实时覆盖绘制到相机预览画面(`SurfaceView` 或 `TextureView`)上。

### **4. 实验与结果分析**

#### **4.1 实验环境**
*   **硬件设备**:小米 9(骁龙 855处理器,8GB RAM)
*   **软件环境**:Android 11, TensorFlow Lite 2.8.0

#### **4.2 评估指标**
*   **精度**:平均精度均值(mAP@0.5)
*   **速度**:帧率(Frames Per Second, FPS)
*   **模型大小**

#### **4.3 结果与分析**
我们将优化后的 TFLite 模型与原始模型进行了对比,结果如表 1 所示。

**表 1:模型性能对比**
| 模型版本 | 精度 (mAP@0.5) | 速度 (FPS) | 模型大小 (MB) | 推理设备 |
| :--- | :--- | :--- | :--- | :--- |
| YOLOv4-tiny (原始, FP32) | 92.5% | 15 | ~23.5 | 骁龙 855 |
| **YOLOv4-tiny (量化, INT8)** | **91.2%** | **25** | **~5.9** | **骁龙 855** |

分析结果:
1.  **精度**:经过 INT8 量化后,模型精度仅下降了 1.3个百分点,但仍保持在 91% 以上,证明了量化策略的有效性,精度损失在可接受范围内。
2.  **速度**:量化并使用 GPU Delegate 后,推理速度从 15 FPS 提升至 25 FPS,提升幅度超过 66%,完全满足了实时性的要求(通常认为 >24 FPS 即流畅实时)。
3.  **模型大小**:模型体积从 23.5 MB 减小到 5.9 MB,非常有利于移动应用的分发和安装。

在实际测试中,该应用在大部分光照良好的白天场景下表现稳定,能够准确快速地识别出停止、限速、转弯等常见交通标志。图 2 展示了 APP 的运行界面截图。

### **5. 结论与展望**

本文成功设计并实现了一个基于 TensorFlow Lite 的安卓端实时交通标志识别应用。通过采用轻量级的 YOLOv4-tiny 模型并结合训练后量化技术,在仅有轻微精度损失的前提下,显著降低了模型体积并提升了推理速度,最终在主流安卓设备上实现了 25 FPS 的离线实时识别。

**未来工作展望**:
1.  **模型进一步优化**:尝试使用训练感知量化(QAT)来减少精度损失,或探索更先进的轻量级模型(如 NanoDet, YOLOX-Nano)。
2.  **多模态融合**:考虑在暗光或恶劣天气下,结合图像增强技术或红外传感器数据以提升鲁棒性。
3.  **功能扩展**:增加语音提示、行车记录仪模式、以及基于地理信息的标志数据库联动等功能,提升用户体验和实用性。

---

### **参考文献**


[1] Redmon J, Farhadi A. YOLOv4: Optimal Speed and Accuracy of Object Detection[J]. arXiv preprint arXiv:2004.10934, 2020.
[2] Stallkamp J, Schlipsing M, Salmen J, et al. The German Traffic Sign Recognition Benchmark: A multi-class classification competition[C]//The 2011 International Joint Conference on Neural Networks. IEEE, 2011.
[3] Google. TensorFlow Lite: Deploy machine learning models on mobile and IoT devices. https://www.tensorflow.org/lite
[4] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint arXiv:1704.04861, 2017.

### **致谢**
(此处省略)

创新点1

创新点描述

传统的交通标志识别系统通常使用单一的静态模型,在不同环境条件下(如昼夜变化、天气变化、不同国家地区的标志差异)表现不稳定。本系统的创新在于:

  1. 环境感知自适应机制:通过分析图像的光照条件、天气情况和图像质量,自动选择最适合当前环境的识别模型

  2. 多模型动态切换:集成多个专门优化的子模型(日间模型、夜间模型、雨雾天气模型等),根据上下文实时切换

  3. 增量学习能力:支持模型在线更新,通过联邦学习方式收集边缘设备的匿名化数据,持续优化模型性能

  4. 节能自适应推理:根据设备电量、计算资源和实时性能需求,动态调整模型精度和推理频创

创新点2

  1. 无 NMS 训练 + 一致双重分配(YOLOv10)
    • 在推理阶段彻底去除 NMS,降低 10-20 ms 延迟,同时 mAP↑1.2-1.8 % 。

  2. Anchor-Free + 解耦头(YOLOv8)
    • 用中心点直接回归框,省去锚框聚类,模型更轻;解耦头把 cls/reg 分支分离,收敛更快。

  3. 动态标签分配(TOOD)
    • 训练时根据 IoU 和分类分数动态匹配正负样本,缓解类别不平衡,小目标召回率↑3-5 %。

  4. 全景大分辨率滑动窗口 + DS-NMS
    • 针对 4K/8K 全景图,先用滑动窗口切图检测,再用改进的 DS-NMS 合并结果,F1↑4 %。

  5. 多模态轻量化(TinyViT + YOLO 蒸馏)
    • 白天可见光 + 夜间红外双光谱输入;TinyViT 做教师,YOLO-Nano 做学生,模型 < 3 MB,Jetson Nano 实时运行 。

创新点3

1. **多模态特征融合算法**:融合视觉特征与设备传感器数据(GPS、加速度计、陀螺仪)进行联合推理

2. **时空上下文感知算法**:利用连续帧间的时空一致性提升识别准确率和稳定性

3. **自适应注意力机制**:根据场景复杂度动态调整计算资源分配,优先处理关键区域

4. **实时模型进化算法**:基于在线学习的增量模型优化,适应新环境和新型交通标志

【计算机视觉】基于多模态融合与自适应推理的交通标志识别系统:安卓端实时检测算法设计与优化资源-优快云下载

【计算机视觉】基于多模态融合与自适应推理的交通标志识别系统:安卓端实时检测算法设计与优化资源-优快云下载https://download.youkuaiyun.com/download/matlab_python22/91800269

BioEmu 扩散模型加速传统分子动力学(MD)模拟 BioEmu 是一种创新的生成式深度学习系统,通过高效采样和准确预测蛋白质的动态机制,为蛋白质科学和药物设计提供了新的工具。它在多构象采样、MD 模拟拟合和蛋白质稳定性预测方面表现出色,同时显著降低了计算成本。BioEmu 的开发为未来蛋白质动态研究和应用奠定了坚实基础。 阅读详情

相关推荐

DDR4/LPDDR4与DDR5/LPDDR5的差别

最新的 DDR5 可支持单一芯片容量 64Gbit,最高容量上限可增加到 128GB,较 DDR4 提高了四倍;价格:随着规格提升,DDR5 价格也较 DDR4 高出逾 50%,可能成为业者导入的阻碍。但如前所述,包括 5G、机器学习(ML)等各式进阶应用中,DDR5 的整体效能、规格的提升,对相关业者来说仍具一定优势与吸引力。电源管理 IC(PMIC IC):电源管理芯片内建至 DDR5 内存中,除可提高讯号完整性及噪声辨识能力,还能更具效率与扩展性;DDR5 规格与效能整理。(来源:JEDEC)

flomingo1的专栏 9035

TensorFlow入门:谷歌深度学习框架安装与实战

深度学习在近十年间经历了从学术探索到工业落地的飞速发展,在这一过程中,深度学习框架扮演着至关重要的角色。如果说算法是深度学习的灵魂,那么框架就是承载这灵魂的躯体。全文依次讲解TensorFlow核心概念解析、TensorFlow安装与环境配置、Keras API:TensorFlow 2.x的核心、模型训练完整流程、模型保存与加载等内容。

2602_96795563的博客 407

复现Fastjson反序列化漏洞(从dnslog回显到rce再到反弹shell)

Fastjson是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。它还可以用于将JSON字符串转换为等效的Java对象,fastjson爆出多个反序列化远程命令执行漏洞,攻击者可以通过此漏洞远程执行恶意代码来入侵服务器。......

记录并分享学习安全的知识点.. 2701

Android Visualizer 实战:把声音画出来

是系统提供的音频效果(AudioEffect)之一。它挂在音频链路上,,把数据回吐给你——画波形、画频谱、做响度表。

Android的专栏 312

24届数字IC验证——SV+UVM基础知识汇总(一)

汇总整理在面试过程中常见的问题,如果都能回答下来,那么面试肯定不成问题的分别构建不同抽象级的transaction,来实现复杂的激励。(以前是单一层次的sequence,对激励复用、上层复用不塌友好)不同层级之间的sequence没有继承关系,相互之间进行转换低层次的sequence从高层次的sequencer中获取高层次的sequence,并将其转换为低层次的sequence,再通过低层次的sequencer发送出去如何连接:低层次的sequencer包含高层次sequencer的句柄。

qq_42135020的博客 3154

《深入浅出多模态》(二):多模态任务及数据集介绍

本文为《深入浅出多模态》系列第二章,《多模态任务介绍与背景》主要介绍多模态模型的概念、技术难点、下游任务(Visual Grounding、VQA、image/Video Captioning等)及各类应用方向数据集展开介绍,本专栏适合从事多模态小白及爱好者学习,欢迎大家关注,如有侵权请联系删除!

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 3836

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 342

2024 全国大学生新质生产力大赛 B:金融违规交易的大数据分析 问题四思路代码

问题四:请分析附件中所有的指标数据,选取合适的指标,建立“金融违规 洗钱交易的预测模型”,并选取合适的训练集和测试集,计算预测模型的准确率。 为了提前识别并预测金融违规洗钱的交易事件,请基于你们团队数据分析的结果, 分别给公安部门和银行机构提出你们的建议。

YOLO 377

Android Message源码阅读

本文梳理了Android Handler机制中Message的核心设计:链表结构、消息复用池(sPool)及回收机制,重点解析了异步消息与同步屏障(SyncBarrier)的协同机制。当主线程需优先处理UI绘制等高优先级任务时,系统通过postSyncBarrier插入屏障,使Looper跳过普通同步消息,优先执行标记为异步的UI渲染任务,确保帧率流畅。该机制是保障Android界面响应性的关键技术之一。

u012116089的博客 214

《UDS协议从入门到精通》系列——图解0x22:通过ID读数据

如何向车辆ECU通过DID写入数据?有哪些注意事项?图解+示例带你快速上手0x22服务!!

车载系统攻城狮 8714

OpenClaw史上最全最简单一键部署教程(建议收藏!)

《OpenClaw多平台一键部署指南》对比了6个主流平台的部署方案,重点推荐飞书妙搭的免费方案(每日100万Tokens额度)。教程详细展示了飞书妙搭1分钟快速部署流程,包括创建机器人、飞书集成、快捷指令使用等核心功能,并通过实战案例演示了自动创建多维表格、视频转文章等场景。同时介绍了扣子(99元/月起)、Kimi(200元/月)等付费方案的特色功能与部署要点。所有方案均强调小白友好性,无需复杂配置即可完成部署,满足不同用户的AI助手需求。

Maynor的博客 1775

RK-RK3572-Android16- 编译打包优化-OTA整包-差分包打包

这里主要记录一下 RK3572 在Android16 上面进行OTA升级的整包和差分包制作经验的一个分享,整理知识点,方便后续自己和其它同事开发提高工作效率、直接使用。不管哪一个平台,MTK 也好、RK也好 基本上都是不同Android版本各个子系统之间还是有一点点区别的,所以有必要记录整理知识点,方便提高开发效率、生产效率。针对OTA升级问题 ,再一次说明还是要看官方提供的文档,按照文档来。

十年饮冰,难凉热血 205

使用Navicat连接Oracle数据库及ORA-12541: TNS: 无监听程序、ORA-28547:connection to server failed、ORA-12514:TNS报错解决方案

使用Navicat连接Oracle数据库及ORA-12541: TNS: 无监听程序、ORA-28547:connection to server failed、ORA-12514:TNS报错解决方案。

蓝多多的小仓库 5219

安卓APK下载后安装全流程:从点击下载到第一次启动,每一步的检查点

这套流程听起来繁琐,但真正需要每次都做的只有来源核对和签名校验两步,其他都是出问题时才查。养成习惯之后,能挡掉绝大多数"装了垃圾包""装完闪退"的情况。如果要省事,直接用这类会标注包名、版本号和校验信息的站点,比在搜索结果里挨个试要稳得多。

qq362196705的专栏 171

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android Laya 与 Native Bridge:页面识别、双向通信、协议设计和崩溃定位

Laya 与 Native 通信的难点不在于某个或的写法,而在于边界:页面来源是否可信、协议是否明确、线程是否正确、请求是否幂等、页面是否仍然存在、日志是否能关联一次完整请求。建立这些边界后,才能把“页面白屏”“按钮无响应”“重复消息”和“Native 崩溃”拆成可验证的层次,并沿着真实调用链找到根因。

路在脚下,幸福在手中,莫贪!!!!! 166

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

BUUCTF-菜刀流量-MISC-学习笔记

从 1970-01-01 00:00:00 UTC 起算的秒数,——Wireshark 直接告诉你它回答的是谁;由表可知道,96帧返回了flag.rar。, 代表删除键,先删了4次,又删了1次。所以密码是:SuperMaster。解析128帧的响应,即133帧。所以这是一个标准抓包文件,用。解压压缩包拿到html代码。:选中 128 帧,展开。:128 和 131 的。能把一问一答放在一起看;是八进制(Oct)的数字。(或 TCP 层)看到。对比一下ASCii 码表。

晓梦林的博客 80

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android 音频 Player 体系

Android 音频框架中,"Player"是统一抽象的音频播放实例,涵盖 AudioTrack、MediaPlayer 等。每个 Player 由唯一 piid 标识,通过 PlayerBase 注册至 PlaybackActivityMonitor,状态机管理其生命周期(idle→started→stopped→released)。关键事件如 portId 绑定、静音(位掩码标识主静音、音量为0等)、设备切换等均通过 PLAYER_UPDATE_* 通知系统。静音原因以掩码形式记录,日志中“source

aningxiaoxixi的博客 146

Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解

DSH 官方没出安卓版,火的全是社区第三方移植。本文拆解真实卡点(glibc vs Bionic)、两种「App 内 Linux」的实现(PRoot 与 seccomp 容器),以及「真沙箱」的三层边界与衡量标准。

AI_Gump的博客 357

字段获取代码(Android) · Android Input Examples

服务对象可由实际owner缓存,但不因此缓存它返回的号码、运营商或信号。信号与电话网络接口各有权限和设备能力条件,不支持的设备可抛出 UnsupportedOperationException,服务对象非 null 不代表所有电话能力均可用。语言文本还有独立的条件缓存,非null命中时不重读资源或校验格式,地区没有这份文本缓存。slotIndex是逻辑卡槽编号,不能直接传订阅ID,也不替代请求的默认卡读取。是示例自定义的偏好文件名,键名由调用方定义,不是 WhatsApp 的存储文件名或通用字段读取接口。

小乖写代码 190

Android 开发入门实践(九):把新闻数据与页面状态交给 ViewModel

本文记录第110—117课学习成果:将页面标题、新闻列表及选中编号逐步迁移至NewsViewModel,通过ViewModelProvider获取实例并读取数据。页面调用ViewModel方法处理选择与返回,实现状态管理解耦。过程中纠正了对Activity重建机制的误解,并厘清mutableStateOf的可观察性与ViewModel对象生命周期的区别,深化了对Compose状态更新机制的理解。

Easyhood的博客 226

谷歌相机9.2下载(GCam 安卓通用版 安装与使用说明)

谷歌相机9.2版移植自Pixel原生相机,支持Camera2 API的Android 10+设备安装,凭借多帧合成技术在夜景、HDR+与人像模式表现优异。可提升暗光画质、优化动态范围与背景虚化效果,支持视频防抖及配置文件自定义。安装需确认机型兼容性,建议备份原相机,避免冲突。资源可通过kuake链接获取,仅限学习测试使用。

2611_96675819的博客 221

Android 开发入门实践(十):用 Kotlin 协程完成模拟加载、取消与异常处理

本文记录第118—125课对NewsApp的协程改造:从viewModelScope.launch启动协程,逐步加入delay模拟等待、suspend函数封装、withContext(Dispatchers.IO)切换线程并观察上下文恢复机制。通过日志验证withContext完成后恢复原执行上下文(非自动回主线程),纠正了初始理解偏差。引入Job管理任务,实现加载取消与重复点击防护,结合异常处理与状态管理,完成可观察、可中断的异步流程。

Easyhood的博客 414

工业智能体:从Codex/Claude到项目实战~系列文章11:Codex 批量重构老系统:激活历史 DCS/PLC 存量代码

本期提出规模化重构工业老系统(如DCS/PLC代码)的可执行方法论:通过AST静态分析量化风险,按“盘点评估→样板重构→批量迁移→回归灰度”四阶段推进;利用Codex实现模块级批量重构,并以“金标准样本”确保数值一致性;接入CI流水线实现自动化守护。强调“小步改、保语义、可回滚”,结合绞杀者模式渐进替代,实现存量代码的安全激活。来自华北理工大学段一凡的博客文章

段一凡的博客 401

Android 开发入门实践(十六):网络新闻请求、Coil 图片加载与失败重试

本文通过接入JSONPlaceholder网络接口,实现新闻数据的远程获取与解析。在Repository中使用withContext(Dispatchers.IO)进行协程挂起请求,通过JSONObject解析title、body、id字段并构建News对象。结合ViewModel与StateFlow更新页面状态,利用AsyncImage加载图片,并添加失败提示与手动重试机制。完整覆盖从网络请求、数据转换到界面更新的全流程,深化对协程调度、状态管理与图片加载的理解。

Easyhood的博客 184

Android开发:androidx.cardview.widget.CardView 详解(Java)

本文详解 AndroidX CardView(Java)的使用,涵盖依赖引入、布局配置、核心属性(如圆角、阴影、内边距)及常见问题。重点说明 cardPreventCornerOverlap 与图片圆角裁剪解决方案,推荐结合 ShapeableImageView 实现完整圆角效果,并通过 Foreground 添加点击涟漪,提升 Material Design 风格界面体验。

本博客分享软硬件一体化开发实战。硬件涵盖 PCB 设计、STM32 等 MCU 底层开发;软件包含 C++、Rust,Qt/QML、PyQt、Slint、TouchGFX、LVGL 各类 GUI 框架。方便软硬件开发者查阅学习。欢迎关注! 310

Android 网络与实时通信实践:请求、上传、WebSocket、RTM 与断网调试

网络与实时通信的稳定性来自状态和边界:HTTP 成功不等于业务成功,上传完成不等于业务确认,WebSocket 连接成功不等于消息送达,客户端不重复显示也不等于服务端只执行一次。只有明确认证、协议、顺序、幂等、取消和生命周期,才能在真实项目中安全地重试、恢复和定位问题。

路在脚下,幸福在手中,莫贪!!!!! 161
上一篇: cv+夜间行人识别 基于Transformer与多源特征融合的夜间行人检测方法研究
下一篇: cv+超市客流量 “一天卖100万,却悄悄溜走30万!——超市客流‘黑洞’全景曝光与4步回血攻略”
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

交通上的硅基思维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值