2011-03-01 61 views
14

要啓用硬件加速在Android 3.0+應用程序,我可以這樣做:在Android應用程序啓用硬件加速,瞄準蜂窩和以前的版本

<application android:hardwareAccelerated="true" ... /> 

但應用程序將不會有,如果我現在該屬性建立目標是11之前的操作系統版本。是否有一種方法可以在既適用於Honeycomb又適用於以前版本的應用中啓用硬件加速功能,或者是僅針對創建僅適用於3.0+的應用的硬件加速功能。

我看了一個活動的方法,但我沒有看到一個。

回答

20

嘗試將構建目標設置爲3.0版本,但將minsdkversion設置爲您要支持的最舊版本。它應該至少允許您構建,但不會在舊版本上啓用HW加速。

documentation

從Android 3.0的開始,硬件加速的OpenGL渲染是提供給應用程序,以提高許多常見的2D圖形操作的性能。當啓用硬件加速渲染器時,Canvas,Paint,Xfermode,ColorFilter,Shader和Camera中的大多數操作都會加速。這會導致更平滑的動畫,更平滑的滾動和整體響應性的提高,即使對於沒有明確使用框架的OpenGL庫的應用程序也是如此。

沒有測試過3.0 API但我自己,但文檔似乎說這應該得到支持......

<manifest ... > 
    <uses-sdk android:minSdkVersion="4" 
      android:targetSdkVersion="11" /> 
    <application ... > 
    ... 
    <application> 
</manifest> 

(切從Optimizing Apps for Android 3.0

+0

不幸的是 - 我有minSdkVersion =「5」和targetSdkVersion =「11」,但它不會與清單中的硬件加速屬性一起構建。我希望有一種方法可以在運行時執行,也許通過我可以通過反射調用的方法,但我看不到一個。 – 2011-03-01 19:16:41

+3

現在自己安裝3.0 API。你指定了兩個目標版本嗎?清單(正如我剛剛在我的答案中更新的)以及Eclipse項目設置(如果使用Eclipse)? – Arve 2011-03-01 19:28:24

+0

我有清單設置minSdkVersion =「5」和targetSdkVersion「11」,但你當然是正確的,該項目還需要建立對平臺11庫。謝謝。 – 2011-03-07 16:22:49

9

您可以將分/ targetSdkVersion你需要做的是改變你正在編譯的SDK,在Eclipse中,轉到Project Properties> Android,然後選擇一個API級別爲API的Project API Target 11或以上(例如「Android 3.0」)。

+0

這個工作。只是編譯版本應該在11以上,並清理項目來解決錯誤 – Yogamurthy 2015-04-11 16:56:38