翻译自(http://mylifewithandroid.blogspot.com/2008/02/android-is-most-modern-application.html)
与平常不一样,在这篇博客里我想谈谈关于移动应用哲学方面的东西,而不是冷冰冰的代码。现在已经有很多移动应用平台,其中有一些比如塞班
(Symbian)应用很广泛。而基于java的也有很多,比J2ME, OSGI R4,
LIMO等等,那多一个java的平台又有什么值得新奇呢?每个人都有自己的答案而我认为Android的出现是一个很大的因素。当我研究Android
这个平台时,两年前我写的一篇论文(这里坐下广告,不好意思)不断的浮现在我的大脑,这篇论文里讲了四个主要的移动中间件模式。
环境感知
传统的中间件对系统进行了严格的分层,这意味这他屏蔽了应用程序得到底层的事件(event)的可能。比如,当不能发送一个远程调用时,中间层会不
断重试,最后会发送一个普通错误到服务的使用者。环境感知意味着这里没有所谓的“屏蔽”,应用程序知道它所处的周围环境。本质上环境变化是异步的并且用事
件的现实发送。一点要强调的是只有应用程序才能决定哪些环境事件是重要的以及如何处理它们。例如当一个应用程序察觉到廉价而快速的网络连接(译注:比如
wifi)不再存在时,应用可以切回到缓慢而昂贵的移动网络。这种选择可能不适合一个游戏,因为一般我们不允许游戏在断线的情况下连接昂贵的移动网络,这
个时候程序报错,或者切换到单机的模式。(译注:这里的环境感知更多指代码上的上下文,不特指手机的重力感应、地理位置感应、环境光感应等功能)
反射
反射一般意味着程序能够在运行时,根据自身的数据结构进行计算(得到当前的结构、根据环境对结构求值,如果需要的话最后更新结构)。在移动计算中,
反射是一个关键的技术,特别是应用需要环境感知的功能时。即使一个中等数量的环境状态也能产生数量巨大的状态组合。如果应用和中间件建立在单一古老的方
式,它们必须面对所有的状态组合的情况,这回让情况变得难以处理,而且需要更多内存。为了使内存痕迹(footprint)最小,系统设计更清楚明了,中
间层必须解耦合成更小的组件。这样,应用可以选择它需要的组件然后组成中间层来更好的为应用服务。当环境变化时,应用根据环境变化来改变组件或者组件的配
置。
离线访问
离线是移动计算的内在属性。离线的原因可能是物理的(不在服务区)或者是社会的(移动访问太贵或者在某种情况下是不可接受的)。为了提供可接受的用户体验,在离线模式下必须也能继续操作。要实现这关键的技术是数据和代码的重组。数据重组可以用成熟的数据同步技术实现。
异步通信
网络计算一般采用远程过程调用(RPC)的方式。RPC模仿单处理器上的过程调用,当被调用过程运行时,调用过程挂起。因此,RPC本质上是同步
的。而移动传输网络有这样的特点:长时间的不稳定的延迟和频繁的传输错误。在这种环境下,通信必须是异步的(基于事件的或者消息也可以归于此类)。这影响
了通信语义。
这篇论文接下来设计了一个OSGI的框架,但那时过去的事了。所以你可以猜到当我看到Android实现了上面的那些特征时我有多么惊讶。
Android中的Intent分发框架对于环境感知来说是非常适合的,正当前的Android实现里,Intent的匹配逻辑相当简单(通过
action和category匹配),但是如果目标平台允许(考虑到电量消耗,处理器速度),把它扩展成一个功能强大的匹配逻辑也不需要很多的工作,而
且当这种匹配逻辑反复调用时,速度更快。
另外,离线操作- 可同步的内容提供者(provider),也是平台的一个部分。平台唯一缺失的部分是一个功能强大的异步通信框架,比如队列。XMPP服务就提供了这个功能,不过刚刚被移除了。
Android不仅仅是另外的一个基于java的移动平台,事实上是唯一的一个采用了移动中间层研究结果(译注:指作者的论文)的平台,因此它本身就很有趣,即使它没有开发者竞赛和它的奖励。它将来的命运主要要看商业上的因素,不管如何,它的架构仍然领先其他对手好几步。
分享到:
相关推荐
总结,"TelecomApp:最时髦的电信应用"是基于Java技术构建的一个综合通信服务平台,它充分利用了Java的跨平台性、强大的并发处理能力和丰富的开发框架。通过集成多种通信协议和服务,以及实施有效的数据管理和安全...
"Android-Frisson提供时髦的图片剪裁功能"这个项目就是针对这一需求而设计的,它为Android开发者提供了一种现代化、用户友好的图片裁剪解决方案。Frisson旨在使图片裁剪操作变得更加直观和吸引人,提升用户体验。 ...
JetSetRadioLive Android应用程序目前因JSRL死亡而死亡适用于的Android应用程序,因此,即使警察不吃甜甜圈,他们也可以!下载您可以在下载最新版本先决条件Android手机(最低API 21)如何安装在您的Android手机上:...
这部分内容提供了一些免费推广Android应用的方法,包括利用社交媒体、博客和其他在线平台来增加应用的曝光度。 **4.2 热门Android应用市场和论坛发布秘诀** 在各种Android应用市场和论坛上发布应用可以有效提高...
使用此应用程序,您可以找出最受欢迎的应用程序。 你想参加一场音乐会,但你不知道是否能找到停车位。 使用此应用程序,您可以计算出有多少人可能会占用停车场。 您想参观一些地方,但也要避开人群。 使用此应用...
Geoquiz又回来了,它拥有时髦的后端,可以与世界共享测验问题! ##设置 创建一个帐户 在创建一个新应用 请访问您刚创建的应用程序的“键”部分。 复制应用程序ID和客户端密钥 接下来需要添加解析库。 不幸的是,...
Java语言的应用非常广泛,包括Web开发、Android应用开发、桌面应用开发、服务器端编程等。Java语言可以用于开发各种类型的应用软件,如游戏、图形界面、网络应用等。Java语言也可以用于开发嵌入式系统、机器人、智能...
—时髦的滤镜:我们提供了流行的滤镜,例如平滑/增白/超薄/女神/自然滤镜,使您的视频独一无二。 —可爱的贴纸:具有有趣的贴纸/ GIF /模因/表情符号主题,您可以通过简单的步骤制作受欢迎的视频,录制屏幕。 —...
Java是一种广泛应用于移动应用开发的编程语言,尤其在Android平台上。它具有跨平台的特性,意味着在Java上编写的代码可以在不同的操作系统上运行。此外,Java的丰富的库和框架支持,使得开发者能够快速构建功能丰富...
Java是一种广泛应用于企业级应用、桌面应用、移动应用(尤其是Android平台)以及Web应用的高级编程语言。它的跨平台特性、面向对象的设计和丰富的库使得Java成为大型项目开发的理想选择。 在【压缩包子文件的文件...
指纹识别从苹果的Touch ID普及开始,已经两年时间了,在iOS和Android旗舰手机上成为标配。同时,虹膜识别等生物识别方式,也被人津津乐道。不过,不只是手机厂商凑热闹,芯片厂商高通也来赶时髦——日前,在移动...