`
smartinvoke
  • 浏览: 106946 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

Adobe AIR这个鸡肋,我有话说

阅读更多

背景:

大约在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做得越来越好的

 

 

分享到:
评论
13 楼 wjjxyz 2013-02-07  
http://smartrcp.org/si/ 网址不能访问,是不是楼主放弃了!
12 楼 smartinvoke 2011-06-27  
11122233 写道
运行时需要air runtime和jre,包袱太大。

用java运行环境接管了air 的runtime了,所以不需要air 的runtime啦
11 楼 howgoo 2011-06-27  
虽然前面说了大堆理由,后面一看,竟然是广告。 广告性质太明显了。
10 楼 11122233 2011-06-03  
运行时需要air runtime和jre,包袱太大。
9 楼 ltian 2011-05-25  
你们都再说什么呢,咱还真看不懂了。
8 楼 xlightningx 2011-04-11  
确实我编译一个air程序需要2分钟的时间,很不方便.楼主smartinvoke的动机很好,学习一下
7 楼 smartinvoke 2011-03-21  
damoqiongqiu 写道
Flex一样很悲催,你说的4个问题全部碰到了,自己通过自己管理对象的方式解决,目前效果还不错。

很强大,不知道怎样实现对象管理呢?
6 楼 damoqiongqiu 2011-03-21  
Flex一样很悲催,你说的4个问题全部碰到了,自己通过自己管理对象的方式解决,目前效果还不错。
5 楼 ligaibing 2011-03-11  
smartinvoke 写道
ligaibing 写道
蜗牛兄又在宣传自己的smartinvoke了,

嘿嘿,兄弟是群里的哪位?

网名是一样的,去年有在群里聊过几句的,
4 楼 smartinvoke 2011-03-02  
ligaibing 写道
蜗牛兄又在宣传自己的smartinvoke了,

嘿嘿,兄弟是群里的哪位?
3 楼 ligaibing 2011-03-02  
蜗牛兄又在宣传自己的smartinvoke了,
2 楼 smartinvoke 2011-02-23  
hackwaly 写道
非常不错

看完后给我的感觉就是java来写逻辑和数据层,air来做展现层
唯一不好的地方就是用户必须同时会两种语言,因为air的地方不可能一点as都不写吧,如果你的框架可以让用户不用写一丁点actionscript,我觉得会更好一些

不过呢,java写逻辑始终没有js这样的语言方便,所以很纠结啊



确实,同时需要java与flex做开发,但是可以分工协作,Java开发人员专门做后台逻辑服务,Flex开发人员专门做前端显示,胡不干扰也不是挺好嘛

不过个人觉得Java写逻辑代码非常的合适,这与他语法严谨,易于调试分不开的
1 楼 hackwaly 2011-02-23  
非常不错

看完后给我的感觉就是java来写逻辑和数据层,air来做展现层
唯一不好的地方就是用户必须同时会两种语言,因为air的地方不可能一点as都不写吧,如果你的框架可以让用户不用写一丁点actionscript,我觉得会更好一些

不过呢,java写逻辑始终没有js这样的语言方便,所以很纠结啊

相关推荐

    adobe air runtime version 33.1.1.744 for Mac

    从标签"macos"我们可以知道这是与苹果的Mac操作系统相关的,"adobeairRuntime"和"adobeair"进一步强调了这个软件是关于Adobe AIR运行时的。 在压缩包文件名称"AdobeAIR-Runtime-Mac-v33.1.1.744"中,我们可以推断出...

    adobe air runtime version 50.2.4.1 for windows

    在标签中,"windows"指明了操作系统平台,"AdobeAirRuntime"是关键词,强调了我们讨论的主题,而"adobeair"则是对主题的另一种表述。 压缩包内的文件"AdobeAIR-runtime-Windows-v50.2.4.1"很可能是Adobe AIR运行时...

    dreamweaver的adobe air扩展Adobe_AIR.mxp

    标签中的“dreamweaver的adobe air扩展Adobe_AIR.mxp”再次强调了这是与Adobe AIR相关的Dreamweaver扩展,意味着这个扩展是专门为在Dreamweaver中开发AIR应用而设计的。 压缩包子文件的文件名称列表只包含“Adobe_...

    adobe air runtime version 33.1.1.744 for windows

    Adobe AIR runtime 33.1.1.744的文件名"AdobeAIR-runtime-Windows-v33.1.1.744"表明这是专为Windows设计的,文件包含了所有必要的组件,使得用户能够在Windows系统上顺畅地运行AIR应用。 使用Adobe 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 Programming Unleashed》是一本专注于Adobe AIR技术的专业编程书籍。Adobe AIR(Adobe Integrated Runtime)是一种由Adobe Systems开发的跨平台...

    flash adobe air 采集音视频 软件

    - `mimetype`:在Adobe AIR应用中,这个文件用于标识包含的压缩包是Adobe AIR应用。 - `RagingFirePublisher.swf`:SWF(Shockwave Flash)文件是Flash内容的标准格式,这可能是软件中的主要用户界面或运行时组件。 ...

    AdobeAIR入门教程

    这个入门教程是Adobe公司的内部资料,对于想要学习如何使用Adobe AIR进行开发的初学者来说,无疑是一份宝贵的资源。 在“Adobe AIR 入门教程.pdf”中,你可能会学习到以下关键知识点: 1. **Adobe AIR概述**:了解...

    adobeair残留清理完美版本

    "adobeair残留清理完美版本"就是为了解决这个问题而设计的工具,它可以智能、快速地定位并清理Adobe AIR在系统底层的残留文件。 这个清理工具的核心组件是`msicuu2.exe`,这是一个Microsoft Installer Clean Up ...

    使用AdobeAIR开发android应用

    在探讨如何使用Adobe AIR开发Android应用之前,我们首先需要对Adobe AIR有一个清晰的理解。Adobe AIR,全称为Adobe Integrated Runtime,是一种跨平台的应用程序运行环境,它允许开发者利用HTML、JavaScript、Flash...

    Adobe AIR 1.5 中文帮助手册

    手册涵盖了Adobe AIR 1.5的API参考、开发指南、最佳实践等内容,帮助开发者了解如何充分利用这个平台来创建和部署桌面应用。 6. **功能增强** Adobe AIR 1.5在前一版本的基础上做了许多增强,包括更好的性能、增强...

    as3 adobe air ios airplay

    6. **屏幕镜像**:除了媒体流,Adobe AIR还支持应用程序界面的镜像功能,让用户可以在更大的屏幕上看到完整的应用视图,这对于演示或共享内容特别有用。 7. **事件监听与处理**:为了确保良好的用户体验,开发者...

    adobe air 入门示例

    这篇博客"adobe air 入门示例"很可能是引导初学者了解如何使用Adobe AIR创建桌面应用的一个教程。 在源码和工具的标签下,我们可以推测这篇博客会包含以下知识点: 1. **Adobe AIR基础**:首先,文章可能会介绍...

    Adobe AIR 开发人员工具箱

    另一方面,Aptana Studio是一个免费开源的IDE,支持AJAX开发,且有专门的Adobe AIR插件,可以便捷地进行AIR应用的开发、运行和导出。De MonsterDebugger是一个独立的调试工具,对Flash、Flex和AIR开发者非常有用,...

    Android移动开发--基于Adobe AIR 源代码

    这个源代码库可能是Adobe AIR在Android平台上的一个实例展示,旨在帮助开发者深入理解如何利用AIR进行应用开发。 1. **Adobe AIR概述** Adobe AIR是一个运行时环境,它允许开发者创建可以在桌面和移动设备上运行的...

    Scratch2(含adobe AIR 和 Scratch2)

    "Scratch2(含adobe AIR 和 Scratch2)"这个标题表明这个压缩包包含了两个关键组件:Scratch2应用程序和Adobe AIR运行环境。 Adobe AIR(Adobe Integrated Runtime)是一个跨平台的运行环境,允许开发者创建桌面应用...

    adobe air 安装包part1

    adobe air 安装包part1adobe air 安装包part1adobe air 安装包part1adobe air 安装包part1

    Adobe AIR权威指南

    《Adobe AIR权威指南》是一本深入探讨Adobe AIR技术的专业书籍,适合初学者和有经验的开发者作为学习和参考。Adobe AIR(Adobe Integrated Runtime)是一种跨平台的运行环境,它允许开发人员使用Flash、ActionScript...

    Adobe AIR技术学习

    Adobe AIR技术学习主要涉及到的是如何使用Adobe Integrated Runtime (AIR)这一跨平台的运行时环境来构建富Internet应用程序,并将其部署为桌面应用。Adobe AIR允许开发者利用已有的Web开发技术,如Flash、Flex、HTML...

    adobe air1.1中文版

    这个“Adobe AIR 1.1中文版”是针对中国用户的一个早期版本,提供了对简体中文的支持,使得国内用户能够更方便地安装和使用基于AIR技术的应用。 AIR的主要功能在于它为Web开发者提供了一个桥梁,让他们可以将Web...

Global site tag (gtag.js) - Google Analytics