BREW MIME机制与Android Activity Intent机制的比较

SAP Joule 在顾问与开发者场景的双擎定位:Joule for Consultants 与 Joule for Developers 全面解读 SAP推出企业级AI助手Joule,分为顾问版(Joule for Consultants)和开发者版(Joule for Developers)两个版本。顾问版聚焦咨询业务,整合SAP知识库和方法论,辅助方案设计、差距分析和实施落地;开发者版嵌入开发工具链,支持代码生成、解释、测试和迁移。两者共享智能底座但面向不同场景:顾问版优化项目交付流程,开发者版提升工程效率。典型案例显示,Joule能有效缩短云转型周期,实现从业务咨询到技术落地的无缝衔接。该产品通过AI代理和知识图谱技术,为企业数字化转型提供端到端 阅读详情

首先两个不同的平台的这两个机制,都是非常棒的设计理念,解耦了各个组件/模块间的运行时交互。相比而言,Android的Activity/Intent机制更加优美,以Mash Up(搭积木)的编程方式,真正做到了面向组件编程和组件的动态化。

 

首先来看看BREW的MIME机制, Server注册某个Mime Type,成为相应的Handler, Client在不需要了解Server任何信息的情况下,可以通过向ISHELL请求,完成某个功能,ISHELL运行时动态的查询出符合要求的Target,将相应的Request转发给Target。

 

BREW中的MIME机制更多的被用在应用上,从而可以避免事件的泛滥,并且透明的复用其他应用的功能,这是通过ISHELL_Post/SendURL来实现的。将原本应用间的多对多的复杂关系,转变为多对一(App->IShell)的关系,这很明显是一个中介者(Meditor)模式。但是BREW中的这种复用模式,还是有局限的,主要是:

a。 透明的复用只限于App层次,不能深入到组件层次, 虽然,对于组件,仍然可以基于MIME机制查询后动态创建,但是,Client必须引用一个组件的接口,即Client至少需要知道不同组件的不同接口。 比如,虽然可以使用基于MIME Type的方式查询出image/jpg对应的handler的clsid,从而动态的创建它。 但是,Client必须事先清楚创建后的是一个IImage接口实例。

 

b。App级别的功能复用,没有标准的反馈机制, 比如 ISHELL_SendURL/PostURL都只是单向的,并不能从Server处获取操作的结果。 这使得各个App,OEM不得不自己定义相应的机制来实现。

 

c。 App级别功能复用时,传递的信息很有限, 只能是单字节流,即char*, 如果是复杂数据类型的话,必须进行BASE64编码转换

 

 

再来看看Android, 那才是真正的Mash Up式编程, Android中没有显式的应用概念,只有组件的概念。 所以, Android是真正意义上的面向组件编程。 当你将UI上的一个个独立界面实现为一个个独立的Activity,并关联上相应的Action即可。  运行上,当需要请求/复用一个现有功能时,你只需将相应的需求整合成一个Intent对象,然后调用系统的StartActivity(Intent)即可,系统会自动的根据Intent中包含的Action等信息,查询符合的Activity组件(相应的Activity组件在AndroidManifest.xml配置文件中声明),然后创建之(如果不存在实例的话),并将Intent转交给它(通过GetIntent,或者OnNewIntent),Target Activity响应之。  这里,我们也来对比BREW中的3点,看看Android的优势所在

 

a。 透明的功能复用(Mash Up式编程)基于组件层次,而不是应用层次。 当基于Intent请求系统启动一个Activity时,可能是自己应用的一个Activity,或者是另外一个应用的Activity,都可以, 对于Android而言,一切都是组件。 复用的粒度是组件,而不是应用。 这绝对是一个开创, 之前应该几乎没有平台可以这样来编程

 

b。 组件的功能复用存在反馈机制, 可以使用StartActivityForResult来显式的启动一个Activity并等待反馈

 

c。 组件及的功能复用时,传递的信息很广泛,从基本的Action,Group,Data,Extra,甚至可以传入一个Bundle对象来指代任意的对象。

 

 

总而言之,两个平台都实现了模块间的运行时动态,透明的功能复用,  只是Android实现的更棒,更彻底~~~

IDEA的使用指南 IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧. 立即下载

相关推荐

