Confundido acerca de la compatibilidad de la API de Android

He comprado un HTC Incredible y me he metido en el mundo de Android! Sólo para encontrarme totalmente confundido acerca de los niveles de API y la compatibilidad hacia atrás.

Mi dispositivo funciona el OS 2.1, pero sé que la mayor parte de los dispositivos hacia fuera allí funcionan 1.5 o 1.6; y pronto el OS 2.2 se ejecutará en nuevos dispositivos. El SDK ha pasado por cambios tan enormes, que incluso las constantes han cambiado de nombre (de VIEW_ACTION a ACTION_VIEW por ejemplo). Se han agregado y eliminado métodos (onPause reemplazando la llamada anterior, etcétera).

Por lo tanto, si quiero escribir una aplicación que funcione desde 1.6 +, ¿significa que tengo que instalar y escribir mi código utilizando la API 1.6; entonces prueba en versiones posteriores? ¿O puedo escribir usando el SDK 2.1 y sólo establecer el nivel minSDK y no utilizar "nuevas" características?

Nunca he trabajado con un SDK que cambia tan drásticamente de lanzamiento a lanzamiento! Así que no estoy seguro de qué hacer ….

He leído un artículo en el sitio de desarrollo de Android (y esta publicación en el desbordamiento de pila que hace referencia a él: ¿Debe una aplicación heredada de Android ser reconstruida con SDK 2.1? ), Pero todavía no estaba muy claro para mí. Cualquier ayuda sería apreciada

El SDK ha pasado por cambios tan enormes, que incluso las constantes han cambiado de nombre (de VIEW_ACTION a ACTION_VIEW por ejemplo). Se han agregado y eliminado métodos (onPause reemplazando la llamada anterior, etcétera).

Ésos eran hace dos años, en una versión beta de la plataforma, antes de que hubiera cualquier dispositivo del envío. Desde Android 1.0, ha habido muy poco que rompe la compatibilidad adelante, sobre todo en el área de ajustes que se movieron en una API segura para que las aplicaciones de SDK no puedan ensuciarlas.

Por lo tanto, si quiero escribir una aplicación que funcione desde 1.6 +, ¿significa que tengo que instalar y escribir mi código utilizando la API 1.6; entonces prueba en versiones posteriores? ¿O puedo escribir usando el SDK 2.1 y sólo establecer el nivel minSDK y no utilizar "nuevas" características?

Haces que parezca que son mutuamente excluyentes. De hecho, son en gran parte idénticos.

  • Mantenga su conjunto de herramientas en la última versión de las herramientas de desarrollo de Android
  • Ponga la minSdkVersion en su manifiesto para indicar cuál es el nivel de API más bajo que desea soportar
  • Ponga la targetSdkVersion en su manifiesto para indicar cuál es su nivel de API de "destino", por lo que Android puede aplicar algunos compatibles si su aplicación se ejecuta en una versión más reciente de Android (normalmente, "orienta" el nivel de API actual)
  • Escriba su código principalmente en el nivel de API que ha especificado en minSdkVersion , utilizando opcionalmente carga de clase de reflexión o de clase condicional para acceder a API más recientes en dispositivos que los admiten
  • Prueba todo lo que puedas conseguir, al menos emuladores para los diferentes niveles de API

Puede usar el SDK actual y establecer el nivel de minSDK a cualquier nivel que desee. Si lo hace, no podrá utilizar ninguna funcionalidad que no esté en el minSDK. También es una buena idea probarlo en todas las versiones del SDK con el emulador.

 <uses-sdk minSDK="4" targetSDK="8"/> 

Eso le permite saber que está apuntando a 2.2 pero el nivel mínimo de SDK en el que desea que se ejecute su aplicación es 1.6. Al hacer esto, puede utilizar algunas de las nuevas cosas de xml en las versiones más recientes como soportes de pantalla y diferentes diseños para diferentes pantallas, etc.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.