首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AIR for iOS:节能

AIR for iOS:节能
EN

Stack Overflow用户
提问于 2012-03-29 19:16:31
回答 3查看 697关注 0票数 3

为了在iOS应用程序中保持低功耗(或者减少现有应用程序中消耗太多电池的功耗),可以应用哪些编码技巧、编译标志、软件体系结构考虑因素?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-29 22:30:03

你能做的最重要的事情之一就是根据应用程序的状态来调整帧率。

您可以通过在App.mxml中添加处理程序来完成此操作

代码语言:javascript
复制
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                        xmlns:s="library://ns.adobe.com/flex/spark"
                        activate="activate()" deactivate="close()" />

在您的activate和close方法中

代码语言:javascript
复制
//activate
FlexGlobals.topLevelApplication.frameRate = 24;

//deactivate
FlexGlobals.topLevelApplication.frameRate = 2;

你也可以根据你的应用程序当前正在做的事情来调整这个数字。如果你只是在显示文本,试着降低你的fps。这应该会给你带来最大的能量节省。

票数 2
EN

Stack Overflow用户

发布于 2012-03-29 19:47:58

通常,高功耗可能是由以下原因造成的:

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

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

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

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

尝试检测应用程序的任何空闲状态(可能在flex中,对flash不确定),并可能将整个应用程序设置为空闲模式(如果正在运行fireworks动画,则只需调用stop())

我也不确定,但肯定会减少中央处理器,使用更多的图形处理器:通过使用Stage3D (现在air 3.2也可用于移动),当你做复杂的任何事情时。它可以减少执行时间,因为有HW accel,因此功耗可能会更低。

如果我错了,请评论/否决(随你喜欢),但这只是我个人的印象。

更新1

正如评论中所提示的,桌面和移动设备上的cpu使用率之间并不存在100%的联系,但“理论上”,在较低的水平上,我们应该至少有相同的cpu使用率趋势。

票数 1
EN

Stack Overflow用户

发布于 2012-07-03 16:27:00

我的建议:

  • 使用闪存构建器
  • 中的分析器分析您的应用程序的第一步如果您有Mac,请使用XCode

中的仪器分析您的应用程序

而且重要的是:

模拟器、IPA解释器包和IPA测试构建的行为是不同的。

模拟器-形式优化

IPA-解释器-感受性能

IPA-测试-“真实”性能行为

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9924255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档