Tag Archive: ant


在今年3月份的一组文章中,我探讨了Gaia网站框架结合Robotlegs的MVC开发方式。这套机制在接下来半年的项目中运行良好,也积累了一些实战经验。但是自从用上了FDT4的Profiler功能以后,就发现了这套框架下存在的内存泄漏问题。一般的Agency/Studio网站页面较少,也不会有较长时间的停留时间和大量的加载卸载,问题还不甚明显。但是一旦项目规模上去以后,这种问题就越显严重。在今年奔驰车展网站制作触摸屏版本的时候就发生了播放器频繁出错退出的情况。排查了很久,初步确定是使用Robotlegs的viewMap.mapView()造成的问题,于是在GitHub上提交了任务单

在接下来的三个月内,我一有时间就思考这个Bug的来源。仔细研究了Gaia和Robotlegs源代码,又借鉴了Robotlegs模块扩展和另一个基于Robotlegs的网站框架HandBones的模块化思想,终于完美解决了这个问题。

首先我先排查了Gaia框架自身的内存泄漏问题。通过Profiler的调试,我发现Page实例在卸载后仍然驻留在内存中。也就是说Gaia框架本身就存在内存泄漏的问题。仔细阅读Gaia的代码后,发现问题出在对loaderContext的处理上。Gaia框架很好的处理了卸载swf可能造成内存泄漏的问题,却唯独遗漏了这个小地方:loaderContext对象会持有对被加载内容的引用。由于Gaia框架卸载loader的内容后,并没有清空loaderContext,所以被加载内容也就没法被垃圾回收。问题找到了,解决方法就很简单。在卸载的同时设置loaderContext=null就可以了。我已经向Gaia论坛提交了这个Bug,并且得到了作者Steven Sacks的肯定回复。官方的修正版本应该不久就能出来了。

View full article »

最近更新比较少,是因为我捣鼓Mac去了。在Mac系统上一口气把Actionscript、Android和iOS的开发环境搭好,研究了几个mobile开发的框架,还顺便研究了一下SVN和Git的几个软件。想起之前的Flash汉字嵌入助手还没有Mac版,所以抽时间修改发布了一下。

由于是AIR程序,所以基本上都不用怎么改。主要是调整了一下ANT脚本中针对不同系统发布的设置。此外还发现了一个小bug:软件名原先设置的是中文,在Mac打包的时候会报文件找不到的错误。所以只好改成了英文名。感兴趣的朋友可以去Github上看看改动记录。

下载:

Flash汉字助手源代码放出

明天就要出国休假一周,在此之前先把原先承诺的Flash汉字嵌入助手的源代码整理共享出来。对Robotlegs框架或者AIR2.0开发有兴趣的朋友不妨研究看看,欢迎一同探讨。原则上本软件和源码遵循MIT协议,如果想修改或用此代码做其他用途的,请保留我的著作信息。

关于编译部分,我用的是自己写的ANT脚本,如果你也要发布自己的软件,请在build.xml中修改密码,然后用keystore target生成自己的认证key。

GitHub下载

Powered by KevinCao.com ©2010 | Platform: WordPress | Theme: Motion
kevincao.com