¿Cuál es la mejor manera de soportar apis de Google Maps (v1 y v2)?

¿Cuál es la mejor manera de apoyar a los apis del mapa android en mi aplicación?

Google lanzó el google google map api v2 mientras que la v1 todavía está alrededor (y funciona mejor para los teléfonos más antiguos).

Hasta ahora, veo dos scenarii.

1) Dos apks: un apk para cada api

Podría usar la función apk múltiple disponible en google play .

  • ¿Cómo haría la distinción en google play ? ¿En el soporte opengl?

Este escenario significa que cada vez que quiero construir mi proyecto, tengo que copiar / pegar algunos archivos, actualizar otros que podrían ser engorroso.

A menos que utilice un proceso de construcción personalizado (usando ant o maven).

  • ¿Alguna recomendación al respecto?

2) Un apk

Que se podría lograr utilizando declaraciones if/else , incluyendo en el archivo de manifest la declaración de ambos apis.

  • Alguien ha probado esto ?

Nota: mapas de Google para teléfonos antiguos

En primer lugar, la nueva ap2 v2 es vector basado que es más pesado en la CPU / GPU (la v1 api utilizado bitmap azulejos).

En segundo lugar, la nueva v2 api requiere opengl 2.0. Que se dice que es compatible con todos los dispositivos Android corriendo froyo o más tarde. Lamentablemente , esto no es cierto .

Por ejemplo, un venerable HTC magia ejecutando pan de jengibre (en una ROM personalizada) no es reconocido por el google play / mercado para apoyar opengl 2.0.

Y tal vez hay más de ellos …

2 Solutions collect form web for “¿Cuál es la mejor manera de soportar apis de Google Maps (v1 y v2)?”

Que se podría lograr utilizando declaraciones if / else, incluyendo en el archivo de manifiesto la declaración de ambos apis.

Bueno, no puedes tener declaraciones "if / else" en el manifiesto.

Básicamente hay tres escenarios desde mi punto de vista:

  1. El dispositivo no tiene OpenGL ES 2.0 o superior
  2. El dispositivo tiene OpenGL ES 2.0 o superior, pero actualmente no tiene los Servicios de Google Play (posiblemente porque no tiene la Play Store)
  3. El dispositivo tiene OpenGL ES 2.0 o superior y tiene servicios de Google Play

Como observas en tu comentario en otra respuesta, mi Escenario # 1 no puede coexistir con los otros dos, simplemente porque debes tener el elemento <uses-feature> llamando a OpenGL ES 2.0. Y, como Play Store no admite varios archivos APK basados ​​en el nivel de API de OpenGL ES, no puede admitir el escenario # 1 y los otros dos escenarios al mismo tiempo para la misma lista de Play Store. Tendrías que tener dos aplicaciones completamente separadas en la Play Store: una que sólo usa Maps V1 que funciona en todos los dispositivos Android y otra que usa Maps V2 (que retrocede en otra cosa, como Maps V1, para mi Escenario # 2) que Funciona en dispositivos OpenGL ES 2.0+.

Además, tenga en cuenta que las claves API de Maps V1 no estarán disponibles después del 3 de marzo de 2013 . Hacer el desarrollo de Mapas V1 después de ese punto se vuelve cada vez más riesgoso, ya que no tiene forma de obtener nuevas claves API si algo sale mal con su entorno de desarrollo.

Básicamente, lo que esto significa es que el desarrollo de aplicaciones dependientes de Google Maps succiona de nuevas e interesantes formas, en comparación con la forma en que succionó antes. Incluso si usted dice que va a abandonar V1 Mapas completamente, hay los dispositivos que caen en mi Escenario # 2. Con suerte, no hay muchos, aunque definitivamente hay algunos (como un HTC EVO 3G sentado cerca de mí). No debería haber ninguno de estos dispositivos con Android 3.0 y versiones posteriores – Estoy bastante seguro de que OpenGL ES 2.0 era un requisito rápido para Android 3.0, y la Play Store debería estar en todos esos dispositivos (y, por lo tanto, Los servicios de Google Play deben estar disponibles para todos ellos).

Sinceramente, la mejor respuesta para algunos desarrolladores será descartar completamente Google con respecto a mapas y utilizar OpenStreetMap o algo más que tenga mayor estabilidad, si quieren soportar dispositivos Android 1.x / 2.x.

El requisito de OpenGL 2.0 es más desde una perspectiva de soporte. He encontrado Google Maps Android API v2 para funcionar bien en un HTC Wildfire, por ejemplo!

Respuesta corta a su pregunta: no lo haga. Elija uno, se adhieren a él.

Respuesta media: no lo hagas. Elija uno, se adhieren a él. Si realmente necesita algunas de las características antiguas y no puede volver a crearlas en la nueva API v2, entonces eso sugiere que debe quedarse con v1.

Si se trata de unos pocos dispositivos antiguos 2.1 que preocuparse – no te preocupes, la gente realmente no debería estar usando 2.1 ya que sus defectos de seguridad, que está haciendo un servicio público por no apoyar (animando a los usuarios a actualizar su Teléfonos … que es un poco triste desde una perspectiva respetuosa con el medio ambiente, pero los fabricantes y los transportistas ya forzado ese problema, así que no dejes que sea tuyo!).

Si es sólo unos pocos no openGL 2.0 dispositivos que preocupa, a continuación, omitir el requisito de la característica, aunque con el riesgo de algunos problemas locos que ocurren en la pista. Probablemente sea mejor proporcionar una clara advertencia de que los problemas pueden ocurrir en dispositivos que no sean openGL 2.0.

Si realmente, realmente debe soportar ambas versiones entonces simplemente hacerlo. No mucha gente estaría lo suficientemente loco como para hacer lo mismo que usted encontrará una lista de "mejores prácticas" eventuating. Es probable que desee utilizar una de las soluciones v1 API MapFragment sin embargo, como sucede escribí uno: https://github.com/coreform/android-tandemactivities

  • ¿Existe una funcionalidad como el método onFirstFix en el Android Maps Api V2?
  • No se puede resolver el método getMap ()
  • Android maps: No se pudo encontrar el estilo 'mapViewStyle' en el tema actual
  • ¿Qué algoritmo utilizan los mapas de Google para calcular la dirección entre 2 puntos?
  • Google map android api v2 falla en la aplicación
  • Creación de un menú de mapa de Android para cambiar el tipo de mapa
  • Cómo cargar marcadores dinámicamente para la posición actual en google-maps de Android?
  • Obtención de desviaciones de la ruta establecida de google maps?
  • Cómo mover camra a un marcador específico en google maps v2 en android
  • Cómo mostrar lugares cercanos como atm, hospitales en android google map?
  • Android Google Maps v2 - Tecla de depuración vs tecla de liberación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.