背景:
大约在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做得越来越好的
分享到:
相关推荐
从标签"macos"我们可以知道这是与苹果的Mac操作系统相关的,"adobeairRuntime"和"adobeair"进一步强调了这个软件是关于Adobe AIR运行时的。 在压缩包文件名称"AdobeAIR-Runtime-Mac-v33.1.1.744"中,我们可以推断出...
在标签中,"windows"指明了操作系统平台,"AdobeAirRuntime"是关键词,强调了我们讨论的主题,而"adobeair"则是对主题的另一种表述。 压缩包内的文件"AdobeAIR-runtime-Windows-v50.2.4.1"很可能是Adobe AIR运行时...
标签中的“dreamweaver的adobe air扩展Adobe_AIR.mxp”再次强调了这是与Adobe AIR相关的Dreamweaver扩展,意味着这个扩展是专门为在Dreamweaver中开发AIR应用而设计的。 压缩包子文件的文件名称列表只包含“Adobe_...
Adobe AIR runtime 33.1.1.744的文件名"AdobeAIR-runtime-Windows-v33.1.1.744"表明这是专为Windows设计的,文件包含了所有必要的组件,使得用户能够在Windows系统上顺畅地运行AIR应用。 使用Adobe AIR开发的应用...
Adobe AIR (Adobe Integrated Runtime) 是一个跨平台的运行环境,由Adobe公司开发,它允许开发者创建桌面应用程序,这些应用程序能够利用Web技术,如HTML、CSS、JavaScript,同时也能利用ActionScript,这是Adobe ...
### Adobe AIR Programming Unleashed #### 一、概述 《Adobe AIR Programming Unleashed》是一本专注于Adobe AIR技术的专业编程书籍。Adobe AIR(Adobe Integrated Runtime)是一种由Adobe Systems开发的跨平台...
- `mimetype`:在Adobe AIR应用中,这个文件用于标识包含的压缩包是Adobe AIR应用。 - `RagingFirePublisher.swf`:SWF(Shockwave Flash)文件是Flash内容的标准格式,这可能是软件中的主要用户界面或运行时组件。 ...
这个入门教程是Adobe公司的内部资料,对于想要学习如何使用Adobe AIR进行开发的初学者来说,无疑是一份宝贵的资源。 在“Adobe AIR 入门教程.pdf”中,你可能会学习到以下关键知识点: 1. **Adobe AIR概述**:了解...
"adobeair残留清理完美版本"就是为了解决这个问题而设计的工具,它可以智能、快速地定位并清理Adobe AIR在系统底层的残留文件。 这个清理工具的核心组件是`msicuu2.exe`,这是一个Microsoft Installer Clean Up ...
在探讨如何使用Adobe AIR开发Android应用之前,我们首先需要对Adobe AIR有一个清晰的理解。Adobe AIR,全称为Adobe Integrated Runtime,是一种跨平台的应用程序运行环境,它允许开发者利用HTML、JavaScript、Flash...
手册涵盖了Adobe AIR 1.5的API参考、开发指南、最佳实践等内容,帮助开发者了解如何充分利用这个平台来创建和部署桌面应用。 6. **功能增强** Adobe AIR 1.5在前一版本的基础上做了许多增强,包括更好的性能、增强...
6. **屏幕镜像**:除了媒体流,Adobe AIR还支持应用程序界面的镜像功能,让用户可以在更大的屏幕上看到完整的应用视图,这对于演示或共享内容特别有用。 7. **事件监听与处理**:为了确保良好的用户体验,开发者...
这篇博客"adobe air 入门示例"很可能是引导初学者了解如何使用Adobe AIR创建桌面应用的一个教程。 在源码和工具的标签下,我们可以推测这篇博客会包含以下知识点: 1. **Adobe AIR基础**:首先,文章可能会介绍...
这个源代码库可能是Adobe AIR在Android平台上的一个实例展示,旨在帮助开发者深入理解如何利用AIR进行应用开发。 1. **Adobe AIR概述** Adobe AIR是一个运行时环境,它允许开发者创建可以在桌面和移动设备上运行的...
adobe air 安装包part1adobe air 安装包part1adobe air 安装包part1adobe air 安装包part1
《Adobe AIR权威指南》是一本深入探讨Adobe AIR技术的专业书籍,适合初学者和有经验的开发者作为学习和参考。Adobe AIR(Adobe Integrated Runtime)是一种跨平台的运行环境,它允许开发人员使用Flash、ActionScript...
这个“Adobe AIR 1.1中文版”是针对中国用户的一个早期版本,提供了对简体中文的支持,使得国内用户能够更方便地安装和使用基于AIR技术的应用。 AIR的主要功能在于它为Web开发者提供了一个桥梁,让他们可以将Web...
这个教程将带你深入理解ADOBE AIR,揭示其在应用开发中的强大潜力。 首先,我们要明白ADOBE AIR的核心优势在于它的跨平台特性。通过AIR,开发者可以编写一次代码,就能部署到Windows、Mac OS X以及Android和iOS等...