viernes, 12 de junio de 2015

Simular eventos, acciones, entradas y comandos en un emulador Android,

Cuando comienzas con nuevos proyectos, muchas veces no tienes los dispositivos físicos para hacer las pruebas o no quieres arriesgar información valiosa en tu dispositivo, por lo que tienes que recurrir a emuladores. Además, si tienes un pc potente, puede que incluso sea más cómodo realizar las pruebas en emuladores.

Pues bien, para realizar esto basta con ejecutar nuestra aplicación, seleccionar el AVD (Android virtual device, alias el emulador) que querramos y dentro de android studio ir a la pestaña de terminal.


Después de eso, deberán utilizar el comando

telnet localhost 5554

Si la consola les marca un error de que no se reconoce el comando, es porque no tienen telnet activado en su windows, para lo cual sigan los siguientes pasos

Para instalar el cliente Telnet

  1. Haga clic en el botón InicioImagen del botón Inicio, haga clic en Panel de control y, a continuación, en Programas.
  2. En Programas y características, haga clic en Activar o desactivar las características de Windows. Se requiere permiso de administrador Si se le solicita una contraseña de administrador o una confirmación, escriba la contraseña o proporcione la confirmación.
  3. En el cuadro de diálogo Características de Windows, active la casilla Cliente Telnet.
  4. Haga clic en Aceptar. La instalación puede durar varios minutos.
Una vez conectados podemos usar distintas funciones emuladas en nuestro dispositivo virtual como por ejemplo la función:

geo fix 19.282754, -99.676644

Que simulará que el dispositivo se encuentra en esas coordenadas (Facultad de Ingeniería de la UAEMex) por ejemplo, para utilizar en una applicación de geolocalización.

O por ejemplo una simular una llamada del 123-4567

gsm call 1234567

Entre otras funciones. Saludos.

Consultar estructura de las tablas en una base de datos de Android

Qué tal, les cuento que ahora que estuve realizando el tutorial de udacity, me atoré con un problema de llaves primarias, según el tutorial que seguí de la BD, se recomendaba poner la llave primaria en autoincrementar, y como ya saben que me gusta llevarle la contra a todo, yo hice mi tabla sin el autoincremento, simplemente agregando filas sin el id a ver qué pasaba.

Por alguna razón insensata de mi parte, supuse que los registros empezaban de 0, y cuando hacía querys para ver mi información pues me tiraba errores, sin embargo la consola marcaba que era la tabla la que no existía y no el registro, así que me pasé algunas horas peleando con por qué no aparecía la tabla si yo la creaba como debía.

Para no hacer el cuento largo, android usa bases de datos sqlite, por lo que para hacer pruebas me bajé el sqlite3 de acá.

http://sqlite.org/2015/sqlite-shell-win32-x86-3081002.zip

En esta aplicación basta con utilizar el comando .schema para ver la sentencia SQL con la que se han creado las tablas de nuestra base, sin embargo, si intentan hacer este query desde android, les va a dar error, el query respectivo para lograr esto es:

  1. String queryschema = "SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master) WHERE type!='meta' ORDER BY tbl_name, type DESC, name";
  2. Cursor cursor = db.rawQuery(queryschema , null);




Con este query simplemente tendrán que utilizar el método de rawquery y listo, tendrán la estructura de las tablas de su BD.

Hay que recordar que la trabla de sqlite_master contiene toda la información de nuestra BD, por lo que podemos obtener otro tipo de información aparte de las tablas.

Saludos.

Primeros pasos con Android

Atemorizado, pero a la vez emocionado en mi nuevo viaje a los confines de Android, me decidí a bajar un IDE en el cual trabajar, sabía que eclipse era una buena opción, estoy acostumbrado a utilizarlo y ya tengo muchos plugins muy útiles, sin embargo, pensé, a estas alturas debería hacer un IDE especial para Android, ¿no? Y así fue como fui a dar con Android Studio.

Como saben, yo utilizo windows la mayoría del tiempo por mis jueguitos, así que me bajé esa versión.

Pueden descargarla de acá:

https://developer.android.com/sdk/index.html

Una vez que bajé el IDE, me propuse a explorar qué opciones conocidas tenía, ya saben, cómo es la estructura, cuáles son los comandos rápidos básicos, etc.

Acto seguido de esto, dije, y bueno, ¿ahora cómo empiezo? Buscar videos... Blogs conocidos... entre otros... A lo que encontré una página excelente para comenzar, esta se llama Udacity, yo no la conocía quizás ustedes sí, el chiste es que tiene muchos cursos gratis (aunque hay que registrarse... a algunos no les gustará, pero bueno) y encontré un cursillo de introducción el cual me dio las herramientas para comenzar. El curso en cuestión es este:

https://www.udacity.com/course/developing-android-apps--ud853

Y para no tener problemas con el control de versiones y atiborrar mi carpeta de proyectos de "Este si es el bueno" "Este es el final" "Este es mejorado" etc... también me decidí a tomar el cursito de GitHub.

https://www.udacity.com/course/how-to-use-git-and-github--ud775

Todos los cursos están en inglés y los videos a veces tienen subtítulos en español, a veces no... Pero siempre puedes ponerle los subs en inglés, aunque sean autogenerados, por aquellos como yo que estén sordos y no se les de bien escuchar el inglés jejeje.

Y bueno, de momento creo que es suficiente para que vayan adentrándose en el mundillo este de Android. Así que los veo en otra publicación. Saludos.

Comenzando con un desarrollo en Android

Hace unos días estaba desayunando con mi hermano, y me comentó ciertos problemas que tenía en la empresa en la que trabaja, a lo que me dijo, pues... ¿Tú programas no? ¿No me puedes ayudar con unos programitas o algo? A lo que contesté que a pesar de que ya tengo tiempo de programar "en serio" iba a tomar la propuesta y desarrollar alguna solución para dispositivos Android, él tiene un Iphone, y de hecho casi todos los de la compañía igual... Pero bueno, me encanta llevarle la contraria así que le dije que Android o nada... Jajaja, ya luego buscaré el desarrollo con algún framework que exporte en diversas plataformas, pero de momento, quiero programar "como se debe" y explorar desde sus raíces a Android.

Así pues, empezaré a publicar algunos problemas, consejos y tips que se me vayan cruzando en el camino del desarrollo de las aplicaciones que pretendo realizar.

Saludos, ¡nos vemos en otra publicación!