Hora actual

Portada

AppInstaller 1.0

Hola a todos y bienvenidos de nuevo a Átomos y bits. Parece que estamos en la racha de los scripts, y es que, tras el MataProcesos 1.0 hoy quisiera mostraros otro script,  al que he llamado AppInstaller 1.0, que podéis usar todos aquellos que uséis Android (del que ya hemos hablado en una entrada anterior), y que podéis descargar aquí.

No quiero entrar en detalles, pero para aquellos que no lo conozcáis Android es un Sistema Operativo para móviles (en realidad smartphones). En estos móviles podemos instalar infinidad de aplicaciones, por ejemplo desde el Market. Pero claro, todos aquellos a los que nos gusta enredar bastante con nuestros terminales, modificar cosas, probar nuevas configuraciones, nuevas roms… nos encontramos con que el sistema puede volverse inestable y nos toca restaurarlo a sus valores iniciales (lo que comúnmente se denomina hacer un “wipe”). Esto puede resultarnos muy pesado, porque muchas veces el número de aplicaciones que tenemos instaladas es muy elevado y, sobre todo, no queremos perder sus datos ni sus configuraciones. Para ello hay algunas opciones en el Market, como por ejemplo Titanium Backup, una gran aplicación que nos hace copias de seguridad tanto de las aplicaciones como de sus datos.

Sin embargo, puede que a alguno de vosotros os haya pasado, como a mí, que no siempre funciona correctamente. Los backups los crea correctamente, pero a la hora de restaurarlos últimamente no me encuentra ningún backup que restaurar, lo que es curioso, pues he comprobado que las copias se han hecho y están donde deben estar. Me planteé la posibilidad de volver a descargarlas e instalarlas todas una a una, pero enseguida deseché la idea dado su elevado número. Después intenté simplemente instalarlas manualmente, extrayendo las aplicaciones del backup de Titanium Backup, pero tampoco me agradó la idea. Seguía siendo demasiado pesado.  Finalmente, como me gusta automatizar cosas, decidí hacer un proceso automático que cogiese todas las aplicaciones de una carpeta concreta definida por mí y las instalase una a una él solito. Además, si en esa misma carpeta hubiese una subcarpeta con el mismo nombre que la aplicación (su configuración y datos) debería restaurarlos también.

También es conveniente saber que Titanium Backup tiene dos versiones, una gratis y otra de pago. Las dos realizan los backups correctamente. La diferencia está a la hora de restaurar las aplicaciones, pues, mientras que en la de pago el proceso es completamente automático, en la versión gratis debemos ir aceptando manualmente una a una todas las aplicaciones a restaurar, y bueno, ya sabemos lo aburrido y cansado que eso puede llegar a ser…

Por todo ello, he tenido esto en cuenta para que AppInstaller 1.0 sea compatible con los backups resultantes de Titanium Backup, o al menos en parte. Hablaremos de ello más tarde. Posiblemente no sea el proceso de backup más completo, pero a mí me funciona perfectamente y me automatiza todo el proceso. Con una ROM limpita, como recién salida de fábrica, lo ejecuto y… Voilà! Vuelvo a tener todas mis aplicaciones y mis datos (Como he hecho esta misma mañana).

Quiero repetir de nuevo, que esto también lo hace Titanium Backup (la versión de pago), y hasta hace un tiempo a mí me funcionaba correctamente, así que puede que a vosotros no os sirva en absoluto. También quiero aclarar que para que este script funcione se necesita hacer uso de las herramientas “adb” del kit de desarrollo de Android (Android SDK), que es la manera en la que el ordenador puede conectarse al móvil y ejecutar comandos sobre su sistema. Si no sabéis como instalarlo, echadle un ojo a la era del androide 2.0.

Es posible que esta no sea la versión definitiva, ya que una vez puestos intenté, además, que el propio script tuviera la capacidad de realizar él mismo los backups. Y en principio, también lo hace (la versión 2.0), pero no funciona bien en algunos casos y debo dedicarle algo más de atención, por lo que sólo publico la parte que realiza la restauración.

El programa consta principalmente de tres partes, un fichero de líneas de comandos (AppInstaller1.0.cmd), un script en Visual Basic Script (..\bin\AppInstaller.vbs) y la carpeta “Apps” donde pondremos las aplicaciones a restaurar. Adicionalmente se crea un fichero de texto (“..\bin\resultados.txt”) en el que se introducen datos auxiliares intermedios. Este fichero se borra automáticamente al finalizar la ejecución del programa.

