Flex AIR Mobile应用性能解决方案
这个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/Air疑难杂症及解决方案简略
十个Flex/Air疑难杂症及解决方案简略 转自http://blog.sban.us/40.html 最近去一家台企,对方给我出了十道“难道”:在TileList中如果選擇檔過多,會出現捲軸,當拖動 ...
- RIAidea – Focus on Flash/Flex/AIR » About Me
RIAidea – Focus on Flash/Flex/AIR » About Me Browse > Home > About Me Tuesday, May 20, 2014 | ...
- 开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))
开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造)) Flex,Fms3系列文章导航 Flex,Fms3相关文章索引 本篇是视频聊天,会议开发实 ...
- 【Abode Air程序开发】Flex air文件打包和运行
1 安装Adobe AIR 运行时,和java的JVM类似. Adobe AIR 运行时允许在桌面运行AIR应用程序,脱离游览器的束缚. 下载安装文件http://get.adobe.com/cn/a ...
- 读取Flex AIR应用程序设置
说明: 本人之前做过一年的Flex AIR移动跨平台开发,在之前学习过程中,一直是将笔记记在了Evernote上,有的笔记是自己写的,也有的笔记是在网上看到,顺手记下了的. 所以在这里声明下,如果在网 ...
- Flex AIR自定义Mobile的弹出框组件
做Flex Mobile开发的人应该知道,Flex为手机应用并没有提供弹出框组件,需要自定义. 通过查找文档.资料,我做出一个效果还算不错的弹出框组件,可以适用于手机设备上,不多讲,直接贴源码,相信对 ...
- Flash, Flex, Air, Flashplayer之间的相互关系是什么?
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:曾嵘链接:http://www.zhihu.com/question/20001256/answer/15565376来源:知 ...
- air mobile andriod ios 页面加载控件
通过最近的研究flex 书写android .ios申请书,我们遇到了一个问题加载页面,我们用flex sdk 12,air 15 无级似android ListView寻呼模块.所以,我和我的同事们 ...
- Flex AIR组件
1.FileSystemComboBox .directory = File.appli / desk/doc / directoryChange 2.FileSystemTree可返回 好用 ...
随机推荐
- Google搜索技巧-入门篇
基本搜索 Google 查询简洁方便,仅需输入查询内容并敲一下回车键 (Enter),或单击“Google 搜索”按钮即可得到相关资料. 搜索两个及两个以上关键字 Google 只会返回那些符合您的全 ...
- 机器学习之Adaboost算法原理
转自:http://www.cnblogs.com/pinard/p/6133937.html 在集成学习原理小结中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习 ...
- 2018-12-29-WPF-如何建立自己的-3d-gis-程序
title author date CreateTime categories WPF 如何建立自己的 3d gis 程序 lindexi 2018-12-29 14:11:11 +0800 2018 ...
- 读JS高性能总结——DOM编程(一)
DOM是一个与语言无关的API,它在浏览器中的借口却是用JS来实现的. 浏览器通常会把DOM和JS独立实现. 在IE中,JS的实现名是JScript,位于jscript.dll文件中,DOM实现则是m ...
- Codeforces 404B
毫无疑问这题不是难题,但是这种题目最让人纠结 打心里对这种题目就比较害怕,果然,各种WE 这里贴上代码,用Python写的,比较偷懒: def cur_pos(a, d): if 0 <= d ...
- 搭建直播服务器,使用nginx与nginx-rtmp-module搭建流媒体服务器;
现在,一起学习一下如何自己搭建一个流媒体服务器吧! 本次搭建流媒体使用的环境是centos 7.0+nginx: 让我们一起开始奇妙的流媒体之旅吧! 1.下载nginx-rtmp-module: ng ...
- node 写的简单爬虫(三)
异步爬取数据 先引入 var async = require('async'); 然后同样上代码 var topicUrls = [];//存所有地址 http.get(url,function(re ...
- django2.0基础
一.安装与项目的创建 1.安装 pip install django 2.查看版本 python -m django --version 3.创建项目 django-admin startprojec ...
- Ubuntu里node命令无效解决方法
在ubuntu里用sudo apt-get install nodejs安装Node.js后, 会发现terminals里运行node命令(比如node –-version)时候会有No such f ...
- CSS兼容性(IE和Firefox)技巧大全
CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理技巧并整理了一下.对于web2.0的过度,请尽量用xhtml格 ...