当前位置: 首页 > news >正文

【数据通信完全指南】从物理层到协议栈的深度解析

目录

    • 1. 通信技术演进与核心挑战
      • 1.1 从电报到5G的技术变迁
      • 1.2 现代通信系统的三大瓶颈
    • 2. 通信系统架构深度解构
      • 2.1 OSI七层模型运作原理
      • 2.2 TCP/IP协议栈实战解析
    • 3. 物理层关键技术实现
      • 3.1 信号调制技术演进路线
      • 3.2 信道复用方案对比
    • 4. 数据传输可靠性保障
      • 4.1 CRC校验算法数学推导
      • 4.2 自动重传请求(ARQ)机制
    • 6. 现代通信安全架构
      • 混合加密系统设计
    • 7. 5G与量子通信前沿展望
      • 5G NR关键技术指标
      • 量子密钥分发(QKD)原理
    • 总结与延伸学习


1. 通信技术演进与核心挑战

1.1 从电报到5G的技术变迁

根据ITU统计数据显示,全球移动通信数据流量在2020-2025年间将增长5倍,技术演进呈现三大里程碑

  • 模拟通信时代(1876-1980)
    贝尔电话系统采用频分复用(FDM)技术,单根铜线传输24路语音信号

  • 数字通信革命(1980-2010)
    TCP/IP协议标准化(RFC 791/793)推动互联网爆发,ADSL技术实现2Mbps宽带接入

  • 智能通信阶段(2010-至今)
    5G NR标准支持毫米波通信(24-100GHz),理论峰值速率达20Gbps

1.2 现代通信系统的三大瓶颈

  1. 香农极限约束
    信道容量公式:
    C = B log ⁡ 2 ( 1 + S N ) C = B \log_2(1 + \frac{S}{N}) C=Blog2(1+NS)
    当前5G系统频谱效率已接近理论极限的85%

  2. 端到端时延挑战

    应用类型时延要求实现技术
    工业控制<1ms时间敏感网络(TSN)
    云游戏<20ms边缘计算
  3. 网络安全威胁
    2023年全球DDoS攻击峰值达3.47Tbps,同比增长58%


2. 通信系统架构深度解构

2.1 OSI七层模型运作原理

@startuml
participant 应用层 as L7
participant 表示层 as L6
participant 会话层 as L5
participant 传输层 as L4
participant 网络层 as L3
participant 数据链路层 as L2
participant 物理层 as L1L7 -> L6 : 数据加密
L6 -> L5 : 会话建立
L5 -> L4 : 端口绑定
L4 -> L3 : 分片处理
L3 -> L2 : 路由选择
L2 -> L1 : 帧封装
@enduml

2.2 TCP/IP协议栈实战解析

数据封装过程示例

# 原始数据
payload = "Hello World"# TCP层封装
tcp_header = struct.pack('!HHIIBBHHH', src_port, dst_port, seq_num, ack_num, data_offset, flags, window_size, checksum, urg_ptr)# IP层封装
ip_header = struct.pack('!BBHHHBBH4s4s',version_ihl, tos, total_length,identification, flags_fragment, ttl, protocol, checksum,src_ip, dst_ip)# 以太网帧封装
eth_header = struct.pack('!6s6sH',dst_mac, src_mac, eth_type)packet = eth_header + ip_header + tcp_header + payload.encode()

3. 物理层关键技术实现

3.1 信号调制技术演进路线

QAM调制星座图对比

调制方式符号速率频谱效率抗噪能力
QPSK1/22 bit/s/Hz
16-QAM3/44 bit/s/Hz
64-QAM5/66 bit/s/Hz

3.2 信道复用方案对比

频分复用 vs 时分复用

不同频率
不同频率
时隙1
时隙2
频分复用
Channel1
Channel2
时分复用
Channel

4. 数据传输可靠性保障

4.1 CRC校验算法数学推导

CRC-32计算步骤

  1. 原始数据附加32个0位:D(x) = data << 32
  2. 用生成多项式G(x)=x32+x26+x^23+…+1进行模2除法
  3. 将余数作为校验码附加到原始数据

校验码验证

def crc32(data):poly = 0xEDB88320crc = 0xFFFFFFFFfor byte in data:crc ^= bytefor _ in range(8):crc = (crc >> 1) ^ (poly & -(crc & 1))return crc ^ 0xFFFFFFFF

