当前位置: 首页 > news >正文

Flash Lite 与 J2ME 分析比较

作者:蓝色理想-jinni

原文链接:http://www.flashfuture.net/blog/blogview.asp?logID=12

随着Macromedia在FlashLite方面的大力推广,这支Mobile新军看来终于要展露头角了。不可避免的,众多的开发者会将它与现有的技术放在一起品评比较一番,而这次被推上擂台的,是已经在移动开发领域有着坚实基础的J2ME。技术的比较有的时候很盲目,大家唇枪舌剑、旁证博引了半天,却发现两种技术根本就没有可比性。而那些狂热的拥护者则往往要追求一个“A最终会代替B”的极端。

那么,J2ME和FlashLite到底有没有可比性?而FlashLite的是否会代替J2ME原有地位而成为移动应用开发的首选。

我的观点是:J2ME和FlashLite在某些领域存在交集,因此如果FlashLite可以被广泛支持,确实给了开发者相对于J2ME而言更好的选择。但在大部分时候,它们适用于不同需求,因而不存在FlashLite代替J2ME的可能。

首先来说说J2ME和FlashLite的“交集”在哪?FlashLite/J2ME让我们可以充分的利用移动设备的计算能力,而无需借助网络和服务器,即便需要连接网络,我们也可以将大量的工作交由客户端完成,从而减低服务器的压力和网络带宽的耗费,这是与WAP的技术最大的区别,也是优势所在。因此,从理论上讲,J2ME和FlashLite都可以用于在移动设备上实现商务、娱乐、管理等功能。

但是,FlashLite和J2ME两者都具备自身的优势和劣势,这种优势和劣势也导致了两者必将在不同的领域发挥作用。http://www.design-nation.net/en/archives/000453.php这篇文章中谈到的几点我不再赘述,以下是我对二者区别的补充:

1.FlashLite拥有统一的规范,即FlashLitePlayer,任何安装了FlashLitePlayer的设备都可以播放FlashLite文件而不需要加以编译修改。J2ME尽管在基础规范(MIDP/CLDC)上相对统一,但是大量的可选包使得程序的兼容性下降。更何况各个厂商的KVM实现还有众多Bug。

2.FlashLite无疑会提供更好的用户体验,摆脱了MIDPlcdui甚至是手机底层的MMI实现,开发者可以自由的设计应用程序的界面,同时也避免了使用API的困扰。相对而言,MIDP的UI框架过于丑陋,而且功能简单。(我现在正在试图解决这一问题)。当然,绘制复杂美观的界面也会带来资源和性能的耗费,因此开发者需要在两者之间寻找平衡点。

3.FlashLite支持SVG,同时本身也是矢量格式,因而在分辨率多样化的移动平台上可以更好的施展拳脚。J2ME开发者则需要认为解决分辨率适应的问题。在某些状况下,为了适应分辨率而带来的工作可能非常繁复。而且使用J2ME制作MTV类动画几乎不可能,逐桢绘图方式在J2ME上不可能毫无顾虑的使用。

4.FlashCast??现有资料太少,不知道他究竟能发挥多大的威力,但无论如何是值得期待的。相反,Sun并没有推出与J2ME完美整合的服务器技术,但事实上,J2ME可以和任何一种服务器技术整合。

(中场休息~__~)

5.FlashLite从现在看来,功能还过于单薄。J2ME则由JCP推动其发展,新规范曾出不穷,从对手机底层的访问,到多媒体的支持,从SVG到G3D。尽管很多规范真正在手机上实现还需要一段时间,但至少我们知道,J2ME真的可以做很多事。

6.FlashLite目前并不是以native方式存在于手机中,而是用应用程序扩展的方式,尽管安装一个.sis文件并不是难事,但如果厂商可以将FlashLitePlayer绑定在手机中,相信推广程度会更好。

7.FlashLite仍然不适合作复杂的应用,包括商务和娱乐方面,从安全机制,存储能力,网络连接等层面,FlashLite都比较薄弱,而且可能难以改进,而在这几个方面J2ME要强得多。

8.尽管签下了Nokia和SamSung,但是FlashLite推广的路还很长。而且,非智能手机仍然占据了大部分市场,Nokia虽然致力于发展S60等智能手机平台,但S40手机仍然是主要盈利点。因此,如果FlashLite只能出现在S60一类的中高端智能手机上,对FlashLite的普及可能并不是十分有利。

作为一个开发者,最重要的是了解各种技术的优势劣势,用适当的工具完成最适当的工作。至于“那种技术最强”的问题,大可不必争个你死我活。

注:文本中的J2ME实际上特指(MIDP/CLDC规范,不包含CDC和PersonalJava)

相关文章:

  • react dva 复习subscriptions: setup
  • pm2 pm2 --help 使用指南
  • 驳斥一些不看好Flash的观点
  • eruda . 移动端console输出日志调试工具
  • referer
  • 2006年3GSM全球大会10佳手机
  • H5 postMessage方法 以及监听
  • 浏览器和node某方面执行顺序不一样
  • 大餐还是鸡肋?让我们谈谈Flash Lite
  • gulp中的同步异步问题
  • 小试一把 64 位 Windows 编程
  • 什么是options请求?为什么会有options请求?
  • 网站完全恢复
  • rel=noopener可以提升性能
  • node.js开发:nodemon
  • 30天自制操作系统-2
  • gitlab-ci配置详解(一)
  • hadoop集群管理系统搭建规划说明
  • HTTP中GET与POST的区别 99%的错误认识
  • javascript数组去重/查找/插入/删除
  • LintCode 31. partitionArray 数组划分
  • PermissionScope Swift4 兼容问题
  • SQLServer之创建数据库快照
  • Webpack 4 学习01(基础配置)
  • webpack4 一点通
  • 检测对象或数组
  • 如何优雅地使用 Sublime Text
  • 设计模式 开闭原则
  • 小试R空间处理新库sf
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 1.Ext JS 建立web开发工程
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (2)STM32单片机上位机
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (一) springboot详细介绍
  • (转)Oracle存储过程编写经验和优化措施
  • (转)大道至简,职场上做人做事做管理
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .Net core 6.0 升8.0
  • .net core 依赖注入的基本用发
  • .net和php怎么连接,php和apache之间如何连接
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net小白的大学四年,内含面经
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [2023-年度总结]凡是过往,皆为序章
  • [android] 练习PopupWindow实现对话框
  • [ANT] 项目中应用ANT
  • [AR Foundation] 人脸检测的流程
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息