Copia de seguridad de sqlite a la unidad sdcard en Android

Cuando ya tenemos una aplicación en producción y ocurre un problema causado por la base de datos suele ser complicado averiguar donde esta el problema, es buena idea tener una copia de la misma base de datos para ver exactamente que esta pasando.

Hace un tiempo que estaba buscando la manera de sacar un backup de la base de datos de una aplicación en Android, después de probar varias opciones encontré un segmento de código que sí ha funcionado:

public void backupdDatabase(){
    try {
	    File sd = Environment.getExternalStorageDirectory();
	    File data = Environment.getDataDirectory();
	    String packageName  = "com.yourapp.package";
	    String sourceDBName = "mydb.db";
	    String targetDBName = "mydb";
	    if (sd.canWrite()) {
	    	Date now = new Date();
		String currentDBPath = "data/" + packageName + "/databases/" + sourceDBName;
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm"); 
		String backupDBPath = targetDBName + dateFormat.format(now) + ".db";

		File currentDB = new File(data, currentDBPath);
		File backupDB = new File(sd, backupDBPath);

		Log.i("backup","backupDB=" + backupDB.getAbsolutePath());
		Log.i("backup","sourceDB=" + currentDB.getAbsolutePath());

		FileChannel src = new FileInputStream(currentDB).getChannel();
		FileChannel dst = new FileOutputStream(backupDB).getChannel();
		dst.transferFrom(src, 0, src.size());
		src.close();
		dst.close();
	    }
	} catch (Exception e) {
		Log.i("Backup", e.toString());
	}
}

Ustedes ya se encargan de cambiar los valores y mostrar los mensajes de error.

Me olvidaba que necesitarán del permiso para escribir en la memoria SD:

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

Obtenido de: Stackoverflow

 

La App del Látigo

Hace una semana que estoy fascinado con trollear  a mis amigos con la App del Látigo, lo vi por primera vez en un capítulo de The Big Bang Theory, es una App muy sencilla pero poderosa (si la sabes usar con sabiduría).

Es gratuita y esta disponible para Android (creo que hay versiones en la iStore):

 

The Whip en Google Play

 

Sólo tienen que mover el móvil como si fuera el látigo para que la App haga su trabajo: emitir el sonido del látigo junto a un mensaje motivador!

El autor de la App lo describe como:

The ultimate motivational tool.

The Whip: This app turns your Android-powered phone into the ultimate motivational tool. Useful whether asking your employees to work the weekend, or remarking on a friend’s relationship status…

 

Recomiendo que sólo lo usen en momentos que lo ameriten, por que pierde la gracia si lo usan constantemente.

Aquí un extracto del capítulo: