Si escribo una aplicación con la plataforma Android 4, ¿funcionará la aplicación en dispositivos con Android 2?

Quiero escribir una aplicación usando Android SDK y Eclipse. Instalé la plataforma Android 4 usando SDK Manager, pero me pregunto si esta aplicación funcionará con dispositivos Android 2. o solo dispositivos Android 4?

Gracias.

preguntado el 04 de julio de 12 a las 02:07

Creo que lo que te debe preocupar es la API. "Además de todo lo anterior, Android 4.0 es naturalmente compatible con todas las API de versiones anteriores" <- tomado de desarrollador.android.com/about/versions/android-4.0.html -

@0gravity: pero lo contrario, por supuesto, no es cierto: dispositivos Android 2 no Admite todas las API de versiones posteriores. -

@Thilo sí, y me alegro de que lo hayas mencionado. -

3 Respuestas

En el archivo XML del manifiesto de la aplicación, debe especificar la versión del SDK de destino mínima y deseada. Estoy desarrollando una aplicación para Android 4.0.3 (SDK v15), pero debe ejecutarse en 2.3.3 (SDK v10).

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="15" />

Por supuesto, debe usar solo las funciones disponibles del SDK inferior. También debe consultar la Biblioteca de soporte de Google que pone a disposición algunas funciones nuevas para SDK más antiguos. http://developer.android.com/tools/extras/support-library.html

// marcelo

Respondido 04 Jul 12, 02:07

Gracias, eso realmente ayudó. Pero cuando hago un nuevo proyecto en Eclipse, ¿debo elegir v15 o v10? - Hani

Por lo general, desea que targetSdkVersion sea el SDK más reciente (v15 ahora), a menos que haya una razón específica para compilar con una versión anterior. Luego, usará decoradores como @TargetAPI, la biblioteca de soporte o ActionBarSherlock para admitir versiones anteriores de sdk en sistemas más antiguos hasta su minSdkVersion. Lint le dará una advertencia si estos dos valores difieren, y esta advertencia es para recordarle que tenga cuidado con la compatibilidad con versiones anteriores tal como lo entiendo. - Dar

Depende de las llamadas al sistema que realice. Siempre pruebe en dispositivos que ejecuten diferentes versiones, porque ciertas llamadas solo funcionan para ciertos niveles de API.

En el sitio web SDK Puedes ver esta información.

(Consulte "Desde: API Nivel 9" en la parte derecha de la barra gris de getNumberOfCameras fn)

Respondido 04 Jul 12, 02:07

+1. Además de solo la API, puede haber otras cosas, como opciones de empaquetado. La forma más segura sería instalar también la versión anterior del SDK de Android y ver si su código también funciona con eso. - Thilo

Android pelusa es una nueva herramienta introducida en ADT r16, que escanea y verifica automáticamente su proyecto en busca de una nueva API, y le muestra una buena marca de error dentro de su editor Eclipse.

Regla para comprobar la nueva API, consulte aquí:

NewApi
------
Summary: Finds API accesses to APIs that are not supported in all targeted API
versions

Priority: 6 / 10
Severity: Error
Category: Correctness

This check scans through all the Android API calls in the application and
warns about any calls that are not available on *all* versions targeted by
this application (according to its minimum SDK attribute in the manifest).

If your code is *deliberately* accessing newer APIs, and you have ensured
(e.g. with conditional execution) that this code will only ever be called on a
supported platform, then you can annotate your class or method with the
@TargetApi annotation specifying the local minimum SDK to apply, such
as@TargetApi(11), such that this check considers 11 rather than your manifest
file's minimum SDK as the required API level.

En Eclipse:

enter image description here

Respondido 04 Jul 12, 05:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.