版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、MTK程序分析程序整體構(gòu)造程序的封裝性,導(dǎo)致能看到的進(jìn)程不多,很多進(jìn)程都是以庫的形式出現(xiàn)程序員可以通過MTK提供的模版自己新加線程。在custom_config.c中在custom_config.c中,通過MTK提供的模版,我們可以推測的出程序其他進(jìn)程的創(chuàng)立和實現(xiàn)程序整體構(gòu)造可以看到custom_comp_config_tbl構(gòu)造,從這個構(gòu)造,我們可以看到跟進(jìn)程創(chuàng)立有關(guān)的需要使用到的一些參數(shù):比方進(jìn)程創(chuàng)立的入口,進(jìn)程的堆棧空間大小和地址。這個是提供給程序員添加新模塊時需要使用到的,從這里我們可以推測其他進(jìn)程的創(chuàng)立也應(yīng)該是采用通用的方式以下將舉一些可以看到代碼的線程進(jìn)展分析:程序整體構(gòu)造分析FM
2、T模塊。FMT模塊和MMI中的MMI_FILEMANAGER有著對應(yīng)的關(guān)系。可以把FMT模塊看成是MMI_FILEMANAGER的底層操作模塊。 MMI_FILEMANAGER是FMT的上層MMI管理。程序整體構(gòu)造FMT很簡單,但麻雀雖小五臟具全,一個進(jìn)程應(yīng)該具有的,它都含有,所以很方便分析FMT的開場是從fmt_create開場的,這個可以從剛剛講的構(gòu)造custom_comp_config_tbl中得到結(jié)論。在這個構(gòu)造中需要傳入一個進(jìn)程的入口函數(shù)。FMT進(jìn)程估計就是把fmt_create函數(shù)地址給傳進(jìn)去的。程序整體構(gòu)造這個fmt_create主要作用還是傳遞入口函數(shù)地址:有如下幾個函數(shù):fm
3、t_task_main,/* task entry function */fmt_init,/* task initialization function */NULL,/* task configuration function */fmt_reset,/* task reset handler */NULL,/* task termination handler */程序整體構(gòu)造我們需要關(guān)注的是fmt_task_main函數(shù)。這個函數(shù)可以說是整個進(jìn)程的心臟。它里面包含一個消息泵,就是一個無限循環(huán),不停從消息隊列中獲取消息分發(fā)消息:。從消息隊列中獲取消息,通過函數(shù)receive_msg_ex
4、t_q來實現(xiàn)的,這個函數(shù)沒有給出詳細(xì)原代碼,大家有興趣可以通過里面的參數(shù)來猜測它的實現(xiàn)方式。程序整體構(gòu)造。設(shè)置當(dāng)前活動模塊stack_set_active_module_id。分發(fā)消息,通過消息號,找到對應(yīng)的消息處理函數(shù),同時傳入的參數(shù)中可能包含一些需要的參數(shù)數(shù)據(jù),有時可能是詳細(xì)數(shù)值,有時是全局的數(shù)據(jù)指針。處理完后封一個消息,發(fā)完需要回復(fù)的模塊一般是消息發(fā)起者模塊程序整體構(gòu)造。釋放返回消息數(shù)據(jù)內(nèi)存區(qū)域free_ilm。到這時一個完好進(jìn)程執(zhí)行過程。這個是一個小的進(jìn)程的執(zhí)行過程,其實其他的進(jìn)展執(zhí)行過程應(yīng)該也差不多,雖然外表看起來不同,但本質(zhì)上應(yīng)該是一樣的我們來看進(jìn)程。這個進(jìn)程應(yīng)該也像普通進(jìn)程一樣通
5、過mmi_create來把入口傳入進(jìn)操作系統(tǒng)。程序整體構(gòu)造這個入口也包含了一系列的入口函數(shù)地址,其中還是那個MMI_task最為關(guān)鍵,可以稱之為心臟或消息泵。在這個MMI_task里面,雖然看起來很復(fù)雜,而且整個構(gòu)造跟剛剛的看起來一點都不像,但假如再深化點去看看代碼,去想想,應(yīng)該發(fā)現(xiàn)這個的本質(zhì)跟剛剛那個簡單的進(jìn)程是一樣的。下面對其進(jìn)展分析:程序整體構(gòu)造。從消息隊列中獲取消息,用到的是OslReceiveMsgExtQ函數(shù),其實那個只是#define OslReceiveMsgExtQreceive_msg_ext_q這樣來的,無非是用了一個來把receive_msg_ext_q交換。這樣做的好
6、處:用到的是,這樣使很通用,以后要用于別的程序,也很好的移植而不需要重寫進(jìn)程程序整體構(gòu)造。設(shè)置當(dāng)前活動模塊,同上面說的一樣,使用了OslStackSetActiveModuleID是stack_set_active_module_id的別名。分發(fā)消息。這里分發(fā)消息,有些是在開機(jī)前進(jìn)展的,需要另外處理,比方長按鍵開機(jī),插入,充電等。另外的一些消息分發(fā)處理都是通過ProtocolEventHandler來完成。這個ProtocolEventHandler其本質(zhì)就是對不同的消息,執(zhí)行相應(yīng)的處理函數(shù),只是把這些和處理函數(shù)用了一個統(tǒng)一的數(shù)據(jù)構(gòu)造來記錄和管理,通過一系列接口來供使用者調(diào)度,這樣就不需要管它
7、如何處理的。使用者只需要設(shè)置和其對應(yīng)的入口函數(shù)地址就可以,它的管理程序會把這些都調(diào)度好。也是能很好的移植的。程序整體構(gòu)造。釋放內(nèi)存OslFreeInterTaskMsg&Message;不需要再進(jìn)展解釋了,和上面的都一樣。對ProtocolEventHandler,還想說一些,就是那些很多都是在協(xié)議中有規(guī)定的,類似的還有很多。比方模塊,此模塊所有的東西根本上都是在協(xié)議中規(guī)定了的。從如上兩個例子,我們可以看出程序的整體構(gòu)造不復(fù)雜,而且很多時候,模塊都是被封裝好的,不能對其修改。我們在實際工作中需要用到的其實不多,在這里講,主要是為了讓大家對程序整個構(gòu)造有個比較系統(tǒng)的理解,對程序的模塊理解將有好處
8、的。假如有必要對多個模塊同時修改,比方是需要增加一些消息,這時的工作就好似是在修改一個多線程的程序一樣,很多時候都要非常注意變量的讀寫保護(hù),以及同步互斥操作相關(guān)首先要講的是,這個東西在中可以說是隨處可見,我們可以翻譯為屏幕,顯示頁面,或是別的其它的。不管在哪,但凡需要顯示的時候都需要一個。所以在進(jìn)入一個新頁面時,通常都會使用EntryNewScreen函數(shù)。相關(guān)這個東西我們可以這樣來理解,可以想象成一幅畫的畫框,或者是一部電影里面使用到的膠片。用來組織和管理一幅一幅的頁面的不管你畫什么東西,都需要一個的支持,當(dāng)你進(jìn)入一個新的時,你可以把當(dāng)前保存到歷史記錄中,在適當(dāng)?shù)臅r候,可以把歷史記錄中的彈出
9、來,恢復(fù)成原來的頁面。相關(guān)有一系列的相關(guān)操作。用來維護(hù)和管理隊列。比方剛剛說的EntryNewScreen進(jìn)入一個新的頁面。GoBackHistory返回上一個頁面,DeleteScreenIfPresent刪除在歷史記錄中存在的某個頁面記錄等等。這些操作都是方便程序員使用,靈敏的管理頁面。假如想知道其實現(xiàn)方法,看看這些函數(shù)的代碼就可以,不是很難。相關(guān)講了就不得不講Category了。Category常常和連起來使用,就像電影膠片和膠片上的內(nèi)容的關(guān)系。Category這個東西包含了很多東西,但目的就是一個,給程序員快速方便的使用一些常用界面組件。就像做程序時,開發(fā)工具中提供的各種不同對話框。相
10、關(guān)有幾百個不同類型的Category,有了這些Category,程序員可以不需要關(guān)注于程序界面上的一些事,直接對它進(jìn)展使用就可以,只需要提供一些參數(shù),比方標(biāo)題名,左右軟鍵的名字和圖片,等。假如感覺不夠用,還可以自己寫Category,寫Category 有統(tǒng)一的格式的,仔細(xì)看看,非常簡單,非常的方便。相關(guān)Category 中有一類特殊的Category,里面包含可編輯組件。這些可編輯組件也是由系統(tǒng)提供的,就像編程工具提供的那些,一樣,包括:singleline_inputbox,multiline_inputbox, dialer_inputbox等,完全滿足程序需要的輸入要求,有相應(yīng)的接口函
11、數(shù)及使用流程,使用很方便,可參閱詳細(xì)代碼如函數(shù)ShowCategory57Screen。相關(guān)除了以上這些,相關(guān)的公共內(nèi)容部分沒有什么好講的了。一些詳細(xì)細(xì)節(jié),可參照以前講過的架構(gòu)分析。的按的分類可以分為種:鍵盤事件,協(xié)議棧事件,計時器事件,高亮顯示事件。下面是一張與其它模塊的交互圖的的以上這張圖是沒考慮到時的圖,比照下面這張圖,我們將很明晰的看出所起的作用的的剛剛講的設(shè)置協(xié)議棧消息處理函數(shù)的協(xié)議棧消息處理的設(shè)置鍵盤消息處理函數(shù)的鍵盤中斷消息處理模塊分析下面,將對一個照相功能模塊進(jìn)展分析,來加深對上述內(nèi)容的印象。因為此模塊含有全部代碼,便于分析。首先是mmi_camera_hilight_app函
12、數(shù),此函數(shù)是用戶選中照相機(jī)時執(zhí)行的函數(shù),在此函數(shù)中設(shè)置了左軟鍵點擊時執(zhí)行的入口函數(shù)mmi_camera_entry_app_screen。mmi_camera_entry_app_screen中可以看到EntryNewScreenSCR_ID_CAMERA_APP。在這個函數(shù)中初始化相關(guān)的東西,為下面圖像顯示做準(zhǔn)備。并進(jìn)展?fàn)顟B(tài)檢測,假如沒問題,那么進(jìn)入狀態(tài)。這里要說的CAMERA_ENTER_STATE函數(shù),進(jìn)入到不同的狀態(tài)使用不同的參數(shù)。模塊分析進(jìn)入到狀態(tài)實際上是執(zhí)行到了mmi_camera_entry_preview_state函數(shù)。這這里,設(shè)置好按鍵處理程序,mmi_camera_preview_startmdi_camera_preview_startmdi_camera_preview_start_internalmedia_cam_preview到了media_cam_preview里,模塊發(fā)消息給模塊。并且把線呈掛起,阻塞在那,只有等有消息回應(yīng)才繼續(xù)執(zhí)行模塊分析我們可以看到med_main函數(shù),這個函數(shù)是模塊的消息泵,此時消息懇求進(jìn)入cam_preview_req_hdlr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【中考考點基礎(chǔ)練】第15章 從指南針到磁浮列車 電能從哪里來 2025年物理中考總復(fù)習(xí)(福建)(含答案)
- 基于MCGS的鍋爐汽包水位計算機(jī)控制系統(tǒng)設(shè)計終稿
- 財經(jīng)法規(guī)與會計職業(yè)道德模擬試卷第一套有答案1
- 2024至2030年中國六火眼烤箱灶數(shù)據(jù)監(jiān)測研究報告
- 2024年中國高導(dǎo)磁芯繞線市場調(diào)查研究報告
- 2024年中國虎杖甙市場調(diào)查研究報告
- 2024年中國百葉窗式管道風(fēng)機(jī)市場調(diào)查研究報告
- 2024年中國機(jī)房漏水監(jiān)測系統(tǒng)市場調(diào)查研究報告
- 2024年中國顯微激光拉曼光譜儀市場調(diào)查研究報告
- 2024年中國區(qū)界牌市場調(diào)查研究報告
- 2023-2024學(xué)年北京市通州區(qū)九年級(上)期中物理試卷
- 高考熱點作文素材:《黑神話:悟空》
- 工業(yè)大學(xué)安全施工組織設(shè)計
- 城市軌道交通列車自動控制系統(tǒng)維護(hù) 課件 1.1 列車自動控制系統(tǒng)初識
- 湘美版 八年級上冊 美術(shù) 第3課 寄情山水 教案
- 期中模擬試卷-浙2024-2025學(xué)年統(tǒng)編版語文四年級上冊
- 洗車場加盟協(xié)議
- 2024-2030年沉香木項目融資商業(yè)計劃書
- 2024年新華師大版七年級上冊數(shù)學(xué)教學(xué)課件 第1章 有理數(shù) 1.13 近似數(shù)
- 2024-2030年中國天然乳膠床墊行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 公園廣場保潔管理服務(wù)投標(biāo)方案(技術(shù)方案)
評論
0/150
提交評論