BREW 应用开发中的一些原则

简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6509006 在基于BREW的移动增值业务开发中,遵循一定的开发原则有助于避免发生常见的错误,并可将测试、调试和重写源代码所需的时间量降至最低,提高系统的开发效率。
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6509006

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

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

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

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

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

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

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

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

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

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

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

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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wireless_com/archive/2010/07/18/5744082.aspx

目录
相关文章
|
23天前
|
缓存 编译器 测试技术
简化 CMake 多平台兼容性处理:高效开发的秘诀
简化 CMake 多平台兼容性处理:高效开发的秘诀
66 0
|
2月前
|
Rust 开发者
Rust中的模块与包管理:构建高效、可扩展的代码库
本文详细阐述了Rust编程语言中模块与包管理的概念、特点和使用方法。通过深入了解模块与包的概念、组织方式、导入导出机制以及Rust的Cargo工具,我们将学会如何构建高效、可扩展的代码库,提高代码的可读性、可维护性和可重用性。
|
项目管理
软件开发外包管理的“一二四”
本文讲的是软件开发外包管理的“一二四”,在信息化整个生命周期中,企业都越来越依赖于外部供应商,从需求分析到系统选型,再到项目实施乃至最后的运行维护,IT供应商始终与企业如影随形。
3114 0
|
测试技术 API 开发者
《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之93——BREW中的工具接口层
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
849 0
|
测试技术 C++ 设计模式
《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之94——BREW中的应用单元测试方法
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
791 0
|
测试技术 开发者 安全
《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之95——BREW中的典型上有测试TBT
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
738 0
|
Perl 开发者 API
《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之92——BREW中的Perl 接口使用
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
745 0
|
网络协议 C++
《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之88——BREW应用向其他平台的移植
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
895 0
|
算法 测试技术
《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之87——面向BREW平台的移植
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
781 0
《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之85——BREW中扩展类的开发
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
504 0