java Desarrollo de aplicaciones para dispostivos móviles - Consejos
Versión: 2.0, Septiembre, 2006

Juan Manuel Fernández Luna
Web: http://decsai.ugr.es/~jmfluna, Mail: jmfluna@decsai.ugr.es
IndiceInicioPerl

(C) Decsai
Web: http://decsai.ugr.es

Consejos para el desarrollo

    Algunos consejos para desarrollar aplicaciones con J2ME pueden ser los siguientes:

  1. Evite ejecutar tareas computancionalmente intensivas en el dispositivo. Cuando sea posible, la alternativa más sencilla es hacer que una posible aplicación servidora en una máquina servidora sea la haga el cálculo y que la aplicación que corre en el dispositivo sólo se encargue de la gestión del interfaz y de mínimas operaciones.Simplifique la aplicación, es decir, dejarla tan simple como sea posible, eliminando características superfluas. Esta decisión básicamente debe realizarse en tiempo de diseño. Si se va la necesitar un requerimiento sólo de vez en cuando, entonces lo mejor es desarrollar una segunda aplicación auxiliar que la contenga, dando la oportunidad a los usuarios a que puedan eliminar dicha aplicación si no la necesitan.
  2. Escriba aplicaciones más pequeñas (Smaller is better) ya que consumirá menos memoria, requerirá menos tiempo de instalación y de inicialización al ser ejecutada. Un aspecto para alcanzar este fin es el de reducir el número de clases de la aplicación.
  3. Utilice menos  memoria en tiempo de ejecución. Para ello podemos considerar el uso de tipos escalares en sustitución de objetos más complejos siempre que sea posible, como son int y boolean, por ejemplo, ya que cada vez que construimos un tipo, el constructor entra en funcionamiento reservando el espacio de memoria requerido para alojarlo. También otro consejo en este sentido es alojar objetos cuando realmente sea necesario (lazy instantiation). Así, cuando vayamos a utilizar un objeto podemos preguntar previamente si ha sido creado o simplemente apunta a null.
  4. Libere los recursos del programa tan pronto como se acaben de utilizar.  Una vez que se finalice el uso de conexiones a bases de datos, a la red, a ficheros, etc., liberarlos, ya que dejaremos libre la memoria que implica su gestión y se pondrán a disposición de otras aplicaciones.
  5. Reutilice objetos en lugar de continuamente crearlos y abandonarlos.  La idea, por tanto, es escribir métodos de inicialización  de objetos y también de dejarlos en un estado neutro para posteriormente poder emplearlos en otros menesteres.
  6. Evite excepciones cuando se pueda, ya que redundará en la reducción del tamaño de los ficheros de clase y el número de objetos que se alojen en memoria. Siempre que se pueda solventar el problema de otra forma es mejor.
  7. Utilice variables locales, ya que es más lento acceder a un miembro de una clase que a una variable local.  Por ejemplo, si accedemos a una variable miembro dentro de un bucle una y otra vez, será conveniente asignar el miembro a una variable local, que se almacenará en la pila, y acceder continuamente a ella.  También es útil esta técnica para operar con elementos de un vector en vez de acceder directamente por medio del vector.
  8. Evite concatenación de cadenas de caracteres debido a que se emplea un par de llamadas a métodos de la clase String más la del constructor correspondiente. Esto lo tenemos que tener más en cuenta, aún si cabe, si se hace en un bucle.
  9. Emplee hilos. Por norma general, todas aquellas operaciones que lleven más de una décima de segundo deberían ejecutarse en un hilo separado, de tal forma que no se bloquee el interfaz de usuario, aspecto muy importante en los dispositivos móviles.