4.2 自动重传请求(ARQ)机制

滑动窗口协议工作流程

@startuml
participant Sender
participant ReceiverSender -> Receiver: 帧0-3 [窗口大小=4]
Receiver --> Sender: ACK1
Sender -> Receiver: 帧4
Receiver --> Sender: NAK2
Sender -> Receiver: 帧2-5
@enduml

6. 现代通信安全架构

混合加密系统设计

Client Server 发送RSA公钥 返回AES会话密钥(RSA加密) 非对称加密交换密钥 传输数据(AES加密) 对称加密传输数据 Client Server

7. 5G与量子通信前沿展望

5G NR关键技术指标

参数4G LTE5G NR提升倍数
峰值速率1Gbps20Gbps20x
时延30ms1ms30x
连接密度10万/km²100万/km²10x

量子密钥分发(QKD)原理

∣ ψ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\psi\rangle = \alpha|0\rangle + \beta|1\rangle ψ=α∣0+β∣1
任何测量操作都会导致量子态坍缩,确保密钥传输不可窃听


总结与延伸学习

技术能力矩阵

技能等级知识要点推荐实践
初级协议栈分层结构Wireshark抓包分析
中级路由算法实现OSPF网络仿真
高级物理层信号处理GNU Radio编程

推荐学习路径

  1. 基础理论:《数据与计算机通信(第十版)》
  2. 协议分析:Wireshark网络分析实战
  3. 前沿技术:3GPP 5G NR标准文档
# 示例:Wireshark过滤HTTP请求
tshark -r capture.pcap -Y "http.request.method == GET"

(注:本文为示例结构,实际5000字内容需在各章节扩展技术细节,增加更多工程案例和性能测试数据)

相关文章:

【数据通信完全指南】从物理层到协议栈的深度解析

目录 1. 通信技术演进与核心挑战1.1 从电报到5G的技术变迁1.2 现代通信系统的三大瓶颈 2. 通信系统架构深度解构2.1 OSI七层模型运作原理2.2 TCP/IP协议栈实战解析 3. 物理层关键技术实现3.1 信号调制技术演进路线3.2 信道复用方案对比 4. 数据传输可靠性保障4.1 CRC校验算法数…...

SpringBoot多工程项目微服务install时如何不安装到本地仓库

在 Spring Boot 微服务项目中&#xff0c;比如各业务微服务模块由于不存在相互依赖度的问题&#xff0c;因此执行maven install时无需安装到本地仓库&#xff0c;但仍然需要参与构建&#xff08;如 mvn compile 或 mvn package&#xff09;。公共模块&#xff08;如​​辅助工具…...

强化学习_Paper_2017_Curiosity-driven Exploration by Self-supervised Prediction

paper Link: ICM: Curiosity-driven Exploration by Self-supervised Prediction GITHUB Link: 官方: noreward-rl 1- 主要贡献 对好奇心进行定义与建模 好奇心定义&#xff1a;next state的prediction error作为该state novelty 如果智能体真的“懂”一个state&#xff0c;那…...

iview内存泄漏

iview在升级到view-design之前&#xff0c;是存在严重的内存泄漏问题的&#xff0c;而如果你在项目中大量使用了iview组件&#xff0c;就可能面临大量的升级工作要做&#xff0c;因为样式很多是不兼容的。 我们今天就看一下iview的源码&#xff0c;看看到底问题在哪里&#xff…...

【Hive入门】Hive高级特性:事务表与ACID特性详解

目录 1 Hive事务概述 2 ACID特性详解 3 Hive事务表的配置与启用 3.1 启用Hive事务支持 3.2 创建事务表 4 Hive事务操作流程 5 并发控制与隔离级别 5.1 Hive的锁机制 5.2 隔离级别 6 Hive事务的限制与优化 6.1 主要限制 6.2 性能优化建议 7 事务表操作示例 7.1 基本…...

Modbus转PROFIBUS网关:电动机保护新突破!

Modbus转PROFIBUS网关&#xff1a;电动机保护新突破&#xff01; 在现代工业自动化领域&#xff0c;Modbus RTU和PROFIBUS DP是两种常见且重要的通讯协议。它们各自具有独特的优势和应用场景&#xff0c;但在实际工程中&#xff0c;我们常常需要将这两种不同协议的设备进行互联…...

大数据应用开发和项目实战-Seaborn

