天天看點

Brew程式設計初步

一般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來發送消息,該函數是同步函數。

上一篇: 泛型