MTK資源模塊添加流程_第1頁
MTK資源模塊添加流程_第2頁
MTK資源模塊添加流程_第3頁
MTK資源模塊添加流程_第4頁
MTK資源模塊添加流程_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、主要內容MTK手機MMI程序的基礎知識1、MMI程序模塊的添加2、資源的添加3、字符串資源4、菜單的添加本節課所要達到的目的: 在工具箱菜單下顯示一個我們自己定義的菜單程序模塊的添加(1)1、目錄:MTK6225_08Aplutommimmi2、在文件夾mmi中新建文件夾,取名為FirstApp3、在文件夾FirstApp下新建文件夾: FirstAppInc /存放程序的頭文件(.h文件) FirstAppSrc /存放程序的源文件(.c文件)4、在文件夾FirstAppInc中新建4個頭文件: FirstAppDefs.h /程序模塊資源ID FirstAppProt.h /函數聲明,只提

2、供給本程序代碼調用 FirstAppGprot.h /函數聲明,提供給外部程序代碼調用 FirstAppTypes.h /一般書寫自定義類型5、在文件夾FirstAppSrc中新建1個源文件: FirstAppSrc.c /實現程序功能的代碼6、目錄:MTK6225_08Amakeplutommimmi_app,有3個編譯配置文件 mmi_app.lis( .lis文件) /指明MMI所要編譯的具體的源文件 mmi_app.inc(.inc文件) /指明源文件所需頭文件的目錄 mmi_app.pth(.pth文件)/指明所要編譯的源文件目錄 現在依次打開這三個文件,將我們新增文件添加到編譯配置

3、文件: mmi_app.lis末尾: plutommimmiFirstAppFirstAppSrcFirstAppSrc.c mmi_app.inc末尾:plutommimmiFirstAppFirstAppInc mmi_app.pth末尾:plutommimmiFirstAppFirstAppSrc 程序模塊的添加(2)7、為新增模塊增加編譯開關 強烈推薦:開發人員為自己的模塊增加一個宏開關,這樣可以在不需要自己的模塊的時候,可以關閉它,減少編譯后Bin文件的大小,節省空間。 開關添加有兩種方式: 1)打開MTK6225_08AmakeOption.mak,在末尾 添加:COM_DEFS

4、+= _MMI_FIRSTAPP_ 2)打MTK6225_08AplutommiCustomerCustResource PLUTO_MMIMMI_features_switchPLUTO.h ,在末 尾添加宏:#define _MMI_FIRSTAPP_ 一般情況下,我們選擇第一種方式為程序添加開關 現在打開 MTK6225_08AmakeOption.mak,末尾處添加: COM_DEFS += _MMI_FIRSTAPP_ (注意:兩邊均是兩個下劃線,中間是一個下劃線)資源的添加(1)8、為新增程序FirstApp添加資源相關文件,為后續添加資源做準備 (1)什么是資源? 在MTK平臺中

5、常見的資源包括字符串、圖像、菜單、字庫、聲音、主 題等,在開發過程中,最受關注的有3種:字符串、圖像和菜單 (2)資源文件的目錄? MTK6225_08AplutommiCustomercustResourcePLUTO_MMIRes_MMI (3)對我們FristApp程序來說,添加資源文件的具體步驟? 第1步:資源目錄(上面標紅的)下新建.c文件:Res_FirstApp.c 第2步:用Source Insight加載新增文件并打開Res_FirstApp.c,添加如下 代碼 #include MMI_features.h #include CustomCfg.h #ifdef FIRST

6、_PASS #include BuildCfg.h #endif #include ComposeRingToneDefs.h #include FirstAppDefs.h #ifdef DEVELOPER_BUILD_FIRST_PASS #include PopulateRes.h void PopulateFirstAppRes(void) #endif資源的添加(2) 第3步:用記事本打開MTK6225_08AplutommiCustomerReGeneratorMakefile,添加代碼: -I ././MMI/FirstApp/FirstAppInc (說明:Makefile文件

7、用于資源裝載的預編譯,添加我們的頭文件目錄,目錄包括 了與資源文件定義有關的FirstAppDefs.h) 第4步:修改PopulateRes.c文件,該文件作用是調取各模塊資源加載函數 1)在Source Insight中打開PopulateRes.c文件,合適位置(暫定:PopulateCCARes) 添加如下代碼: #ifdef _MMI_FIRSTAPP_ extern void PopulateFirstAppRes(void); /聲明#endif 2)找到函數void PopulateResData(void),添加如下代碼: /1649行 #ifdef _MMI_FIRSTAP

8、P_PopulateFirstAppRes(); /調用#endif 至此,我們已經為新增的程序模塊做好了基本的資源框架,接下來就是添加具體資源, 在添加前還需要做些資源ID定義的規定,下面接著看)資源的添加(3) 第5步:打開文件MTK6225_08AplutommimmiincMMIDataType.h,該文件用基礎 ID的統一定義和包裝 1)在Source Insight中打開MMIDataType.h,添加如下代碼: /802 #ifdef _MMI_FIRSTAPP_RESOURCE_BASE_RANGE(FIRSTAPP, 50), #endif 2)按照源代碼格式,添加如下宏定義

9、: /1114行 #ifdef _MMI_FIRSTAPP_ #define FIRSTAPP_BASE (U16)RESOURCE_BASE_FIRSTAPP) #define FIRSTAPP FIRSTAPP_BASE #define FIRSTAPP_BASE_MAX (U16)RESOURCE_BASE_FIRSTAPP_END) RESOURCE_BASE_TABLE_ITEM(FIRSTAPP) #endif 第6步:打開文件FirstAppDefs.h,添加如下代碼: #ifndef _FIRSTAPPDEFS_H #define _FIRSTAPPDEFS_H #includ

