Brew编程初步

简介: 一般AP应用程序的生成包含以下几个重要步骤:1)加载AP,指定AP的创建函数;2)创建AP,并初始化;3)在事件处理函数中处理各种事件; 对应的几个重要函数如下:XXX_Load              ----应用程序加载函数;XXX_CreateInst...

一般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:
         return(TRUE);
      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来发送消息,该函数是同步函数。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
9月前
|
Linux 编译器 开发工具
【Linux环境基础开发工具】软件包管理器-yum
【Linux环境基础开发工具】软件包管理器-yum
139 0
|
Python
python编程:pip_install命令安装第三方库-9
python编程:pip_install命令安装第三方库-9
python编程:pip_install命令安装第三方库-9
|
Ubuntu 编译器 Linux
python入门开发:ubuntu下搭建python开发环境(vscode)
python入门开发:ubuntu下搭建python开发环境(vscode)
410 0
python入门开发:ubuntu下搭建python开发环境(vscode)
|
自然语言处理 Python
python编程:pip_install命令安装第三方库
python编程:pip_install命令安装第三方库
133 0
python编程:pip_install命令安装第三方库
|
数据安全/隐私保护 Ruby Shell
借助URLOS快速安装Ruby
环境需求 最低硬件配置:1核CPU,1G内存(1+1)提示:如果你的应用较多,而主机节点的硬件配置较低,建议在部署节点时开通虚拟虚拟内存; 生产环境建议使用2G或以上内存; 推荐安装系统:Ubuntu-16.
809 0
|
Shell Python
Python开发环境pipenv
使用pipenv(官方推荐) pipenv只是一个工具,我们用这个工具来创建虚拟环境;我们用pipenv来创建一个虚拟环境,这个虚拟环境是和项目绑定的,也就是我们每创建一个项目就要创建一个虚拟环境 安装: pip install pipenv ...
999 0
|
关系型数据库 MySQL 缓存
brew 基本使用方法
mac 终端程序管理工具 能让你更快速的安装你想要的工具。而不用考虑大量的依赖。 安装命令 给官网的一样也可以自己去官网查看Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.
1417 0
|
Java Android开发 Ruby
Appium+python自动化18-brew、carthage和appium-doctor
前言 本篇安装brew、carthage,解决启动appium时的报错问题,另外安装appium-doctor检查appium的环境 1.brew 2.carthage 3.appium-doctor   一、brew安装 1.brew是一个软件包管理工具,类似于centos下的yum或者ubuntu下的apt-get,类似于python之pip或java之maven,就是这么回事。
1448 0
|
Linux 数据库 Python
《 Python树莓派编程》—— 2.5 包管理器
本节书摘来自华章出版社《Python树莓派编程》一书中的第2章,第2.5节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1352 0
|
Ubuntu Ruby
Ubuntu系统安装Ruby的三种方法
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/42462517 Ubuntu系统安装Ruby的三种方法 作者:chszs,转载需注明。
870 0