`
smartinvoke
  • 浏览: 106005 次
  • 性别: 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基础**:首先,文章可能会介绍...

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

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

    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 air1.1中文版

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

    ADOBE AIR 教程

    这个教程将带你深入理解ADOBE AIR,揭示其在应用开发中的强大潜力。 首先,我们要明白ADOBE AIR的核心优势在于它的跨平台特性。通过AIR,开发者可以编写一次代码,就能部署到Windows、Mac OS X以及Android和iOS等...

Global site tag (gtag.js) - Google Analytics