《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 子集〔如果已提供),而不要使用标准库函数

目录
相关文章
|
2天前
|
SpringCloudAlibaba 负载均衡 Dubbo
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?
本文对比分析了SpringCloudAlibaba框架下Feign与Dubbo的服务调用性能及差异。Feign基于HTTP协议,使用简单,适合轻量级微服务架构;Dubbo采用RPC通信,性能更优,支持丰富的服务治理功能。通过实际测试,Dubbo在调用性能、负载均衡和服务发现方面表现更出色。两者各有适用场景,可根据项目需求灵活选择。
339 123
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?
|
1天前
|
Java 数据库 数据安全/隐私保护
Spring 微服务和多租户:处理多个客户端
本文介绍了如何在 Spring Boot 微服务架构中实现多租户。多租户允许单个应用实例为多个客户提供独立服务,尤其适用于 SaaS 应用。文章探讨了多租户的类型、优势与挑战,并详细说明了如何通过 Spring Boot 的灵活配置实现租户隔离、动态租户管理及数据源路由,同时确保数据安全与系统可扩展性。结合微服务的优势,开发者可以构建高效、可维护的多租户系统。
179 127
|
5天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
436 106
|
1天前
|
Web App开发 前端开发 API
在折叠屏应用中,如何处理不同屏幕尺寸和设备类型的样式兼容性?
在折叠屏应用中,如何处理不同屏幕尺寸和设备类型的样式兼容性?
212 124
|
5天前
|
JSON fastjson Java
FastJson 完全学习指南(初学者从零入门)
摘要:本文是FastJson的入门学习指南,主要内容包括: JSON基础:介绍JSON格式特点、键值对规则、数组和对象格式,以及嵌套结构的访问方式。FastJson是阿里巴巴开源的高性能JSON解析库,具有速度快、功能全、使用简单等优势,并介绍如何引入依赖,如何替换Springboot默认的JackJson。 核心API: 序列化:将Java对象转换为JSON字符串,演示对象、List和Map的序列化方法; 反序列化:将JSON字符串转回Java对象,展示基本对象转换方法;
|
6天前
|
缓存 JavaScript 前端开发
JavaScript 的三种引入方法详解
在网页开发中,JavaScript 可通过内联、内部脚本和外部脚本三种方式引入 HTML 文件,各具适用场景。本文详解其用法并附完整示例代码,帮助开发者根据项目需求选择合适的方式,提升代码维护性与开发效率。
211 110