Включите аппаратное ускорение в приложении Android, ориентируясь на Honeycomb И предыдущие версии - PullRequest
14 голосов
/ 01 марта 2011

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

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

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

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

Ответы [ 2 ]

20 голосов
/ 01 марта 2011

Попробуйте установить цель сборки на версию 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

9 голосов
/ 27 апреля 2011

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

...