Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划
2015-09-12 14:26
691 查看
美国时间 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中。如下:
[plain] view
plaincopy
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概览;
以上计划仅目前考虑到的一部分,后续根据实际情况可能会有些许变动。
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中。如下:
[plain] view
plaincopy
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概览;
以上计划仅目前考虑到的一部分,后续根据实际情况可能会有些许变动。
相关文章推荐
- Android中的5种数据存储方式
- Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析
- Android 4.4 Kitkat Phone工作流程浅析(五)__MT(来电)流程分析
- The connection to adb is down和no configs match configspec错误
- Android 4.4 Kitkat Phone工作流程浅析(八)__Phone状态分析
- Android基础之json数据的几种解析方法
- Android 4.4 Kitkat Phone工作流程浅析(九)__状态通知流程分析
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- Android 4.4 Kitkat Phone工作流程浅析(十)__"通话显示"查询流程
- Android 4.4 Kitkat Phone工作流程浅析(十一)__PSensor工作流程浅析
- Android Studio主要目录及文件简介
- Android ADT远程主机强迫关闭了一个现有的连接 Connection attempts: 1 解决方法
- Android搭建简单的主体界面框架-SlidingPaneLayout
- Android 去掉ListView的HeaderView、FooterView的Divider分割线
- Android Notification (转)
- 浅谈Android的三种数据持久化技术之文件存储
- [Android]关于换肤功能的遐想篇
- IMSDroid遇到注册问题(蘼1S 计3等一下 Android4.4)
- Android Studio系列教程四--Gradle基础
- Android4.4的init进程