Flex AIR Mobile应用性能解决方案
来源:互联网 发布:linux ping不通 编辑:程序博客网 时间:2024/06/15 00:21
这个flex mobile开发,一般原生开发也许是最合适的方式,但是涉及到跨平台的问题,有精力的团队一般都会逐个基于移动操作系统进行开发。但是如果追求短小,精悍,快速,希望能够跨平台,基于html5或者Flex开发是一个不错的选择。
Flex是个双刃剑,用的好的,做出来的效果不比原生差,做的不好的,效果、性能则不敢恭维,关于如何使用Flex开发出性能较高的应用,通过验证后得以收纳如下:
1、组件尽量使用为移动开发优化的(Spark组件),皮肤尽量使用简洁的,一般最好通过graphic以及fxg语法来绘制,不要过多嵌入位图。
2、itemRenderer最好用As3的,mobile theme里面有LabelItemRenderer以及IconItemRenderer,里面需要重载的方法有createChildren,measure,drawBackground,layoutContent以及数据的setter。相比Flex ItemRenderer,mobile的ItemRenderer的updateDisplayList分割成drawBackground和LayoutContent。IconItemRenderer使用flex ContentCache高速缓存下载下来的图形图像。
3、用styleableTextField,该类只可以在As3中使用,不能在mxml中使用,性能在mobile中比Label和RichText性能高不少。
4、让flex ItemRender保持矩形形状并且设置OpaqueBackground为一个单一颜色。
5、如果在flex ItemRenderer中绘制自己的背景,则需要将autoDrawBackground为false。
6、flex ItemRenderer如果外观保持静态,可以设置cacheAsBitmap为true。
7、flex ItemRenderer尽量少使用双向绑定。
8、布局定位组件,尽量使用容器组件的layout属性来达到布局目的,尽量少地嵌入容器组件,减少容器组件层次等。
9、优先考虑ConstraintLayout布局方式,减少动态布局。
10、使用Group和Graphics fxg来代替BorderContainer。(SkinnableContainer)
11、flex mobile中不要使用CreationComplete来初始化view的外观,直接覆盖data的setter方法,尽量避免使用双向绑定以及绑定表达式。
12、建议在View的ViewActivate中调用远程异步服务以及处理子组件的初始化等工作,避免用户体验中的”停顿“。
13、用IncludeIn或ExcludeFrom以state的方式隐藏或显示组件。
14、如果一个View来回被用户所切入,那么最好指定该View的destructionPolicy为never,即在内存中一直保留该view的实例。
15、使用BitmapImage代替Image进行图像嵌入工作。
16、使用RectangularDropShadow代替DropShadowFilter
17、使用图像的多个尺寸备份,而不是使用大图+缩放或者图形圆滑技术来适应不同分辨率和dpi。(解决分辨率的根本方法)
18、尽量使用png图形,而不是采用jpg或者gif.
19、对于简单图形,可以采用graphics或者rect fill等,对于复杂一点的图形建议采用Adobe Illustrator来绘制fxg矢量图形。
20、尽量使用css,利用mobile theme已有的皮肤,因为这些皮肤已经高度优化。
21、如果mobile theme的css样式不足,则需要用as3来编写皮肤或者扩展已有组件的皮肤。
参考链接:
http://blog.sina.com.cn/s/blog_81d20bdd01018hf6.html
http://www.adobe.com/cn/devnet/flex/articles/flex-mobile-performance-checklist.html
- Flex AIR Mobile应用性能解决方案
- flex mobile性能优化点
- Flex AIR自定义Mobile的弹出框组件
- Flash/Flex/AIR:在LINUX下尝试开发AIR应用
- FLEX AIR桌面应用——ChildPro
- Flex web应用调用Flex AIR桌面应用
- Flex应用性能优化
- Flex AIR
- 基于ArcGIS Flex API开发Mobile应用
- 采用Adobe Flex & AIR技术的经典应用
- 为下一代互联网应用而学习, 谈谈 flex , air
- Flex Air应用开发:Rss阅读器制作(1)
- FusionCharts for Flex AIR应用之数据xml位置
- Nitro-LM保护Flex/AIR应用的安全
- Flex AIR应用拍照功能(Android和IOS版本)
- Flex AIR应用GPS定位功能(Android和IOS)
- Flex AIR应用换肤功能(Android和IOS)
- Flex AIR应用的启动闪屏(必须)
- c#一个神奇的函数
- C++字符串中去除汉字(GB2321)
- 自己练手的
- jquery根据锚点offset值实现动画切换
- win7(64位)平台下Cygwin+Eclipse搭建Hadoop单机开发环境 (一) Cygwin(64位)的安装 + ssh的配置
- Flex AIR Mobile应用性能解决方案
- 2014.09.12 周五-js审核-html
- ruby 控制语句
- OraOLEDBpus10.dll: 找不到指定的模块。Test connection failed because of an error in initializing provider. 未在
- php不启用save_mode安全模式的设置方法
- Permutation Sequence leetcode
- Background Modes in iOS Tutorial
- N-Queens
- Vuforia SDK---- Vuforia AR开发对焦模式