Android: 4.4.4

Desktop: Ubuntu 15.04

这里只做一些准备事情。

不得不说,Android里的Telephony模块还是挺复杂的,要想搞个八九分清楚需要花点功夫。今天把数据业务从点击【开启】Switch到HAL层的数据流向(函数调用—面向对象叫做“方法”)走了一遍,心得是:

1、用好Source Insight

2、用好find命令

一、主要文件

在茫茫Ascii中搜寻需要的函数,真对亏了强大到没对手的find!

find . -name "*.java" | xargs grep -ri "func"为方便故,把涉及的主要文件备份一下。

Framework层的Java文件:

BaseNetworkStateTracker.java (h:\frameworks\base\core\java\android\net)

CommandsInterface.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony)

ConnectivityManager.java (h:\frameworks\base\core\java\android\net)

ConnectivityService.java (h:\frameworks\base\services\java\com\android\server)

DataConnection.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony\dataconnection)

DataUsageSummary.java (h:\packages\apps\settings\src\com\android\settings)

DcAsyncChannel.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony\dataconnection)

DctConstants.java (h:\frameworks\base\telephony\java\com\android\internal\telephony)

DcTracker.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony\dataconnection)

DcTrackerBase.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony\dataconnection)

Handler.java (h:\frameworks\base\core\java\android\os)

IConnectivityManager.aidl (h:\frameworks\base\core\java\android\net)

Message.java (h:\frameworks\base\core\java\android\os)

MobileDataStateTracker.java (h:\frameworks\base\core\java\android\net)

MobileLinkQualityInfo.java (h:\frameworks\base\core\java\android\net)

MobileNetworkSettings.java (h:\packages\services\telephony\src\com\android\phone)

NetworkStateTracker.java (h:\frameworks\base\core\java\android\net)

Phone.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony)

PhoneBase.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony)

PhoneConstants.java (h:\frameworks\base\telephony\java\com\android\internal\telephony)

PhoneInterfaceManager.java (h:\packages\services\telephony\src\com\android\phone)

PhoneNotifier.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony)

RadioInfo.java (h:\packages\apps\settings\src\com\android\settings)

Ril.h (h:\hardware\ril\include\telephony)

RIL.java (h:\frameworks\opt\telephony\src\java\com\android\internal\telephony)

Settings.java (h:\frameworks\base\core\java\android\provider)

HAL层的CC++文件:

Atchannel.c (h:\hardware\ril\reference-ril)

Atchannel.h (h:\hardware\ril\reference-ril)

At_tok.c (h:\hardware\ril\reference-ril)

At_tok.h (h:\hardware\ril\reference-ril)

Gsm0710muxd.c (h:\hardware\ril\gsm0710muxd\src)

Gsm_7bit.c (h:\hardware\ril\reference-ril)

Gsm_7bit.h (h:\hardware\ril\reference-ril)

Librilutils.c (h:\hardware\ril\librilutils)

Librilutils.h (h:\hardware\ril\include\telephony)

Misc.c (h:\hardware\ril\reference-ril)

Misc.h (h:\hardware\ril\reference-ril)

Radiooptions.c (h:\hardware\ril\rild)

Record_stream.c (h:\hardware\ril\librilutils)

Record_stream.h (h:\hardware\ril\include\telephony)

Reference-ril.c (h:\hardware\ril\reference-ril)

Ril-ss.c (h:\hardware\ril\reference-ril)

Ril.cpp (h:\hardware\ril\libril)

Ril.h (h:\hardware\ril\include\telephony)

Ril.h (h:\hardware\ril\reference-ril)

Rild.c (h:\hardware\ril\rild)

Ril_cdma_sms.h (h:\hardware\ril\include\telephony)

Ril_commands.h (h:\hardware\ril\libril)

Ril_event.cpp (h:\hardware\ril\libril)

Ril_event.h (h:\hardware\ril\libril)

Ril_unsol_commands.h (h:\hardware\ril\libril)

二、数据业务相关

和嵌入式Linux一样,封装了的Android在SIM卡相关的数据业务用的也是PPP(Point to Point Protocol)拨号,为直观故,上图:

最后一行返回status为0,说明网络建立成功。

同时,它也显示了本地IP、远程IP、DNS等网络信息。在拨号过程中,用到的两个重要文件是/data/connect和/etc/ppp/ip-up。

这.时可以ADB进入系统,看下网络:

netcfg

