`
saboo
  • 浏览: 72210 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Flex RSL专题

    博客分类:
  • Flex
阅读更多

 

一、RSL简介

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进行签名,以此提高安全防止第三方工具注入攻击及执行代码。

 

RSL是 Runtime Shared Library的简称,意思是运行时共享库当前RSL主要有3个级别的,一个是Standard RSL(即一个网站内共享),一个是Cross-domain RSL(跨域共享),最后一个也是最关键的是Framework RSL(Flex框架共享)。 Framework RSL 意思是, 把Flex的类和库在程序运行时动态加载而不是封装在程序里面如果不用 Framework RSL, 你的主程序就会使用你编写的代码里必须导入的类,这样一来, 你代码写的越多, 需要导入越多的类, 你程序体积就越大,也就是说, 不用Framework RSL, 你的程序就是这样的:你自己的自定义类代码 + 你必须使用的Flex自带类 (framework)。如果使用了Framework RSL你的程序就只包含你自己写的类代码而已, 体积就很小了,framework会变成另一个文件, 动态加载到你的程序里。当一个用户加载了任何一个使用此版本RSL的应用程序后,此版本RSL会被其缓存在flash player的cache中,并且这个cache不随着浏览器缓存清空而清空,以后如果此用户再次加载使用此版本RSL的程序的时候便不再需要加载此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 type为RSL,选择None,同时勾上Automatically extract swf to deployment path(自动将SWF提取到部署路径)。如果想对不同域的RSL共享,则选择Digests(摘要),同时指定其Policy file url(策略文件)。具体可参考FLEX SDK中的SWC文件处理方式。

5.点击OK

 

三、RSL与MODULE的区别

先来看一组关于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

同时使用RSL和MODULE: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

分享到:
评论

相关推荐

    避免Flex RSL重复load 提高module加载性能的swc

    Flex RSL(Runtime Shared Libraries)是Adobe Flex框架中的一种机制,用于优化应用程序的加载和运行时性能。RSLs是一组预编译的库,包含了常见的Flex组件和类,允许多个应用程序共享这些资源,减少网络传输的数据量...

    MiniCore:这是有关flex RSL的微型核心。-开源

    《MiniCore:Flex RSL的微型核心解析》 MiniCore,这个名字在IT行业中或许并不那么耳熟能详,但它在Flex ActionScript开发领域却扮演着重要角色。它是一个开源项目,专门为Flex应用程序提供Runtime Shared Library ...

    OTIS-RSL串行协议

    OTIS-RSL串行协议是一种远程串行链接协议,通常用于电梯控制系统中的通信。以下为从标题、描述、标签以及部分内容中提取出的知识点。 1. OTIS-RSL串行协议概述: OTIS-RSL协议是一种远程串行通信协议,它允许电梯...

    rsl.rar_RSL Matlab_attribute reduction_rsl

    标题中的“rsl.rar_RSL Matlab_attribute reduction_rsl”暗示了这是一个与RSL相关的MATLAB代码库,专注于属性约减技术。RSL通常代表Reduced Set Learning或Relevance Set Learning,这是一种在机器学习和数据挖掘...

    flex 面试题flex

    - 对于SWF体积大的问题,可以使用Module动态加载和RSL(Runtime Shared Libraries)共享库来减少下载量。 - 对于处理速度慢,可以优化异步通信,提升用户体验,例如通过进度条显示或异步加载。 8. Flash与Flex的...

    OTIS-RSL串行协议-中文版

    OTIS-RSL串行协议是应用于奥地斯电梯系统中的一种远程串行接口协议标准。该协议在电梯控制系统通信体系结构中扮演关键角色,特别是在远程通信信道,如长电梯通道的通信中。 首先,我们来了解OSI(开放式互联参考...

    RSL类库文件及说明文档

    RSL(Resources Share List)类库是一个用于资源共享和管理的软件开发工具,广泛应用于软件工程领域,特别是那些需要高效协作和资源复用的项目。RSL库提供了丰富的API和功能,帮助开发者轻松实现数据共享、对象通信...

    Flex与ActionScript3程序开发

    目录: 第1篇 基础知识篇 第1章 走进Flex世界 第2章 Flex基础知识 ... 第18章 RSL运行时共享库 第5篇 Flex通信篇 第19章 与JavaScript/AJAX通信 第20章 Flex与PHP通信 第21章 Flex与Java EE通信

    RSL FOTA 软件安装包 安卓xapk格式

    一个简单的应用程序,用于演示 onsemi RSL10/RSL15 蓝牙低功耗设备的无线固件 (FOTA)。 RSL10 和 RSL15 是来自 onsemi 的超低功耗蓝牙低功耗无线微控制器。 FOTA 应用程序充当中央设备来扫描、连接固件映像并将其...

    RSL10 射频测试资源

    在本文中,我们将深入探讨"RSL10 射频测试资源"的相关知识点,主要涉及射频技术、蓝牙低功耗(BLE)通信以及RSL10芯片的应用。RSL10是一款高度集成的无线微控制器,专为超低功耗蓝牙应用而设计。其在射频测试中扮演...

    FLEX面试题

    **RSL**(Runtime Shared Libraries)是Flex中的一种技术,它允许开发者将应用程序中的某些部分封装成共享库,并在运行时按需加载这些库。这种方式可以显著减少初始加载时间,并提高应用性能。 **使用方法**: 1. *...

    RSL10-SENSE-DB-GEVB_GERBER_hardware_rsl10_castcpf_

    【RSL10-SENSE-DB-GEVB_GERBER_hardware_rsl10_castcpf】这个压缩包文件主要涉及的是基于RSL10芯片的传感器开发板(RSL10-SENSE-DB)的硬件设计资料,其中包含了GERBER文件。RSL10是一款由ON Semiconductor公司生产...

    OTIS-RSL远程串行接口协议标准大全.PDF

    OTIS-RSL远程串行接口协议标准大全.PDF

    Flex面试题.pdf

    - 使用Runtime Shared Libraries (RSL) 分离库文件,提高加载效率。 - 异步处理远程调用,提供反馈以改善用户体验。 8. Flex与Flash协同开发: - 当需要Flex SDK功能时,建立Flex工程,使用SWC作为Flash的皮肤。...

    OTIS-RSL串行协议-中文版.pdf

    OTIS-RSL串行协议-中文版。 文档描述了远程串行接口协议标准在奥地斯电梯系统中的应用,该文档在使 用远程串行接口协议标准进行通讯的建模过程提供了参考。对于多个模块的标准 接口定义有参考作用,但是获取不了...

    flex瘦身优化之我见(内部资料)

    通过设置Flex构建路径,将框架链接方式改为"runtime shared library (RSL)",Flex编译器会将框架文件分离出来,形成独立的`.swf`和`.swz`文件。这些文件会在用户首次加载SWF时被下载并缓存到客户端,之后的加载将...

    FLEX企业应用开发实战.part1

     3.5 Flex编译模式、链接模式与RSL  3.5.1 使用系统RSL—Framework  3.5.2 其他的系统RSL  3.5.3 RSL的摘要  3.5.4 使用私有RSL  3.6 小结 第4章 Flex on Java企业应用架构 第5章 BlazeDS框架详解 第6...

    FLEX企业应用开发实战.part2

     3.5 Flex编译模式、链接模式与RSL  3.5.1 使用系统RSL—Framework  3.5.2 其他的系统RSL  3.5.3 RSL的摘要  3.5.4 使用私有RSL  3.6 小结 第4章 Flex on Java企业应用架构 第5章 BlazeDS框架详解 第6...

    Flex企业应用开发实战源代码

    3.5 Flex编译模式、链接模式与RSL 109 3.5.1 使用系统RSL—Framework 110 3.5.2 其他的系统RSL 111 3.5.3 RSL的摘要 112 3.5.4 使用私有RSL 113 3.6 小结 114 第4章 Flex on Java企业应用架构 115 4.1 分布式...

Global site tag (gtag.js) - Google Analytics