Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划

原创 2014年02月28日 15:28:15

        美国时间 2013 年 10 月 31 日, Google 正式发布了全新版本的移动操作系统 Android 4.4 KitKat 。据 google官方介绍,Android 4.4 降低了硬件的需求,提高了程序运行效率。距离 4.4 发布已经过去3个月了,不少朋友也已经体验到了 4.4 所带来的快感,大家可以通过刷入三方ROM(比如CM/Omni/Slim等)体验Android 4.4。但从目前来看,基于MTK平台的设备,几乎还没有运行Android 4.4 系统的,OEM厂商拿到系统之后会做许多定制,比如MTK就比高通的定制更多,这也就是为什么国内许多厂商直接拿到MTK的方案就可以出货的原因,当然这也造成了铺货时间更慢。

       因工作原因,这里就以MTK平台Android 4.4为例(后文例子代码使用MTK平台 Android 4.4 代码,但基于各方面原因只标注关键代码,以及调用时序图为主),整理并记录 Android 4.4 Phone 的工作流程。虽然MTK对于Android的源码定制修改较多,但整体结构还是可以与原生进行对比的。

       我们知道通话功能(Telephony)是手机最基本,也是最重要的功能,因此 Google对于这块的改动历来是最少的。在经过了数次迭代之后,我们在 4.4 上发现 Google 对 Phone 模块进行了较大的改动。从图1可以大致看到相关的改动:


图1

         原来的Phone应用不见了,取而代之的是Dialer和TeleService,为什么这里把InCallUI单独列出来呢?实际上我们单独去编译InCallUI也是可以生成对应的APK的,但push到手机中却没有效果,因为Dialer的Android.mk中已经将InCallUI的代码包含,也就是已经将InCallUI的代码打包到了Dialer.apk中。如下:

src_dirs := src $(contacts_common_dir)/src $(incallui_dir)/src
res_dirs := res $(contacts_common_dir)/res $(incallui_dir)/res

LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.android.contacts.common \
    --extra-packages com.android.incallui

        从整体上来讲,Android 4.4 把原来的Phone分成了几块:Dialer现在是拨号应用;TeleService是Server端;InCallUI负责显示;相对于 4.4 之前的Phone应用来说,这样更改后结构更加清晰明了。

        看了整体结构,大致规划一下后续的学习计划,如下:

  1. Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划

  2. Android 4.4 Kitkat Phone工作流程浅析(二)__UI分析

  3. Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析

  4. Android 4.4 Kitkat Phone工作流程浅析(四)__RILJ工作流程简析

  5. Android 4.4 Kitkat Phone工作流程浅析(五)__MT(来电)流程分析

  6. Android 4.4 Kitkat Phone工作流程浅析(六)__InCallActivity显示更新流程

  7. Android 4.4 Kitkat Phone工作流程浅析(七)__来电(MT)响铃流程

  8. Android 4.4 Kitkat Phone工作流程浅析(八)__Phone状态分析

  9. Android 4.4 Kitkat Phone工作流程浅析(九)__状态通知流程分析

10. Android 4.4 Kitkat Phone工作流程浅析(十)__"通话显示"查询流程;

11. Android 4.4 Kitkat Phone工作流程浅析(十一)__PSensor工作流程浅析;

12. Android 4.4 Kitkat Phone工作流程浅析(十二)__4.4小结与5.0概览;

13. Android 5.1 Lollipop Phone工作流程浅析(十三)__InCallActivity启动Performance浅析

        以上计划仅目前考虑到的一部分,后续根据实际情况可能会有些许变动。

做好准备,让你的短信应用迎接Android 4.4(KitKat)

Android团队通过Android开发博客透漏今年会放出Android 4.4 (KitKat) ,同时更新了 SMS 的部分API。博客上讲只有default SMS app才能对短信数据库有读写...
  • xyz_lmn
  • xyz_lmn
  • 2013年10月17日 16:02
  • 20609

Android 5.0 InCallUI

Android 5.0 对InCallUI界面进行了调整以适应Google的Material Design。   下面来看一下来电的界面:       在Andro...
  • lyjIT
  • lyjIT
  • 2016年03月18日 14:42
  • 2071

Android4.4r1(KitKat)源码下载地址

Android4.4r1 源码包下载地址为: http://pan.baidu.com/s/1BYRqd 如果需要,可以下载下来参考...
  • gaojinshan
  • gaojinshan
  • 2013年11月06日 15:44
  • 3491

Android 4.4(KitKat)中apk包的安装过程

其实对于apk包的安装,4.4和之前版本没大的差别。Android中app安装主要有以下几种情况:系统启动时安装,adb命令安装,Google Play上下载安装和通过PackageInstaller...
  • ariesjzj
  • ariesjzj
  • 2014年05月12日 08:55
  • 9282

Android N 与Android M InCallUI代码对比(基于CM)

今天是2016.11.30,google已经开始推送android 7.1了。 我们都知道其实7.0早就放出来了,那为什么我现在才写7.1的源码阅读分析呢? 因为等了高通两个月N的代码,他...
  • aaa111
  • aaa111
  • 2016年12月14日 16:36
  • 1635

Android M InCallUI动画简析

本篇回答下面几个问题: 1.显示动画的流程是怎样的? 2.为什么有些手机的动画不一样甚至没有动画? 写这一篇主要用两个原因: 1.发现Android M上新增了一个类CircularRevealF...
  • aaa111
  • aaa111
  • 2016年05月26日 01:07
  • 2047

Android 4.4(KitKat)窗口管理子系统 - 体系框架

窗口管理系统是Android中的主要子系统之一,它涉及到App中组件的管理,系统和应用窗口的管理和绘制等工作。由于其涉及模块众多,且与用户体验密切相关,所以它也是Android当中最为复杂的子系统之一...
  • ariesjzj
  • ariesjzj
  • 2014年07月14日 09:38
  • 8955

Android 4 4 KitKat API level 19 SDK 源代码

  • 2014年06月21日 18:36
  • 19.42MB
  • 下载

Android中InCallUI显示太慢问题分析

完整分析流程和详细内容也可以下载PDF文档:InCallUI_issue_analysis_report一、问题现象当手机有来电时,先听到铃声,过了比较长的一段时间(3-4s)屏幕才点亮并显示来电界面...
  • songjinshi
  • songjinshi
  • 2015年06月01日 17:00
  • 7399

Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析

之前有分析过Android 4.2的InCallScreen结构(传送门),但后面Google发布了Android 4.4即Kitkat,遂决定以之前的文章为模板,重新整理并记录。在4.4中当有来电或...
  • yihongyuelan
  • yihongyuelan
  • 2014年03月03日 09:38
  • 25744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划
举报原因:
原因补充:

(最多只允许输入30个字)