彻底解决0x80070005错误代码:全面分析与实战指南

0x80070005错误代码虽然令人头疼,但通过上述方法,我们完全有能力将其攻克。从检查磁盘空间、设置账号权限,到运行疑难解答和系统文件检查器,再到调整相关服务状态,每一步都是解决这一问题的关键。希望本文能为你提供有力的帮助,让你在使用Windows系统的过程中更加顺畅无忧。

nntxthml的博客 6931

IPC(进程间通信),Remote Call(远程调用),IDL(接口描述语言)架构及其在BMP(BREW移动平台),Android中的应用浅析

<br /><br />由于本人才初识BMP和Android,所以仅仅是自己的一些肤浅认识,难免有错误,欢迎指正。<br /> <br />首先我们看IPC,现代操作系统都是多进程,多线程的。进程间存在地址边界,无法直接跨越。所以,两个进程间无法进行直接的请求,传递和调用。IPC是操作系统内核提供的一种跨进程的机制,允许两个进程间使用IPC来传递数据。 虽然某些情况下我们可以将Service直接加载到自己的进程中调用服务,此时可以进行简单的本地调用(Local Call),但是,从安全,性能和共享的角度出发

东方欲晓的专栏 3749

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

weixin_44240228的博客 1万+

BREW Notify机制使用注意点

<br /><br />BREW Notify机制使用注意点<br />毛晓冬<br />2007-10-12<br />一、注册Notify的注意点:<br />       a. 注册方式:<br />BREW中有两种注册Notify的方式,一种是在MIF文件中Add Notification,一种是在代码中通过调用ISHELL_RegisterNotify来显式的注册Notify。MIF文件中注册的Notify,从BREW初始化后就开始生效,所以从此刻开始,App就可以收到Notification,即

东方欲晓的专栏 1626

VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境

Visual Studio 2019 + qt5.15.2 + vtk9.4.2

心向阳光,斗志昂扬! 973

[LaTeX] 使用natbib宏包实现参考文献的“作者-年份”引用格式及常见编译错误排查

本文详细介绍了在LaTeX中使用natbib宏包实现参考文献“作者-年份”引用格式的完整流程。从宏包配置、.bib文件准备到标准编译步骤,重点解析了常见的“Bibliography not compatible with author-year”错误成因,并提供了彻底清理辅助文件等解决方案,帮助用户高效排版符合学术规范的参考文献。

moon9的博客 481

比较BMP和Android的RPC机制

RPC机制是现代系统的重要的一种机制,和IPC有关,却又没有必然关系。 RPC是更广义的,更高层的,为解决异构/非本地对象/过程调用而形成的一套解决方案,其目的重在解决如何让远程对象/过程的访问可以如同本地对象/过程那般,将真正的差异性向上层客户隐藏。   而IPC仅仅是

东方欲晓的专栏 1502

60、磁悬浮主动隔振系统的LQR控制研究

本研究针对磁悬浮主动隔振系统,提出了一种结合ANN建模、LQR控制与MPGA优化的综合控制方案。通过建立系统的动力学与状态空间模型,利用混合训练算法的ANN精确描述MSVI的非线性和滞后特性,并设计基于最小力传递率的LQR控制器。为优化LQR的Q和R矩阵,引入多群体遗传算法(MPGA),有效克服传统GA的早熟收敛问题,提升搜索效率与控制性能。仿真结果表明,在单频、扫频、随机及冲击激励下,该方法显著降低传递力幅值,隔振效果远优于被动系统。研究验证了所提方法的有效性,为磁悬浮隔振技术的实际应用奠定了基础,并展望

linux6sysadmin的博客 123

BREW与面向对象的比较

<br /><br />BREW与面向对象的比较<br />毛晓冬2007-6-13<br />一、    概述:<br />虽然BREW的整体框架是基于接口体系,是面向对象的。但是和C++,C#,Java不同,这些语言的面向对象是语言(编译器)层次上的支持,而BREW的面向对象是实现层次上的支持(BREW的框架是以纯C实现面向对象的体系)。由于支持的层次不一样,所以仍然存在着很大的差异性。<br />我们有必要了解这些差异性,不能直接拿传统面向对象语言的特性来同等的看待BREW,那样有时可能存在偏差,可