设计目标 seaborn 建立在 matplotlib 之上&#xff0c;专注于统计数据可视化&#xff0c;简化绘图过程&#xff0c;提供高级接口和美观的默认主题 Seaborn的安装&#xff1a; 1.pip install seaborn -i 2.conda install seaborn &#xff08;清华源&#xff1a;https://pypi.t…...

弹窗探索鸿蒙之旅:揭秘弹窗的本质与奥秘

嘿&#xff0c;小伙伴们&#xff01;&#x1f44b; 今天我们要一起探索那些在日常应用中无处不在的小精灵——弹窗&#xff01;&#x1f4ac; &#x1f914; ‌弹窗到底是什么&#xff1f;‌ 简单来说&#xff0c;弹窗就是应用程序中突然冒出来的交互元素&#xff0c;它们像…...

“技术创新+全球视野”良性驱动,首航新能的2025新征程正式起航

撰稿 | 行星 来源 | 贝多财经 近日&#xff0c;备受瞩目的“2025年光伏第一股”深圳市首航新能源股份有限公司&#xff08;301658.SZ&#xff0c;下称“首航新能”&#xff09;对外发布了上市后的首份年报&#xff0c;交出了一份量质齐升的业绩答卷&#xff0c;构筑更加强大的…...

黑群晖Moments视频无缩略图,安装第三方ffmpeg解决

黑群晖Moments视频无缩略图&#xff0c;安装第三方ffmpeg解决 1. 设置套件来源 黑群晖Moments视频无缩略图&#xff0c;安装第三方ffmpeg解决 基于这个文章&#xff0c;补充一下&#xff1a; 1. 设置套件来源 设置套件来源时(http://packages.synocommunity.com)&#xff0c…...

工业控制「混合架构」PK大战 —— 神经网络 + MPC vs 模糊 PID+MPC 的场景选型与实战指南

1. 引言 在工业控制领域&#xff0c;传统的 PID 控制器因其结构简单、稳定性好而被广泛应用&#xff0c;但面对复杂非线性系统时往往力不从心。模型预测控制&#xff08;MPC&#xff09;作为一种基于模型的先进控制策略&#xff0c;能够有效处理多变量、多约束问题&#xff0c…...

树莓派智能摄像头实战指南:基于TensorFlow Lite的端到端AI部署

引言&#xff1a;嵌入式AI的革新力量 在物联网与人工智能深度融合的今天&#xff0c;树莓派这一信用卡大小的计算机正在成为边缘计算的核心载体。本文将手把手教你打造一款基于TensorFlow Lite的低功耗智能监控设备&#xff0c;通过MobileNetV2模型实现实时物体检测&#xff0…...

OpenCV 图形API(73)图像与通道拼接函数-----执行 查找表操作图像处理函数LUT()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 对矩阵执行查找表变换。 函数 LUT 使用来自查找表中的值填充输出矩阵。输入矩阵中的值作为查找表的索引。也就是说&#xff0c;函数对 src 中的…...

【MySQL】增删改查(CRUD)

目录 一. CRUD是什么 二. Create&#xff08;新增数据&#xff09; 2.1 单行数据全列插入 2.2 单行数据指定列插入 2.3 多行数据指定列插入 三. Retrieve &#xff08;检索/查询&#xff09; 3.1 全列查询 3.2 指定列查询 3.3 查询字段为表达式 3.4 为查询结果指定别名 3…...

iview 如何设置sider宽度

iview layout组件中&#xff0c;sider设置了默认宽度和最大宽度&#xff0c;在css样式文件中修改无效&#xff0c;原因是iview默认样式设置在了element.style中&#xff0c;只能通过行内样式修改 样式如下&#xff1a; image.png image.png 修改方式&#xff1a; 1.官方文档中写…...

Unity URP RenderTexture优化(二):深度图优化

目录 前言&#xff1a; 一、定位深度信息 1.1&#xff1a;k_DepthStencilFormat 1.2&#xff1a;k_DepthBufferBits 1.3&#xff1a;_CameraDepthTexture精度与大小 1.4&#xff1a;_CameraDepthAttachment数量 二、全代码 前言&#xff1a; 在上一篇文章&#xff1a;Un…...

iview表单提交验证时,出现空值参数被过滤掉不提交的问题解决

