天天看点

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来发送消息,该函数是同步函数。

上一篇: 泛型