《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之62---BREW 应用开发中的一些原则

简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/5744082

在基于BREW的移动增值业务开发中,遵循一定的开发原则有助于避免发生常见的错误,并可将测试、调试和重写源代码所需的时间量降至最低,提高系统的开发效率。通过研究和执行这些指导原则,可以将从Windows转换至ARM框架的时间总量降至最低,并使应用程序尽可能在移动设备上正常运行。这些开发原则如下所示:

(1)执行NULL指针检查。创建BREW接口实例时必须检查NULL指针,如果指针有误,则该接口将无法使用。检查已分配内存所传递和返回的所有指针,以确保其有效性。无效指针应使用异常处理机制进行处理。

(2)避免堆栈溢出。不要在函数内将大数组或变量声明为本地变量,因为AEE环境可用的堆栈大小十分有限。如果需要大量内存(例如,大于256字节),则使用动态内存分配操作符,例如MALLQCIheap

(3)不要编写紧凑循环。使用紧凑循环会导致某些目标手机会自动重启设备。因此,不要编写需要花费大量时间处理应用程序中单个事件的紧凑循环,而是采用事件通知或者回调机制。这样可以防止设备重置,在收到事件时,应用程序将进行所需处理,然后从该事件返回,使得其它事件可以发送到该应用程序。

(4)力求应用程序与设备无关。要确保应用程序独立于内存大小、键盘、屏幕大小和色深而能够在任何目标设备上执行,请使用ISHELL GetDevicelnfo从目标设备获取说明。使用该结果指定显示、按键和多媒体等参数,而不要将这些参数直接编码在应用程序中。

(5)使用资源文章。使用资源存储特定语言的字符串、对话框和位图,这有助于应用程序本地化和国际化,即方便第从一种语言的目标设备移植至另一种语言的目标设备,而不要将这些类型的信息直接编码在应用程序中。

(6)清除内存。由于目标移动设备上的可用内存十分有限,因此必须释放未使用的内存。在以下两种情况下需释放内存:一是必须释放所创建对象的所有实例。二是在应用程序终止时,必须释放所有动态内存(所有已分配内存),而且在不需要内存时可以将其及时释放。

(7)不要使用全局或静态变量。BREW结构不支持全局或静态变量(4.X以后的版本才开始支持全局或静态变量的使用),因为动态加载的应用程序无法处理这些数据类型。此外,使用全局或静态变量可能导致连接器出现目标错误,因而建议始终将持久数据存储在应用的主结构中。

(8)定义结构时不要初始化结构。对于ARM编译器,定义并初始化的结构被视为静态数据。

(9)不要在条件语句内分配变量。在使用ARM编译器应避免此类问题,不要在条件语句中编写带有赋值语句代码。

(10)不要使用原始浮点运算(4.X以后的版本才开始支持原始浮点运算的使用)。与上述“不要使用全局变量”相同,此处包括类型转换,建议使用助手函数中提供的浮点函数调用。

(11)要尽量使用BREW提供的标准库函数。由于目标设备上的RAM限制,需要将编译后的代码大小控制到最小,因此应使用标准C库函数的BREW 子集〔如果已提供),而不要使用标准库函数

目录
相关文章
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
598 215
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
236 138
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
835 62
|
7天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1230 157
|
7天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
516 109