Android

Aplicaciones Android.

iPhone

Aplicaciones iPhone/iPad.

HTML5

Aplicaciones moviles web en HTML5.
 

Extraer la base de datos SQLite de una aplicación desde nuestro equipo Android

miércoles, 4 de septiembre de 2013

Esta es una pregunta que se hacen muchas personas cuando colocan su aplicación en producción y empiezan a tener problemas que no tienen una clara explicación y por lo tanto sería bueno saber que datos tenia el usuario que le fallo la aplicación. 
Por lo tanto hay una solución pero con ciertas condiciones, una de ellas es que el equipo debe estar ruteado, pues tenemos que acceder como super usuario.

Primero debemos ingresar a la aplicacion Terminal, nos muestra la pantalla azul y digitamos 'su', nos mostrara un popup solicitando permisos y cuando ya veamos el cursor como #, indica que ya estamos como super usuarios.


Ahora lo siguiente es navegar hasta llegar donde se encuentra la base de datos de la aplicación, para esto utilizaremos los comando 'ls' para listar el directorio de archivos y 'cd' para abrir o salir de las carpetas. Normalmente esto se encuentra en el root/data/data 



Una vez ubicados en el data podremos listar y ver las carpetas con el nombre del paquete de la aplicación que deseamos recuperar la base de datos. Para este ejemplo vemos que ingresamos en 'com.commonsware.android.constants' y luego ingresamos a la carpeta 'databases'. Una vez dentro de 'databases' pueden ver que esta el archivo 'db' que realmente en un .sqlite, normalmente lo encontraran con .sqlite.
Luego debemos copiar el archivo 'db' a un directorio de facil acceso, por lo tanto lo moveremos a la sdcard, utilizando el comando 'cp' así, cp /sdcard/ 


Si vemos el File Manager de nuestro equipo Android, vemos que ya tenemos el archivo 'db' en la raiz de la sdcard.


Lo siguiente es pasar este archivo a nuestro computador y abrirlo con un visor de Sqlite como el SQLiteManager de Firefox. 




Instalacion y primer ejemplo en Android

domingo, 28 de julio de 2013

En este tutorial se realiza las indicaciones para instalar el ADT Bundle Android en un Windows pero que el mismo proceso sirve para Mac. También se explica la descarga de las plataformas de Android y la configuración de emuladores, luego se presenta la creación de un Hello World o ejemplo básico.

PANIC: Could not open - Error al lanzar emulador Android

miércoles, 27 de febrero de 2013

Si eres de los que no te gusta la configuracion que te pone Windows por defecto y mueves la carpeta de Mis Documentos a otro lado para en caso de virus o algo pueda estar protegida. Bueno ese es mi caso, pero te puede traer un pequeño problema a la hora de lanzar tu emulador Android, quien sacara este mensaje al tratar lanzarlo:
PANIC: Could not open:

Lo que sucede es que Android seguira apuntando a la carpeta por defecto de Windows, osea el toma la variable del sistema %USERPROFILE%, la puedes verificar sobre la consola digitanto echo %USERPROFILE%, podras ver que apunta a C:\Documents and Setting\Uusario, si te dirigues a la carpeta C:\Documents and Settings\Usuario\.android encontraras dos archivos que son adbkey y adbkey.

Y si revisamos la carpeta a donde movi Mis Documentos (D:\Mis Documentos\.android) aca encontraras el resto de archivos que se requieren para que el emulador se lance correctamente.

Cada vez que creas un nuevo emulador notaras que se crean 2 archivos en la carpeta avd.
Por lo tanto una solucion temporal fue, copiar los archivos de D:\Mis Documentos\.android hacia C:\Documents and Settings\Usuario\.android.
El problema es que si creas un nuevo emulador deberas copiar de nuevo los archivos.
Lo ideal es poder indicarle a Android que la carpeta de Mis Documentos fue movida.

Actualización: Y la solución es, agrega una variable de usuario en tu windows llamada ANDROID_SDK_HOME y la ubicación de donde moviste la carpeta Mis Documentos, de esta manera Android sera capaz de reconocer donde colocar la carpeta .android.
Por ultimo reinicia el computador. 

Firmar aplicación Android para pruebas

miércoles, 13 de febrero de 2013

