1、BREW 学习之路-解析BREW 学习过程(转贴) BREW 学习之路-解析BREW 学习过程 东方欲晓-毛晓冬 2005-10-10 首先声明,我不是BREW 高手,我只是一位普通的BR EW OEM 工作者.只是在自己不断学习BREW 的过程中, 总结了一些学习BREW 的方法,或者说是要学好BREW 应该 一步步怎么走,循序渐进的看些什么,学些什么,现在将 这些心得体会和大家分享,交流。 (注,以下区分OEM 和Developer,OEM 是指手机OEM 厂 商作BREW Porting 的,Developer 是指作BREW 应用开 发的,即CP.每一步都分析
2、对于这两种人的必要性) 1. 对BREW 有最基本,最浅显的了解(通过网站关于 BREW 的新闻,介绍,对BREW 有个非技术角度的总体 概念,知道他出现的用途是什么,在无线移动产业中 处于什么位置,有什么优势等等,BREW 可以用来作些 什么好玩的东东),激发对BREW 的初步热情. ->该步骤同时适合OEM,Developer ->参考资料: 1. 请baidu 上进行BREW 关键字搜索 2. BREW Overview.pdf 2. 进行BREW 最基本的技术层次的学习(对BREW 最 基本的事件驱动机制的了解,如何创建接口,clsid 是什么?如何一步步用
3、vc 开发一个动态应用,每一步 骤的作用,resource,mif 工具的使用,helloworld 程序如何被创建,如何进行事件处理的大致流程,如 何将BREW 动态应用转变为mod 文件下载到手 机.....等等等等,这些基本的内容可以通过一 般的BREW 文档学习到,qualcomm 网站上有一篇很好 的brew 基本知识学习文档,study brew from sc ratch,另外网上有两本关于BREW 的英文ebook,也 可作为入门资料,有一本BREW 手机游戏开发的中文书 也可以作为该阶段的入门资料) ->该步骤同时适合OEM,Developer ->参考
4、资料: 1. brew_app_from_scratch.pdf 2. BREW Programming guide(海信).pdf 3. starting_brew.pdf 4. 深入BREW 游戏开发 5. Apress.Developing.Software.for.the.QUAL COMM.BREW.Platform.eBook-LiB.rar 6. Wordware.Wireless.Game.Development.In.C. Cpp.With.BREW.eBook-LiB.chm 3. 深入理解BREW 接口机制:BREW 采用面向对象的 接口体系结构对
5、外提供服务.理解接口机制将有助 于理解调用所谓的接口API(实际上是宏映射)是如 何最终调用到AEE 层的真正函数,定义一个接口究竟 底层作了什么,BREW 中的接口究竟是如何创建的等等 (该机制非常非常好的学习文档是aee.h 和example 下的mediaplayer,aee.h 里的宏,就是接口机制的实 现手段,mediaplayer 更是将brew 的接口机制发挥的 淋漓尽致) ->该步骤适合有兴趣的Developer,因为并非所有的D eveloper 需要知道接口机制,将IXXX_XXX 理解为真正的 函数,熟练的运用他们,而不知道他们的底层实现机制也 不会
6、妨害Developer 的开发,但是对于需要开发Extenti on Interface 的Developer,理解BREW 接口机制是必须 的. 该步骤对于OEM 而言是必须的.因为如果不理解B REW 接口机制的话,BREW OEM 所作的Porting 或者Modi fy 是盲目的,因为你根本不明白上层调用所谓的接口函 数最终是如何映射到底层的,这样你无法清晰地发现,问 题究竟在哪里?而对于Porting 新的Static Extention Interface,则更加必须掌握接口机制,比如IIMAGE, IMEDIA 这两个抽象接口的OEM 层新format 接口的Po
7、rti ng,你必须掌握接口机制,否则你不可能自己去实现一个 接口,让上层很好的调用. ->参考资料: 1. BREW_Architecture_Extensions.pdf 2. BREW 究竟是什么-BREW 本质之我见.pdf(笔者) 3. deep in BREW’s Interface .pdf(笔者) 4. AEE.h 5. Mediaplayer.c 6.BREW部分接口源码 4. BREW 面向开发的核心机制的深入熟悉和理解:主 要是事件分发,处理机制,Timer 机制,Alarm 机制, Notify 机制,Callback 机制,suspend,
8、resume,ba ckground 等等 ->该步骤同时适合OEM,Developer ->参考资料: 1. deep in Event-Driven.pdf(笔者) 2. 深入BREW 消息处理机制.pdf(笔者) 3. SDK 帮助文档 5.BREW 开发代码的熟悉,积累以及SDK API 的熟悉: 主要是通过阅读别人的应用(Example 是一个很好的示例 代码)加深对BREW 接口函数使用的理解,同时再结合自 己的不断锻炼,再结合查阅BREW SDK 帮助文档.使得自 己能加深对BREW 各接口使用的理解,同时积累开发BREW 应用程序的经验 (同时注意有
9、关C++如何开发BREW应用以及注意点) ->该步骤适合Developer,同时适合感兴趣的OEM ->参考资料:SDK 帮助文档以及别人的应用源码 6.进行(你负责的或者是感兴趣的)BREW 模块(接口) 的深入学习:这是OEM 的重要学习内容,原则上对一个模 块的真正学习,应该包括:从整体上把握该接口的作用, 它为开发者提供了什么功能,开发者利用它能做什么?从 开发者的角度,最典型的使用该接口的方法和顺序(过程) 是如何的?该接口的AEE 层(如果看的到代码的话)和O EM 层是具体如何实现的,这点的学习有助于清楚该接口 对外提供的服务在底层是究竟如何实现的?如果该
10、接口 存在异步调用系统服务的话,它和系统是如何交互的,如 何进行异步service 的调用?如果该接口是一个抽象接 口,具体实现在OEM 层的话,要清楚该接口实现的特点, 如何扩展该接口 ->原则上只适合OEM,因为Developer 是看不到代码的. ->参考资料: 1. SDK 帮助文档 2. QCT Release 的BREW 平台代码 (主要是各Interface的具体实现) 7.BREW 模块加载,应用启动机制学习:可以通过AEEM odGen.c,AEEAPPGen.c 以及mod 文件的makefile 深入学 习BREW App 的创建过程,Modul
11、e 的加载过程 ->该步骤同时适合OEM,Developer,对于OEM,因为存 在写静态应用的可能性,所以对于静态应用加载的特殊过 程(需要提供的特殊load)需要熟悉. ->参考资料: 1. AEEModGen.c,AEEAppGen.c,makefile of mod 2. 深入BREW 模块加载机制.pdf(笔者) 8.BREW 面向OEM 的核心机制学习:学习如何在Task 中 启动BREW,BREW 事件如何分发,启动,关闭一个BREW 应用的整个过程,oem_notify 机制,抽象接口机制,Int erface Register 机制,BREW 分层概念
12、app stack,如 何传递Key Event,App Context,Memory Manager, Object Manager,Callback,Systemcallback,System Object 等等面向OEM 层的BREW 核心机制 ->该步骤仅适合OEM,因为Developer 不可能使用这些 机制.对于OEM,通常某些接口的OEM 层实现需要采用异 步机制来调用系统服务,此时将综合运用以上机制,应该 熟悉这些机制. ->参考资料: 1. 深入BREW 抽象接口机制.pdf(笔者) 2. BREW 分层机制阐述.pdf(笔者) 3. PK 相关文档
13、 9.BREW 接口验证机制的学习: 主要是学习PEK 工具 的使用,这样能经常性的来验证BREW 接口Porting 的完 整性.同时PEK 中的OAT 源码也是学习接口使用的很好资 料.通常,对于一个扩展的接口,需要提供扩展的OAT 测试module,所以需要熟悉这些. ->该步骤仅适合OEM ->参考资料:PEK 相关文档 10.BREW UI 机制:主要学习BUIT(现在改名为BUI W)和UIOne.这两种机制主要用来进行UI 开发.由于B UIT 大量使用了设计模式,所以初学较难. ->同时适合感兴趣的OEM,Developer ->参考资料: 1. BUIT SDK 2. BUIT Example 3. AppMgr 3.x 11.OEM Notes 的经常性关注:经常性登陆BREW OEM Extranet 下载BREW OEM Notes,有助于拓宽解决一 些BREW Porting 的方法,思路,即便不是马上能用上, 也积累了一些经验 ->仅适合OEM ->参考资料:OEM Extranet 资料






