作者:empty 页数:80 出版社:empty |
第1章:简介随着Adobe*Flash*Player 10.1的发, 开发人员可以在移动设备和桌面上使用相问的FlashPlayer-本文档通过代码示例和使用案例,为开发人员概括介绍了在移动设备上部署应用程序的最仕做法。题包括:·节省内存·最大程度减小CPU使用量·提高ActionScript 3.0性能,加快呈现速控·优化网络交互,使州音翻和视频·优化SQL数据库性能·基测试和部署应用程序此文档重点介绍针对移动浏览器中运行的应用程序的最仕做法。不过,大多数这些忧化都适用汀所有平台(包括桌面,移动设备, 表和TV) 上远行的Adobe AIR'和FlashPlayer应用程序。运行时代码执行基本原理了解如何改进应用程序性能的关键是了解Flash平台运行时如何执行代码。运行时在一个循环中运行, 其中某些操作是针对每个“顿“发生的。在这种情况上,钱只是由为应用程序指定的钛速率决定的一段时间。分配给好个帧的时间直按对应于率、例如,如果指定速率为30钱/秒,制运行时会尝试使每个軸的执行时间为一十分之秒。可以在创作应用程序时指定初始帧率。可以使用Adobe*Flash*Builder成Flash Professional中的说置来说置率, 述可以在代码中指定初始顿迷率。可通过对根文档类应用(SWP(frameRate-*24 无数据标餐, 纯ActionScript应用程序中设置顿速率。在MXML中, 可在Application或Windowed Application标餐中设置frameRate属件。每个循环包括两个阶段, 分为三部分:事件, enter Frame事件和呈玛。第一阶段包括网部分(事件和enter Frame事件) , 两部分都可能会行致调用代码。在第一阶段的第一部分, 发生并调度运行事件。这热事性可以表示异操作完成或异事操作的进发,例知来白通过网络加载数据的响。还包括来自用户输入的事。调度事件时,运行时在您已注册的锁听器中执行代码。如果没有发生事件,运行时会等待完成此执行阶段,而不会执行任何功作。由下少活功,运行吋水远不会提高朝速率。如果在执行周期的其他部分发生事竹,运行将这些事竹排队并在下一个顿中进行调度。第一阶段的第二部分是enter Frame事件, 此事件与其事件个, 因为每个始终只调度一次该事件,训度所有事性后,环的呈现阶段开始。此时,起行时将计算屏幕上所有可见元来的状态并将儿绘制到屏幕上、然底,此进程重复,就像赛跑者围绕跑通跑。注:对于包括update After E went属性的中件, 可强制立脚执行呈现操作, 南不是等到呈现度。但是, 如果update After Event频导致性能问断,应避免使用它。最简单的方法是假设循环中的两个阶段需要相同的时间。在这种情况下,半的时间运行顿握环事件处理函数和应用程序代码,另一半的时间发生呈现。但是,事实通常是不同的。有时,应用程序代码会通过增加运行时间并减少用于呈现的时间来占用顿中多一半的可用时间。在其他情配下,特别是对于镜和载合模式等复杂的可见内料,呈现需要一半以上的顿时间。由于各阶轻需要的实际时间是灵话的,所以顿循环附称为“弹跑道”:货化FLASH平台的性能
如果顿精环的組合操作(代码执行和呈现)所需时间太长,运行时将无法保持顿速中。顿会进行扩展,所需时间超过其分配的时间,因此在触发下个朝之萌会山现延。例如,如果一个咖环需要的时间超过三十分之一秒,则运行时不能以句秒三十朝的座更新屏格。如果畅速率减慢,将影响体验效果。最乐观的情况是动间断断续续。如果情况更精和,应用程序将月结,井几窗口一片空白-有关Flash半合运行时代码执行和显现模型的详细信息, 请参间下列资源:·FlashPlayer Mental Model-The Elastic Racetrack(文章作者:Ted Patrick)·Asynchronous ActionScript Execution(文章作者:Trevor Me Cauley)·忙化Adobe AIR的代码执行、内存和呈现(网址为www.adobe.com/go/learn_fp_air_perf_tv_cn} (出SeanChristmann撰写的MAX会议示文码的视频)感知性能与实际性能应用程序性能的最终判定者是该应用程序的用户。开发人员可以根据某操作的远行时间或球的对象实例的数量来度量应用程序性能。但是,这些度量标准对最终用户米说不重要。有时,用户通过不同标准度量性能。例如,底用程序是否快联利地执行,是否快速响京输入?它是否会对系统的性能产生负面影响?自洲下列感知性能测试的问题:,功国是流畅还是断断续续?·观看视频内容时足流畅还足断断续续·音频辑足连续插还是暂停再恢复插?在时间较长的操作期间,窗口是否会闪烁或变成空白?,键入时,文本输入保持同步还是有些延迟)·如果单山,会立即发生某些情况还是存在延迟, 应用程序运行时, CPU风扇声音是会变大?·在r病式计算机或移动设备上运行应州程序时,电池是会很快耗尽·此应用程序运行时,其他应用程序是否响应效果根差?感知性能和实际性能之间的区别很重要。达到最佳感知性能的方式与状得绝对最快性能的方式并不终和同。请确保应用程序不执行太多会世运行时光法频资更新屏岩和收集用户输入的代码。在某情况下,达到此十街需要将程序任务拆分成几部分,以性运行时在各部分之间更新屏幕-(有关特定指导信息,请参阅第40页的“全理性能”)此处介绍的技巧和技术行在改进实际代码执行性能和用户感知性能的方法。实现优化有些性能改进不会为用户带来刚显的改进。性能化集中在存在特定应用程序问题的领域很重要。有些性能化是常规的好做法,任何情况下都可以遵守-对于其他优化,它们是查有用彩决于您的应用程序的需要及其和期的用户-例如,如果您不使用任功调、视制图形出镜和效果, 您的应用程序的执行性能确实会更好。世是, 使用Flash平台未建应用程序的原困之是媒体和图形功能允许表现力上富的应川程序。考虑您断需的富级别是否与运行应川程序的计算机和设备的性能特性匹配良好。