Enero
2010
Mi primer app en android: RsyncDroid
Presento mi nueva aplicación (mejor no mirar el código) para android: RsyncDroid.
Es como si fuese un HolaMundo pero un poco más complejo, pero me ha servido para aprender un poco Java y sobre todo para ver su entorno de desarrollo basado en Eclipse. El debugger (ddms) es la leche y se puede estudiar muy bien lo que va haciendo nuestra aplicación mientras se ejecuta... me ha gustado.
Instalación
Lo primero es conseguir el binario de rsync, he preparado este script (necesita ser root del teléfono)
wget http://adqmisc.googlecode.com/svn/trunk/androidutils/rsync/rsync-3.0.6-arm-softfloat-linux-gnueabi.gz
zcat rsync-3.0.6-arm-softfloat-linux-gnueabi.gz > rsync
./adb push rsync /sdcard/rsyncdroid/rsync
./adb shell mount -o remount,rw /dev/block/mtdblock0 /system
./adb shell "cat /sdcard/rsyncdroid/rsync > /system/bin/rsync"
./adb shell chmod 755 /system/bin/rsync
./adb shell mount -o remount,ro /dev/block/mtdblock0 /system
Ahora instalaremos este apk: rsyncdroid.apk
./adb install -r ~/Desktop/rsyncdroid.apk
401 KB/s (18269 bytes in 0.044s)
pkg: /data/local/tmp/rsyncdroid.apk
Success
Capturas de pantalla
El programa es muy sencillo, lo que hace es arrancar, parar y ver el estado del proceso rsync, si no existe la configuración usa una base en la que se comparte el contenido de la memoria SD. Es recomendable añadir algo como "hosts allow = xx.xx.xx.xx", para permitir el acceso sólo desde la IP que queramos (man rsyncd.conf).
La primera vez que lo ejecutemos nos pedirá el permiso de root (rsync se ejecuta en un puerto privilegiado).
Script para copia de datos
rsync -Pavz --no-g --no-p --no-numeric-ids \
htcmagic::sdcard/ --delete /home/mario/htcmagic/backup/
Yo me he hecho un script un poco más complejo para (por la madrugada) hacer ping al teléfono y si está en la wifi de mi red hacer la copia incremental (creando enlaces duros) y borrando las copias de seguirdad que tengan más de 30 días.


