¿Existe un archivo de clase universal o "grasa" para Java?

Un binario de grasa es un binario que se puede ejecutar en más de una arquitectura. Básicamente, consiste en un programa compilado dos veces, una vez para cada arquitectura, luego escrito en el mismo archivo. Probablemente el ejemplo más conocido es el de los binarios "universales" de Apple, que permite que los programas se compilen para las arquitecturas de Intel y Power PC y se ejecuten desde el mismo archivo ejecutable.

Esto nunca fue un problema para Java, ya que Java se ejecuta en la JVM, permitiendo que se ejecute desde cualquier computadora compatible con JVM. Sin embargo, Android es ahora muy popular, y VM de Android (Dalvik), no es compatible con la JVM. ¿Hay alguna forma de compilar el código dos veces, y la creación de un archivo de clase que puede ser ejecutado por la JVM y Dalvik? Y si no, ¿esto es posible?

Respuesta: Sí.

Puede crear un archivo .jar universal que contenga archivos .class amigables a JVM y un archivo friendly.de.de classes.dex Android. La herramienta dx incluida en el SDK de Android emitirá dichos archivos si utiliza la opción de línea de comandos --keep-classes .

Tenga en cuenta que aunque los archivos .jar se pueden consumir en JVM y en Android, el código de empaquetado de esta manera no es muy útil. Las aplicaciones de Android se empaquetan como archivos .apk incluyen un archivo XML de manifiesto de Android. Utilizan APIs específicas de Android como Activity que no están disponibles en la JVM.

Un archivo .jar universal sería en su mayoría útil si quería hacer carga de clase de ejecución de una biblioteca.

  • Reenvío de puertos Android
  • Programación de Android - Hacer un URI para obtener la ubicación de audio
  • SwitchPreference y CheckBoxPreference en el código
  • ¿Enfoques al error de desajuste de estado de MediaPlayer de Android en isPlaying ()?
  • Creación de Hashmap desde una cadena JSON
  • Modificación inesperada del almacenamiento de contenido de Android Studio
  • Obtener el elemento seleccionado de customadapter listview Android
  • ¿Cómo detectar el código de respuesta 404 de la excepción de IO?
  • Navegación anterior separada para un buscador de vistas con pestañas en Android
  • No se puede convertir el objeto Subclase en cuerpo de solicitud json en Retrofit 2.0 con GsonConverterFactory
  • Programaticamente silenciar un Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.