Este tipo de firma nos permitira generar el APK e instalarlo en distintos equipos para probar su funcionamiento correctamente, este certificado es diferente al que se requiere para subir al Google Play.

Una vez hayas probado tu aplicación ya sea en el emulador o en el dispositivo de pruebas, ahora lo ideal es probarlo en otros dispositivos Android. 
Hay dos maneras de exportar el APK Sin Firmar y Firmada.

Sin Firmar nos genera el APK inmediatamente, pero no te permitirá instalarla en un dispositivo diferente al que utilizas para pruebas.
Firmada nos permitirá instalarla en cualquier dispositivo que tenga activo la instalación de aplicaciones de Orígenes desconocidos. (Para activarlo en el dispositivo Ajustes>Aplicaciones> Orígenes desconocidos).

Ahora para exportar la aplicación firmarda, das clic derecho sobre el proyecto Android Tools>Export Signed Application Package 
Luego seleccionas el proyecto que vas a exportar, Siguiente
En la ventana Keystore Selection colocas la ubicación y nombre del certificado keystorename.keystore y colocas un password, Siguiente
Luego en la ventana Key Creation colocas un Alias para tu certificado, recomiendan colocarle 25 años de valides a los certificados, aunque también puedes limitarlo, y de resto colocas la información de la compañía y país.
En la ventana Destination and key/certificate checks, colocas la ubicación donde almacenaras el APK y le das un nombre a tu nuevo APK, recuerda que se esta es creando por lo tanto no es que debas buscar un APK para colocar en la ruta. Finish 
Finalmente te diriges al la ruta que habías especificado y encontraras el APK de tu aplicación ya firmada, ahora puedes instalarla en diferentes dispositivos Android.

Referencias
http://www.srccodes.com/p/article/23/build-android-application-package-file-apk-using-eclipse-ide-and-android-development-tools-adt-plugin 

Recuperar Información de una lista cargada desde un JOIN

sábado, 4 de agosto de 2012

Este tip te puede mejorar el rendimiento de la aplicación pues lo que se busca es no volver a la persistencia por información, mi caso era que tenia una lista que se lleno con una consulta a la base de datos local y esta conformada con JOINs, por lo tanto al seleccionar la fila que deseaba no encontraba la información por medio del id de la fila pues esta asociado a otra tabla. El caso normal es 

@Override
protected void onListItemClick(ListView l,View v,int position,long id){
  String name = (String)getListAdapter().getItem(position).toString();

para mi caso requiero el id que relaciona un JOIN, y si ya se cargaron lo datos la primera vez que forme la lista, no deberia de volver a la base de datos local, por lo tanto puedes hacer esto

@Override
protected void onListItemClick(ListView l,View v,int position,long id){
  int n = 2; //posicion de id en el select
SQLiteCursor cursorJoin=(SQLiteCursor)getListAdapter().getItem(position);
  long idPerson = cursorJoin.getString(n);

donde la n es la posicion del valor que requiero en del siguiente Select
SELECT cliente._id, cliente.name, persona.idPersona,..................
FROM cliente
INNER JOIN persona ON cliente.code=persona.code

Paso de Objetos por Intents

domingo, 22 de julio de 2012

Realizar el paso de objetos, es tal como se pasan otros tipos de datos por medio de los Intent.
El siguiente codigo se coloca en el Activity1 que realiza el llamado al Activity2, pasandole una instancia del objeto MyObject.


Intent i = new Intent(this, Activity2.class);
i.putExtra(ID, object);
startActivity(i);

Ya sobre el Activity2 se recupera por medio del getSerializable()

MyObject recibir = (MyObject)extras.getSerializable(MyObject.ID);




Cambiar de SDK un proyecto Android

domingo, 6 de mayo de 2012

Este procedimiento puede ser sencillo pero mas de una vez se olvida. Sucede que tenemos un proyecto en una version y lo necesitamos cambiar. Clic derecho sobre el proyecto Propiedades y aca vamos a la rama de Android, a la derecha podremos cambiar el SDK del proyecto, recuerda hacer las modificaciones en el Manifest y Clean al proyecto si este lo requiere.


Lorem

Please note: Delete this widget in your dashboard. This is just a widget example.

Ipsum

Please note: Delete this widget in your dashboard. This is just a widget example.

Dolor

Please note: Delete this widget in your dashboard. This is just a widget example.