偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MTK開發(fā)之添加資源與菜單學(xué)習(xí)筆記

移動開發(fā)
MTK開發(fā)之添加資源與菜單學(xué)習(xí)筆記是本文要介紹的內(nèi)容,主要是來了解MTK開發(fā)中的一些操作,具體內(nèi)容來看本文詳解。

MTK開發(fā)之添加資源與菜單學(xué)習(xí)筆記是本文要介紹的內(nèi)容,主要是來了解MTK開發(fā)中的一些操作,本文是小編的網(wǎng)上看到的一篇文章,于此,與大家分享一下。

大家跟著我這個流程做,就能從整體上清楚的理清添加資源與菜單的流程,知道為什么要這樣做。下面是在6235平臺下進(jìn)行的,其他平臺可能代碼名稱有不同,具體添加方式參考同文件中其他代碼的寫法就好了,其實(shí)MTK的代碼需要改動的很少,就是在里面添添,不知道怎么添的時候就參考內(nèi)部代碼。

***步:添加程序文件:先假設(shè)自己寫的程序的名字為MyApp

需要添加有:MyAppProt.h (用來存放本程序的所有函數(shù)申明,此頭文件只被本程序的源文件所加載)

MyAppDefs.h  (用來存放本程序的一些普通的資源ID定義)

MyAppTypes.h (用來存放本程序所需的類型,結(jié)構(gòu),常量定義)

MyAppGprot.h (也是用來存放函數(shù)申明的,但是此頭文件是被別的程序所加載的,也就是說此文件所申明的都是對外接口)

當(dāng)然還有源文件MyAppSrc.c  

注:以上這些頭文件一般放在plutommi/MMI/MyApp/MyAppInc下面,這樣方便代碼管理

第二步:將文件加入項(xiàng)目

在make/plutommi/下面的三個文件需要修改

1、plutommilis  所需編譯的源文件

2、plutommiinc  指明頭文件所在目錄

3、plutommipth  指明源文件所在目錄

第三步:程序開關(guān):

MMI的編譯開關(guān)一般都放在plutommi/customer/custResource/PLUTO_MMI/MMI_features_switchPLUTO.h中

如下添加:#define _MMI_MYAPP_   (_ON_)

當(dāng)添加了如上的代碼后,在其他文件中的#ifdef _MMI_MYAPP_

  1. .............  
  2. .............  
  3. #endif 

所包圍的代碼就會被編譯。

第四步:為資源添加ID

做完以上三步后,接下來就是添加ID了,資源有很多種,所以添加ID的方式有一些不同

(1)添加基礎(chǔ)ID。

在加ID之前先得為本程序添加一個基礎(chǔ)ID,因?yàn)樗谐绦虻馁Y源ID都是各自為政定義各自的,但這些ID又不能沖突,(因?yàn)槊糠N類型的資源ID都是在一個取值空間),所以我們需要基礎(chǔ)ID將每個程序的ID取值隔離開來,基礎(chǔ)ID為某類資源定義了一個范圍,統(tǒng)一定義在plutommi/MMI/INC/MMIDataType.h中

具體就看兩個宏定義

  1. /*  
  2.  * Use this macro two to declare resource id range between RESOURCE_BASE_ENUM_BEGIN()  
  3.  * and RESOURCE_BASE_ENUM_END()  
  4.  */  
  5. #define RESOURCE_BASE_RANGE(ap_id, count)/  
  6. ap_id,   /  
  7. GET_RESOURCE_BASE(ap_id) = ap_id,/  
  8. GET_RESOURCE_MAX(ap_id) = ap_id + count - 1  
  9.  
  10. /*  
  11.  * Use these tow macro to get the resource base and resource end  
  12.  */  
  13. #define GET_RESOURCE_BASE(id)   RESOURCE_BASE_##id  
  14. #define GET_RESOURCE_MAX(id)RESOURCE_BASE_##id##_END 

這樣首先通過語句 RESOURCE_BASE_RANGE(ap_id, count) 就可以設(shè)定資源 ID的范圍,

  1. 同時GET_RESOURCE_BASE(ap_id)把a(bǔ)p_id付給RESOURCE_BASE_##id, 

***再通過類似的語句

  1. #define MYAPP_BASE     
  2. ((U16)GET_RESOURCE_BASE(MYAPP)) 

把RESOURCE_BASE_##id付給了MYAPP_BASE。

再啰嗦下,也就添加兩類代碼,一類先是確定資源ID范圍,然后一類就是把范圍地址賦值給MYAPP_BASE 這類ID。

(2)添加屏幕ID(即屏幕序號)

上面添加完基礎(chǔ)ID后,我們就可以利用基礎(chǔ)ID來添加我們的屏幕ID了,在MYAPPDefs.h中定義

  1. typedef enum{  
  2. SCR_MYAPP-MAIN=MYAPP_BASE+1,  
  3. }SCREENID_LIST_MYAPP 

