Включите аппаратное ускорение в Android-приложении, ориентируясь на сотовые и предыдущие версии

Чтобы включить аппаратное ускорение в приложении Android 3.0+, я могу это сделать:

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

Но приложение не будет строить с этим атрибутом, если я настроен на версию ОС до 11. Есть ли способ включить аппаратное ускорение в приложении, которое предназначено как для Honeycomb, так и ранее, или аппаратное ускорение доступно только тем, кто создает приложения, которые работают только с 3.0 +?

Я искал метод Activity, но не вижу его.

Ответы

Ответ 1

Попробуйте установить цель сборки для версии 3.0, но установите minsdkversion в самую старую версию, которую вы хотите поддерживать. Он должен по крайней мере позволить вам создавать, но не будет включать ускорение HW в более старых версиях.

В документации :

Начиная с Android 3.0, рендеринг OpenGL с аппаратным ускорением доступен для приложений, чтобы повысить производительность для многих обычных операций 2D-графики. Когда аппаратный ускоритель рендеринга включен, большинство операций в Canvas, Paint, Xfermode, ColorFilter, Shader и Camera ускоряются. Это приводит к более плавной анимации, более плавной прокрутке и большей отзывчивости, даже для приложений, которые явно не используют библиотеки OpenGL.

Я еще не тестировал API 3.0, но, похоже, документация должна быть подтверждена...

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

(вырезано из Оптимизация приложений для Android 3.0

Ответ 2

Вы можете оставить min/targetSdkVersion как есть в вашем манифесте. У меня есть мои 3 и 8. Что вам нужно сделать, это изменить SDK, с которым вы компилируете. В Eclipse перейдите в Project Properties > Android и выберите Project API Target с уровнем API 11 или выше (например, "Android 3.0" ).