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 puedo hacer que mi cuadro de diálogo de Android sea de pantalla completa?
  • Android: sustituye el método desde una versión API superior y admite una versión API inferior.
  • Android AccountManager lanza AuthenticatorException: falla de enlace al agregar cuenta
  • Cómo capturar el error 'Bitmap demasiado grande para ser cargado en una textura'
  • Reconocimiento de voz a texto
  • ¿Puede una clase extender dos clases?
  • ¿Qué significa * + en regexp
  • Envío de contenido utf8 con el método post a servidor en android utilizando HttpClient
  • ScrollView con evento OnTouch
  • NullPointerException en android.widget.AbsListView.contentFits (AbsListView.java:722)
  • Obtener el valor de cadena de un objeto de matriz JSON en Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.