zoukankan      html  css  js  c++  java
  • 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 ItemRenderermobileItemRendererupdateDisplayList分割成drawBackgroundLayoutContentIconItemRenderer使用flex ContentCache高速缓存下载下来的图形图像。

     

    3、用styleableTextField,该类只可以在As3中使用,不能在mxml中使用,性能在mobile中比LabelRichText性能高不少。

     

    4、让flex ItemRender保持矩形形状并且设置OpaqueBackground为一个单一颜色。

     

    5、如果在flex ItemRenderer中绘制自己的背景,则需要将autoDrawBackgroundfalse

     

    6flex ItemRenderer如果外观保持静态,可以设置cacheAsBitmaptrue

     

    7flex ItemRenderer尽量少使用双向绑定。

     

    8、布局定位组件,尽量使用容器组件的layout属性来达到布局目的,尽量少地嵌入容器组件,减少容器组件层次等。

     

    9、优先考虑ConstraintLayout布局方式,减少动态布局。

     

    10、使用GroupGraphics fxg来代替BorderContainer(SkinnableContainer)

     

    11flex mobile中不要使用CreationComplete来初始化view的外观,直接覆盖datasetter方法,尽量避免使用双向绑定以及绑定表达式。

     

    12、建议在ViewViewActivate中调用远程异步服务以及处理子组件的初始化等工作,避免用户体验中的”停顿“。

     

    13、用IncludeInExcludeFromstate的方式隐藏或显示组件。

     

    14、如果一个View来回被用户所切入,那么最好指定该ViewdestructionPolicynever,即在内存中一直保留该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 themecss样式不足,则需要用as3来编写皮肤或者扩展已有组件的皮肤。

     

     

    参考链接:

    http://blog.sina.com.cn/s/blog_81d20bdd01018hf6.html

     

    http://www.adobe.com/cn/devnet/flex/articles/flex-mobile-performance-checklist.html

  • 相关阅读:
    读《成交》有感
    【VC++学习笔记二】绘制图片的双缓冲技术
    【VC++学习笔记一】MFC操作Excel
    敏捷软件开发
    VIM常用命令
    Ubuntu下配置samba实现文件夹共享
    linux系统编程之管道(三):命令管道(FIFO)
    linux系统编程之管道(二):管道读写规则
    linux系统编程之管道(一):匿名管道(pipe)
    《Linux环境进程间通信》系列文章链接
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330054.html
Copyright © 2011-2022 走看看