文件名称:Qualcomm平台BREW开发技术文档
文件大小:12KB
文件格式:RAR
更新时间:2012-09-20 04:07:27
Qualcomm平台BREW开发技术文档
认识手机的的存储区间 11 手机系统的组成 11 NOR 11 RAM 12 NAND 12 什么是BootLoader? 12 BootLoader 12 引导系统启动 13 下载BIN文件 13 关机充电 13 如何下载BootLoader 13 应用BIN数据区存在哪里? 13 BIN文件数据区 13 一般文件数据保存在哪里? 13 EFS文件系统数据。 13 NAND的数据存储区 13 USB盘区 14 软件开发人员需要做的工作 14 开发人员的工作流程 14 安装开发环境 14 安装VC6++开发工具 14 安装BREW3.15的开发环境 15 安装BUIW开发包 15 设备文件 15 环境变量 16 安装ARM编译器 16 安装调试工具 16 安装其它编译工具 16 安装USB驱动程序 16 应用基本规范 16 应用名称规范 17 应用名称 17 现在的目录状况 17 提示 17 模拟器的dll 17 dll应该小写 17 提示 18 mif文件和资源文件名称 18 mif文件 18 提示 18 应用的目录规范 18 一级目录 18 二级目录 18 注意 19 应用的.c和.h文件 19 文件名称格式 19 文件名称长度 19 文件内容 19 项目文件 19 开发环境的目录宏定义和环境变量定义 20 开发环境 20 错误的开发方式 20 如何设置开发环境 21 应用中的测试窗口 22 功能测试窗口 22 不显示功能窗口 22 开始应用开发 22 新建应用 22 使用VC6++向导 22 手工修改项目文件 23 BID和MIF文件 23 创建BID文件 23 定义宏名称和CLSID值 23 模拟器mif文件的作用 24 创建应用的mif文件 24 创建扩展对象的mif文件 26 通过mif文件设置应用或者对象是否可见 26 编译mif文件 27 VC编译应用 27 必须去掉警告信息 27 区分调试环境和手机环境 27 代码检查 28 设置模拟器应用 28 设置设备文件 29 模拟器调试应用 30 应用开发基本问题(初学者问答) 31 为什么启动不了应用 31 为什么创建对象总是失败 31 程序架构基本规范 31 程序结构标准化的需要 31 主程序结构不合理 31 窗口参数结构传递不合理 32 应用释放所有窗口过程不合理 33 主程序数据结构 34 窗口独立数据结构 34 窗口间参数传递 34 程序结构图示 34 数据结构规范 36 数据结构名称定义 36 结构的名称 36 公共的数据结构 36 曾经的问题 36 数据结构中内存注意事项 37 中英文版本内存不一样。 37 大数据量时内存重复使用问题 37 代码编码规范(简要) 37 编码基本事项 37 示例 38 调试信息问题 40 DBGPRINTF调试信息 40 写文件调试信息 40 调试信息不应该放的地方 40 程序内存和堆栈 41 程序总的可用内存 41 总的内存 41 误区 41 内存需求空间检查 41 应用需求内存检查 41 接口需求内存检查 41 函数内栈空间问题和错误rex.c 841 42 著名的841错误 42 使用数组的情况 42 数组改用指针 42 使用异步消息 42 入参使用指针 42 参数错误例子 43 中英文版本资源规范 43 版本目录和资源ID 43 版本资源文件 43 资源ID 43 载入过程 43 加速载入过程 44 调试环境和手机环境的资源 44 应用直接替换 44 OEM层替换 44 编译到BIN文件 44 下载到手机目录 45 优缺点 45 资源不可采用的方式 45 错误的资源处理方式 45 资源载入失败(ISHELL_LoadResString)现象。 46 文件路径错误。 46 数据缓冲区内存分配太小。 46 系统内部解析错误。 47 程序CLSID规范 48 CLSID是什么? 48 CLSID的定义 48 CLSID和BID文件的位置 48 应用引用CLSID 49 CLSID错误的做法 49 窗口和事件处理 49 应用程序组成和事件处理 49 基本组成 49 窗口消息和事件 50 事件传递过程 50 创建根窗口(ROOTFORM) 50 创建根窗口 50 释放根窗口 51 释放根窗口和注意事项 51 建议 51 白屏问题 51 白屏闪现问题 51 解决白屏问题 51 错误的解决方式 51 创建窗口 52 窗口和根窗口的关系 52 创建窗口对象 52 释放窗口 53 窗口处理 53 设置窗口处理函数(XXX_HandleEvent)和关闭窗口处理函数(XXX_FormDelete) 53 把窗口(FORM)加入根窗口(ROOTFORM) 54 把窗口从根窗口(ROOTFORM)移出来 54 窗口函数处理规范 55 窗口事件处理示例 56 窗口的其它事件 57 控件和事件处理 58 控件列表 58 控件、容器和窗口关系 59 与WINDOWS同类控件的区别 60 控件的基本属性 60 创建控件和使用控件 60 列表控件(LIST)使用和示例 60 容器控件(IXYCONTAINER) 65 比例容器 67 VIEWPORT控件 68 网格控件(GRID) 68 按钮(非标准) 68 显示图片控件 70 静态文本控件 70 TEXT控件 71 滚动条控件 73 菜单控件 73 CheckBox控件 73 TAB控件 73 Radio控件 73 如何把CheckBox和Static控件捆绑一起 75 引用计数问题。 75 认识引用计数 75 为什么这么强调引用计数 75 哪些操作增加了引用计数 76 哪些窗口减少了引用计数 79 替换控件默认函数 81 如何让静态控件响应焦点事件 82 控件响应点击事件的前提 82 如何修改默认函数 82 处理事件 82 焦点和5向键顺序 83 控件的焦点 83 键盘操作规则 83 5向键顺序 83 如何创建一个自定义控件 84 应用窗口规范 84 正常窗口 84 大小 84 按钮位置 84 应用菜单 84 编辑菜单 84 进度条窗口 84 进度条窗口的关闭和任务取消 84 进度条标题 84 内容或者进度显示 84 窗口大小 85 进度条按钮大小 85 进度条窗口的错误现象 85 半屏幕窗口 85 位置 86 按钮位置 86 全屏窗口 86 哪些应用使用了全屏窗口 86 设置全屏窗口 86 全屏窗口规范 86 应用内部 86 协同应用 86 程序<关于>版本号管理规范 86 程序版权规范 86 版权 86 作者和修改内容 87 程序划屏处理规范 87 135度斜线线划屏 87 90度斜线线划屏(改变私密状态) 87 应用该如何处理收到的私密消息 87 程序异常处理 88 程序异常意识 88 内存没释放 88 内存不足的异常 88 用户强制关闭应用的异常(AVK_END) 88 资源数据错误的异常 88 用户数据错误的异常 89 使用goto处理异常 89 正确使用goto语句 89 不要滥用goto语句 89 异常的提示信息 89 准确标题信息 89 准确的内容提示 89 准确的图标 89 程序互斥规范 90 程序自动化编译规范 90 程序宏定义规范 90 应用内部的宏定义 90 应用间的宏定义 91 宏定义的名称 91 调试信息规范 91 日志文件 91 日志文件的目录和大小。 91 否写日志 91 正式版本 91 QDXM调试信息 91 不要频繁打印调试信息 91 使用中文 91 内容准确不罗嗦 92 全局变量和__inline函数 92 全局变量 92 慎用全局变量 92 命名全局变量 92 修改全局变量 92 __inline函数 92 优缺点 92 哪些函数建议使用__inline 92 大数据量处理CPU时间限制 92 为什么不能使用FOR、WHILE连续处理大数据量 93 CPU时间限制 93 提示 93 使用ISHELL_POSTEVENT消息处理。 93 消息机制 93 处理消息位置 93 消息丢失问题 93 性能问题 93 休眠状态 93 使用ISHELL_SETTIMER 93 休眠挂起状态 94 解决系统休眠 94 取消定时器 94 定时器间隔周期 94 周期和暴力测试问题 94 ISHELL_Resume函数处理重复执行的过程 94 效率问题 94 休眠问题 94 取消回调 94 暴力测试问题 95 如何使用 95 带窗口的接口或对象规范 95 单实例对象 95 单实例对象优缺点 96 优点 96 缺点 96 多实例对象 97 多实例对象优缺点 97 数据安全 97 内存需求较大 97 应用程序更为复杂 97 更多的异常处理 97 释放更为麻烦 98 多实例对象的标准规范: 98 标准创建接口 98 标准Release接口 98 能被动态移出(_REMOVE) 98 能动态移出所有窗口 98 不能只移出一个顶部窗口 98 多窗口Release 98 对象内部有多个窗口 98 对象中还创建其它对象 98 内存 99 应用检查内存 99 对象需要检查内存 99 对象示例 99 应用程序和对象创建前 100 应用创建了对象后 100 把所有窗口都释放 100 先释放对象 100 释放函数示例 101 释放函数该处理过程 101 对象的数据 102 误区 102 ARM编译项 102 如何在把应用编译入手机BIN文件 102 把应用放到编译目录下 102 在OEMModTableExt.c文件中增加 102 在incpath.min文件中增加 102 在dmss_qsc60x0.mak文件中增加: 102 在dmss_objects.min文件中增加: 102 在dmss_rules.min中增加, 103 如何修改min文件 103 min文件的意义 103 增加C文件 103 注意事项 103 nand和nor的区别 103 设置文件系统区 103 性能优化 103 性能优化的需求 103 显示过程的优化 103 资源载入的优化 103 开发注意事项 104 如何在模拟上调试唤醒挂起 104 如何让系统不进入休眠状态 104 获取当前系统的背光值 104 取消背光 104 图示 104 UI界面应用和底层应用交互的过程 105 向底层注册回调函数 105 开始向底层写入数据 105 底层调用回调函数 105 更新数据和相关模块数据 105 从底层取消 105 图示 105 ClearCase上应该保存哪些文件 106 应用的源代码 106 应用完整的资源文件 106 应用的批处理文件 107 应用配置文件 107 完整的测试代码 107 误区 107 RELEASEIF和IWIDGET_Release的异同 107 共同点 107 区别 107 ModelListener的取消问题。 107 使用监听对象(ModelListener) 107 不取消监听对象可能产生的结果 107 注意 108 BPOINT1和BPOINT 3的错误。 108 内存泄露(BPOINT1) 108 内存重复释放(BPOINT3) 108 内存越界 109 内存问题的建议 109 采取的措施 109 OEM层不应该处理UI的事情 109 文件操作注意 109 不能同时对一个文件进行操作 109 树型文件夹问题 109 系统USB文件目录 110 T卡文件目录 110 编译环境下不应该有垃圾文件 110 mif文件中的项意义 110 提交版本前测试项 110 应用启动测试 111 干净环境的启动测试 111 丢失配置文件的启动测试 111 安全模式下的启动 111 编译应用和功能测试 111 提交版本前 111 自动化编译问题 111 修改注意的问题 112 启动速度测试 112 空记录启动的时间 112 满记录启动的时间 112 大数据量操作测试 113 载入数据需要的时间 113 删除所有数据需要的时间 113 满数据量下所有可能进行的操作 113 系统极度繁忙测试(暴力测试) 113 应用的暴力测试(单个应用) 113 系统繁忙的暴力测试(多个应用) 113 暴力测试的提示(更高的品质) 114 应用互斥测试 114 同时对T卡的写文件 114 同时对数据库的操作 114 占用内存测试(启动内存和最大内存) 114 内存稳定情况 114 空记录启动后占用的内存 114 满记录后启动占用的内存 114 所有窗口打开后占用的内存 114 使用过程是否有内存泄露 115 是否有BPOINT1和BPOINT3产生内存问题 115 操作响应速度 115 操作响应的速度 115 对数据库的操作响应速度(批删除、批增加) 115 对底层任务处理的响应速度 115 批删除文件,COPY文件的响应速度 115 系统时间测试 115 当前时间下正常情况 115 网络更换(如启动C网同步时间) 115 修改为1980年前情况 115 修改为2050年后的情况 115 时区改边的情况 116 待机测试 116 正常待机 116 强制待机 116 待机后来电和短信 116 挂起和唤醒测试 116 正常挂起和唤醒后 116 T卡插拔测试 116 是否产生系统崩溃 116 是否产生内存泄露等 116 是否文件丢失 116 是否应用执行失败 116 系统极度繁忙的时候是否更大几率产生问题 117 断网测试 117 强制关闭网络的测试 117 反复打开关闭应用的情况 117 新建默认项测试 117 默认标题 117 默认日期时间 117