Android L Phone的目录结构与进程模型

来源:互联网 发布:西门子数控仿真软件 编辑:程序博客网 时间:2024/05/23 13:26
本文代码目录以高通平台Android 5.0为基础,可能与AOSP有不同之处。

概述

话说在Android出生的时候,大神们,将Android层次结构定位成这样。



Phone的子民们散落在的几个层次中,Apps, Framework, Radio。虽散,但遥相呼应。那Phone本身又是什么样的结构呢?


题外话:在Android4.4 或是 5.0手机界面上的Phone图标,仅仅表示拨号盘(Dialer)这个应用,不是表示Phone的应用,
这个在跟测试同学打交道中会遇到这样的问题。

上图说明:

1) Phone的框架图,分为四个部分,Apps层,javaFramework层,RILD层,Modem层。这个系列,分析的对象仅仅关注,Android 5.0 Phone的Apps 和 Framework,

其他的不会涉及。

2) Android 5.0 (以下简称 L), 对Phone进行了较大的改动,在android/packages/services目录中新增了Mms,Telecomm, 在framework中也增加了telecomm目录。

跟踪代码发现,层次调用之间没有4.4 那么突兀,打个比方。4.4上的层次调用相当于从6楼的Dialer跳到1楼的Telephony,在L上是这样跳的:Dialer(6楼) -> Telecomm(3楼)

 ->Telephony(1楼),至于Google为什么这么设计,现在还不知道。感觉是要将4.4的Telephony的功能再次分解,而且加入了多账户的控制等等。

3) InCallUI还是单独分离出来,而且这次干脆连Android.mk文件都没有了,直接编译到Dialer中去。打电话的时候,即使UI挂掉,不影响语音通话,只是不能操作UI而已。

Android L Phone目录结构



需要注意,telephony-msim是高通双卡特有的,读者可以忽略这点。

Andriod L Phone进程模型




说明,这里的箭头流向是以基本的拨号为例进行说的,实际过程比这个要复杂得多,其中需要注意的是InCallUI界面的启动不是跟4.4那样是需要底层
反馈后才会启动的,而是在拨号过程中启动的,这个会在后续学习拨号流程的时候进行分析。
之前在Android4.4上遇到拨打电话,电话界面启动慢的问题。哎,这个问题,是Google搞的,InCallUI启动非得依赖状态变化,而且通话结束后,
InCallUI与TeleService的AIDL连接就断开了。在L上肉测,拨号启动界面的时间是可以接受的。


0 0
原创粉丝点击