Android 4.4 Kitkat Phone工作流程淺析(一)__概要和學習計劃

美國時間 2013 年 10 月 31 日, Google 正式發佈瞭全新版本的移動操作系統 Android 4.4 KitKat 。據 google官方介紹,Android 4.4 降低瞭硬件的需求,提高瞭程序運行效率。距離 4.4 發佈已經過去3個月瞭,不少朋友也已經體驗到瞭 4.4 所帶來的快感,大傢可以用過刷入三方ROM(比如知名的CM
ROM等)體驗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可以大致看到相關的改動:

圖1vcD4KPHA+ICAgICAgICAg1K3AtLXEUGhvbmXTptPDsru8+8HLo6zIobb4tPrWrrXEysdEaWFsZXK6zVRlbGVTZXJ2aWNlo6zOqsqyw7TV4sDvsNFJbkNhbGxVSbWltsDB0LP2wLTE2KO/yrW8ysnPztLDx7WltsDIpbHg0utJbkNhbGxVSdKyyse/ydLUyfqzybbU06a1xEFQS7XEo6y1q8q1vMrJz3B1c2i1vcrWu/rW0Mi0w7vT0NCnufujrNLyzqpEaWFsZXK1xEFuZHJvaWQubWvW0NLRvq29q0luQ2FsbFVJtcS0+sLrsPy6rKOs0rK+zcrH0tG+rb2rSW5DYWxsVUm1xLT6wuu08rD8tb3By0RpYWxlci5hcGvW0KGjyOfPwqO6PC9wPgo8cD48L3A+CjxwcmUgY2xhc3M9″brush:java;”>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

從整體上來講,也就是說把原來的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(去電)流程分析;

(註:包括從Dialer撥號到對方接通電話並進行正常通話流程分析)

4. Android 4.4 Kitkat Phone工作流程淺析(四)__MT(來電)流程分析;

(註:包括來電從RIL上報到InCallActivity顯示流程分析)

以上計劃僅目前考慮到的一部分,後續根據實際情況變動。

發佈留言