可以應用哪些編碼技巧,編譯標誌和軟件體系結構考慮,以便在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. AIR FullScreen不適用於iOS
- 2. 適用於iOS的AIR應用程序
- 3. AIR for iOS nativeApplication.idleThreshold僅適用於桌面?
- 4. 響應CSS查詢不能適用於iOS的iPad AIR 2
- 5. 不能適用於iOS
- 6. 適用於iOS的Crosswalk適用於iOS不適用iOS SDK 10.1.1
- 7. 適用於iOS的Adobe Air應用只能在解釋器模式下工作?
- 8. 適用於Adobe Air的最低IOS版本
- 9. 適用於iOS,Air Flash AS3的stageWebView視頻 - 如何控制它?
- 10. 適用於AIR的Google Voice API | Flex
- 11. 用於與AIR 3.2配合使用的應用程序,不適用於AIR 3.5
- 12. IsAuthenticated適用於瀏覽器 - 但不適用於Air客戶端!
- 13. 什麼Actionscript功能不適用於iOS?
- 14. 適用於iOS 5.1
- 15. 如何製作適用於iOS本機應用程序的Adobe Air Extension
- 16. 適用於iOS的打包和AIR應用導致版本號差異
- 17. 使用適用於iOS/Android的Adobe Air部署Trail和完整版設置
- 18. Fontconfig的適用於iOS
- 19. 適用於iOS的「Leaves」庫
- 20. 適用於iOS的後端
- 21. 適用於iOS的Google AnalyticsSDK
- 22. 適用於iOS的G'MIC庫
- 23. 適用於iOS的PayPal SDK
- 24. 適用於iOS的xcode5 4.3
- 25. 適用於VirtualBox的iOS
- 26. 適用於iOS的Multipartentity
- 27. 適用於iOS的Foursquare OAuthV2
- 28. 適用於iOS的API
- 29. 適用於iOS的Adsense SDK
- 30. 適用於iOS的LocalNotification
您可能還想看看調整幀率。嘗試降低它,只要你不動畫或應用程序不再焦點。 – 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