Como copiar una bd SQLite al directorio databases de una app Android

Un lector me ha preguntado en el artículo que escribí hace tiempo, Como acceder al fichero de una bd Sqlite en Android, como se puede hacer la operación contraria, es decir, copiar el fichero de base de datos al directorio databases desde otra localización.

El copiar un fichero de base de datos al directorio de bases de datos de una app Android, puede ser una técnica muy útil en algunos escenarios. Por ejemplo, la aplicación de un cliente, durante la primera ejecución, descargaba de internet una gran cantidad de información, la procesaba, y con ella creaba una base de datos Sqlite. Este proceso duraba mucho tiempo, entre 20 o 30 segundos dependiendo del hardware del dispositivo Android, y de la velocidad de conexión a internet. Y este proceso se realizaba durante la primera ejecución de la app, con lo cual, la tasa de abandonos de usuarios que acababan de instalar la app, y no veían razonable esperar 30 segundos a que la app se inicializará, era muy grande.

La solución fue incluir el fichero de base de datos sqlite ya creado, en la carpeta assets de nuestro proyecto, y durante la primera ejecución, copiarlo al directorio databases. Pasamos de una primera ejecución de más de 20 segundos, a que el lanzamiento de la app fuera casi instantáneo, a lo sumo tarda dos o tres segundos. La receta, es la siguiente:

(más…)

Proceso Dex In para compilar rápido en Android Studio 2.1

Dex In es sin duda la mejora más importante de Android Studio 2.1, para compilar nuestros proyectos más rápidamente y no morir de la desesperación en el proceso.

Para comprobar la efectividad del proceso Dex In, hemos hecho una pequeña prueba: crear un proyecto vacío, y compilarlo con la configuración por defecto de Android Studio, y compararlo con la duración de la compilación con el proceso Dex In activado. Y vaya si se nota.

(más…)

Compartir código entre diferentes proyectos de Android Studio

A mi modo de ver, compartir código entre dos proyectos diferentes de Android Studio, es algo lo suficientemente laborioso y poco documentado como para merecer una entrada en el blog. Hay un poco de información en la página oficial de google, pero no me parece lo suficientemente clara.

Nuestro objetivo es tener dos (o más) proyectos diferentes de Android Studio, y tener una librería con código fuente que reutilizaremos  en todos ellos. Veamos cómo se hace.

(más…)

Sketch para actuar sobre un relé a una hora fija en un Arduino YUN

Un lector me ha preguntado sobre la manera mas sencilla de actuar sobre un relé a una hora determinada para encender y apagar un sistema de riego.

Despues de pensarlo un rato, creo que la manera mas efectiva es mediante un sketch que utilice la librera Bridge para saber la hora actual del arduino Yun y en funcion de eso varie el estado de un pin digital, al cual conectaremos nuestro rele, y ya tenemos nuestro sistema de riego funcionando.

A continuacion teneis el sketch, que es sencillamente una modificacion del sketc “TimeCheck” de ejemplo del ide de Arduino:

(más…)

Actualiza el firmware del Arduino YUN

Hace meses que tengo mi arduino YUN abandonado, pero hoy he tenido un poco de tiempo para trastear de nuevo con el, y lo primero en lo que me he fijado es que en los últimos meses el firmware del arduino Yun ha sido actualizado varias veces (me refiero a la version del sistema operativo Linino del Yun).  A continuación tienes un pequeño tutorial de como actualizar el firmware del arduino YUN.

(más…)

Publicado Android Studio 0.8.14

Parece que esta versión es corrige una serie de bugs importantes de la versión 0.8.13.

  • El gestor de emuladores AVD vuelca a una consola integrada en Android Studio información más detallada al crear y arrancar un emulador. Además los ajustes por defecto de ram y otros parámetros  para los emuladores estándar han sido afinados.
  • El editor de XML ha sido actualizado para incorporar los nuevos tags y todo lo relativo a la nueva API de Android 5 Lollipop

Como es habitual, solo podrás instalar Android Studio 0.8.14 a partir de la versión 0.8.13 como actualización.

Novedades en Android Studio 0.8.13

Poco menos de una semana después de la aparición de la versión 0.8.12, ya tenemos aquí la versión 0.8.13. Las novedades no son muchas: bugs de la anterior versión corregidos  y la posibilidad de crear emuladores para los recientemente presentados Nexus 6 y Nexus 9.

Solo podéis aplicar el parche para instalar la version 0.8.13 si tenéis la versión 0.8.12 que requiere de una instalación manual y podéis descargar aqui.

¿Que directorio de recursos usa mi app de Android?

Como ya es sabido, la estructura de directorios de un proyecto de Android contiene una carpeta llamada “res”, que a su vez contiene diversas subcarpetas con los recursos del proyecto, bien sean imágenes (directorio /res/drawable), cadenas de texto (fichero strings.xml en el directorio /res/values)  etc.

Y también sabemos que para luchar contra la fragmentación del ecosistema Android, estas carpetas pueden asociarse con un segmento de dispositivos determinado. Por ejemplo, la carpeta /res/drawable-hdpi contendría recursos gráficos para dispositivos hdp, y análogamente para la carpeta /res/xxhdpi.

Cuando nuestro proyecto crece y su complejidad aumenta, y queremos abarcar varios segmentos de dispositivos diferentes con varias carpetas de recursos personalizados diferentes, podemos llegar a un estado de confusión sobre que carpeta está usando en cada momento nuestra app. Pero hay un truco muy sencillo para saber de que carpeta esta cogiendo nuestra app los iconos o los valores de dimensiones.

(más…)