(3)添加字串ID

也是利用基礎(chǔ)ID,在MYAPPDefs.h中定義

  1. typedef enum  
  2. {  
  3. STR_MYAPP_HELLO = MYAPP_BASE + 1,  
  4. }STRINGID_LIST_MYAPP; 

(4)添加圖片ID

同上

(5)添加菜單項(xiàng)ID

這個相對特殊,它在plutommi/MMI/inc/GlobalMenuItems.h中定義

第五步:資源的加載

上面四步把ID和資源都定義了,現(xiàn)在我們就需要把它們加載使之關(guān)聯(lián)起來。

(1)主菜單及一級菜單的加載

需要在Res_MainMenu.c修改添加,此處很容易出錯,因?yàn)槎嗵幬恢萌菀滋礤e,首先需要在文件前部定義枚舉變量,然后在void PopulateMainMenuRes(void)中調(diào)用ADD_APPLICATION_MENUITEM這個函數(shù)。

(2)其他菜單項(xiàng)的加載,字符串加載,圖片加載

都在plutommi/customer/custresource/pluto_mmi/res_mmi/Res_MyApp.c中的populateMyAppRes函數(shù)里加載。

注:populateMyAppRes這個函數(shù)被plutommi/MMI/Resource/populateRes.c下的populateResData()調(diào)用,而populateResDate()被mtk_resgenerator.exe執(zhí)行時呼叫。這就是資源裝載預(yù)編譯順序。

第六步:交互

在平臺中,每個菜單項(xiàng)的行為都由菜單項(xiàng)自己控制,系統(tǒng)所做的就是在高亮此項(xiàng)時發(fā)個通知過來。所以,每個菜單項(xiàng)都要在開機(jī)時通知系統(tǒng)由哪個函數(shù)來接收通知,SetHiliteHandler就是用來做此事的,其***個參數(shù)就是菜單項(xiàng)的ID,第二個參數(shù)就是接收通知的函數(shù)指針。我們通常為每個程序建立一個初始化函數(shù),此函數(shù)只在開機(jī)時運(yùn)行一次,比如mmi_myapp_init,在此函數(shù)中我們會將本程序所有菜單項(xiàng)都注冊一遍。mmi_myapp_init通常在MMITask.c 中被調(diào)用。

  1. 如:#ifdef _MMI_MYAPP_  
  2.  #include "MyAppGprot.h"   
  3.  #endif  
  4. void InitAllApplication()  
  5.    {  
  6. #ifdef _MMI_MYAPP_  
  7.  mmi_myapp_init();  
  8. #endif  
  9.    } 

以下在myappsrc.c中實(shí)現(xiàn)

  1. void mmi_myapp_init(void)  
  2. {  
  3. SetHiliteHandler(MENU_ID_MYAPP_PRINT, mmi_myapp_hilite_print);  
  4. }  
  5. void mmi_myapp_hilite_print(void)  
  6. {  
  7.  SetLeftSoftkeyFunction(mmi_myapp_print_entry,KEY_EVENT_UP);  
  8. }  
  9. void mmi_myapp_print_entry(void)  
  10. {  
  11. .................  

通過以上的6個步驟,基本上就實(shí)現(xiàn)了各種資源的定義和加載。如果還有不懂的可以跟我博客交流。

小結(jié):MTK開發(fā)之添加資源與菜單學(xué)習(xí)筆記的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!

責(zé)任編輯:zhaolei 來源: CSDN博客
相關(guān)推薦

2011-08-30 16:55:31

MTK開發(fā)編譯

2011-08-31 10:01:44

MTK開發(fā)環(huán)境

2011-08-31 10:51:39

MTKAndroid 開發(fā)

2011-08-01 16:50:28

Xcode 動態(tài) View

2011-08-01 17:01:02

Xcode WindowBase View

2011-08-30 16:02:10

MTK開發(fā)環(huán)境

2011-08-31 10:20:26

MTK驅(qū)動開發(fā)

2009-08-14 17:43:20

C#Windows應(yīng)用

2011-03-08 16:30:30

Proftpd命令Proftpd配置

2010-07-29 13:18:45

Flex右鍵菜單

2011-08-31 10:37:06

MTK開發(fā)入門

2011-08-30 18:01:20

2012-05-09 10:03:08

JavaMEJava

2011-08-03 09:44:18

IOS開發(fā) UITextFiel UITableVie

2011-08-31 10:12:26

MTK手機(jī)平臺

2011-09-13 15:26:25

MTK環(huán)境搭建

2011-03-08 16:30:24

Proftpd

2011-03-08 16:30:40

Proftpd

2011-08-15 10:06:22

iPhone開發(fā)nib 文件

2011-08-09 17:29:29

iPhone文件屏幕
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號