如图所示 有时候在表单提交的时候 个别参数是空值&#xff0c;但是看提交接口的反馈 发现空值的参数根本没传 这是因为表单验证给过滤掉了空值&#xff0c;有时候如果空值传不传都不无所谓&#xff0c;那可以不用管&#xff0c;但如果就算是空值也得传的吗&#xff0c;那就需要…...

GEO vs SEO:从搜索引擎到生成引擎的优化新思路

随着人工智能技术的快速发展&#xff0c;生成引擎优化&#xff08;GEO&#xff09;作为一种新兴的优化策略&#xff0c;逐渐成为企业和内容创作者关注的焦点。与传统的搜索引擎优化&#xff08;SEO&#xff09;相比&#xff0c;GEO不仅关注如何提升内容在搜索结果中的排名&…...

Python-pandas-操作csv文件(读取数据/写入数据)及csv语法详细分享

Python-pandas-操作csv文件(读取数据/写入数据) 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性。【帮帮志系列文章】&#xff1a;每个…...

如何在Windows上实现MacOS中的open命令

在MacOS的终端中&#xff0c;想要快速便捷的在Finder中打开当前目录&#xff0c;直接使用oepn即可。 open . 但是Windows中没有直接提供类似open这样的命令&#xff0c;既然没有直接提供&#xff0c;我们就间接手搓一个实现它。 步骤1&#xff1a;创建open.bat echo OFF expl…...

读论文笔记-LLaVA:Visual Instruction Tuning

读论文笔记-LLaVA&#xff1a;Visual Instruction Tuning 《Visual Instruction Tuning》 研究机构&#xff1a;Microsoft Research 发表于2023的NeurIPS Problems 填补指令微调方法&#xff08;包括数据、模型、基准等&#xff09;在多模态领域的空白。 Motivations 人工…...

Vue3源码学习3-结合vitetest来实现mini-vue

文章目录 前言✅ 当前已实现模块汇总&#xff08;mini-vue&#xff09;✅ 每个模块简要源码摘要1. reactive.ts2. effect.ts3. computed.ts4. ref.ts5. toRef.ts6. toRefs.ts ✅ 下一阶段推荐目标所有核心模块对应的 __tests__ 测试文件&#xff0c;**带完整注释**✅ reactive.…...

K8S - 从零构建 Docker 镜像与容器

一、基础概念 1.1 镜像&#xff08;Image&#xff09; “软件的标准化安装包” &#xff0c;包含代码、环境和配置的只读模板。 技术解析 镜像由多个层组成&#xff0c;每层对应一个Dockerfile指令&#xff1a; 应用代码 → 运行时环境 → 系统工具链 → 启动配置核心特性…...

贪心算法求解边界最大数

贪心算法求解边界最大数&#xff08;拼多多2504、排列问题&#xff09; 多多有两个仅由正整数构成的数列 s1 和 s2&#xff0c;多多可以对 s1 进行任意次操作&#xff0c;每次操作可以置换 s1 中任意两个数字的位置。多多想让数列 s1 构成的数字尽可能大&#xff0c;但是不能比…...

C++类和对象(中)

类的默认成员函数 默认成员函数就是用户没有显式实现&#xff0c;编译器会自动生成的成员函数。一个类&#xff0c;我们不写的情况下编译器会默认生成6个默认成员函数&#xff0c;C11以后还会增加两个默认成员函数&#xff0c;移动构造和移动赋值。默认成员函数 很重要&#x…...

(Go Gin)Gin学习笔记(五)会话控制与参数验证:Cookie使用、Sessions使用、结构体验证参数、自定义验证参数

1. Cookie介绍 HTTP是无状态协议&#xff0c;服务器不能记录浏览器的访问状态&#xff0c;也就是说服务器不能区分两次请求是否由同一个客户端发出Cookie就是解决HTTP协议无状态的方案之一&#xff0c;中文是小甜饼的意思Cookie实际上就是服务器保存在浏览器上的一段信息。浏览…...

Windows 10 环境二进制方式安装 MySQL 8.0.41

文章目录 初始化数据库配置文件注册成服务启停服务链接服务器登录之后重置密码卸载 初始化数据库 D:\MySQL\MySQL8.0.41\mysql-8.0.41-winx64\mysql-8.0.41-winx64\bin\mysqld -I --console --basedirD:\MySQL\MySQL8.0.41\mysql-8.0.41-winx64\mysql-8.0.41-winx64 --datadi…...

