![MTK添加新的APP的總流程_第1頁](http://file4.renrendoc.com/view10/M01/05/1E/wKhkGWWOEQKAew3oAAH_Q2axbFg600.jpg)
![MTK添加新的APP的總流程_第2頁](http://file4.renrendoc.com/view10/M01/05/1E/wKhkGWWOEQKAew3oAAH_Q2axbFg6002.jpg)
![MTK添加新的APP的總流程_第3頁](http://file4.renrendoc.com/view10/M01/05/1E/wKhkGWWOEQKAew3oAAH_Q2axbFg6003.jpg)
![MTK添加新的APP的總流程_第4頁](http://file4.renrendoc.com/view10/M01/05/1E/wKhkGWWOEQKAew3oAAH_Q2axbFg6004.jpg)
![MTK添加新的APP的總流程_第5頁](http://file4.renrendoc.com/view10/M01/05/1E/wKhkGWWOEQKAew3oAAH_Q2axbFg6005.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MTK添加新的APP的總流程添加程序文件在plutommi\mmi\下建立MyAppInc(放頭文件.h)MyAppRes(資源文件)MyAppSrc(源文件.c)。1.在Inc下添加MyAppGprot.h對(duì)外接口,外部調(diào)用函數(shù)原型聲明于此。MyAppProt.h內(nèi)部接口,內(nèi)部調(diào)用函數(shù)原型聲明于此。MyAppDefs.h 定義資源ID。MyAppTypes.h 定義常量,自定義數(shù)據(jù)等。2.在Src下添加 MyAppSrc.c 實(shí)現(xiàn)功能的函數(shù)。在VC6.0下的FileView下的mmi_appfiles下addfiletoproject。將文件加入整個(gè)項(xiàng)目。make\plutommi\mmi_app\mmi_app.inc加一行/I"..\..\plutommi\mmi\MyApp\MyAppInc"make\plutommi\mmi_app\mmi_app.lis加一行/I"..\..\plutommi\mmi\MyApp\MyAppSrc\MyAppSrc.cmake\plutommi\mmi_app\mmi_app.pth加一行/I"..\..\plutommi\mmi\MyApp\MyAppSrc四、程序開關(guān)部分1、在plutommi\mmi\Inc\MMI_features_switch.h末尾添加#defineCFG_MMI_MYAPP(__ON__)2、在plutommi\Customer\CustResource\PLUTO_MMI\MMI_features_switchPLUTO.h末尾添加 #defineCFG_MMI_MYAPP(__ON__)3、在plutommi\Customer\CustResource\TELSDA25_08A_GEMINI_MMI\MMI_features_switchTELSDA25_08A_GEMINI.h末尾添加#defineCFG_MMI_MYAPP(__ON__)其中,TELSDA25_08A_GEMINI_MMI為MTK源碼的工程名4、在MTK\plutommi\mmi\Inc\MMI_features.h末尾添加#ifdefined(CFG_MMI_MYAPP)&&((CFG_MMI_MYAPP==__ON__)||(CFG_MMI_MYAPP==__AUTO__))#ifndef__MMI_MYAPP__#define__MMI_MYAPP__#endif#endif模擬器編譯環(huán)境下添加頭文件F:\sss\MTK\W180A_S_DriveOnly\MoDIS\mmi_app\mmi_app.ini下添加一行/I"..\..\plutommi\mmi\MyApp\MyAppInc"可以makexxxxgprsnew了,如果編譯成功,模擬器編不過出現(xiàn)錯(cuò)誤1083,就查查看看在MoDIS會(huì)不會(huì)有重復(fù)的MyAppSrc.c文件,或者模擬器下編譯環(huán)境有沒有添加頭文件。六、添加一項(xiàng)資源通常分三步:原料,ID,裝載。原料:即原材料,如圖像就是準(zhǔn)備一副新圖,字串就是準(zhǔn)備各種語言的Unicode編碼。ID:即資源項(xiàng)的別名,程序只能通過ID來獲取資源項(xiàng)(ID一般定義在XXDefs.h中)。裝載:裝載在編譯目標(biāo)燒錄文件之前就會(huì)被執(zhí)行,其目的有兩個(gè):一是將原材料轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),二是生成將ID與二進(jìn)制數(shù)據(jù)聯(lián)系起來的映射表。資源裝載預(yù)編譯程序是plutommi\Customer\ResGenerator\mtk_resgenerator.exe,這個(gè)程序在每次編譯目標(biāo)燒錄文件之前臨時(shí)編譯生成的。下面的修改基本上與這個(gè)程序有關(guān)。添加文件在plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI下面創(chuàng)建一個(gè)新文件:plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_MyApp.c頭文件不要加StdC.h了定義一個(gè)函數(shù)voidPopulateMyAppRes(void){} 里面加相關(guān)資源就行了。七、1.修改makefile 在文件plutommi\Customer\ResGenerator\MakeFile添加-I"../../MMI/MainMenu/MainMenuInc"\-I"../../MMI/MyApp/MyAppInc"\2. 修改PopulateRes.c 在文件Plumommi\mmi\Resource\PopulateRes.c里加入(黑體)/*****************************************************************************GlobalFunction-Extern*****************************************************************************//*Populatewithoutcompileoption*/externvoidPopulateMyAppRes(void);voidPopulateResData(void){ /******************************************************************************PopulateResoruce*****************************************************************************/ RES_PRINT_INFO("PopulatingMyAppResource\n"); PopulateMyAppRes();}八、添加資源ID 相當(dāng)于一個(gè)資源空間,基礎(chǔ)ID同一定義在plutommi\MMI\Inc\MMIDataTypes.hRESOURCE_BASE_ENUM_BEGIN()………………RESOURCE_BASE_RANGE(APP_MYAPP, 100),在最后前加入/*****************************************************************************MyAppApp*****************************************************************************/#defineMYAPP_BASE ((U16)GET_RESOURCE_BASE(APP_MYAPP))#defineMYAPP_BASE_MAX ((U16GET_RESOURCE_MAX(APP_MYAPP))RESOURCE_BASE_TABLE_ITEM(APP_MYAPP)/*pleaseaddnewresourcebasetableabovethisline*//*Endofresourcetable*/RESOURCE_BASE_TABLE_END()九、主屏幕序號(hào)定義在MyAppDefs.h中typedefenum{ SCR_MYAPP_MAIN=MYAPP_BASE+1,}SCREENID_LIST_MYAPP;十、字串ID定義在MyAppDefs.h中typedefenum{ STR_MYAPP_HELLO=MYAPP_BASE+1,}STRINGID_LIST_MYAPP;十一、字串資源在plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中添加一行(注:最好不要在Excel中編輯此文件,因?yàn)镋xcel默認(rèn)會(huì)為每個(gè)字串加上雙引號(hào))STR_MYAPP_HELLO MyApp 20 Hello,World Hello,World 你好,世界 你好,世界, Hello,World下面是對(duì)表格每一列的描述:第一列是字串ID,與MyAppDefs.h中定義的要完全一致。第二列是字串所屬的程序名(可任意寫,僅供自己參考)。第三列指本字串的最大長(zhǎng)度(取所有語言中文本最長(zhǎng)的一個(gè))。第四列是字串描述,也可任意寫。從第五列起就是各種語言所對(duì)應(yīng)的字串。字串裝載在函數(shù)PopulateMyAppRes(Res_MyApp中)中添加一行:voidPopulateMyAppRes(void){ ADD_APPLICATION_STRING2(STR_MYAPP_HELLO,"Hello,World","MyApp.");}讀取字串使用函數(shù)GetStringvoidmmi_myapp_enrty(void){…… gui_print_text((UI_string_type)GetString(STR_MYAPP_HELLO));……}十二、菜單資源 設(shè)在[MainMenu][Organizer][Hello,World]。菜單項(xiàng)ID的頭文件全部在plutommi\MMI\Inc\GlobalMenuItems.h中:EnumGLOBALMENUITEMSID{ IDLE_SCREEN_MENU_ID=1, …… MENU_ID_MYAPP_HELLO, MENU_ID_DEVAPP_START, MENU_ID_DEVAPP_END=MENU_ID_DEVAPP_START+100, MAX_MENU_ITEMS_VALUE, MENU_ITEM_END};菜單加載全部在\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_MainMenu.c中**************************************************************///Organizer#ifdefined(__MMI_VERSION_2__) typedefenum {#ifdef__MMI_MYAPP__ MENU_ENUM_MYAPP_HELLO,#endifORG_ENUM_TOTAL }OrganizerMenu; /*oganizer*/ ADD_APPLICATION_MENUITEM((MAIN_MENU_ORGANIZER_MENUID,IDLE_SCREEN_MENU_ID,ORG_ENUM_TOTAL, #ifdefined(__MMI_CALENDAR__) ORGANIZER_CALENDER_MENU, #endif #ifdefined(__MMI_TODOLIST__) ORGANIZER_TODOLIST_MENU, #endif ORGANIZER_ALARM_MENU, #ifdefined(__MMI_WORLD_CLOCK__) ORGANIZER_WORLDCLOCK_MENU, #endif #ifdef__MMI_NOTE_APP__MENU_ID_NOTE_APP_MAIN,#endif #ifdef__MMI_MESSAGES_CLUB__ EXTRA_SHORTCUTS_MENUID, #endif #ifdef__MMI_UDX_SUPPORT__MENU_ID_UDX_MAIN_MENU, #endif #ifdef__SYNCML_SUPPORT__ MENU_ID_SYNCML_MAIN, #endif #ifdef__MMI_SYNCML_DEVICE_SYNC__ MENU_ID_SYNCML_DEV_MAIN, #endif #ifdef__MMI_MYAPP__ MENU_ID_MYAPP_HELLO, #endif SHOW,MOVEABLEWITHINPARENT|INSERTABLE,DISP_LIST, MAIN_MENU_ORGANIZER_TEXT,MAIN_MENU_ORGANIZER_ICON)); 通過上面三步我們已經(jīng)將新的菜單項(xiàng)成功插入到工具箱菜單,也就是說我們解決了菜單幾個(gè)元素中的“父菜單項(xiàng)”的問題,接著我們來看看其他幾項(xiàng)元素。這里我們介紹下ADD_APPLICATION_MENUITEM這個(gè)宏,剛才往工具箱菜單插入我們的菜單項(xiàng)時(shí)已經(jīng)接觸到這個(gè)宏了,生成菜單資源用的就是這個(gè)宏,接著我們就會(huì)用到。這個(gè)宏的參數(shù)個(gè)數(shù)是可變的,其參數(shù)具體含義如下:參數(shù)1:菜單項(xiàng)本身的ID,就我們的例子而言是MENU_ID_MYAPP_HELLO參數(shù)2:菜單項(xiàng)的父菜單ID,這里是MAIN_MENU_ORGANIZER_MENUID參數(shù)3:本菜單子菜單個(gè)數(shù),假定為N好了,這個(gè)參數(shù)之后是變參部分,隨后的N個(gè)參數(shù)為各個(gè)子菜單的ID參數(shù)4+N:菜單是否顯示,一般為SHOW參數(shù)5+N:菜單其他屬性,可以是這些值的組合:NONMOVEABLE,MOVEABLEWITHOARENT,MOVEABLECROSSPARENT,INSERTABLE,SHORTCUTABLE,一般我們就用SHORTCUTABLE就好了。參數(shù)6+N:下級(jí)菜單的顯示風(fēng)格,以下風(fēng)格任選其一就好:DISP_LIST—列表顯示,常見風(fēng)格DISP_MATRIX—矩陣顯示,如九格宮、十二格宮,主菜單一般用這種風(fēng)格DISP_CIRCULAR_3D—循環(huán)3D顯示,只有主菜單用到DISP_PAGE—翻頁格式,每個(gè)菜單項(xiàng)一頁,一般也是主菜單才會(huì)用到DISP_FIXED_GRID—很少用到,可忽略 參數(shù)7+N:菜單項(xiàng)顯示文本對(duì)應(yīng)的字串資源ID 參數(shù)8+N:菜單項(xiàng)對(duì)應(yīng)的小圖標(biāo)的資源ID加載MENU_ID_MYAPP_HELLO本身:voidPopulateMyAppRes(void){ADD_APPLICATION_MENUITEM((MENU_ID_MYAPP_HELLO,MAIN_MENU_ORGANIZER_MENUID,0,SHOW,SHORTCUTABLE,DISP_LIST,STR_MYAPP_HELLO,IMG_MYAPP_HELLO));}修改MyAppSrc.c實(shí)際上就是給菜單項(xiàng)設(shè)定一個(gè)響應(yīng)動(dòng)作,使之轉(zhuǎn)到我們模塊的入口,設(shè)置菜單項(xiàng)響應(yīng)動(dòng)作的函數(shù)是SetHiliteHandler,設(shè)置的動(dòng)作只需要在系統(tǒng)上電后初始化的部分執(zhí)行一次就可以了,這里我們?yōu)槟K新增一個(gè)函數(shù),這個(gè)函數(shù)專門處理我們模塊上電初始化的部分,如下紅色字體所示我們?cè)贛yAppSrc.c中增加一下部分: voidmmi_myapp_hilite_hello(void){ SetLeftSoftkeyFunction(mmi_myapp_entry,KEY_EVENT_UP);}voidmmi_myapp_init(void){ SetHiliteHandler(MENU_ID_MYAPP_HELLO,mmi_myapp_hilite_hello);}這實(shí)際上要用兩個(gè)函數(shù),由這兩個(gè)函數(shù)共同完成菜單點(diǎn)擊通知的接收和轉(zhuǎn)入我們模塊主入口的動(dòng)作。聲明這兩個(gè)函數(shù)修改MyAppProt.h externvoidmmi_myapp_hilite_hello(void);修改MyAppGprot.h externvoidmmi_myapp_inti(void);mmi_myapp_init這個(gè)函數(shù)是一個(gè)外部接口,我們把申明放到MyAppGprot.h中;mmi_MyApp_hilite_hello這個(gè)函數(shù)是內(nèi)部接口,我們把申明放到MyAppProt.h中。然后我們把mmi_Myapp_init放入到函數(shù)InitAllApplications中調(diào)用已完成我們模塊的初始化設(shè)定.修改文件“plutommi\mmi\Framework\Tasks\TasksSrc\MMITask.c”……#ifdef
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來商業(yè)空間設(shè)計(jì)趨勢(shì)與挑戰(zhàn)應(yīng)對(duì)
- 國慶節(jié)中秋快樂活動(dòng)方案
- 16《朱德扁擔(dān)》第二課時(shí) 說課稿-2024-2025學(xué)年語文二年級(jí)上冊(cè)統(tǒng)編版
- Unit 2 Healthy Lifestyle Reading and Thinking 說課稿-2023-2024學(xué)年高二英語人教版(2019)選擇性必修第三冊(cè)
- Module4 Unit1 It's red!(說課稿)-2024-2025學(xué)年外研版(一起)英語一年級(jí)上冊(cè)
- Unit 2 Different families Lesson 6(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 1《天地人》說課稿-2024-2025學(xué)年語文一年級(jí)上冊(cè)統(tǒng)編版
- 2024-2025學(xué)年高中信息技術(shù) 會(huì)考知識(shí)點(diǎn)說課稿
- 2024年六年級(jí)品社下冊(cè)《站在國際舞臺(tái)上》說課稿 遼師大版001
- 6 推動(dòng)社會(huì)發(fā)展的印刷術(shù)(說課稿)-2024-2025學(xué)年六年級(jí)上冊(cè)科學(xué)教科版(2017版)
- 信息技術(shù)課程標(biāo)準(zhǔn)2023版:義務(wù)教育小學(xué)階段
- 2024年常德職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫完整
- 天津市河?xùn)|區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 工程防滲漏培訓(xùn)課件
- 黑龍江省哈爾濱市2024年數(shù)學(xué)八年級(jí)下冊(cè)期末經(jīng)典試題含解析
- 牛津3000核心詞匯表注釋加音標(biāo)1-4 完整版
- 高中英語以讀促寫教學(xué)策略與實(shí)踐研究課件
- 金屬表面處理中的冷噴涂技術(shù)
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量檢測(cè)化學(xué)試題(解析版)
- 黑龍江省齊齊哈爾市2023-2024學(xué)年高一上學(xué)期1月期末英語試題(含答案解析)
- 綜合素質(zhì)能力提升培訓(xùn)
評(píng)論
0/150
提交評(píng)論