Flex App的Size和Link报告

0

Flex编译器参数: -size-report 和 -link-report

编译参数

Flex编译器提供了一系列的编译器参数帮助我们定制应用编译过程。Flex开发者应该了解这些相关的编译参数。在Flex的在线帮助中提供了编译器参数列表。
在这篇文章中,我们介绍两个帮助你深入了解编译结果SWF内部组成的参数-link-report和-size-report。

-link-report

在Flex3.x和4.0版本的编译器中已经提供了-link-report参数,使用该选项编译Flex应用后,可以生成XML格式的SWF中内嵌的AS3类报告,该报告中也会知名每个类所占有的空间。但是,在这个报告中只提供了针对这些AS3类的尺寸,而没有更高层面的size报告,比如内嵌的字体,图片,或者SWF中其他元件等等。

Flex编译参数:-size-report

为了提供针对更高层面内容的size报告,在Flex HERO中,又提供了一个新的编译器参数-size-report,使用这个报告,开发者能够更加清楚Flex应用swf文件中,各个部分占用的空间情况,并有针对性的进行调整,以缩小swf的尺寸。

下图显示了如何设置编译器参数:

示例

所生成的linkReport部分如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<report>
<scripts>
<script name="/Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/textLayout.swc(flashx.textLayout.events:CompositionCompleteEvent)" mod="1295643054000" size="1904" optimizedsize="758">
<def id="flashx.textLayout.events:CompositionCompleteEvent" />
<pre id="flash.events:Event" />
<dep id="flashx.textLayout.elements:TextFlow" />
<dep id="AS3" />
</script>
<script name="/Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/framework.swc(mx.styles:CSSSelector)" mod="1275497464070" size="2200" optimizedsize="1261">
<def id="mx.styles:CSSSelector" />
<pre id="Object" />
<dep id="mx.styles:CSSCondition" />
<dep id="mx.styles:CSSConditionKind" />
<dep id="AS3" />
<dep id="mx.core:mx_internal" />
<dep id="mx.styles:IAdvancedStyleClient" />
</script>
<script name="/Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/framework.swc(mx.graphics:BitmapFillMode)" mod="1275497481789" size="490" optimizedsize="261">
<def id="mx.graphics:BitmapFillMode" />
<pre id="Object" />
<dep id="AS3" />
</script>
<script name="/Applications/Adobe Flash Builder 4.5/sdks/4.5.0/frameworks/libs/framework.swc(mx.utils:DescribeTypeCache)" mod="1288294862779" size="1706" optimizedsize="990">
<def id="mx.utils:DescribeTypeCache" />
<pre id="Object" />
<dep id="flash.utils:describeType" />
<dep id="ReferenceError" />
<dep id="flash.utils:getQualifiedClassName" />
<dep id="mx.utils:DescribeTypeCacheRecord" />
<dep id="AS3" />
<dep id="mx.binding:BindabilityInfo" />
<dep id="flash.utils:getDefinitionByName" />
<dep id="XML" />
<dep id="mx.core:mx_internal" />
</script>
</scripts></report>

sizeReport部分内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
< ?xml version="1.0" encoding="UTF-8"?>
<report>
<swf size="4555178" compressedSize="2066554">
<!-- Header data (SWF attributes, product info, markers, etc.) -->
<headerdata totalSize="564">
<data type="metaData" size="462"/>
<data type="productInfo" size="28"/>
<data type="swfHeader" size="21"/>
<data type="debugID" size="18"/>
<data type="enableDebugger" size="16"/>
<data type="fileAttributes" size="6"/>
<data type="scriptLimits" size="6"/>
<data type="backgroundColor" size="5"/>
<data type="endMarker" size="2"/>
</headerdata>
<!-- Cumulative frame size summary. -->
<frames totalSize="4554614">
<frame name="_Main_mx_managers_SystemManager" size="135580" frame="1"/>
<frame name="Main" size="4419034" frame="2"/>
</frames>
<!-- Actionscript code and constant data. -->
<actionscript totalSize="4525102">
<abc name="mx/core/UIComponent" size="105259" frame="2"/>
<abc name="flashx/textLayout/container/ContainerController" size="82639" frame="2"/>
<abc name="mx/core/Container" size="49876" frame="2"/>
<abc name="spark/components/DataGrid" size="47363" frame="2"/>
<abc name="spark/primitives/supportClasses/GraphicElement" size="45898" frame="2"/>
<abc name="flashx/textLayout/compose/TextFlowLine" size="42200" frame="2"/>
<abc name="spark/components/RichEditableText" size="42086" frame="2"/>
<abc name="flashx/textLayout/container/TextContainerManager" size="41952" frame="2"/>
<abc name="spark/components/Scroller" size="40208" frame="2"/>
<abc name="flashx/textLayout/compose/BaseCompose" size="39741" frame="2"/>
<abc name="flashx/textLayout/elements/FlowElement" size="39226" frame="2"/>
<abc name="spark/components/Grid" size="39090" frame="2"/>
<abc name="flashx/textLayout/formats/TextLayoutFormat" size="37385" frame="2"/>
<abc name="spark/components/gridClasses/GridLayout" size="36929" frame="2"/>
<abc name="mx/managers/SystemManager" size="36356" frame="1"/>
<abc name="mx/core/FTETextField" size="34531" frame="2"/>
<abc name="flashx/textLayout/edit/SelectionManager" size="28537" frame="2"/>
<abc name="_Main_Styles" size="27469" frame="2"/>
<abc name="spark/components/WindowedApplication" size="27380" frame="2"/>
<abc name="spark/components/List" size="25814" frame="2"/>
</actionscript></swf></report>