Para que todo funcione correctamente, en el fichero “..\bin\AppInstaller.vbs” deberemos configurar algunos parámetros.

DIR=”Apps”

SDK=”C:\SDK\platform-tools”

VISIBLE=”NO”

Estos parámetros son:

DIR: es la ruta de la carpeta “Apps” relativa a la carpeta donde se encuentra “AppInstaller1.0.cmd”.

SDK: es la ruta dónde hemos instalado el SDK de Android, en concreto la ruta donde se encuentra el ejecutable “adb.exe”.

VISIBLE: esta opción permite configurar si queremos que se vean o no, los procesos que el programa lleva a cabo en cada caso. Personalmente, recomiendo la opción “NO” , pues en caso contrario se abrirá una ventana por cada proceso de cada aplicación, que, aunque se cerrará también por sí sola, nos impedirá seguir haciendo otras tareas en nuestro ordenador con tranquilidad. En cualquier caso está disponible por si queremos observar con más detalle lo que la aplicación está realizando en cada momento.

Con todo esto, ya podremos ejecutar AppInstaller1.0.cmd. Si lo hacemos veremos la siguiente pantalla:

Pantalla principal de AppInstaller 1.0

Como podemos observar el funcionamiento es bastante simple. Tan sólo deberemos introducir el número correspondiente a la opción deseada. Con la primera opción tan sólo se intentarán instalar las aplicaciones encontradas en “Apps”. Con la segunda opción tan sólo se intentarán restaurar sus datos.  Sobra decir que esta opción es útil únicamente si las aplicaciones estaban instaladas con anterioridad. La tercera opción nos permitirá instalar las aplicaciones a la vez que se restauran sus datos, en el caso de que los tenga.

Es importante destacar que para que todas las aplicaciones de las que se han restaurado datos funcionen correctamente el script necesita restaurar sus permisos necesarios. Para ello se ayuda de un script conocido como “fix_permissions”, que algunos ya conoceréis. En mi caso tengo instalada una rom de Cyanogen (CM 6.1) que lleva incorporado dicho script. Si vuestra rom no lo lleva incluido de serie, supongo que no hay ningún problema en modificar AppInstaller 1.0 para indicarle manualmente dónde se encuentra “fix_permissions” (deberíais incluir dicho script a mano en vuestro terminal).

Al finalizar, el programa nos mostrará un resumen de las acciones realizadas.

Resumen de las acciones realizadas por AppInstaller 1.0

Por último, dado que se necesitan restaurar los permisos (mediante “fix_permissions”) será necesario reiniciar el terminal. Una vez hecho esto ya dispondremos de nuestras aplicaciones tal  y como estaban cuando realizamos el último backup.

Como he dicho anteriormente, mi idea fue hacerlo compatible con Titanium Backup, de manera que se pudieran restaurar cómodamente los backups hechos con esta aplicación.  Pero para poder restaurarlos necesitaremos reorganizar un poco estos backups. Veamos cómo.

Lo primero que haremos será copiar en la carpeta Apps de nuestro ordenador el contenido de la carpeta “TitaniumBackup” que encontraremos en la SD de nuestro terminal. A continuación borraremos los ficheros *.properties, que no necesitaremos. Seguidamente seleccionaremos todos los ficheros *.apk.gz (Organizar -> Seleccionar todo) y (con winrar instalado) mediante botón derecho del ratón seleccionaremos “Extraer aquí”.

Selección de ficheros APK

Por último, y de la misma forma, seleccionaremos todos los ficheros *.tar.gz y mediante botón derecho del ratón seleccionaremos “Extraer cada archivo en carpetas separadas”. De esta manera tendremos, dentro de la carpeta Apps, todos los ficheros *.apk (instaladores de los programas)  y una subcarpeta por cada aplicación con su mismo nombre (datos de los programas).

Selección de los datos de las aplicaciones.

Como último apunte os diré que también es posible utilizarlo para instalar aplicaciones sin que provengan de Titanium Backup, tan sólo necesitamos tener sus correspondientes .apks y seguir el mismo procedimiento (sin tener en cuenta sus datos, por supuesto).

Al comienzo lo utilizaba creando “lotes” de carpetas categorizando por contenido. En concreto, la idea principal era hacer una carpeta de aplicaciones básicas o indispensables que pudiera ejecutar tras hacer wipe. Puede seguir siendo buena idea, tan sólo habría que ir modificando los nombres de las carpetas.

