转自:https://blog.csdn.net/u013686019/article/details/49687825
Android设备中完整的移动通讯系统构成:
(1)Hardware
这里提到的无线通信模组是一种支持TD-LTE/FDD-LTE/TD-SCDMA/WCDMA/EVDO/CDMA1X/GSM等等网络制式的通信模块,能够为用户提供高速的无线数据、互联网接入等业务,具备语音、分组数据、短信功能,彩信等功能。提供这些功能使用服务的就是联通/移动/电信等运营商,通过SIM卡注册到各自的网络中,付费使用。
(2)Kernel
内核中实现访问无线通信模组的数据通道,比如对于串口类模组就可以为/dev/ttyS0(/dev/ttyS1...),USB接口的为/dev/ttyUSB0(/dev/ttyUSB1...)等。
而要使用模组的网络功能,还必须实现网络功能的通信协议,比如常见的PPP(Point-to-Point Protocol):
PPP is the protocol used for establishing internet links over dial-up modems, DSL connections, and many other types of point-to-point links. The
为直观故,我们看下通过PPP建立网络连接的log:
最后一行返回status为0,说明网络建立成功。
同时,它也显示了本地IP、远程IP、DNS等网络信息。在Android拨号过程中,用到的两个重要文件是/data/connect和/etc/ppp/ip-up。
这时可以adb shell进入系统,看下网络:
netcfg
或:
busybox ifconfig
(3)Framework
该层的Telephony子系统完成无线通信模块所有功能的具体实现,同时为应用开发人员提供使用接口。
(4)App
作为App开发人员,调用Telephony的API,实现具体功能的App工用户使用。
Android的Telephony子系统也是非常复杂的,涉及很多方面。我们以数据业务为分析入口,从上到下走一遍框图中的流程。