Day.js一个2k轻量级的时间日期处理库

dayjs介绍 dayjs是一个极简快速2kB的JavaScript库&#xff0c;可以为浏览器处理解析、验证、操作和显示日期和时间&#xff0c;它的设计目标是提供一个简单、快速且功能强大的日期处理工具&#xff0c;同时保持极小的体积&#xff08;仅 2KB 左右&#xff09;。 Day.js 的 API…...

SQL实战:05之间隔连续数问题求解

概述 最近刷题时遇到一些比较有意思的题目&#xff0c;之前多次遇到一些求解连续数的问题&#xff0c;这次遇到了他们的变种&#xff0c;连续数可以间隔指定的数也视为是一个完整的“连续”。针对连续数的这类问题我们之前讲的可以利用等差数列的思想来解决&#xff0c;然而现…...

Windows下Dify安装及使用

Dify安装及使用 Dify 是开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力&#xff0c;轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。 前置条件 windows下安装了docker环境-Windows11安装Docker-CSDN博客 下载 Git下载…...

回归分析丨基于R语言复杂数据回归与混合效应模型【多水平/分层/嵌套】技术与代码

回归分析是科学研究特别是生态学领域科学研究和数据分析十分重要的统计工具&#xff0c;可以回答众多科学问题&#xff0c;如环境因素对物种、种群、群落及生态系统或气候变化的影响&#xff1b;物种属性和系统发育对物种分布&#xff08;多度&#xff09;的影响等。纵观涉及数…...

EasyRTC嵌入式音视频实时通话SDK技术,打造低延迟、高安全的远程技术支持

一、背景 在当今数字化时代&#xff0c;远程技术支持已成为解决各类技术问题的关键手段。随着企业业务的拓展和技术的日益复杂&#xff0c;快速、高效地解决远程设备与系统的技术难题变得至关重要。EasyRTC作为一款高性能的实时通信解决方案&#xff0c;为远程技术支持提供了创…...

webrtc ICE 打洞总结

要搞清webrtc ICE连接是否能成功 &#xff0c; 主要是搞懂NAT NAT 类型 简单来说 一 是本地的ip和端口 决定外部的 ip和端口(和目的Ip和端口无关) &#xff0c; &#xff08;这种情况又分为 &#xff0c; 无限制&#xff0c;仅限制 ip &#xff0c; 限制ip和port , 也就是…...

AI开发者的Docker实践:汉化(中文),更换镜像源,Dockerfile,部署Python项目

AI开发者的Docker实践&#xff1a;汉化&#xff08;中文&#xff09;&#xff0c;更换镜像源&#xff0c;Dockerfile&#xff0c;部署Python项目 Dcoker官网1、核心概念镜像 (Image)容器 (Container)仓库 (Repository)DockerfileDocker Compose 2、Docker 的核心组件Docker 引擎…...

4.30阅读

一. 原文阅读 Passage 7&#xff08;推荐阅读时间&#xff1a;6 - 7分钟&#xff09; In department stores and closets all over the world, they are waiting. Their outward appearance seems rather appealing because they come in a variety of styles, textures, and …...

区块链:跨链协的技术突破与产业重构

引言&#xff1a;区块链的“孤岛困境”与跨链的使命 区块链技术自诞生以来&#xff0c;凭借去中心化、透明性和安全性重塑了金融、供应链、身份认证等领域。然而&#xff0c;不同区块链平台间的​​互操作性缺失​​&#xff0c;如同“数据与价值的孤岛”&#xff0c;严重限制…...

Github 热点项目 Qwen3 通义千问全面发布 新一代智能语言模型系统

阿里云Qwen3模型真是黑科技&#xff01;两大模式超贴心——深度思考能解高数题&#xff0c;快速应答秒回日常梗。支持百种语言互译&#xff0c;跨国客服用它沟通零障碍&#xff01;打工人福音是内置API工具&#xff0c;查天气做报表张口就来。字&#xff09; 1Qwen3 今日星标 …...

有状态服务与无状态服务:差异、特点及应用场景全解

有状态服务和无状态服务是在分布式系统和网络编程中常提到的概念&#xff0c;下面为你详细介绍&#xff1a; 一、无状态服务 无状态服务指的是该服务的单次请求处理不依赖之前的请求信息&#xff0c;每个请求都是独立的。服务端不会存储客户端的上下文信息&#xff0c;每次请…...

