2011-12-01 10 views
6

Estoy a punto de escribir mi primera aplicación de Android. Es una aplicación bastante básica que no utiliza ninguna característica especial más allá de poder programar notificaciones y leer/escribir archivos de imágenes en el almacenamiento local del dispositivo. Llegar a la audiencia más amplia es mi principal prioridad. Si me dirijo a Android 1.5, ¿se garantiza que la aplicación correrá bien hasta ICS? ¿Debería apuntar a Android 2.1, que parece ser la nueva línea de base para teléfonos comunes en uso?¿A qué versión de Android apuntar?

Dado que la aplicación es bastante básica, si apunto a ICS, ¿funcionaría en versiones que se remontaran hasta 2.1? Tal vez esta es una pregunta estúpida.

+0

¿Obtienes puntos extra por el cierre de las preguntas como malo? Esta es una pregunta muy específica sobre las capacidades técnicas de la plataforma y no se trata de opinión. En resumen, si apuntas a Android 2.1, funcionará en una versión posterior. ¿Por qué es probable que provoque el debate? Para prueba de que no verá las respuestas a continuación. Sospecho que la mayoría de los nuevos desarrolladores de Android necesitarán responder a una versión de esta pregunta: no se trata de la cantidad de dispositivos o si debe apuntar a una plataforma x o y, pero funcionará en 3,4,5 si está construido para 2. – Chanoch

Respuesta

6

En este punto, le sugiero que meta como mínimo 1.6. Antes de eso, no había soporte para múltiples tamaños de pantalla. Dado que ahora hay cientos o más dispositivos, todos con diferentes tamaños de pantalla y densidades, su aplicación no se verá bien en todos ellos si no aprovecha algunas de las cosas que se agregaron en 1.6.

Puede encontrar una tabla de los cuales son versiones del sistema operativo más activo aquí: http://developer.android.com/resources/dashboard/platform-versions.html

basado en el gráfico actual, si orienta 2.1 entonces a cubrir el 97,7% de los dispositivos que se han conectado a la Android Market dentro las últimas 2 semanas.

1

Una gran cantidad de funcionalidad de Android es portado en versiones anteriores de Google (como fragments)

