`
cuixuxucui
  • 浏览: 346422 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

一、RSL简介

RSL(Runtime shared libraries)即动态链接库,在程序运行时由FlashPlayer动态加载。静态链接库是SWC文件,通过编译器的library-pathinclude-libraries编译进应用程序。采用静态链接的应用程序SWF会产生比较大的文件以及更长的下载时间。使用RSL的应用程序载入时间短且文件比较小,而且提高了内存使用效率,只是在开始需要花点时间下载RSLRSL的强大体现在多个应用程序共享公共代码时,因为RSL只需要被下载一次,多个应用程序动态链接到相同的RSL,访问其中已经缓存在客户端的资源。虽然RSL的巨大优点是缓存到客户端,但是它并不考虑库中的哪些类被真正用到,就把整个RSL库都下载来。

 

RSL分为两种:未签名和签名的。未签名的RSL,比如标准的和跨域的SWF文件,存储在浏览器缓存里。签名的RSL,这是经过Adobe签名过的,扩展名为.swz,存储在Flash Player 缓存中。只有Adobe才可对RSL进行签名,以此提高安全防止第三方工具注入攻击及执行代码。

 

二、使用RSL

1.在项目文件夹中点右建,选择"properties"-"Flex Build Path"-"Library Path"

2.该选项卡上我们看到"FrameWork linkage",默认是"Merged into cdoe"(FLEX4默认是RSL)

3.点开下拉,选择"runtime shared library(RSL)"

4.针对自定义的SWC,修改其link typeRSL,选择None,同时勾上Automatically extract swf to deployment path(自动将SWF提取到部署路径)。如果想对不同域的RSL共享,则选择Digests(摘要),同时指定其Policy file url(策略文件)。具体可参考FLEX SDK中的SWC文件处理方式。

5.点击OK

 

三、RSLMODULE的区别

先来看一组关于module1,module2,module3,module4,module5,module6,Application的数据

不使用RSL,不使用MODULE:843K,844K,863K,851K,851K,833K,1581K

只使用RSL:351K,353K,358K,358K,354K,348K,1022K

只使用MODULE:106K,107K,110K,113K,107K,103K,1581K

同时使用RSLMODULE:104K,106K,109K,111K,106K,101K,1022K

注:

1.上述的RSL只包含FLEX FRAMEWORK(553K)

2.MODULE已经勾选optimize for application

四、RSL注意事项

1.RSL不是对于所有的应用都有益. 需要对应用RSL前后的下载时间和启动时间都测试过, 才能得到正确的结论.

 

2.RSL通常会增加应用的启动时间. 这是应用不管整个库实际如何使用, 只是简单地全部加载整个库. 就这一点来说, RSL越小越好. 这与静态链接库的使用是不同的. 当你编译一个Felx应用时, 编译器只解开需要的组件. 一般来说, 库的大小可以是任意的, 它只影响编译时间而不会影响下载的时间.如果在好几个应用中使用相同的组件库, 那么可以考虑合并这些库, 形成一个RSL. 但是如果库合并后, 每个应用只会用到其中的一小部分, 那么还不如多加载几个小RSL更高效.

 

3.如果一些类重复打包在多个RSL, 那么一定要注意同步更新的问题.

 

4.RSL不能应用在基类是Sprite或者MovieClip的纯ActionScript项目中. 因为RSL需要基类知道如何加载RSL, 比如: Application或者SimpleApplication.

 

 

五、使用optimizer命令行工具优化自己的RSL

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics