lunes, 9 de enero de 2012

Instalación de una aplicación en la memoria SD.


Desarrollo sobre la plataforma Android:



Hola a todos, este es mi primer post, tenia planeado arrancar este blog con una introducción desde cero sobre programación con el lenguaje Java sobre la plataforma Android. Pero ayer, me encontré con un problema que se puede resolver de manera sencilla, y creo que esta bueno que quede documentado. El tema es el siguiente, para el testeo de las aplicaciones creadas, yo poseo un Samsung GT I-5500 L, es un celular de gama baja, que ya viene con la versión de Android 2.2. Que lamentablemente posee una memoria interna muy reducida, 170Mb. Ahora viene la historia que me hizo escribir este primer post:


Mientras estaba probando aplicaciones de la Android Market, instalando y viendo las GUI que poseían, los comportamientos, etc, etc, el teléfono me propuso actualizar algunas otras. Y hay es cuando todo comienza, ya que me salta un cartel de error, advirtiéndome de que mi celular se había quedado sin espacio de memoria libre, y que no iba poder actualizar nada. (la p..... “·!·$”·”##~@ ).
Lo que me parecía muy extraño, ya que al mirar la memoria Micro SD que tiene el celular, pude observar que de los 2Gb que trae, solo tiene ocupado 100Mb. Así fue que comencé a investigar, y encontré que uno puede pasar algunas aplicaciones de manera manual a la memoria SD, como muestra la imagen, uno debe llegar al Administrador de aplicaciones.

Los pasos a seguir para llegar allí son:
Menu, Configuracion, Aplicaciones, Administrar aplicaciones.

Y también me encontré en el camino con aplicaciones como MoveToSD, o similares que también gestionan ese traspaso a la memoria SD.
Pero sucedía una cosa, los programas que yo había desarrollado , así como muchos otros que me había descargado, no poseen esa opción, así como tampoco podía realizar ese traspaso, con los programas antes mencionado. Lo que me llevo a preguntarme, el porque con algunas aplicaciones si y con otras no, sera una cuestión de rendimiento? Negligencia del desarrollador?

Pues no, el tema es que esa opción comenzó a ser posible a partir del API Level 8 ( para el que todavía no sabe, ya que recién estamos comenzando con el mundo Android, esta se corresponde a la versión de Android 2.2 Froyo).
Es muy sencillo de subsanar este problema, con un simple cambio en el Android Manifest de nuestra aplicación uno puede corregirlo, en el encabezado del mismo, uno debe modificarlo para agregar esta sentencia:
android:installLocation="preferExternal"
Quedando de esta manera algo así:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal"
... >
También lo podemos hacer de forma visual, como se muestra en la siguiente imagen:



Como verán en estas imágenes, este es el resultado de una misma aplicación con el cambio en el manifest:

















Como pueden observar en la segunda imagen, se a activado el botón de mover a la tarjeta de memoria.

Hasta acá llegamos por ahora, espero que les allá gustado este primer post, en los siguientes, vamos a comenzar a realizar una introducción, para que todos podamos programar, desde como armar nuestro entorno de desarrollo hasta OpenGL, persistencia de Datos, etc, etc.

Para aquel que quiera ver la documentación oficial, acá les dejo el enlase:
Saludos a todos, Gabriel E. Pozo