|
首先声明,我不是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 层(如果看的到代码的话)和OEM 层是具体如何实现的,这点的学习有助于清楚该接口对外提供的服务在底层是究竟如何实现的?如果该接口存在异步调用系统服务的话,它和系统是如何交互的,如何进行异步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 资料 |
|