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

Data Connection (数据连接) 架构设计

description: “移动数据连接 (Data Connection) 与 PDN 会话架构设计,深入剖析 DataNetwork 状态机、数据可用性评估引擎、重试退避算法、以及跨 APN 的并发管理策略。”当手机完成网络注册(ServiceStateTracker 确定已注册到运营商网络)后,用户最关心的一件事就是:能不能上网?数据连接模块负责在两端的设备之间建立基于 IP 的 PDN (Packet Data Network) 连接。在 Android 16 中,Google 对数据连接架构进行了大规模重构,引入了DataNetworkController + DataNetwork 双层架构,取代了老版本的DataConnection/DcTracker体系。设计理念: Android 16 的数据连接架构从老版本的"APN 类型为中心"彻底转变为"NetworkRequest 驱动"模式。每个DataNetwork是一个独立的 PDN 会话(对应一个物理 IP 接口),DataNetworkController作为中央协调器,管理多个DataNetwork的生命周期。这一重构的核心思想是通过组合复用而非继承扩展——每个DataNetwork都自包含完整的状态机,而DataNetworkController只做调度和仲裁。1. 核心职责数据连接模块负责:PDN 会话建立与拆除:发起setupDataCall到 Modem,获取 IP 地址并建立路由数据可用性评估 (Data Evaluation):综合判断当前是否允许建立数据连接(如是否开启移动数据、是否在漫游、是否飞行模式等)重试与退避 (Retry Backoff):数据连接失败后的智能重试,指数退避避免信令风暴切换 (Handover):数据连接在不同 RAT 之间的无缝切换(如 LTE → 5G 或 IWLAN ↔ WWAN)APN 管理:根据当前 RAT、漫游状态选择合适的 APN 配置2. 核心类与源码锚点 (Source Code Anchors)[DataNetworkController.java](file:///d:/Resource/Android%2016/android-16/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataNetworkController.java):中央控制器(超过 4000 行)。每个 SIM 卡一个实例,负责管理所有DataNetwork,受理 App 层的网络请求并进行数据可用性评估。[DataNetwork.java](file:///d:/Resource/Android%2016/android-16/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataNetwork.java):单一 PDN 会话的状态机(超过 4000 行)。核心状态:Connecting → Connected → Disconnecting → Disconnected,同时支持Handover状态进行跨 RAT 切换。[DataProfileManager.java](file:///d:/Resource/Android%2016/android-16/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataProfileManager.java):DataProfile / APN 管理器。负责从TelephonyProvider数据库中查询 APN 配置。[DataRetryManager.java](file:///d:/Resource/Android%2016/android-16/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataRetryManager.java):重试管理器(超过 1100 行)。实现指数退避、限流(Throttling)等多种重试策略。[DataServiceManager.java](file:///d:/Resource/Android%2016/android-16/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataServiceManager.java):底层数据传输服务(IDataService)管理器,负责与TelephonyDataService(HAL 层) 交互。[DataConfigManager.java](file:///d:/Resource/Android%2016/android-16/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataConfigManager.java):数据连接配置管理器,管理如anomalyNetworkConnectingTimeout等超时参数。3. Google 设计技巧深入分析3.1 DataNetwork 状态机 — 每个 PDN 会话自包含DataNetwork是每个 PDN 会话的完整状态机实现,继承自 Android 框架的StateMachine:源码 [DataNetwork.java](file:///d:/Resource/Android%2016/android-16/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataNetwork.java#L171) 中:publicclassDataNetworkextendsStateMachine{privatefinalConnectingStatemConnectingState=newConnectingState();privatefinalConnectedStatemConnectedState=newConnectedState();privatefinalDisconnectingStatemDisconnectingState=newDisconnectingState();privatefinalDisconnectedStatemDisconnectedState=newDisconnectedState();privatefinalHandoverStatemHandoverState=newHandoverState();}setupDataCall 成功setupDataCall 失败 / 超时跨 RAT 切换触发tearDown 请求Handover 完成Handover 失败deactivateDataCall 完成ConnectingConnectedDisconnectedHandoverDisconnecting

相关文章:

Data Connection (数据连接) 架构设计

description: “移动数据连接 (Data Connection) 与 PDN 会话架构设计,深入剖析 DataNetwork 状态机、数据可用性评估引擎、重试退避算法、以及跨 APN 的并发管理策略。” 当手机完成网络注册(ServiceStateTracker 确定已注册到运营商网络)后,用户最关心的一件事就是:能不…...

本地视频怎么去水印?2026 视频去水印方法与软件推荐指南

概述:为什么要给视频去水印 视频水印是内容平台的标识符,但在某些场景下会影响使用体验——比如下载的视频要用于素材库、制作集锦或进行二次编辑时,水印就成了累赘。本文总结了2026年最实用的本地视频去水印方法,涵盖手机小程序、…...

如何快速自定义游戏光标:提升操作精度的完整指南

如何快速自定义游戏光标:提升操作精度的完整指南 【免费下载链接】YoloMouse Game Cursor Changer 项目地址: https://gitcode.com/gh_mirrors/yo/YoloMouse 在激烈的游戏战斗中,你是否经常因为找不到鼠标光标而错失良机?当屏幕特效绚…...

7.1 DRAM Basics: Internals, Operation

这两段截图是《Memory Systems》一书中关于 DRAM 最基础定义的阐述。我为您提供翻译和深度解读: 1. 中文翻译 图1: 随机存取存储器(RAM)如果每一位使用一个单一的晶体管-电容器对,则被称为动态随机存取存储器(DRAM)。图 7.3 在右下角展示了 DRAM 存储单元的电路。这个电…...

终极指南:如何在Mac上免费快速制作Windows启动盘?

终极指南:如何在Mac上免费快速制作Windows启动盘? 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & L…...

Honey Select 2中文汉化补丁终极指南:一键安装完整中文体验

Honey Select 2中文汉化补丁终极指南:一键安装完整中文体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日语界面而烦恼吗…...

探索AI编程工具的民主化:从技术壁垒到开源共享的技术演进之路

探索AI编程工具的民主化:从技术壁垒到开源共享的技术演进之路 【免费下载链接】cursor-vip cursor IDE enjoy VIP 项目地址: https://gitcode.com/gh_mirrors/cu/cursor-vip "技术不应成为特权,而应是推动文明进步的共同财富。" —— 开…...

PrismLauncher-Cracked:如何通过代码修改实现Minecraft完全离线启动?

PrismLauncher-Cracked:如何通过代码修改实现Minecraft完全离线启动? 【免费下载链接】PrismLauncher-Cracked This project is a Fork of Prism Launcher, which aims to unblock the use of Offline Accounts, disabling the restriction of having a …...

DS4Windows终极指南:如何免费解决手柄漂移并优化游戏操控精度

DS4Windows终极指南:如何免费解决手柄漂移并优化游戏操控精度 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否遇到过手柄摇杆自动漂移、瞄准时准星抖动、按键响应延迟等…...

AntiDupl.NET:智能图片去重工具的完整使用指南与实战方案

AntiDupl.NET:智能图片去重工具的完整使用指南与实战方案 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 在数字时代,我们每天都在积累大量的图…...

ElevenLabs蒙古文语音接入全攻略:从API密钥配置到蒙古文音素对齐的7步落地法

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs蒙古文语音接入的背景与技术价值 随着全球多语言AI语音技术加速演进,蒙古语作为联合国教科文组织列为“脆弱型”语言之一,其数字语音合成能力长期受限于高质量语音数据…...

Taotoken API Key管理与访问控制功能在团队大赛中的协作应用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken API Key管理与访问控制功能在团队大赛中的协作应用 1. 场景概述:团队协作中的API资源管理需求 当团队共同参…...

【ElevenLabs马来文语音实战指南】:20年AI语音工程师亲授7大避坑要点与本地化发音调优秘技

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs马来文语音技术全景概览 ElevenLabs 作为全球领先的文本转语音(TTS)平台,近年来持续扩展其多语言支持能力,其中马来文(Bahasa Mela…...

【权威实测报告】:在137组对比测试中,仅2组prompt达成Apple Human Interface Guidelines认证级毛玻璃效果(附完整prompt审计清单)

更多请点击: https://kaifayun.com 第一章:【权威实测报告】:在137组对比测试中,仅2组prompt达成Apple Human Interface Guidelines认证级毛玻璃效果(附完整prompt审计清单) 为验证当前主流AI图像生成模型…...

PowerBI主题模板终极指南:35款专业模板一键美化数据报表

PowerBI主题模板终极指南:35款专业模板一键美化数据报表 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 还在为PowerBI报表的单调外观而烦恼吗&…...

百度文库文档免费下载终极指南:三步获取PDF完整教程

百度文库文档免费下载终极指南:三步获取PDF完整教程 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 你是否经常在百度文库找到心仪的文档,却因为需要下载券或付费而无法保存…...

架构解密:如何通过FastExcel流式处理引擎重塑Java Excel操作效率标准

架构解密:如何通过FastExcel流式处理引擎重塑Java Excel操作效率标准 【免费下载链接】fastexcel Generate and read big Excel files quickly 项目地址: https://gitcode.com/gh_mirrors/fas/fastexcel 在当今数据驱动的企业环境中,Excel文件处理…...

如何学会自己写代码控制STM32(裸机)-GPIO篇

//总结自己的工作经验,帮助学习单片机的入门者,快速上手写代码该文章是基于STM32F401裸机代码编写思路,后续会更新增加STM32FreeRTOS首先想要写单片机的程序,你必须有扎实的C语言基础,从我多次面试的经验总结&#xff…...

3个企业级验证码识别架构设计:DdddOcr技术选型与性能优化策略

3个企业级验证码识别架构设计:DdddOcr技术选型与性能优化策略 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 引言:验证码识别在企业自动化系统中的战略价值 在当今数字化时…...

机器人仿真创新方案:基于ROS的工业级虚拟测试平台

机器人仿真创新方案:基于ROS的工业级虚拟测试平台 【免费下载链接】wpr_simulation 项目地址: https://gitcode.com/gh_mirrors/wp/wpr_simulation 在机器人技术快速发展的今天,硬件成本高昂、测试周期漫长、算法验证困难已成为制约机器人产业发…...

IOT-Tree支持[子站-中心]数据同步功能-轻松支持你的物联网平台

在版本1.9.0开始,IOT-Tree内部移植并开源了中心-子站点的数据同步功能,这个功能已经在我们开发团队的企业用户系统中使用了很长一段时间,足够稳定和可靠。 当前很多物联网系统中,经常有如下需求: 1)一些工…...

长期使用Taotoken Token Plan套餐对项目研发成本的控制效果

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐对项目研发成本的控制效果 在项目研发中,大模型API调用成本是预算管理的重要一环。对…...

[SSD]SSD主控

SSD系统架构SSD系统由一块CPU主控,可以是ARM或者RISC-v;整个主控芯片分为三个部分,分别是主机接口控制器,缓存控制器和闪存控制器,它可以分为前端和后端,前端就是主机接口控制器和主机之间的通信&#xff0…...

数据库与仓储

数据库与仓储 位置:Source/DataBases 项目作用H.DataBases.Share数据库共享代码。H.DataBases.SqliteSqlite 支持。H.DataBases.SqlServerSQL Server 支持。 Repository 相关: H.Extensions.DataBase.Repository H.Presenters.Repository H.Controls.…...

化学合成革命:5分钟用AI完成复杂分子逆向合成路线设计

化学合成革命:5分钟用AI完成复杂分子逆向合成路线设计 【免费下载链接】aizynthfinder A tool for retrosynthetic planning 项目地址: https://gitcode.com/gh_mirrors/ai/aizynthfinder 你是否曾为设计一个复杂分子的合成路线而彻夜难眠?在传统…...

终极指南:如何用OpenHTMLtoPDF轻松生成专业级PDF文档

终极指南:如何用OpenHTMLtoPDF轻松生成专业级PDF文档 【免费下载链接】openhtmltopdf An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF…...

联想笔记本BIOS解锁神器:3分钟开启隐藏硬件性能

联想笔记本BIOS解锁神器:3分钟开启隐藏硬件性能 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/le/LEGI…...

程序员会被产品经理替代吗?——当AI让“全栈”成为常态,我们的价值在哪里?

程序员会被产品经理替代吗?——当AI让“全栈”成为常态,我们的价值在哪里? 最近,V2EX上一个帖子引发了激烈讨论:随着AI能力的指数级增长,一个人就能完成从前需要整个团队才能做到的全栈开发。如果产品经理借…...

3个关键步骤:在macOS上制作Windows启动盘的完整指南

3个关键步骤:在macOS上制作Windows启动盘的完整指南 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Legacy Sup…...

通过Taotoken聚合调用,在不同时段测试模型响应速度的观察

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken聚合调用,在不同时段测试模型响应速度的观察 在构建依赖大模型能力的应用时,响应速度是一个直…...