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