可以应用哪些编码技巧,编译标志和软件体系结构考虑,以便在AIR for iOS应用程序中保持较低的功耗(或者降低现有应用程序中消耗太多电量的功耗) ?适用于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 - 建造,它是最快(在性能的意义上)封装模式。 另外我们看到,所有这些模式可能会有所不同。
- 1. 不能适用于iOS
- 2. 适用于iOS的Crosswalk适用于iOS不适用iOS SDK 10.1.1
- 3. 适用于iOS,Air Flash AS3的stageWebView视频 - 如何控制它?
- 4. 适用于Adobe Air的最低IOS版本
- 5. 适用于AIR的Google Voice API | Flex
- 6. 什么Actionscript功能不适用于iOS?
- 7. 适用于iOS的打包和AIR应用导致版本号差异
- 8. 如何制作适用于iOS本机应用程序的Adobe Air Extension
- 9. 适用于iOS的Multipartentity
- 10. 适用于iOS的Google AnalyticsSDK
- 11. 适用于iOS的“Leaves”库
- 12. 适用于VirtualBox的iOS
- 13. 适用于iOS的Foursquare OAuthV2
- 14. 适用于iOS模拟器,但不适用于iOS设备?
- 15. 触摸控件适用于iOS 7,6,5 ...但不适用于iOS 8
- 16. VTCompressionSessionCreate适用于iOS 9,但不适用于iOS 8
- 17. 约束条件适用于iOS 8,但不适用于iOS 7
- 18. 适用于iOS的iOS版Android.Database.Cursor
- 19. 的Adobe ANE适用于iOS和Android设备上,而不是在AIR模拟器
- 20. 适用于快节奏游戏的iOS Swipe Gesture识别器
- 21. Testflight不适用于iOS 8
- 22. GTM不适用于iOS
- 23. Bing搜索适用于iOS
- 24. 约葫芦适用于iOS
- 25. AlamofireObjectMapper不适用于iOS 8
- 26. iOS - AudioServicesPlayAlertSound不适用于iPod?
- 27. $ _COOKIE不适用于Safari iOS
- 28. InfoWindow Scroll不适用于iOS
- 29. Xam.Plugins.Notifier不适用于IOS 11
- 30. MFSideMenu不适用于iOS?
您可能还想看看调整帧率。尝试降低它,只要你不动画或应用程序不再焦点。 – 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