android 数据业务,【Android架构Telephony篇】之数据业务(一)相关推荐

  1. 移动大数据平台的架构、实践与数据增值(1)

    转转:感谢分享http://developer.51cto.com/art/201512/500294.htm APP是进入移动互联网的重要载体,故得到越来越多开发者的关注.打造APP,无论是开发.产 ...

  2. 移动大数据平台的架构、实践与数据增值

    吴磊,友盟公司数据平台负责人.目前主要负责Umeng移动数据分析平台的软件研发和系统架构.拥有10多年的软件开发经验,先后在大型通讯系统,通用搜索引擎以及海量数据分析等领域工作.在基础平台架构和海量数 ...

  3. 阿里数据产品经理工作(总结篇):数据PD,做牛做马

    送给真正的互联网人一顿干货早餐 [小咖导读]文自 听雨-悟禅 博客,PD(指产品经理,下同)本身就是在做牛做马,关系圈异常复杂.数据PD也不例外.而且打交道的人更多.以下是作者用PPT绘制的数据产品经 ...

  4. 实战▍一个完整的电信客服分析平台大数据项目:架构、实现、数据

    作者|黑泽明军  编辑|丹顶鹤5号 电信客服分析平台(附代码) 编者按: 很难见到这种一个完整的大数据项目,从项目背景.项目架构到项目实现都有大量的实例,包括数据存储和数据采集和各个模块的运行设置等等 ...

  5. CYQ.Data 轻量数据层之路 使用篇-MAction 数据查询 视频 D (二十一)

    2019独角兽企业重金招聘Python工程师标准>>> 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)   的附加视频教 ...

  6. 架构的“一小步”,业务的一大步

    前言: 谈到"架构"这两个字,会有好多的名词闪现,比如:分层架构.事件驱动架构.DDD.CQRS等.亦或者一堆的软件设计原则,如:KISS原则(Keep it Simple and ...

  7. 架构的“一小步”,业务的一大步 1

    前言: 谈到"架构"这两个字,会有好多的名词闪现,比如:分层架构.事件驱动架构.DDD.CQRS等.亦或者一堆的软件设计原则,如:KISS原则(Keep it Simple and ...

  8. 系统业务逻辑书籍_新年福利 | 架构的“一小步”,业务的一大步

    作者:闲鱼技术-绛曲 前言: 谈到"架构"这两个字,会有好多的名词闪现,比如:分层架构.事件驱动架构.DDD.CQRS等.亦或者一堆的软件设计原则,如:KISS原则(Keep it ...

  9. 天际数见数据质量巡检架构优化

    源宝导读:天际数见平台是一个数据可视化的BI平台,定位于为高层决策提供数据可视化赋能.数据准确性是生命线,如何提前发现数据问题,快速定位和修复问题,成为我们必须攻克的难点.本文将介绍数见平台通过架构优 ...

最新文章

  1. 从键盘输入一行字符,写入到string.txt文本文件中
  2. 新浪微博的“独立”与互联网社区的“群居”
  3. Web APi之控制器创建过程及原理解析(八)
  4. sonarqube插件开发(三) 调试插件
  5. Python3--批量爬取数据之调用有道api进行翻译
  6. 编写 matlab怎么调用 8 点和 16 点的 fft,8点基于DIT的FFT的实现
  7. vb定义模块且使用模块_ET200S 1 STEP 步进模块使用入门
  8. Java线程的优先级
  9. 让 UV4 支持STC 单片机
  10. 【CodeForces - 760B 】Frodo and pillows (二分题意,注意细节)
  11. java session 详解
  12. LNK1123转换到COFF期间失败
  13. IOS calculater
  14. Android 11源码 修改系统App后进行编译
  15. 前端笔记05 - js
  16. 斯帅变阵只为讨好皇帝 36岁高龄大Z成热火首发
  17. 为颜值和音质充值:南卡N2S真无线蓝牙耳机评测
  18. rk3288 android 6.0固件,[RK3288][Android6.0] 使用SD卡升级固件到eMMC
  19. oracle创建分区.md
  20. Vuex中的Getter的使用

热门文章

  1. [搜片神器]BT种子下载超时很多的问题分析
  2. 计算机汽油累计调价公式,2018年油价调整明细_2018年油价调整时间表及历史调价幅度汇总...
  3. 教你一招从谷歌商店下载应用?
  4. 【40nm工艺库使用疑问记录】
  5. MyBatis使用步骤及原理
  6. ANSYS apdl命令流案例1--------桁架桥梁结构分析
  7. 会声会影2023专业版视频处理制作软件功能详细介绍
  8. 快递物流查询接口查询类API接口介绍_快递鸟
  9. flex布局均分高度了,没有自适应内容高度,怎么回事
  10. 辽宁移动数码Q5_S905M_EMMC_线刷固件包