10、e MMI_features.h #include PixtelDataTypes.h typedef enum SCR_FIRSTAPP_MAIN = FIRSTAPP_BASE + 1 /定義我們程序的屏幕ID SCREENID_LIST_FIRSTAPP; #endif 資源的添加(4) 第7步:打開文件FirstAppSrc.c,添加我們之前的代碼,并修改屏幕ID為剛定義的屏幕ID SCR_FIRSTAPP_MAIN,代碼如下: #include MMI_features.h#include PixtelDataTypes.h#include Unicodexdcl.h#include

11、 gdi_include.h#include wgui.h#include gui.h#include Globaldefs.h#include CustDataRes.h#include wgui_categories.h#include wgui_categories_util.h#include wgui_softkeys.h#include HistoryGprot.h#include OrganizerDef.h#include FirstAppDefs.h#include FirstAppTypes.h#include FirstAppProt.h#include FirstApp

12、Gprot.hvoid EntryFirstAppScreen(void) EntryNewScreen(SCR_FIRSTAPP_MAIN,NULL,EntryFirstAppScreen,NULL); entry_full_screen(); clear_screen(); gui_set_text_color(gui_color(255,0,0); gui_move_text_cursor(58,120); gui_print_text(LHello,MTK); gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1)

13、; SetKeyHandler(GoBackHistory,KEY_RSK,KEY_EVENT_UP);字符串添加(1) 9、為新增程序FirstApp添加字符串資源 (1)為什么要使用字符串資源? 字符串資源主要是為了讓程序轉換成其他語言或者要實現多過語言時更加方便而設置的 (2)字符串資源存儲的文件? MTK6225_08AplutommiCustomerCustResourcePLUTO_MMIref_list.txt (3)添加字符串資源的具體步驟是? 第1步:打開文件ref_list.txt,按如下格式添加代碼: STR_FIRSTAPPundefined20FirstAppFirs

14、tApp第一個程序第一個程序 STR_FIRSTAPP_HELLOundefined20HelloMTKHelloMTK你好,MTK你好,MTK 注意事項:用Tab鍵打開空格,嚴格按照格式 第2步:確定字符串ID,在文件FirstAppDefs.h中,添加如下代碼: typedef enum STR_FIRSTAPP = FIRSTAPP_BASE + 1, STR_FIRSTAPP_HELLO, STR_FIRSTAPP_TOTAL STR_ID_FIRSTAPP_ENUM; 字符串添加(2) 第3步:字符串裝載,打開文件Res_FirstApp.c,添加如下代碼: ADD_APPLICAT

15、ION_STRING2(STR_FIRSTAPP,FirstApp1,Name of FirstApp); ADD_APPLICATION_STRING2(STR_FIRSTAPP_HELLO,HelloMTK1,A simple string); 第4步:修改FirstAppSrc.c中的函數,使用系統API讀取字符串ID void EntryFirstAppScreen(void) EntryNewScreen(SCR_FIRSTAPP_MAIN,NULL,EntryFirstAppScreen,NULL); entry_full_screen(); clear_screen(); gui

16、_set_text_color(gui_color(255,0,0); gui_move_text_cursor(58,120); /gui_print_text(LHello,MTK); gui_print_text(UI_string_type)GetString(STR_FIRSTAPP_HELLO); gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1); SetKeyHandler(GoBackHistory,KEY_RSK,KEY_EVENT_UP); 至此,字符串資源,我們添加完畢,下面添加我們的菜單:菜單

17、添加(1) 10、為新增程序FirstApp添加菜單,實現Organizer下面有FirstApp菜單項 (1)什么是菜單? 這個顯而易見,我就不多說啊 (2)具體添加步驟 第1步:在Source Insight中打開文件GlobalMenuItems.h,添加代碼:/2248 #ifdef _MMI_FIRSTAPP_ ORGANIZER_FIRSTAPP_MENU, #endif 第2步:打開文件Res_MainMenu.h,添加如下代碼: /200 /246 #ifdef _MMI_FIRSTAPP_ ORG_ENUM_FIRSTAPP, #endif 第3步:還是該文件Res_Main

18、Menu.h,添加如下代碼: /637 /1912 #if defined (_MMI_FIRSTAPP_) ORGANIZER_FIRSTAPP_MENU, #endif 菜單添加(2) 第4步:在文件Res_FirstApp.c中,添加如下代碼: ADD_APPLICATION_MENUITEM( ORGANIZER_FIRSTAPP_MENU, /菜單ID MAIN_MENU_ORGANIZER_MENUID, /父菜單ID 0, /因為沒有子菜單,故設置為0 SHOW, /顯示 SHORTCUTABLE, /轉移屬性 DISP_LIST, /列表顯示 STR_FIRSTAPP, /菜單字符串ID 0 /沒有圖標 ); 至此,添加菜單的工作,我們就該完成了,接下來。菜單添加(2)(O(_)O哈哈)接下來,我們重點講解宏ADD_APPLICATION_MENUITEM的原理和使用: 宏ADD_APPLICATION_MENUITEM用來裝載菜單資源,其參數解釋如下: 第1個參數: 新加菜單ID 第2個參數:父菜單ID 第3個參數:此菜單的子菜單的總個數 第4個和第4+X個參數:分別為子菜單的ID 第4+X+1個參數:隱

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論