首先声明,我不是BREW 高手,我只是一位普通的BR
EW 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 sc
ratch,另外网上有两本关于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,因为并非所有的D
eveloper 需要知道接口机制,将IXXX_XXX 理解为真正的
函数,熟练的运用他们,而不知道他们的底层实现机制也
不会妨害Developer 的开发,但是对于需要开发Extenti
on Interface 的Developer,理解BREW 接口机制是必须
的. 该步骤对于OEM 而言是必须的.因为如果不理解B
REW 接口机制的话,BREW OEM 所作的Porting 或者Modi
fy 是盲目的,因为你根本不明白上层调用所谓的接口函
数最终是如何映射到底层的,这样你无法清晰地发现,问
题究竟在哪里?而对于Porting 新的Static Extention
Interface,则更加必须掌握接口机制,比如IIMAGE,
IMEDIA 这两个抽象接口的OEM 层新format 接口的Porti
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,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
应用程序的经验 (同时注意有关C++如何开发BREW应用以及注意点)
->该步骤适合Developer,同时适合感兴趣的OEM
->参考资料:SDK 帮助文档以及别人的应用源码
6.进行(你负责的或者是感兴趣的)BREW 模块(接口)
的深入学习:这是OEM 的重要学习内容,原则上对一个模
块的真正学习,应该包括:从整体上把握该接口的作用,
它为开发者提供了什么功能,开发者利用它能做什么?从
开发者的角度,最典型的使用该接口的方法和顺序(过程)
是如何的?该接口的AEE 层(如果看的到代码的话)和O
EM 层是具体如何实现的,这点的学习有助于清楚该接口
对外提供的服务在底层是究竟如何实现的?如果该接口
存在异步调用系统服务的话,它和系统是如何交互的,如
何进行异步service 的调用?如果该接口是一个抽象接
口,具体实现在OEM 层的话,要清楚该接口实现的特点,
如何扩展该接口
->原则上只适合OEM,因为Developer 是看不到代码的.
->参考资料:
1. SDK 帮助文档
2. QCT Release 的BREW 平台代码 (主要是各Interface的具体实现)
7.BREW 模块加载,应用启动机制学习:可以通过AEEM
odGen.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 机制,抽象接口机制,Int
erface Register 机制,BREW 分层概念,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 相关文档
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 资料