RSL(Runtime shared libraries)即动态链接库,在程序运行时由FlashPlayer动态加载。静态链接库是SWC文件,通过编译器的library-path和include-libraries编译进应用程序。采用静态链接的应用程序SWF会产生比较大的文件以及更长的下载时间。使用RSL的应用程序载入时间短且文件比较小,而且提高了内存使用效率,只是在开始需要花点时间下载RSL。RSL的强大体现在多个应用程序共享公共代*时,因为RSL只需要被下载一次,多个应用程序动态链接到相同的RSL,访问其中已经缓存在客户端的资源。虽然RSL的巨大优点是缓存到客户端,但是它并不考虑库中的哪些类被真正用到,就把整个RSL库都下载来。
RSL分为两种:未签名和签名的。未签名的RSL,比如标准的和跨域的SWF文件,存储在浏览器缓存里。签名的RSL,这是经过Adobe签名过的,扩展名为.swz,存储在Flash Player 缓存中。只有Adobe才可对RSL进行签名,以此提高安全防止第三方工具注入攻击及执行代*。
1 swz 2. swc(!=rsl) 3 swf
compc默认debug是true,mxmlc默认debug是false.
[备忘] swf swc swz RSLs ant
http://www.smithfox.com/?e=135
使用RSL发布flex项目需要的build.xml要诀详解
http://blog.ityao.com/archives/751
Flex 4.5 RSL 改进
http://yunzhongxia.iteye.com/blog/1138196
1 未签名的RSL,比如标准的和跨域的SWF文件,存储在浏览器缓存里(XP系统:C:\Documents and Settings\{username}\Local Settings\Temporary Internet Files)。下图中as3corelib.swf为第三方的一个工具类,采用的是未签名的RSL。
2 签名的RSL,这是经过Adobe签名过的,扩展名为.swz,存储在Flash Player 缓存中。只有Adobe才可对RSL进行签名,以此提高安全防止第三方工具注入攻击及执行代码,目前只有flex的sdk才是签名的RSL。签名的RSL 会优先被缓存在Flash Player中, (XP系统:C:\Documents and Settings\${username}\Application Data\Adobe\Flash Player\AssetCache)而且可以被任何应用程序访问, 即使是和原先程序不同的domain也能.
swz文件只需下载一次, 就算是浏览器缓存被清除, swz也可以从disk重新读出. 而未签名的RSLs(以swf以形式存在) 只能缓存在各个浏览器中, 如果浏览器的清除了缓存, 就需要再次下载, 而且被限定为只能在Application同一domain内被访问.
针对自定义的SWC,修改其link type为RSL,选择None,同时勾上Automatically extract swf to deployment path(自动将SWF提取到部署路径)。如果想对不同域的RSL共享,则选择Digests(摘要),同时指定其Policy file url(策略文件)
Open Source Media Framework (OSMF)
Flash Player 10.1内部机制(第二部分) - 执行模型之可变跑道
http://blog.csdn.net/zlxluofeng/article/details/5516349