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浅析

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

ASP+JS时的"""

在ASP中basic语句中的字符串中包含JS语句,这时处理起间隔符这特殊的符号确实是件麻烦事,苦于找不到相应的资料,一时间头痛万分.现在好了,总算让我想到了解决的办法,原来我这么"后知后觉"啊,呵呵....
  • mostone
  • mostone
  • 2001-07-12 09:44:00
  • 881

android telephoney学习笔记

http://blog.csdn.net/hzbooks/article/details/8588275 http://blog.csdn.net/zhanghao_hulk/article...
  • yazitea
  • yazitea
  • 2017-10-29 21:45:52
  • 289

android的TelephoneManager

详细信息见; http://blog.csdn.net/aiqing0119/article/details/7842557one 获得手机的串号IMEI##IMEI(International Mo...
  • tangsilian
  • tangsilian
  • 2016-06-22 22:56:23
  • 1258

android telephone 4.2 framework层分析

framework层的相关代码主要在
  • ahjxly
  • ahjxly
  • 2014-07-04 14:27:01
  • 1771

android4.2 telephone应用层分析

InCallScreen 复制通话界面的显示和提供人机交互的接口,
  • ahjxly
  • ahjxly
  • 2014-06-20 14:59:34
  • 2376

Android电话来电流程源码分析 .

Android的Phone设计的相当复杂,只有了解了Phone的设计框架才能把握电话的拨号或来电流程,在Android电话拨打流程源码分析中已经分析介绍了电话拨打流程,这里介绍一下电话的来电流程。 ...
  • zr2406227745
  • zr2406227745
  • 2014-08-04 14:04:48
  • 529

android7.0拨号流程分析

Android7.0拨号流程
  • qq_27061049
  • qq_27061049
  • 2017-11-30 14:55:05
  • 431

Telephoney框架总结(原)

Telephony框架概述     无论手机发展到如何智能的程度,最关键和重要的功能仍然是通讯,具体来说就是打电话、发短信、上网功能的使用。而整个Android通讯的框架从下往上可以分为4个层次: ...
  • u010961631
  • u010961631
  • 2014-10-17 11:20:02
  • 2830

Android短信----发送流程---框架层(Frameworks)

Android短信接收流程---框架层(Frameworks) /framework/base/telephony/java/com/android/internal/telephony/ISms...
  • zero9988
  • zero9988
  • 2015-11-30 19:28:05
  • 1279

Android电话拨打流程源码分析

前面分析了电话拨号界面及电话呼叫界面,由于Android的电话Phone设计的很复杂,因此先从UI层入手分析。想要了解Android的电话拨号UI,请查看Android电话拨号UI分析,电话拨号UI在...
  • kevinx_xu
  • kevinx_xu
  • 2013-09-20 13:21:55
  • 23055
收藏助手
不良信息举报
您举报文章:Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划
举报原因:
原因补充:

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