HUAWEI TECHNOLOGIES CO., LTD. wei Confidential Security Level: 2/23/2017 Android 通信机制及 QCRIL 原理介绍 HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential Page 2 Android 软件栈架构 HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential Page 3 Android 应用运行环境?每个 Android 应用依赖于/system/framework 文件夹下的一些核心库,这些核心库用是 java 编写的。这些应用还依赖于/system/lib 文件夹下的动态链接库,这些动态链接库是 C / C++ 编写的。?这些库就是 Android 应用的环境,还有一些共享库和类库,是运行时动态加载的类库和本地调用(JNI Invoke) 。?传统 JAVA 应用,所有的 JAVA 应用都运行在同一个 JVM 中(默认是这样的)。而在 Android 上,每个应用都运行在自己专有的 dalvik 虚拟机实例里,这和传统 JAVA 应用有区别。?Android 使用 Linux 作为 HAL ( hardware abstraction layer ) HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential Android RIL Architecture Page 4 HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential Android RIL ?Dalvik VM (shared) :Shared code among all Android VMS ? : Java utility for RIL message/socket handling ?Telephony Manager ?Communication between Java and RILD is mands (messages) over sockets ? handles socket and dispatch details ? is corresponding code in Java Page 5 HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential Android RIL ?RILD ? –Daemon ? –Utility library for RIL message/socket handling ? –QC RIL implementation ?, , –QC remote API libs (QC) Page 6 HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential RIL 消息类型?有两种类型的 RIL 消息?Solicited commands ( 请求消息) ?是由上层应用,例如 DiIAL 、HANGUP 等通过 RIL lib 发起的?Unsolicited commands ?是由底层 modem 侧发起的,向上层报告状态的变化、新的消息等, 例如 CALL_STATE_CHANGED 、SIM_STATE_CHANGED 、NEW_SMS 。?Two sets of mands Page 7 HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 通信机制?RILD 和Modem 侧的通讯是通过 RPC 和QMI 实现的?RPC 用于多 CPU 之间的通讯,一侧的 CPU 应用在 ONC RPC 栈中通过 XDR 将消息编码成字节流,通过 RPC router 、共享内存对应传到另一侧 CPU 的RPC router 、 ONC RPC 栈中, XDR 解码后,得到数据。?XDR 即是用于在同平台间实现数据连续表示的编解码机制。?QMI 是高通自定义的一种数据接口,用于终端设备的操作系统应用和底层模块的数据通信。数据业务基本通过 QCRIL 、QMI 与底层交互。Page 8 HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential Page 9 通信机制?Application 是Android 应用,是单独的 linux 进程。?com. 是Android Servic
安卓通信机制及QCRIL原理介绍 来自淘豆网m.daumloan.com转载请标明出处.