Android java implementación defectos .. ¿están documentados?

Estoy jugando con una aplicación androide simple usando el emmulador que ejecuta android-7 (2.1) y un moto-desafío que ejecuta android-8 (2.2).

Me encontré con un problema interesante por el cual una aplicación de análisis de CSV falló en el emmulador, pero tuvo éxito en el desafío y en las aplicaciones java regulares (utilizando sun java).

Seguí el problema hacia abajo y la causa es que la implementación de androide-7 de StringReader no es compatible con una operación de omisión negativa:

Android-7:

/** * Skips {@code amount} characters in the source string. Subsequent calls of * {@code read} methods will not return these characters unless {@code * reset()} is used. * * @param ns * the maximum number of characters to skip. * @return the number of characters actually skipped or 0 if {@code ns < 0}. * @throws IOException * if this reader is closed. * @see #mark(int) * @see #markSupported() * @see #reset() */ @Override public long skip(long ns) throws IOException { synchronized (lock) { if (isClosed()) { throw new IOException(Msg.getString("K0083")); //$NON-NLS-1$ } if (ns <= 0) { return 0; } long skipped = 0; if (ns < this.count - pos) { pos = pos + (int) ns; skipped = ns; } else { skipped = this.count - pos; pos = this.count; } return skipped; } } 

J2SE 1.6:

 /** * Skips the specified number of characters in the stream. Returns * the number of characters that were skipped. * * <p>The <code>ns</code> parameter may be negative, even though the * <code>skip</code> method of the {@link Reader} superclass throws * an exception in this case. Negative values of <code>ns</code> cause the * stream to skip backwards. Negative return values indicate a skip * backwards. It is not possible to skip backwards past the beginning of * the string. * * <p>If the entire string has been read or skipped, then this method has * no effect and always returns 0. * * @exception IOException If an I/O error occurs */ public long skip(long ns) throws IOException { synchronized (lock) { ensureOpen(); if (next >= length) return 0; // Bound skip by beginning and end of the source long n = Math.min(length - next, ns); n = Math.max(-next, n); next += n; return n; } } 

Por lo tanto, en lugar de saltar hacia atrás (el analizador utiliza esto para pre-leer un carácter en ciertos casos) la versión de Android sigue siendo un carácter hacia adelante.

Mi pregunta es, son las diversas incompatibilidades y variaciones de la especificación J2SE documentado en cualquier lugar? Si no, ¿qué otros problemas tienen ustedes chocar.

Gracias, p.

Un lugar para mirar es el rastreador de problemas de Android.

Otro lugar para mirar es el perseguidor de problemas de Apache Harmony.

Hay que reconocer que el uso de los rastreadores de temas implicará buscar en lugar de navegar por una red de temas cuidadosamente categorizados. Podrías pensar en esto como una oportunidad …


FWIW – la búsqueda de la Harmony tema seguimiento muestra que ha habido algunos problemas con el comportamiento de skip en varias clases de flujo. Un problema se quejaba de que el comportamiento de alguna clase no coincidía con el javadoc … y que estaba cerrado diciendo que coincidía con el comportamiento de RI, y que el error estaba por lo tanto en el javadoc.

Mi opinión es que Sun / Oracle tiene mucha culpa por este tipo de cosas debido a su negativa a licenciar el TCK al proyecto Apache Harmony en términos razonables.

  • Cómo limitar la búsqueda de ubicación cercana según la ubicación actual mediante google maps en android?
  • La interfaz de usuario de Tablet no funciona en mi aplicación
  • Analizar la página web con Jsoup. ¿Por qué el comportamiento en Android es diferente?
  • Android Studio: Error al crear el código de error JVM: -1
  • Android Studio preDexDebug después de agregar jar archivo
  • Cómo crear gradiente de fondo animado como Instagram app?
  • Esperando hasta que la ubicación esté encendida después de encenderla a través de la alerta de servicios de ubicación
  • Cómo utilizar CompositeDisposable de RxJava 2?
  • Android Split string
  • Lectura de datos desde un dispositivo bluetooth en android
  • ¿Cómo obtener el índice actual de la pestaña seleccionada en TabLayout?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.