瘋殼MTK智能穿戴入門篇-新增APP

MTK編程——新增APP

在MTK 系統中,所有的功能都是模塊化管理,並且大多數功能都有自己的功能宏,和對應的源代碼文件,我們把這種功能模塊稱之爲應用,簡稱APP(Application),比如鬧鐘、計算器、日曆等都是一個APP。在之前的例子中我們把自己的代碼寫在了IdleCommon.c 文件中,這個文件屬於待機功能模塊。很顯然我們把代碼寫在這個文件裏面是不科學的,接下來我們就添加自己的功能模塊,並建立自己的源文件和資源文件。

1、 首先我們對平臺做一些修改,在make\FengKe2502C_WT_11C_GPRS.mak文件中定義一個平臺代碼公共宏__PLATFORM_PUBLIC__,把我們對平臺修改的代碼全部用這個宏包含。代碼如下:

blob.png

2、 在plutommi\mmi文件夾下新建一個文件夾,命名爲CustomerApp,後面我們把自己開發的所有功能模塊都放在這個文件夾下面。並創建CustomerApp\HelloMTK\Src、CustomerApp\HelloMTK\Inc、CustomerApp\HelloMTK\Res目錄。在以上三個目錄中分別新建HelloMTK.c、HelloMTK.h、HelloMTK.res三個文件。如下圖所示:

blob.png

3、 在plutommi\mmi\Inc 目錄下新建MMI_features_switch_custom_app.h文件。在後面的開發中,這個文件專門用於添加我們自己的APP功能宏,把這個文件包含到plutommi\Customer\CustResource\FengKe2502C_WT_11C_MMI\MMI_features_switchFengKe2502C_WT_11C.h文件中,MMI_features_switchFengKe2502C_WT_11C.h代碼如下:

blob.png

 

4、 在MMI_features_switch_custom_app.h文件中定義宏開關,代碼如下:

 blob.png

在MMI_features.h文件末尾定義宏。代碼如下:

blob.png

 

5、 在make\plutommi\mmi_app\mmi_app.mak文件末尾加載源文件和頭文件,添加代碼如下:

blob.png

6、 在plutommi\mmi\Inc\Mmi_pluto_res_range_def.h文件末尾加載資源文件,添加代碼如下:

blob.png

7、 最後,把我們添加在 idle.res、MainMenuRes.res中的資源移到HelloMTK.res中,把idlecommon.c中的源碼移到HelloMTK.c文件中。代碼如下:

HelloMTK.c 文件

#include "MMI_features.h"

#if defined(__MMI_HELLO_MTK__)

#include "HelloMTK.h"

#include "GlobalResDef.h"

#include "Mmi_frm_gprot.h"

#include "Gui_themes.h"

 

void mmi_my_mtk_func_exit(void)

{

}

 

void mmi_my_mtk_func(void)

{

    mmi_frm_scrn_enter(GRP_ID_ROOT, SCR_ID_MY_MTK_FUNC, mmi_my_mtk_func_exit,mmi_my_mtk_func,MMI_FRM_FULL_SCRN);

 

    gui_set_text_color(UI_COLOR_WHITE);/*設置字符打印顏色*/

 

    gdi_image_draw_id(0, 0, IMG_ID_HELLO_MTK);/*顯示圖片*/

    

    gui_move_text_cursor(10, 15);/*設置字符打印座標*/

 

    gui_set_font(&MMI_medium_font);/*設置字符顯示的字體*/

    

    gui_print_text((UI_string_type)GetString(STR_ID_HELLO_MTK));/*打印字符*/

 

    /*刷新屏幕*/

    gui_BLT_double_buffer(0, 0, UI_DEVICE_WIDTH,UI_DEVICE_HEIGHT);

 

    /*註冊右軟鍵事件*/

    SetKeyHandler(mmi_frm_scrn_close_active_id, KEY_RSK, KEY_EVENT_UP);

}

 

void mmi_highlight_my_mtk(void)

{

    SetLeftSoftkeyFunction(mmi_my_mtk_func, KEY_EVENT_UP);

    SetKeyHandler(mmi_frm_scrn_close_active_id, KEY_RSK, KEY_EVENT_UP);

}

#endif

 

HelloMTK.h 文件

#ifndef __HELLOMTK_H__

#define __HELLOMTK_H__

 

#include "MMI_features.h"

 

#if defined(__MMI_HELLO_MTK__)

#include "mmi_rp_app_hellomtk_def.h"

 

extern void mmi_my_mtk_func_exit(void);

extern void mmi_my_mtk_func(void);

extern void mmi_highlight_my_mtk(void);

 

#endif

#endif /*__HELLOMTK_H__*/

 

HelloMTK.res 文件

#include "mmi_features.h"

#include "custresdef.h"

 

#if defined(__MMI_HELLO_MTK__)

 

<?xml version="1.0" encoding="UTF-8"?>

 

<APP id="APP_HELLOMTK">

 

    <!--Include Area-->

    <INCLUDE file="GlobalResDef.h,SettingResDef.h"/>

 

    <!-----------------------------------------------------String Resource Area----------------------------------------------------->

    <STRING id="STR_ID_HELLO_MTK">"Hello MTK !"</STRING>

 

    <!-----------------------------------------------------Image Resource Area------------------------------------------------------>

    <IMAGE id="IMG_ID_HELLO_MTK">CUST_IMG_PATH"\\\\MainLCD\\\\IdleScreen\\\\Wallpaper\\\\WALL01.jpg"</IMAGE>

 

    <!------------------------------------------------------Menu Resource Area------------------------------------------------------>

    /*添加菜單ID*/

    <MENU id="MENU_MY_MTK_ID" type="APP_MAIN" str="STR_ID_HELLO_MTK" img="IMG_GLOBAL_OK" highlight="mmi_highlight_my_mtk"/>

 

    <!------------------------------------------------------Timer Resource Area------------------------------------------------------>

 

 

    <!------------------------------------------------------SCREEN Resource---------------------------------------------------------->

    <SCREEN id="SCR_ID_MY_MTK_FUNC"/>

 

</APP>

#endif

最後依次執行make new,make  gen_modis,重新運行模擬器,運行結果雖然沒變,但我們把代碼模塊化了,方便以後的維護、移植。這只是一個很小的例子,如果是一個上萬行代碼的應用,這種方式就能體現出極大的優勢。另外audio.zip、images.zip中的資源文件我們也可以建立文件夾單獨列出來管理,請讀者自己嘗試,在後面的app實例開發中我們會採用這種方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章