当前位置:   article > 正文

Android APN开发流程分析_新建apn流程 csdn

新建apn流程 csdn

2 Data Connect流程分析

Android的数据连接是基于PPP方式的,主要步骤为:首先通过AT命令激活PDP连接,然后利用pppd通过数据端口完成拨号连接;

数据连接的核心控制类是DataConnectionTracker,存在于GSMPhone里,数据连接不需要用户的干预,在APN设置好之后,在适当的情况下就会自动激活,激活的入口点是:DataConnectionTracker.trySetupDatasetupData     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 APN流程分析

接入点使用在我看来主要包括接入点的创建、接入点的切换以及接入点的删除三个方面,我们下面按照android源码,按照程序调用的先后顺序依次分析其流程;

3.1 Create New APN流程分析

Android因为是以事件驱动的,因此在诸如接入点设置这样的操作的时候,都是从按键触发事件开始的:Activity.java里的onKeyDown函数;由于是基于EVENT驱动的,因此在每一个动作的时候都会触发一定Type的Message,因此对于源代码流程的分析也比较有利;

Create New APN的过程主要就是APN如name、port、proxy等的添加以及在设置的过程里状态的切换等;

一、下面为这个过程里JAVA Framework调用的过程:

1 ActivityManagerService.java:startActivity

说明:界面跳转,使用隐式的界面跳转,这个过程是基于事件的,在Android中,传递数据使用Intent,Intent相当于各个Activity之间的桥梁,可以传递数据,可以通过Intent启动另外一个Activity。Intent有显式和隐式之分,显式的是直接什么要启动的组件,比如Service或者Activity,隐式的通过配置的datatype、url、action来找到匹配的组件启动。

2、telephony/TelephonyProvider.java:insert函数:

说明:通过对URL 的s_urlMatcher.match,URL_TELEPHONY宏的处理,对Nam

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/988248
推荐阅读
相关标签
  

闽ICP备14008679号