- 浏览: 198991 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
hao3721:
dsfasd
ehcache 使用 -
nihaokid:
方法是不会存在在对象内存中的,它存在于方法区,建议看看jvm的 ...
Java 深层理解 父类引用指向子类对象 -
vissalan:
有一点没看明白Father f1 = (Father)s;这时 ...
Java 深层理解 父类引用指向子类对象 -
咖啡舞者:
非常感谢这种分享精神.
在BREW中实现自己的GUI(8)-IWEB的封装 -
咖啡舞者:
这是创建的代码。
在设备上调的。
界面在手机和模拟器上显示的差异
internal(kernel)->uitask->brew internal->active dialog->dialog ctrl->brew apps.
for clr: if app not process it, then brew will close the current running app.
for end: brew will close all apps, not passed this event to all apps, unless hook.
BREW key process:
hitask->uitask->handlekey------>state machine->process directly
|-->brew->key map->process brew environment
About HOOK(PL_SYSTEM & AFLAG_Phone):改机制看起来神通广大,不过一山还比一山高.
judgement(private option):
1. BREW内核事件作用于Dialog--top visible app--internal
2. BREW用户自定义事件作用于Dialog--all apps--internal (eg.sendevent postevent)
BREW各种机制:
大致分为两大类:一.callback机制 二.事件驱动机制
一. callback机制
1.AEECallback机制
这是BREW标准callback机制,相关操作函数为Callback_init(),Ishell_resume();Callback_cancel().
与AEECallback对应的还有native callback,它不像AEECallback那样只能运行在BREW环境中,它能在uitask和other task之间相互调用.
2.Timer机制
这应该是操作系统相关都应该提供的机制,虽然BREW不是操作系统.相关操作函数有两组
Ishell_Settimer() Ishell_Canceltimer()
Ishell_SettimerEx() Callback_Cancel()
上面那组是标准的,不过据介绍都普遍转向下面那组了.哎,这是什么世道,标准的都被人摒弃,以后怎么混啊(小发牢骚下).
其实他们也是为了我们能用得简单,下面那组用的是标准的AEECallback(看来标准也是有一片天地的).
与AEECallback机制的比较:
他们都是异步实现通知的一种方法,只不过AEECallback是下一个BREW环境被执行到执行,Timer机制是在timer过期之后的下一个loop执行.
3.sleep机制(应该是事件驱动机制,不过那个超时时间应该是用timer做的,而且有一定的可比性就先放这了)
这个机制好像是专为screen saver设计的,通过AEE_Dispatch()的返回值确定是否进入sleep模式.
在超过默认的时间过了以后,用户还没有进行按键操作,BREW internal会发送EVT_APP_NO_SLEEP,返回true,重置30秒,返回false,每个loop都询问.个人认为这种
设计有问题,因为返回false的话系统进入睡眠模式,没有必要重复地进行询问.
二. 事件驱动机制
1.alarm机制
首先介绍它的原因是它也跟timer有一定的可比性:虽然都是在时间到期后做一定的事情,不过还是有本质区别的:
.驱动机制不一样,timer是基于callback的,对进程的依赖性比较大.alarm机制是基于事件的,就算实例不存在也不打紧.
.存储介质不一样,timer应该是存在在进程的栈中,alarm是存储在文件系统之类的非易失性的存储器中.
.时长不一样,timer应该是比较短期的,甚至是毫秒级的,alarm可能是几天到几年不等,比如闹钟等.那么中间地带应该怎么选择呢,我个人认为有个标准,如果频率 太高那么就用timer,不用来回创建和销毁实体,带来不必要的损耗,如果需要有记忆性,那么就用alarm,就算关机了也能有效.
2.hook机制
它是先于top visible得到事件的一种机制.它是在某一应用中用来对同一按键进行不同处理的必要机制,只要它返回true,其他任何app或internal默认处理函数 都无法得到响应.
3.notify机制
hook机制看起来听牛的,不过notify更有特权,只要它被注册过,就算你是hook,就算你还返回了true,都无法阻止我的执行.而且目的性很强,只对自己感兴趣的消 息进行处理.我的人生有一个notify,并不是在出生的时候就注册,但是确实是一个不错的notify,在做任何决定之前,它都会跳出来,查看一下我的头脑,如果脑子 过热,它就会对我说"嘿,小子,现在还不是做决定的时候,等冷静下来再说".我希望这个机制不会失效.
好了,上面只是学习的一点归纳而已.
不过,我想谈谈高通对于brew的成功.资料上说,brew的执行源于brew signal的设置.那么我要说,brew的生存源于手机市场的存在.确实,brew就是对应手机的开发平台.它
的局限性其实很大,如果有其他的应用,可能还会被要求写一个类似brew的平台出来.在现在的情况下好像没有这种可能,因为我们生产一样东西,我们会评估它的市场和前景.如果没有市场根本就不可能做了.就算有市场,还要评估一下必要性,就是远景.这一点,高通是有前瞻性的(必须承认),因为直到现在手机还是人们通讯的最基本的工具.从这一点来说,你要我评论brew现象的出现是否偶然,你说呢.我可能给出这样的结论,brew的产生具有偶然性,而brew出现以后它的成功确是必然的.因为在前几年所有面临的机遇和挑战也太多了,如果我是决策者,我想我可能不会冒这个显,因为电子行业的产品推陈出新的速度太快了.然而高通做到了,那么恭喜他们.然而我们要问,这个现象太特殊了,而且高通不可能只把brew和它的操作系统绑定起来,一定还会有一个类似brew的东西出现,不过在那方面我跟盲人没多大区别---我找不到(或许高通已经找到并精心部署它的下一步计划了).
发表评论
-
手机开发平台指南、教程和资料介绍(转载)
2009-05-13 15:58 2615欢迎转载,转载请注明出处。作者:手机即信息 博客:http:/ ... -
Brew中的Module的实现方法
2009-05-13 14:36 1240Brew中的Module的实现方法: 【原创作者:sho ... -
Brew常见错误整理
2009-05-07 16:26 12841.用户是否可以将信息上传到开发商的服务器上来?用户传上来 ... -
BREW-教你设计用户界面
2009-04-24 16:14 1989这个书高通下的pdf, ... -
AppLoader的使用
2009-04-24 16:12 2688AppLoader是Brew Tools Suite3.0. ... -
程序在模拟器中的调试
2009-04-24 16:11 1242通过高通的FAQ知道:DBGPRINTF可以在vc的调试窗口和 ... -
程序在手机上的调试
2009-04-24 16:11 1099仍然通过高通的FAQ知道:DBGPRINTF的内容,当 ... -
浅谈ISocket的使用
2009-04-24 16:10 1815环境:brew sdk3.0中文版 + vc6.0 ... -
WEBOPT中http代理的设置
2009-04-24 16:09 1206原代码如下: awo[i].nId = WEBOPT_ ... -
强大的IWEB接口
2009-04-24 16:08 2124概述 本文着重介绍了在1.1SDK中引入的IWEB接口,以及 ... -
关于音频的播放
2009-04-24 16:06 1478先了解一下brew中可以 ... -
关于文件的读写
2009-04-24 16:05 2278brew中对文件操作需要 ... -
界面在手机和模拟器上显示的差异
2009-04-24 16:04 1754高通告诫我们:程序一定要多多在手机上调试。 刚入门时 ... -
在BREW中实现自己的GUI(8)-IWEB的封装
2009-04-13 17:43 2052封装IWeb其实并不算是GUI的范畴,但是一并说了罢。在BRE ... -
在BREW中实现自己的GUI(7)-动态效果的实现
2009-04-13 17:41 1775今天讨论关于GUI的另一个话题:如何在两个界面切换中表现出比较 ... -
在BREW中实现自己的GUI(6)-单选框与复选框的实现
2009-04-13 17:40 1566还有一个常用的UI控件是单选框与复选框。可惜BREW也不提供, ... -
在BREW中实现自己的GUI(5)-滚动条的实现
2009-04-13 17:38 1291前面做IGStatic时我们用到了一个滚动条组件IGScrol ... -
在BREW中实现自己的GUI(4)-IGStatic的实现
2009-04-13 17:37 1610BREW中的IStatic可以方便地显示一个文本,但是它没有背 ... -
在BREW中实现自己的GUI(3)-做一个跑马灯的效果
2009-04-13 17:37 1681有时如果我们在应用中需要提供一个滚动的信息提示条(类似于页面上 ... -
在BREW中实现自己的GUI(2)-TabPane的实现
2009-04-13 17:35 1295同样是定义一下几个实体结构: //自定义菜单项type ...
相关推荐
7. **线程和调度**:在Brew MP中,事件驱动机制通常与多线程相结合。不同的事件处理函数可以在不同的线程上运行,从而实现并发处理,提高系统性能。调度器负责决定哪个线程应该获得CPU资源以处理事件。 8. **优化与...
设计模式在BREW中也是重要的一环,尽管这里没有具体提及某种设计模式,但我们可以理解BREW的事件处理机制本身就是一种模式,即事件驱动设计模式。这种模式鼓励异步编程,使得应用程序能够及时响应用户操作和其他系统...
- **兼容性**:确保驱动程序与手机的硬件版本和BREW操作系统版本相匹配,不匹配可能导致设备无法识别或运行异常。 - **安全更新**:只从可信赖的源获取驱动程序,避免安装可能带有恶意软件的非法驱动。 - **操作...
通过对BREW消息处理机制的深入解析,我们了解到BREW如何高效地管理和响应各种事件,这对于构建响应迅速、用户体验良好的移动应用至关重要。开发者可以通过理解和利用这一机制来优化自己的应用程序设计,提高应用的...
BREW(Binary Runtime ...总的来说,BREW的消息处理机制是一个高效且灵活的系统,它允许开发者构建响应用户交互和系统事件的动态应用程序。通过理解这一机制,开发者可以更好地设计和实现BREW平台上的应用程序。
在BREW(Binary Runtime Environment for Wireless)平台上,回调机制是一种核心机制,它使得开发者能够以异步方式处理各种操作,尤其是涉及到网络通信、定时器或其他需要等待结果的事件。回调机制的关键在于,当...
BREW采用事件驱动模型,通过`AppTask()`函数处理事件。应用程序不断地轮询事件队列,对发生的事件进行响应。例如,用户交互、定时器触发、网络数据到达等都会产生事件。 #### 2.3 资源管理 在运行过程中,BREW APP...
动态Applet能够响应各种用户事件和系统事件,通过事件驱动的编程模型,Applet可以监听和处理按键输入、网络状态变化、定时器事件等,以实现交互和逻辑控制。 2. **BREW PEK测试与动态Applet的关系** BREW ...
状态机允许程序根据不同的事件和状态进行有序的控制流切换,提高代码的可读性和可维护性。 事件驱动编程在BREW环境中强调快速响应和简洁处理。由于BREW运行在单线程环境中,因此处理事件的速度直接影响用户体验。...
这款驱动在当前可能已经较为罕见,因为随着Android和iOS等系统的普及,BREW的市场份额已经大大减少。 驱动程序是计算机硬件与操作系统之间的桥梁,它允许操作系统与硬件设备进行通信,没有合适的驱动,操作系统就...
- 事件驱动编程:BREW平台采用事件驱动模型,开发者需要学会如何处理各种用户和系统事件。 - 测试与调试:使用BREW模拟器进行初步测试,然后在真实设备上进行进一步验证,解决可能出现的问题。 4. 应用分发:BREW...
2. **事件驱动编程**:BREW采用事件驱动模型,程序响应用户的输入或系统事件来进行操作。开发者需要理解如何注册事件处理函数以及正确处理各种事件。 3. **内存管理**:移动设备资源有限,所以有效管理内存对性能至...
综上所述,BREW开发涉及了无线设备上的应用程序设计,利用事件驱动机制优化资源利用,通过模块化实现代码的复用和扩展。同时,理解硬件基础,尤其是CPU、RAM和ROM的功能和特性,对于在BREW平台上开发高效、适应性强...