东方欲晓的专栏 1359

使用 Python 和蒙特卡罗计算未来股价走势以及历史波动率和隐含波动率

蒙特卡罗模拟等工具使投资者能够洞察一系列潜在的未来。这远离了单纯的猜测,迈向了明智的、数据驱动的决策。

探索人工智能领域 706

信息安全管理与评估赛题解析-单机取证(含环境)

链接:https://pan.baidu.com/s/1OMzIq884dW2vAiUp0k2Ppg。链接:https://pan.baidu.com/s/1i5daMqhD53wYeQ6hYzRK6Q。链接:https://pan.baidu.com/s/1QFAjdQZK4sJ-gGRP42XPKA。链接:https://pan.baidu.com/s/1BSXvqN2ZGCQXewgFULoeyQ。链接:https://pan.baidu.com/s/1g9zu5ngBz_KMjW1eBMkJAw。

Brucye 1833

BREW(包括BUIW)引用计数及内存使用规则

<br /><br />BREW(包括BUIW)引用计数及内存使用规则<br />毛晓冬2007-1-26<br /> <br />一、概述:<br />BREW使用COM的引用计数机制在多个客户间同时共享一个接口的实例,保证各个客户在使用期间,该接口实例始终有效,而不管其他客户是否已经使用完该接口实例。只有当所有客户都结束使用时,该接口的实例才会被释放。<br />该机制使得我们必须正确操作接口的引用计数,否则会造成内存泄漏,或者重复释放等严重问题。<br />所以,我们需要掌握引用计数的使用规则和注意点

东方欲晓的专栏 1280

MCP开发实战:基于openEuler系统MCP插件的开发、测试与发布全流程

MCP开发实战:基于openEuler系统MCP插件的开发、测试与发布全流程

jks212454的博客 555

BREW和Android的安全思想

<br /><br />理论上,所有的公众(公开)实体,都需要安全机制保障, 比如网络。 从分层角度而言,每一层都可以进行安全保护,比如网络协议中的IpSec(Ip层), SSL(传输层), sMIME(应用层)安全协议。 对于移动平台也不例外, 也可以在不同的层次进行安全保障,系统底层和框架上层。<br /> <br />对于BREW平台,一直就是非智能的平台,所以它对底层系统的奢求不是那么高,无需任何现代操作系统的支持。 所以, BREW也就不能对系统层的安全做任何奢求,那么只能完全在BREW这一层实现

东方欲晓的专栏 1159

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

爱之深,期之切, 历数BREW几宗“罪”

本文不是敌人之间的奚落,谩骂。是爱人之间的激励。 那种感觉,是“只允许我1天骂他8次,却容不得别人说他一次不好”。那是因为爱她,所以希望她更好,走的更远。 所以,冒昧的写下本文,提出一些个人感觉BREW有待改进,完善的地方。1。 过于封闭,技术资源匮乏。      对于BREW,除了来自官方的SDK外,似乎找不到任何权威的技术资料和文档。1年,2年,3年过去了,还是这样。 看看后起之秀, IPhone,Android, 不管是来自民间的,还是来自官方,权威的资料,书籍,比比皆是,不管是深入的,还是浅出的。

东方欲晓的专栏 1131

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

BREW你问我答

发布该贴的唯一目的是尽我绵薄之力,在我有限的知识范围和能力范围内,解答部分网友brew方面的问题。有任何brew相关问题的TX,都可以在该贴的评论处提问,只要我能力范围内的,我将尽力解答。 闲话不多了,有问题的可以提。

东方欲晓的专栏 1068

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

BREW与Android中的UI事件框架比较

