¿Cómo se puede ejecutar una aplicación creada para una versión más reciente de Android en un dispositivo Android más antiguo?

¿Cómo se puede instalar una aplicación hecha para Jellybean y usarla en Gingerbread?

Tomemos el teclado de Google, por ejemplo. El teclado de Google está diseñado para usarse con Ice Cream Sandwich y superior, pero digamos que lo quiero en mi teléfono con CyanogenMod 7.2 rooteado. es posible?

Respuestas (2)

Técnicamente, uno puede anular el requisito de la versión abriendo el archivo .apk y editando el archivo manifest.xml y configurando el android:minSdkVersionatributo en el <uses-sdk>elemento a su versión sdk (o simplemente eliminando ese atributo por completo, en cuyo caso por defecto será "1 " y suponga que funcionará en cualquier versión de Android), luego use su archivo .apk modificado para instalarlo.

Sin embargo, esto es casi siempre una mala idea . El desarrollador de la aplicación presumiblemente estableció ese requisito en el valor que es porque en realidad necesitan algo introducido en esa versión SDK. Si no lo hicieran, lo configurarían en otra cosa o lo omitirían. Es probable que intentar hacer que la aplicación se ejecute en una versión de Android sin las funciones que necesita cause estragos, bloqueos, cierres forzados y otras infelicidades.

En el caso de las aplicaciones creadas por Google, asumiría que sabían exactamente qué funcionalidad usa su aplicación y cuándo se introdujo y que definitivamente se rompería de alguna manera sin esa funcionalidad cuando configuraron minSdkVersion para su aplicación y, por lo tanto, intentaron esto. el truco casi seguro fallará.

Pero si el desarrollador es simplemente un tipo perezoso que insistió en configurar el atributo (probablemente a la versión actual) sin pensar mucho en si realmente es necesario (es decir, "No tengo ganas de revisar mi código y verificar qué funcionalidad realmente uso y cuando Google lo agregó a Android, simplemente configuraré minSdkVersion en la versión actual de Android"), podría funcionar . O es posible que la funcionalidad que falta solo se use en alguna parte de la aplicación que nunca usa y, por lo tanto, la interrupción es irrelevante para usted.

No, al menos nadie encontró una forma confiable de hacerlo. Las versiones superiores de Android introducen nuevas API que la aplicación puede necesitar para funcionar correctamente.

Eso es algo triste. ¿Hay alguna forma de jugar con la aplicación (suponiendo que no fuera de Play Store en primer lugar)?
Si tiene la fuente de una aplicación, no hay razón para que no pueda modificarla para que funcione en una versión anterior de Android, aunque obviamente tendría que cambiar cualquier parte de la aplicación que requiera las API proporcionadas por las versiones posteriores de Android.
@JeffreyLin Eso no será fácil para nadie más que para el autor original, y ya decidieron que era demasiado esfuerzo.