2012-03-29 57 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 - 建造,它是最快(在性能的意義上)封裝模式。 另外我們看到,所有這些模式可能會有所不同。