适用于iOS的AIR:节能
您可以做的最大的事情之一是根据应用状态调整帧率。
您可以通过添加App.mxml
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
activate="activate()" deactivate="close()" />
里面您激活内部处理程序做到这一点,close方法
//activate
FlexGlobals.topLevelApplication.frameRate = 24;
//deactivate
FlexGlobals.topLevelApplication.frameRate = 2;
您也可以玩弄根据您的应用程序是什么这个数正在做。如果你只是显示文本尝试降低你的fps。这应该会让您在降低功耗方面获得最大的回报。
一般而言,高功率消耗可以是的结果:
- 密集网络使用
- 没有睡眠模式显示而应用空闲
- 未所需位置服务的使用
- 汽车无高使用率的CPU
关于(flex/flash)AIR我建议:
首先您使用Flex profiler +任务管理器并监视CPU和内存使用情况。尽量减少它们。只要你在windows/mac上拥有这个低点,它们就会变低(理论上在移动设备上)
下一步是使用网络监视器并减少网络(webservice)调用的数量和大小。尝试识别不需要的网络活动并将其消除。
尝试检测应用程序的任何空闲状态(可以在Flex中,不知道闪光),也许把整个应用程序处于空闲模式(如果你有焰火动画运行,那么只需调用stop())
另外我不确定,但会降低cpu,并使用更多的GPU:通过使用Stage3D(现在可用于空气3.2也适用于手机),当你做复杂的任何事情。由于HW加速器在那里,所以可能会缩短执行时间,因此功耗可能会降低。
如果我对某事有错,请评论/ downvote(如你所愿),但这是我的个人印象。
更新1
根据提示在评论中,没有一个桌面和移动设备上的CPU使用量之间的100%的链接,但“theoreticaly”在低电平上,我们至少应该有相同的CPU使用趋势。
我的秘诀:
- 简介您的应用程序与在Flash Builder
- 探查的第一步。如果你有一个苹果,在Xcode
配置文件与仪器应用程式并重要的:
模拟器,IPA解释器软件包和IPA测试版本的行为是不同的。
模拟器 - 备考优化
IPA-解释 - 获取的性能
IPA-测试的感觉 - “真正的” 性能行为
最后测试在AppStore - 建造,它是最快(在性能的意义上)封装模式。 另外我们看到,所有这些模式可能会有所不同。
您可能还想看看调整帧率。尝试降低它,只要你不动画或应用程序不再焦点。 – francis 2012-03-29 13:44:11
不知道桌面计算机的任务管理器如何反映AIR应用程序的实际CPU使用情况。请记住,已编译的应用程序(发布版本)将与模拟器的执行情况非常不同。就我个人而言,我宁愿查看Flex Profiler显示的方法的编译时间。如果可能的话,如果你想要一个已部署的应用程序的实际CPU使用率,那么设备上的任务管理器可能就是要走的路,但只有在听说正确的情况下,才可以在Android上使用ICS。 – AlBirdie 2012-03-29 13:52:13
@Al_Birdy肯定的是,iPhone CPU具有完全不同的架构,桌面CPU以及AIR应用程序的AS代码被转换为iOS兼容的二进制代码,因此确保2之间没有100%的匹配。但是,在桌面上为您的空中应用程序提供100%的cpu使用量肯定会在移动设备上产生较高的CPU使用率。 – 2012-03-29 13:56:55