背景:
大约在09年的下半年用Adobe AIR技术做公司的BI系统,因为看重它在图表,地图上的优势。
刚刚开始还比较顺利,界面漂亮,与后台服务器交互有AMF。一起都是那么的顺利,可随着项目
的扩大,代码的增加,问题就暴露出来了,表现在:
1:内存占用非常大
随着打开模块数量的增加,使用时间的增长,程序占用的内存不断发展壮大,一般都保持在
700MB到1GB多,一般的机器哪受得了呀。flash player的GC真是悲剧呀。
2:程序运行速度
因为AIR是单线程的程序, 所有多线程的功能都是使用timer模拟的,随着程序逻辑的增加,你
会发现AIR程序慢如蜗牛,这种现象在Adobe官方的示例中都可以看到(特别是它的那个Media player)。
3:功能太简单
Adobe似乎犯了当初java swing一样的错误那就是与操作系统的东西格格不入,与activex组件,
dll库等这些成熟的工具库整合非常的麻烦。要想成为一个成熟的桌面程序开发平台与本地系统的集成应该
很方便才是。看看win家族的所有东西都能集成得很好就可以说明这点了。
4:编译缓慢
经常会出现改动一点点儿地方,编译几分钟的情况,其实这种情况倒是可以避免的,将程序不断的抽象,
将那些公用的功能做成一个编译完成的swc库,这样程序就可以直接调用了,不用每次修改都编译啦。
基于上面的原因我说Adobe AIR比较鸡肋,欢迎大家拍砖
当然AIR还是有优势的,那就是开发出的程序漂亮呀,在成为一个成熟的桌面开发平台路上AIR还有很长的
路要走呀。
希望:
为了解决AIR遇到的问题,我产生了一个想法,因为AIR的原理就是让Flex运行在AIR runtime的基础上实现
的,Flex的本地操作都是通过AIR runtime实现的。
所以如果使用Java作为Flex的运行环境,让Flex的本地操作通过调用Java实现,这样程序的核心业务逻辑可以
通过Java实现,Flex做程序界面展示,那样就可以完美地解决AIR程序内存泄漏,运行速度慢,功能不够强大等等
问题了吗?
咱说干就干,经过一年多的开发与改进,第一个稳定的版本终于大功告成啦。当然还集成了eclipse开发工具的哟,
强大吧!这个东西的名字叫——smartinvoke.
网站地址:http://smartrcp.org/si/
文档地址:http://www.iteye.com/wiki/smartinvoke
SmartInvoke的优势如下:
1. 通过Java做程序后台逻辑,Flex做界面展示,Flex调用java实现程序功能,与Adobe AIR相比大大增强了Flex的功能,因为Flex可以直接调用Java的API了。
2. 通过Java实现了多线程。
3. 解决了Flex内存不容易释放的问题。
主要是通过将关闭窗口所加载的swf文件unload掉。
4. 集成eclipse开发插件,实现了中间代码自动生成与调试,提高了开发效率。
5. 抛弃传统的socket通信方式,使用进程内同步通信方式,使得Java与Flex互调更加便捷与高效。这里的进程内通信指的是通过调用flash player接口实现通信, 而不是socket,同步通信方式指的是flex调用java后可以立即得到java的返回结果,而不像socket方式一样,需要通过监听返回事件获得返回结果,代码变得更加简洁。
6. 使用AMF3协议实现Java与Flex互调,效率高。
smartinvoke面向的开发者:
1:Adobe AIR开发者
接触了smartinvoke后你会发现它比AIR优秀得多,因为通过Java你可以掌控程序的一切。
2: 想做客户端程序开发的Java开发者
通过Flex做程序的界面部分,你会发现程序的界面开发速度不但快而且界面很漂亮哟。
3:Flex开发者
如果你想开发桌面程序,不妨可以接触一下smartinvoke。
smatinvoke授权方式:
对于所有程序完全免费使用,在使用过程中遇到的法律问题与smartinvoke无关
注:欢迎大家多多提意见,我们会把smartinvoke做得越来越好的
分享到:
相关推荐
dreamweaver的adobe air扩展Adobe_AIR.mxp
adobe air 安装包part1adobe air 安装包part1adobe air 安装包part1adobe air 安装包part1
Adobe AIR技术学习Adobe AIR技术学习
AdobeAIR.dmg
针对 HTML 开发人员的 Adobe AIR 语言参考包括 Adobe AIR API 的详细信息。Adobe AIR API 通过 window.runtime 对象可以用于基于 HTML 的 AIR 应用程序中的 JavaScript 代码。您还可以通过 air 对象引用这些类,即在...
构建 ADOBE® AIR® 应用程序 目录 第 1 章: Adobe AIR 简介 第 2 章: Adobe AIR 安装 安装 Adobe AIR 删除 Adobe AIR 安装和运行 AIR 范例应用程序 Adobe AIR 更新 第 3 章: 使用 AIR API 特定于 AIR 的 ...
adobe air 连接 airplay功能
adobe air 安装包partadobe air 安装包part
AdobeAIR是最新的播放器为用户提供方便
AdobeAIR入门教程,adobe公司内部资料,值得学习。
adobe air 安装包partadobe air 安装包part
adobe AIR 安装环境,AIR运行时,没这个,AIR程序运行不了
Adobe Air Programming Unleashed
利用 Adobe® AIR® 技术,开发人员可以创建和打包跨平台游戏/适用于 iOS、Android、Windows 和 Mac OS 等主要平台的应用程序。
flash adobe air 开发的财经音视频,rtmp推送。
使用AdobeAIR开发android应用
解决AIR对ADOBE AIR的依赖,软件绿色版
adobe air for android v3.03 apk文件 在安卓上安装air平台
adobeair 最新版 很多软件的基础运行环境,推荐下载
本書全面講解Adobe AIR(Adobe Integrated Runtime)技術和開發實踐。AIR允許利用現有的Web開發技能(包括Flash、Flex、HTML、JavaScript、Ajax)優勢,建立和配置跨平台(或跨作業系統)的桌面RIA(Rich Internet ...