AIR for iOS:省电

时间:2012-03-29 11:16:31

标签: ios actionscript-3 optimization air power-management

可以应用哪些编码技巧,编译标记,软件体系结构注意事项,以便在AIR for iOS应用程序中保持较低的功耗(或减少现有应用程序中耗费过多电池的功耗)?

3 个答案:

答案 0 :(得分: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()" />

在激活和关闭方法中

//activate
FlexGlobals.topLevelApplication.frameRate = 24;

//deactivate
FlexGlobals.topLevelApplication.frameRate = 2;

您还可以使用此数字,具体取决于您的应用目前正在做什么。如果您只是显示文字,请尝试降低您的fps。这应该可以为您节省降压功能。

答案 1 :(得分:1)

通常,高功耗可能是由于:

  • 密集网络使用
  • 应用程序空闲时无显示睡眠模式
  • 不需要的位置服务使用
  • 持续高使用率cpu

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

首先,您使用Flex Profiler +任务管理器并监视CPU和内存使用情况。尝试尽可能减少它们。一旦你在windows / mac上这么低,它们就会降低(理论上在移动设备上)

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

尝试检测应用程序的任何空闲状态(可能在flex中,不确定闪存)并且可能将整个应用程序置于空闲模式(如果您运行烟花动画然后只调用stop())

此外我不确定它,但是会减少肯定的cpu并使用更多的gpu:通过使用Stage3D(现在可用于移动设备的Air 3.2)当你执行复杂的任何动作时。由于硬件加速存在,它可能会缩短执行时间,因此功耗可能会降低。

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

更新1

根据评论中的提示,桌面和移动设备上的cpu使用之间没有100%的链接,但是“理论上”在低级别上我们应该至少具有相同的cpu使用趋势。

答案 2 :(得分:0)

我的提示:

  • 使用Flash Builder中的探查器
  • 在第一步中分析您的应用
  • 如果您有Mac,请使用XCode中的乐器
  • 分析您的应用

非常重要:

模拟器,IPA-Interpreter软件包和IPA-Test构建的行为是不同的。

模拟器 - 形式优化

IPA-Interpreter - 获得一种表现感

IPA-Test - “真实”的表现行为

最后测试AppStore-Build,它是最快的(在性能意义上)包模式。 另外我们看到,所有这些模式都可以变化。