一般AP應用程式的生成包含以下幾個重要步驟:
1)加載AP,指定AP的建立函數;
2)建立AP,并初始化;
3)在事件處理函數中處理各種事件;
對應的幾個重要函數如下:
XXX_Load ----應用程式加載函數;
XXX_CreateInstance ----應用程式建立函數;
XXX_HandleEvent ----應用程式事件處理函數;
// hello world中所改動的handle event替換代碼
AECHAR *buffer= (AECHAR*)L"Hello!I love Solis!";
AECHAR szText[] = {'H','e','l','l','o',' ','W','o', 'r', 'l', 'd', '\0'};
switch (eCode){
case EVT_APP_START:
IDISPLAY_DrawText(pMe->a.m_pIDisplay, // 顯示執行個體
AEE_FONT_BOLD, // 使用粗BOLD字型
szText, // 文本 - 通常來自資源
-1, // -1 = 使用全字元串長度。
0, // x 忽略 - IDF_ALIGN_CENTER
0, // y 忽略 - IDF_ALIGN_MIDDLE
NULL, // 不進行裁減 (No clipping)
IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE); //樣式
IDISPLAY_Update (pMe->a.m_pIDisplay);
return(TRUE);
case EVT_APP_STOP:
default:
break;
}
return(FALSE);
想在BREW終端上寫好穩定健壯的應用程式,調試資訊是必不可少的,因為唯有它,才能知道調試中系統崩潰前一刻,程式可能跑到哪一行。否則,隻能使用硬體調試器跟蹤,那将是更為麻煩。一般UI應用崩潰,都可以使用調試資訊找到應用崩潰問題。
DBGPRINTF調試資訊:
建議調試資訊盡可能做到5-10行代碼,至少有一行調試資訊列印出來,不要太多,但也不要太吝啬。
寫檔案調試資訊:
有些應用可能需要使用寫檔案的方式儲存日志,建議在關鍵地方寫日志,檔案到一定大小再清掉日志重新寫。太大的日志會影響系統執行速度。
調試資訊不應該放的地方:
1:視窗的函數中
2:清單的顯示函數中(XXXX_Adapter)
大部分應用在啟動開始就需要做記憶體檢查。如果記憶體不足,應用應該自動退出。
函數中盡量少使用大空間數組,而是使用指針配置設定記憶體空間;對大于20個位元組的結構或者數組,都該使用MALLOC來配置設定空間。如把原來聲明
AECHAR szTemp[10];
的過程改為
AECHAR *szTemp = NULL;
szTemp = MALLOC(10*sizeof(AECHAR));//檢查記憶體是否為空後再使用
FREEIF(szTemp);
//代碼風格
使用異步消息:
函數進行中盡量使用異步消息機制(ISHELL_PostEvent)來處理。如果函數調用的其它函數非常多次,也是有可能導緻堆棧溢出。這種處理的主要目的,就是把原來同步處理的過程,分成幾個異步消息處理,避免頻繁壓棧導緻棧空間溢出。
提示:
不要使用ISHELL_SendEvent來發送消息,該函數是同步函數。