Pues nada, ahí lo tenéis, quizá nadie lo use nunca (yo ya lo he usado unas cuantas veces) pero si puede serle de alguna utilidad a alguien en algún momento habrá merecido la pena publicarlo.  Por supuesto está a vuestra libre disposición, podéis descargarlo e incluso modificarlo según vuestros intereses, pero si que me gustaría pediros que siempre nos hagáis referencia, citando al autor original y la web o bien con un enlace para que otros lo puedan descargar desde aquí.

¡Hasta pronto!

La era del Androide 2.0

Seguro que casi todos vosotros, si no todos, habéis oído hablar alguna vez de Android. ¿Todos no? Pues para los que no lo sepan, Android es un Sistema Operativo basado en Linux para plataformas móviles (aunque también hay algún ordenador que ya funciona con él). En Átomos y Bits disponemos desde hace unos meses de dos de estos pequeños entrañables androides (Tanto Leonard como yo tenemos unas HTC Magic) y, la verdad, es que es un mundo nuevo.

HTCs Magic

HTC Magic

Está en auge últimamente debido a su gran versatilidad y a su uso por grandes terminales de grandes marcas. Una de las características más importantes de Android (para mí la que marca la gran diferencia) es que es Open Source. Por lo tanto hay una gran comunidad de gente (cada día más) que estudia, conoce y mejora el código. En principio el código base no se debe modificar si no queremos perder la garantía de nuestros terminales, ya que nuestros Sistemas Operativos (o ROM, o firmware como también se les conoce) son una versión del SO original modificado por Google y distribuido por Vodafone. Por ello la forma en que podemos modificar nuestros androides es mediante el sinfín de aplicaciones, gratuitas y de pago, que podemos encontrar en el Android Market.

Sin embargo no es la única, también existen versiones alternativas de Android (comúnmente conocidas como ROMs cocinadas; los grandes Chefs no sólo abundan en la cocina tradicional) creadas por gente de forma libre y gratuita. Casi podríamos hablar de estas “versiones” como de “distribuciones” en su equivalente Linuxero. Para poder cambiar nuestra ROM deberemos disponer de algunos conocimientos un poco más avanzados sobre Android, y, aunque no es muy difícil, no es recomendable para neófitos. Hoy no hablaremos de ello, lo dejaremos para más adelante.

Android, al igual que los Sistemas Operativos que conocemos para ordenador, también tiene distintas versiones (actualizaciones) ya que va evolucionando con el tiempo. Cuando nos compramos nuestra Magic la versión que utilizaba Android era la 1.5 (conocida como CupCake). Actualmente se ha actualizado a la versión 1.6 (o Donut) y estamos a la espera de una próxima actualización a la versión 2.0 (Éclair), que incorporará cambios significativos. Es curioso como todas las versiones de Android tienen nombre de pasteles. Un Sistema Operativo muy dulce.

Después de esta enorme introducción que no aporta nada a quienes ya conocen este tema (aunque espero que sirva como un punto de inicio para los más novatillos) vamos al punto central de este artículo. Y es que a la espera de la distribución de Android 2.0, ya se ha liberado su SDK (Software Development Kit). Esto es útil para aquellos desarrolladores que estén próximos a sacar al mercado software para Android, o para aquellos que quieran compatibilizar su software actual con las próximas versiones. Pero también es útil para aquellos que, sin ser desarrolladores de software, nos gustaría trastear con esta última versión. Podemos instalar en nuestros ordenadores el SDK de Android 2.0 y utilizar el simulador que trae para evaluarlo o probar software. Vamos a ver cómo podríamos hacer esto.

Lo primero que debemos hacer es descargarnos el instalador del SDK. Esto lo haremos desde la web http://developer.android.com/sdk/index.html. En nuestro caso descargamos la versión de Windows y lo descomprimimos. Es importante tener en cuenta que para la ejecución del simulador, y de la misma instalación del SDK, necesitaremos tener instalada la máquina virtual de java (descargar aquí)

Podemos ejecutar directamente el instalador SDK Setup.exe o, desde línea de comandos, ejecutar “android.bat update sdk“. Con esta última opción se actualizará directamente el contenido del SDK.

Android01-2

Error al intentar ejecutar la instalación por comandos sin disponer de máquina virtual de java.

Nosotros vamos a ejecutar directamente el instalador. Lo primero que encontraremos, posiblemente, es que no conecta con el repositorio  de android. Esto lo solucionaremos, como nos dice el propio mensaje, modificando la configuración del instalador para que la descarga se realice a través de HTTP.