【网络入侵检测】基于源码分析Suricata的引擎日志配置解析

【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全&#xff0c;欢迎关注与评论。 1. 概要 &#x1f44b; Suricata 的引擎日志记录系统主要记录该引擎在启动、运行以及关闭期间应用程序的相关信息&#xff0c;如错误信息和其他诊断信息&#xff0c…...

Attention层的FLOPs计算

前置知识 设矩阵 A 的维度为 mn&#xff0c;矩阵 B 的维度为 np&#xff0c;则它们相乘后得到矩阵 C 的维度为 mp。其中&#xff0c;C 中每个元素的计算需要进行 n 次乘法和 n−1 次加法。也就是说&#xff0c;总的浮点运算次数&#xff08;FLOPs&#xff09;约为 m p (2n) …...

支付APP如何做好网络安全防护

支付APP的网络安全防护需要从技术、管理、用户行为等多层面综合施策&#xff0c;以下为核心措施&#xff1a; ​​一、技术防御&#xff1a;构建安全底层​​ ​​数据加密​​ ​​传输加密​​&#xff1a;使用最新协议&#xff08;如TLS 1.3&#xff09;对交易数据加密&…...

Missashe考研日记-day31

Missashe考研日记-day31 0 写在前面 芜湖&#xff0c;五一前最后一天学习圆满结束&#xff0c;又到了最喜欢的放假环节&#xff0c;回来再努力了。 1 专业课408 学习时间&#xff1a;2h学习内容&#xff1a; OK啊&#xff0c;今天把文件系统前两节的内容全部学完了&#xf…...

二叉树的路径总和问题(递归遍历,回溯算法)

112. 路径总和 - 力扣&#xff08;LeetCode&#xff09; class Solution { private: bool traversal(TreeNode*cur,int count){if(!cur->left&&!cur->right&&count0){return true;}if(!cur->left&&!cur->right){return false;}if(cur-…...

Java学习计划与资源推荐(入门到进阶、高阶、实战)

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息文章目录 Java学习计划与资源推荐**一、筑基阶段(2-3个月)****二、进阶开发阶段(2个月)****三、高级突破阶段(2-3个月)****四、项目实战与竞…...

动态规划 -- 子数组问题

本篇文章中主要讲解动态规划系列中的几个经典的子数组问题。 1 最大子数组和 53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 解析题目&#xff1a; 子数组是一个数组中的连续部分&#xff0c;也就是说&#xff0c;如果一个数组以 nums[i]结尾&#xff0c;那么有两…...

Sehll编程的函数于数组

目录 一、函数 1.1、定义函数 1.2、查看、删除函数 1.3、函数的返回值 1.4、函数的参数传递 1.5、函数的作用范围 1.6、函数递归 二、数组 2.1、声明数组 2.2、数组格式定义 2.3、数组调用 2.4、删除数组 一、函数 shell编程中&#xff0c;函数用于封装一段可以重…...

flutter 专题 六十四 在原生项目中集成Flutter

概述 使用Flutter从零开始开发App是一件轻松惬意的事情&#xff0c;但对于一些成熟的产品来说&#xff0c;完全摒弃原有App的历史沉淀&#xff0c;全面转向Flutter是不现实的。因此使用Flutter去统一Android、iOS技术栈&#xff0c;把它作为已有原生App的扩展能力&#xff0c;…...

AI生成Flutter UI代码实践(一)

之前的杂谈中有提到目前的一些主流AI编程工具&#xff0c;比如Cursor&#xff0c;Copilot&#xff0c;Trea等。因为我是Android 开发&#xff0c;日常使用Android Studio&#xff0c;所以日常使用最多的还是Copilot&#xff0c;毕竟Github月月送我会员&#xff0c;白嫖还是挺香…...

spring boot中@Validated

在 Spring Boot 中&#xff0c;Validated 是用于触发参数校验的注解&#xff0c;通常与 ​​JSR-303/JSR-380​​&#xff08;Bean Validation&#xff09;提供的校验注解一起使用。以下是常见的校验注解及其用法&#xff1a; ​1. 基本校验注解​​ 这些注解可以直接用于字段…...

VBA代码解决方案第二十四讲:EXCEL中,如何删除重复数据行

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程&#xff0c;目前已经是第三版修订了。这套教程定位于入门后的提高&#xff0c;在学习这套教程过程中&#xff0c;侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码…...