2012-03-29 79 views
3

可以应用哪些编码技巧,编译标志和软件体系结构考虑,以便在AIR for iOS应用程序中保持较低的功耗(或者降低现有应用程序中消耗太多电量的功耗) ?适用于iOS的AIR:节能

回答

2

您可以做的最大的事情之一是根据应用状态调整帧率。

您可以通过添加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。这应该会让您在降低功耗方面获得最大的回报。

1

一般而言,高功率消耗可以是的结果:

  • 密集网络使用
  • 没有睡眠模式显示而应用空闲
  • 未所需位置服务的使用
  • 汽车无高使用率的CPU

关于(flex/flash)AIR我建议:

首先您使用Flex profiler +任务管理器并监视CPU和内存使用情况。尽量减少它们。只要你在windows/mac上拥有这个低点,它们就会变低(理论上在移动设备上)

下一步是使用网络监视器并减少网络(webservice)调用的数量和大小。尝试识别不需要的网络活动并将其消除。

尝试检测应用程序的任何空闲状态(可以在Flex中,不知道闪光),也许把整个应用程序处于空闲模式(如果你有焰火动画运行,那么只需调用stop())

另外我不确定,但会降低cpu,并使用更多的GPU:通过使用Stage3D(现在可用于空气3.2也适用于手机),当你做复杂的任何事情。由于HW加速器在那里,所以可能会缩短执行时间,因此功耗可能会降低。

如果我对某事有错,请评论/ downvote(如你所愿),但这是我的个人印象。

更新1

根据提示在评论中,没有一个桌面和移动设备上的CPU使用量之间的100%的链接,但“theoreticaly”在低电平上,我们至少应该有相同的CPU使用趋势。

+2

您可能还想看看调整帧率。尝试降低它,只要你不动画或应用程序不再焦点。 – francis 2012-03-29 13:44:11

+0

不知道桌面计算机的任务管理器如何反映AIR应用程序的实际CPU使用情况。请记住,已编译的应用程序(发布版本)将与模拟器的执行情况非常不同。就我个人而言,我宁愿查看Flex Profiler显示的方法的编译时间。如果可能的话,如果你想要一个已部署的应用程序的实际CPU使用率,那么设备上的任务管理器可能就是要走的路,但只有在听说正确的情况下,才可以在Android上使用ICS。 – AlBirdie 2012-03-29 13:52:13

+0

@Al_Birdy肯定的是,iPhone CPU具有完全不同的架构,桌面CPU以及AIR应用程序的AS代码被转换为iOS兼容的二进制代码,因此确保2之间没有100%的匹配。但是,在桌面上为您的空中应用程序提供100%的cpu使用量肯定会在移动设备上产生较高的CPU使用率。 – 2012-03-29 13:56:55

0

我的秘诀:

  • 简介您的应用程序与在Flash Builder
  • 探查的第一步。如果你有一个苹果,在Xcode

配置文件与仪器应用程式并重要的:

模拟器,IPA解释器软件包和IPA测试版本的行为是不同的。

模拟器 - 备考优化

IPA-解释 - 获取的性能

IPA-测试的感觉 - “真正的” 性能行为

最后测试在AppStore - 建造,它是最快(在性能的意义上)封装模式。 另外我们看到,所有这些模式可能会有所不同。