Android03

Error al intentar actualizar por HTTPS

Para ello cerramos la ventana actual, nos aparece otra ventana (de instalación de paquetes) que también cancelamos, y, en la pantalla principal, nos vamos a Settings para seleccionar Force https://… Sources to be fetched using http://…

Android05

Ventana principal del instalador del SDK de Android

Ahora ya actualiza los repositorios y, si nos vamos al apartado Installed Packages veremos la lista de paquetes instalados.

Android06

Lista de paquetes instalados

En esta última versión del SDK no es necesario descargarse todo los contenidos (las versiones anteriores eran completas y ocupaban unos 200 Mb) sino que con este pequeño instalador podemos escoger qué contenido descargar. Si pulsamos sobre el botón Update All nos mostrará aquellos paquetes que podremos descargar.

Android07

Lista de paquetes disponibles para instalar

En nuestro caso nos centraremos únicamente en la versión de Android 2.0, por lo que deseleccionaremos el resto y pulsaremos en Install Accepted.

Cuando se haya terminado de instalar el paquete cerramos la ventana y, de nuevo en la pantalla principal del instalador del SDK, nos iremos al apartado Virtual Devices. En este apartado definiremos las máquinas virtuales de Android que vamos a crear. Cada una de ellas será como un “móvil” independiente. Para crear una nueva pulsamos New, y se nos abrirá una ventana donde definiremos sus parámetros. Nosotros le hemos puesto el descriptivo nombre de Android-2.0 y hemos seleccionado como Target la única opción disponible para nostros: Android 2.0 – API Level 5. En este desplegable aparecerían el resto de SDKs si hubiésemos instalado sus paquetes (Android 1.6 o 1.5).  También crearemos una tarjeta SD virtual de 256 Mb, aunque podría ser de cualquier otro tamaño. En nuestro caso no tocaremos la configuración del Skin, ya que el que viene por defecto (HVGA) es el propio de la Magic. Si quisiéramos emular al Motorola Droid, por ejemplo, escogeríamos WVGA854, y si quisiéramos otro terminal deberíamos probar otras configuraciones.

En el apartado Hardware podemos incluir el soporte para distintos dispositivos, como pueden ser el acelerómetro, el GPS, la Cámara o la Pantalla táctil. En este caso, dado que no disponemos de ninguno de estos dispositivos, dejaremos la opción por defecto (Abstracted LCD Density). Cuando hayamos terminado, pulsamos sobre Create AVD y ya habremos creado nuestro “móvil” Android virtual.

Android10

Opciones para crear un Dispositivo Virtual

Volviendo a la pantalla inicial del SDK, en la misma sección Virtual Devices podemos escoger cada una de las máquinas virtuales que hemos creado y arrancarlas pulsando el botón Start y, en la siguiente ventana, Launch. La primera vez que las arrancamos tardarán algunos minutos en iniciarse, pero  al poco tiempo veremos las conocidas letras de Android y, por fin, el escritorio.

Android13

Simulador de Android

Ya tenemos nuestro Android 2.0 para que enredemos con él todo lo que queramos. Podemos observar que en el simulador disponemos de botones que no tenemos en la HTC Magic, pero esto es, obviamente, porque el simulador puede simular a cualquier otro dispositivo con Android (el HTC Dream, por ejemplo, que sí tiene teclado físico).

Hoy ya no veremos nada más pues al final ha salido un artículo demasiado extenso con tantas capturas de pantalla (claro, como nos gusta tanto el botón Impr Pant!!), pero a este “móvil” virtual se le puede probar cualquier aplicación (nuestra propia, o no) y ver su compatibilidad con Android 2.0.

Una última cosa, no relacionada con el SDK de Android, pero sí con la última versión de Android es que como se liberó hace tiempo parte del código, hay ya algunas ROMs cocinadas (como por ejemplo la famosísima Cyanogen) que ya incorporan Android 2.0, o al menos en parte, ya que aún queda tiempo (no mucho, esperemos) para su liberación oficial.

Y bueno, mientras esperamos la dichosa y esperadísima actualización (que por fin tendrá soporte completo para Bluetooth, e incorporará soporte para Multitouch y, y, y…), podremos entretenernos pensando que tenemos la última versión de Android, aunque sólo sea en el ordenador.

Android15

Átomos y bits en Android 2.0