Si sólo está usando cosas simples (que han estado alrededor por un tiempo, entonces sugeriría el más bajo de ir se v1.6- esto es cuando múltiples tamaños de pantalla empezaron siendo apoyado

9

Hay muchos factores a considerar:.

audiencia

1. Objetivo

1.5 no importa mucho hoy, y no recomiendo que la gente lo dirija a menos que realmente lo necesite. La detección de la aplicación es 0.9% hoy para esos dispositivos, de acuerdo con current Market statistics.

Desde el punto de vista de la audiencia, 1.5 es irrelevante.

1.6 es alrededor del 1,4% en la actualidad, que es un poco más, pero sigue siendo una pista. Solo por este argumento, no es importante.

También hay un problema muy importante: la tecnología de su público objetivo. Estos son nichos de mercado. Por ejemplo, hay algunos dispositivos iDEN en 1.5, y el soporte de Cupcake es muy importante cuando se trata de esos usuarios.

No debe suponer que debido a que un dispositivo en EE. UU. Está actualizado con 2.1, está en otra parte. Motorola, por ejemplo, tiene una terrible historia de dispositivos de soporte en otros países. Ver, por ejemplo, la tendencia #MOTOFAIL.

También debería considerar el objetivo del país. La gente de allí, con menos dinero, es más propensa a tener dispositivos pre-Eclair en la actualidad y dispositivos pequeños eclair/froyo. Debes tener esto en cuenta y equilibrar tus necesidades de API. Pero no he encontrado que esto sea relevante todavía, hoy. Esto es muy importante en los países más pobres que todavía están inundados con 1.5 dispositivos, pero incluso eso está cambiando (nuevamente, experiencia personal).

Finalmente, existe el factor de rentabilidad pura. Desde mi experiencia personal, los usuarios con 1.5 y 1.6 tienen muchas menos probabilidades de pagar y soportar una aplicación. Tengo una aplicación en el modelo freemium. Tengo 4 veces (proporcionalmente, obviamente) más usuarios en la aplicación gratuita que en la aplicación de pago.

2. Funciones de la API y la facilidad de desarrollo

No recomiendo focalización 1.5 debido a sus peculiaridades de diseño. Si trabajaste lo suficiente con él, verías que hay imperfecciones con el diseño y la disponibilidad disponible. La primera aplicación foursquare (solo un ejemplo que estaba viendo hoy, en Google Code) tiene muchas líneas que solo tienen en cuenta esos problemas. En mi humilde opinión, no vale la pena.

Lo bueno de 1.6 es que se accede a muchas muy importantes bibliotecas, principalmente los fragmentos y los cargadores, los cuales fueron portados de nuevo a 1.6 y le hará la vida que mucho más fácil. No pierde mucho mientras sigue dando soporte a todos esos dispositivos heredados.

Esa es la razón principal por la que las personas están estableciendo 1.6 como API mínima hoy.

Siempre que mezcle necesidades, usted debe lea .

Y ahora los problemas menores. Si su proyecto es demasiado grande, es posible que desee preguntarse si vale la pena apuntar a un dispositivo sin la función app2sd que se introdujo en froyo/2.2/api-8. Sin embargo, siento que no es el caso. Y hay otros problemas menores que no puedo recordar ahora.

Sin embargo, 1.6 no es el santo graal. Si apunta a 1.6, encontrará pequeñas molestias. Solo para contar un pequeño ejemplo, no creo, digamos, onKeyLongPress() is available on pre-2.0 devices. Lo mismo con Service.onStartCommand y muchos indicadores de servicio (api 5 y superior).

Por ejemplo, me gusta confiar en START_FLAG_REDELIVERY o START_STICKY. Entonces, si bien puedes usar Loader en 1.6, me encuentro necesitando otras características para complementar las deficiencias de 1.6. Y la mayoría de estas características no están disponibles para 1.6 AFAIK.

Y ese es solo uno de los pequeños problemas. Están dispersos, lo que dificulta su realización.

Las mejores API le ofrecen menos tiempo de comercialización y una productividad más rápida.

3. El desarrollo de estrategias

En lo personal, me gustaría hacer el siguiente (en realidad estoy haciendo ahora): desarrollar un dispositivo de nivel inferior (1.6), y cada vez que sienta la necesidad de implemente algo que no está allí, cambie su objetivo a una API más alta para obtener su "sensación". Eso ayuda cuando ya sabes qué implementar.

Cuando no sabe qué implementar (en cuanto al código, por supuesto), seleccione la API más alta (generalmente 2.3) para poder navegar por las funciones de finalización de código. Sé que esto suena un poco como "ensayo y error", pero no sé si hay una forma más práctica de aprender esto.

4. La fragmentación

Como sé que esto va a generar los f-word comments, tener en cuenta que esto, al menos en mi opinión, no es mucho acerca de la fragmentación, pero mucho más sobre el aprendizaje de la API y conocer su objetivo y mercado. La fragmentación es secundaria a esta discusión, por lo que creo que es mejor evitar este acalorado debate.

Técnicamente, puede ver las diferencias en el sitio API Difference.

Sí, creo que es una muy buena visión general.

Apéndice: lo que he hecho hoy (editado)

En general, todo lo demás es igual y por una aplicación en general, me gustaría min a 7 API/Eclair. Sigue siendo el 97% de los dispositivos que se encuentran actualmente en el mercado, al mismo tiempo que le brinda características para aplicaciones ricas y facilidad de desarrollo, al mismo tiempo que lo hace más productivo con menos tiempo de lanzamiento al mercado y al mismo tiempo asegura cierta rentabilidad.

+0

Entonces, si me preguntaras qué API admitiría como mínimo hoy, si todo lo demás sigue igual y para una aplicación general, diría API 7/Eclair. – davidcesarino

+3

Muy bonito escribir. Si pudiera transferir mi marca de verificación a su respuesta, lo haría. – FoamyGuy

3

FYI, la versión 2.2 y 2.3 son actualmente más del 90% de los dispositivos Android que existen.

Si mi objetivo es Android 1.5, ¿se garantiza que la aplicación correrá bien hasta ICS?

¿Debo apuntar a Android 2.1, que parece ser el nuevo punto de referencia para los teléfonos comunes en uso?

Creo que está bien.

Dado que la aplicación es bastante básica, si apunto a ICS, ¿funcionaría en versiones que se remontaran hasta 2.1?

Está bien también.

En mi opinión, no se preocupe y simplemente comience a desarrollar su primera aplicación con 2.2, ya que cubrirá el 90% de los dispositivos actuales y futuros de cualquier forma. No creo que tengas ningún problema con la versión de destino. Esa es una de las partes más fáciles del desarrollo de Android.

Cuestiones relacionadas