- 12
- 0
- 约2.66万字
- 约 25页
- 2019-07-13 发布于湖北
- 举报
Android APN开发流程分析
2 Data Connect流程分析
Android的数据连接是基于PPP方式的,主要步骤为:首先通过AT命令激活PDP连接,然后利用pppd通过数据端口完成拨号连接;
数据连接的核心控制类是DataConnectionTracker,存在于GSMPhone里,数据连接不需要用户的干预,在APN设置好之后,在适当的情况下就会自动激活,激活的入口点是:DataConnectionTracker.trySetupData→setupData→ PdpConnection.connetc→CommandsInterface.setupDefaultPDP,通过PdpConnection访问GSMPhone中的RIL层的setupDefaultPDP实现,setupDefaultPDP的结果由EVENT_SETUP_PDP_DONE返回,如果成功,则开始调用pppd完成实际连接,这是通过DataLink.connect实现的;
DataLink只是抽象基类,此处它的实现类是PppLink,实现DataLinkInterface接口,所以DataLink.connect实际上调用PppLink.connect,它通过SystemService.start(SERVICE_PPPD_GPRS)开始pppd服务,并通过checkPPP函数访问Linux的sys文件系统来查询pppd的连接状态,如果成功,便可以将LINKUP的消息通知出去以完成连接流程。
2 Data Connect流程分析
Android的数据连接是基于PPP方式的,主要步骤为:首先通过AT命令激活PDP连接,然后利用pppd通过数据端口完成拨号连接;
数据连接的核心控制类是DataConnectionTracker,存在于GSMPhone里,数据连接不需要用户的干预,在APN设置好之后,在适当的情况下就会自动激活,激活的入口点是:DataConnectionTracker.trySetupData→setupData→ PdpConnection.connetc→CommandsInterface.setupDefaultPDP,通过PdpConnection访问GSMPhone中的RIL层的setupDefaultPDP实现,setupDefaultPDP的结果由EVENT_SETUP_PDP_DONE返回,如果成功,则开始调用pppd完成实际连接,这是通过DataLink.connect实现的;
DataLink只是抽象基类,此处它的实现类是PppLink,实现DataLinkInterface接口,所以DataLink.connect实际上调用PppLink.connect,它通过SystemService.start(SERVICE_PPPD_GPRS)开始pppd服务,并通过checkPPP函数访问Linux的sys文件系统来查询pppd的连接状态,如果成功,便可以将LINKUP的消息通知出去以完成连接流程。
3.3 RILD源码分析
RIL对对消息的处理是将消息通过LocalSocket发送到以rild为名称的有名端口。这个有名Socket的创建在ril.cpp代码中。s_fdListen = android_get_control_socket(SOCKET_NAME_RIL)
RILD是守护进程,执行的过程为:获取参数→打开功能库→建立事件循环→执行RIL_Init→RIL_register;事件循环式核心,通过Select多路复用机制,读取来自上层的Socket接口的具体操作命令,同时一些命令Timeout唤醒机制,也通过Select实现;
1.?? Request流程
命令下发流程:首先从JAVA层通过Socket将命令发送到RIL层的RILD守护进程,RILD中负责监听的ril_event_loop消息循环中的Select发现RILD Socket有了请求连接信号,建立一个record_stream,打通与上层的数据通道并开始接收请求数据,数据通道的回调函数processCommandsCallback()会保证收到一个完整的Request后,将其送达processCommandBuffer()函数;
解析过程:processCommandBuffer()从Socket中序列化的数据流里还原信息,将其组织到RequestInfo中;RequestInfo数据结构如下(存在于ril.cpp中):
typedef struct RequestInfo {
int32_t token; //this is not RIL_Token
CommandInfo *pCI;
s
您可能关注的文档
- 品牌营销与商业模式创新.ppt
- 为什么要请咨询公司和如何使项目成功.ppt
- 培训管理制度21023.doc
- 2006-07年度普通话科工作计划.doc
- 7211-经营能力测评.doc
- 商务礼仪面面观.doc
- 十大岗位职责 (2).doc
- 8岁女儿价值观.doc
- java做曲线图柱状图数据统计.doc
- 安庆分公司财务制度汇编.doc
- 2026中国金属期货市场套利策略设计与绩效评估报告.docx
- 2026年出版业供应链优化研究报告.docx
- 2026年交通运输行业五年发展:交通国际合作与标准对接融合报告.docx
- 2026冷链物流温控技术分析及成本控制策略.docx
- 2026虚拟现实设备用户体验技术指标改进创新分析规划.docx
- 2025至2030中国山地车骑行头盔行业调研及市场前景预测评估报告.docx
- 2026年桃加工行业市场动态及产品创新趋势研究.docx
- 2026年游戏内容创新与付费意愿行业白皮书.docx
- 2025年新材料行业五年趋势:石墨烯与纳米技术应用报告.docx
- 2026年充电桩智能防冻方案创新报告.docx
原创力文档

文档评论(0)