对于BREW,我非常熟悉,但是对于Android,只能算刚刚认识,最近看了些Android的UI事件处理的相关文档,发现Android的UI事件处理框架与BREW有一些异同,这里给予一些比较,纯属个人认识。 如有不当之处,欢迎指正。相同之处在于,从高层而言,Android与BREW的UI事件框架均是基于职责链模式的,运行时构成了Event Chain。 Event Chain中的每一个部件默认将事件传递给后继者。 事件在Event Chain的终点处自然终止, 或者在中间异常终止(中间部件返回了TRUE,导

东方欲晓的专栏 1010

【BREW你问我答】02期_20100709

为了使得BREW你问我答办的更好,决定不再在一个帖子中靠不断的回复来问答,这样多了后比较乱。 以后,基本上每周我会更新一期, 大家每次的新问题,请都在最新期的BREW你问我答(会置顶)中提问。 我一般只会关注最新期的问题。  当然,对于老问题的继续探讨,可以在原先的提问的基础上再提问谢谢~~~~~新的问题请在本帖子下开始提问

东方欲晓的专栏 1002

More Than BREW: 解析BREW核心机制

More Than BREW: 解析BREW核心机制 的提纲

东方欲晓的专栏 991

移动平台中的模块复用

在“复用”这一角度,无疑android是最棒的,至少到目前尚无平台可以出其右。 当然,我相信android的思想也不是一蹴而就的,也是借鉴并发展了前人的思想。 我们慢慢看来:     1. 首先,在Windows等PC平台上,最常见的复用的粒度 是基于 “进程”的复

东方欲晓的专栏 977

CS(Component Service), BMP(Brew Mobile Platform)那点事

<br />大家知道Qualcomm最新的BREW版本为BMP,BMP又是基于CS的,那么为何要演进到BMP,以及BMP为何需要基于CS那,其实,这个还是有一个背景的, 本文主要就笔者的观点,谈谈我所认为的背景。<br /> <br /> <br />BREW从1.0一直发展到3.x,一直充当着Feature Phone中的平民英雄的角色, 它的优点,就是可以不依赖于(不奢望)底层平台/系统的现代特性(多进程,多线程,内存保护,动态链接,动态加载等)而依靠自身实现一个轻量级的应用框架,同时支持动态加载。 所

东方欲晓的专栏 962

Android, BREW中Observer(观察者)模式的两种表现

Observer模式无疑是最伟大的设计模式之一。 她被用来解耦一对多的关系,并对“多”的变化进行隔离。 现代移动平台中,各是随处可见她的身影。 本文将从Android,BREW两个移动平台中,一窥其迷人身姿。Listener机制。 在BREW和Android中,同时都提供了Listener机制。这是血统纯正的Observer模式体现。 BREW中的IModel的AddListener和Android中的View的AddXXXListener就是两个很好的例子。 在这种纯种Observer模式下,我们需要明确

东方欲晓的专栏 901

BREW事件使用技巧: 避免事件冲突

详述了BREW中事件定义的注意点

东方欲晓的专栏 901

Android 14+ 模拟器抓包实录:把 Burp CA 装成系统 CA,让 targetSdk≥34 的 App 乖乖解密

本文记录了在 Android 14+ 环境下,通过将 Burp CA 安装为系统信任锚,成功抓取 targetSdk=35 App 的 HTTPS 明文流量的完整实操过程。针对“浏览器可用、App 不可用”的典型现象,精准识别出根本原因是系统级证书信任策略变更(用户安装的 CA 被屏蔽),而非 SSL Pinning。仅通过 adb 命令将 CA 推送至系统证书存储并重启生效,无需 Frida、Objection 或修改 APK,实现零侵入解密。全文命令均基于 Windows + MuMu 模拟器环境实测通

JIANqiao19931029的博客 339

具身智能 2026:启元人形机器人开发者生态的“安卓时刻”来了吗

一个贯穿全文的问题:人形机器人开发者生态,是否正从「封闭垂直」走向「开源平台化」?本文以开源底座的公开数据为标尺,盘点 SDK、URDF、仿真与技能分发的开放程度,并落回启元机器人的开源路径。所有关键数据均标注来源,文末附社区与学堂链接。

在北风吹起的时候加入我们的队伍 在秋雨到来的时候成为彼此的温暖 731

android-ad-cleaner:android免 Root 批量关闭系统开屏与营销推送

橘子,计算机视觉方向工程师,深耕 AIGC 与多媒体处理领域,专注技术实用化落地。本文为原创内容,转载请注明来源与作者。优快云 首发 | 版权所有 © 2026。

下载资源或查看教程前,请务必阅读置顶的《免责声明》 486
上一篇: BREW与面向对象的比较
下一篇: 基于BREW的松耦合设计初探
nicefuture
博客等级 码龄23年 75粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值