在size-report中,按照头数据(HeaderData),帧小结(Frame Summary), 帧数据(Frame Data),ActionScript数据(ActionScript的代码和常量数据),Bitmap数据,字体,图形数据,声音数据,视频数据等类别组织。

非常容易使用的方法帮助你详细了解编译后SWF文件的内部组成。如果你使用命令行,可以运行如下命令:

mxmlc -size-report=sizeReport.xml -link-report=linkReport.xml xxxx.mxml

optimizer -keep-as3-metadata="Bindable,Managed,ChangeEvent,
NonCommittingChangeEvent,Transient" -input input_swf -output output_swf

Flex App的Size和Link报告相关推荐

  1. Android 性能优化:使用 Lint 优化代码、去除多余资源,减少APP的size

    前言 在保证代码没有功能问题,完成业务开发之余,有追求的程序员还要追求代码的规范.可维护性. 今天,以"成为优秀的程序员"为目标的拭心将和大家一起精益求精,学习使用 Lint 优化 ...

  2. 人机交互技术课程实验报告《社交点评APP》系统移动界面分析报告

    人机交互技术课程实验报告 <社交点评APP>系统移动界面分析报告 班级: 学号: 姓名: 需求分析[U1] 1.1系统功能介绍[02] <社交点评APP>是一个当下年轻人用于分 ...

  3. 奇安信病毒检测中心 2022年第二季度App收集个人信息检测报告 学习笔记 附下载地址

    奇安信 2022年第二季度App收集个人信息检测报告 下载地址 2022年第二季度 APP收集个人信息 检测报告 奇安信 病毒响应中心 研究背景 随着互联网和移动设备的发展,手机已成为人人都拥有的设备 ...

  4. 在线产品经理实习 任务二:为搜狐视频APP做用户反馈分析报告

    任务二:为搜狐视频APP做用户反馈分析报告 一.任务简介及要求 出题人:赵洪胜 搜狐视频产品总监 你知道每个新同学加入公司后,第一个要做的工作一般是什么吗?不是功能设计,不是改变世界,不是从0到1,而 ...

  5. 安卓APP源码和设计报告——基于Android的垃圾分类系统

    <移动应用开发>大作业报告 题 目    基于Android的垃圾分类系统 系 部     班 级     学 生 姓 名     学 号     指 导 教 师     时 间     ...

  6. 安卓APP源码和设计报告——仿淘宝水果商城

    项目名称 仿淘宝水果商城 项目概述 随着互联网技术地高速发展,计算机进入到每一个人的生活里,从人们的生活方式到整个社会的运转都产生了巨大的变革,而在信息技术发达的今天,互联网的各种娱乐方式都在渗透到人 ...

  7. 安卓app源码和设计报告——简易记账本

    课 程 设 计(实训)说 明 书 题目 实现简易记账本功能 专 业 班 级 学生姓名 同组学生 指导老师 课程设计(实训)评语 学生姓名 专业 班级 2 题目 实现简易记账本功能 评语: 成绩: 优 ...

  8. 血的教训, 通过中国银行app查询个人征信报告需要多久

    背景 today,接到一个度小满金融客服的电话, 说我有一个19年的贷款申请记录,今日通过审批. 当时心里就是哔了狗了,感觉这货会影响征信.遂打电话给客服要求注销账号, 结果蛋疼的非要我下载app.算 ...

  9. 安卓APP源码和设计报告——快递查询录入系统

    <多媒体通信技术> 题 目: 快递 完 成 日 期 2022年05月 目 录 1 绪论1 2 设计方案2 2.1 设计思路和方案2 2.2 功能要求2 2.3 设计的流程图2 3 设计过程 ...

最新文章

  1. Varnish 4.0.3详细配置
  2. UA MATH563 概率论的数学基础 中心极限定理16 Kolmogorov 3-series定理
  3. kvm 虚拟机 实用工具笔记(方便查看ip 磁盘复制和修改文件等)
  4. Oracle--SQL技巧之二(多行记录用逗号拼接在一起)
  5. java界面 文件选择器_掌握java技术 必备java工具应用知识
  6. 在VI中删除行尾的换行符
  7. Mongodb 安装和启动
  8. nginx设置 二级域名 指定端口
  9. Linux的实际操作:文件目录类的实用指令(echo head tail)
  10. Android软硬整合设计与框架揭秘教程
  11. ubuntu 安装 theano
  12. shutdown函数
  13. Listener中应用spring管理的Bean
  14. MySql视图、存储过程、函数、索引
  15. COAP协议全面分析
  16. MATLAB图像处理学习日记之图像的自定义裁剪imcrop操作
  17. 计算机网络双绞线的功能,双绞线由几根组成?双绞线每根线的作用
  18. linux查看照片命令,php 及 linux 命令行方式读取 图片 exif 信息
  19. R语言入门——不掉包实现FNN(单层感知机)
  20. android 平板 旗舰,聊一款旗舰级安卓平板电脑

热门文章

  1. mac 打不开 不受信任_管理不受信任的外键
  2. “校园知网”5月8日冲刺计划书
  3. Web常见漏洞修复建议
  4. 内置auth 的使用,用超级用户创建
  5. IntelliJ IDEA 文件夹重命名--解决重命名后js文件引用找不到路径报404错误
  6. HttpContext.Current.Session.SessionID相关问题及备忘
  7. 1004. Counting Leaves (30)
  8. 设置mysql允许外网访问
  9. 2018年广西计算机一级,关于2018年上半年广西壮族自治区全国计算机等级考试报名工作的通知...
  10. Java多线程基础总结