Éste blog es un agregador de posts de otros blogs que, por su temática, son de alto interés para los lectores de HijoDeBlog. Cada enlace redirige al autor original del post. Contacta con info _at_ hijodeblog _dot_ com para cualquier duda.
¡Promociona gratuitamente tu aplicación!

Cómo reproducir archivos de audio desde el directorio Assets en Android

Hoy vamos a ver cómo reproducir archivos de audio almacenados en el interior de nuestra aplicación Android, concretamente en el directorio Assets. Todo se hace con ésta función:

public void reproducirDesdeAssets(String recurso)
{    
	try
	{
		// Si está creado lo matamos
		if(this.mp != null)
		{
			this.mp.stop();
			this.mp.release();
			this.mp = null;        
		}                    
	
		// Creamos el nuevo reproductor
		this.mp = new MediaPlayer();
		 
		// Cargamos un archivo desde el directorio assets
		AssetFileDescriptor afd = getAssets().openFd(recurso);
		FileDescriptor fd = afd.getFileDescriptor();
		
		// Reproducimos
		if(fd != null)
		{
			this.mp.setDataSource(fd, afd.getStartOffset(), afd.getLength());		
			this.mp.prepare();
			this.mp.start();
		}
		else Toast.makeText(getBaseContext(), "¡Error reproduciendo "+recurso+"! Recurso nulo...", Toast.LENGTH_LONG).show();
	}
	catch (Exception e)
	{
		e.printStackTrace();
		Toast.makeText(getBaseContext(), "¡Error reproduciendo "+recurso+"! "+e.getMessage(), Toast.LENGTH_LONG).show();
	}
}

Basta con colocar nuestros archivos de audio en el directorio Assets del proyecto Android y dar su ruta para empezar a reproducirlos.

Facil, ¿verdad?

Aplicaciones de los lectores: Sleep & Save y Catch Mole!

Empezamos la semana con toda la energía que sea posible (y una dosis extra de café) con una utilidad y un juego.

Sleep & Save

Ranguita nos propone una utilidad para mejorar nuestro sueño. Describe a su aplicación de ésta forma:

La publicidad de mi aplicación es la siguiente:

Cansado de recibir notificaciones molestas ( de Facebook,Twitter, whatsapp,etc) mientras descansas?
Aburrido de gastar batería de tu móvil inútilmente mientras duermes?
Basta ya! Piensa en verde!

Sleep & Save es tu programa: simple, eficaz y efectivo.
Marca las hora inicio y fin del descanso y tu móvil solamente admitirá las llamadas, desconectando tu conexión a internet y ahorrando así bateria y evitando sonidos.

Podéis verlo en funcionamiento en éste video:

0    Aplicaciones de los lectores: Sleep & Save y Catch Mole!

Para descargarlo, id a Google Play, como siempre:

Catch Mole!

    Aplicaciones de los lectores: Sleep & Save y Catch Mole!
Toni Paricio vuelve a las páginas del Diario de un Androide para presentarnos su último juego, que describe de ésta forma:

Catch Mole! es un divertido juego de ingenio y estrategia al estilo Buscaminas. Tu objetivo será capturar al topo Mole que se esconde bajo tierra. Pero Mole no es lo único que oculta el subsuelo, Mole se mueve entre tuberias y cables de alta tensión, ¡Ten cuidado en donde clavas tu pala si no quieres acabas chamuscado!

Pero Catch Mole! no es un juego de azar. Un sistema configurable de pistas te ayudará a moverte y a localizar a Mole, encuentra la mejor estrategia para atraparlo.

Catch Mole! está diseñado tanto para Smartphones como para Tablets ¡Acepta el reto de Catch Mole!

Es una vuelta de tuerca original al concepto del clásico buscaminas que convence si se le da la oportunidad. Así que no lo dudéis, descargarlo desde el Google Play:

Enlazando a la página de nuestra aplicación en SlideME

SlideME es una market alternativo para nuestros móviles y tablets Android. En él podemos ver una amplia colección de aplicaciones presentes también en el Play Store, acompañadas de otro buen puñado de aplicaciones que por un motivo u otro han sido rechazadas en el Market de Google y han encontrado cabida en SlideME.

Como desarrolladores, podremos publicar de forma gratuíta nuestras aplicaciones en SlideME, tanto de pago como gratuitas, pero aquí tendremos un proceso de aprobación que tendremos que tener en cuenta.

Tras enviar OnScreenOff y OnScreenOff Pro-Key a SlideME me las han rechazado en primera instancia por dos motivos (muy facilmente subsanables) que deberéis tener en cuenta para que no os echen para atrás vuestros envíos.

  1. Si hay un enlace interno a una aplicación del Play Market (por ejemplo, para enlazar a la versión de pago desde la gratuita) deberéis hacer un enlace también a la misma aplicación en el SlideME market
  2. A la gente de SlideME no les gustan las keywords en las descripciones, así que nada de “aplicaciones similares” en la descripción larga de nuestra aplicación

La forma de enlazar desde nuestra aplicación a la página de SlideME es muy sencilla:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("sam://details?bundleId=497d3ca6-03ba-11e2-aa83-c615183bdda6"));
startActivity(i);

El bundleId de nuestra aplicación lo encontraremos en la página de SlideME de nuestra aplicación (aunque esté pendiente).

¡Suerte en vuestra aventura por nuevos Markets!

slideme logo    Enlazando a la página de nuestra aplicación en SlideME

Nueva versión de OnScreenOff, ahora con control de brillo

    Nueva versión de OnScreenOff, ahora con control de brillo

En el diario de un Androide estamos orgullosos de presentaros la nueva versión de OnScreenOff, la aplicación para que la batería de nuestros móviles y tablets con Android dure mucho más.

¿Y ésto como es posible?

Pues desactivando las conectividades cuando no son necesarias. Y ahora, con la nueva versión, regulando el brillo para que la pantalla no dispare el consumo.

Podéis probarlo directamente desde el Play Market, ¡gratis!


    Nueva versión de OnScreenOff, ahora con control de brillo
Descargar OnScreenOff
en el Play Market

¡Con perfiles todo es mejor!

Para optimizar aún más el consumo de batería OnScreenOff ofrece un modo adicional que habilita dos perfiles extra: el modo noche y el modo baja batería. Configurando el funcionamiento según el estado del dispositivo o el momento del día.

Podéis instalarlo por una cantidad irrisoria desde el Play Market:


    Nueva versión de OnScreenOff, ahora con control de brillo
Descargar OnScreenOff
ProKey en el Play Market

También en SlideME

OnScreenOff debuta en el market alternativo SlideME. Si preferis este mercado de aplicaciones podéis descargar ambas versiones siguiendo éstos enlaces:

Visión general y entorno de desarrollo (Parte 2)

Los origenes

Google adquiere Android Inc. en el año 2005. Se trataba de una pequeña compañia, que acababa de ser creada, orientada a la producción de aplicaciones para terminales móviles. Ese mismo año empiezan a trabajar en la creación de una máquina virtual Java optimizada para móviles (Dalvik VM).

En el año 2007 se crea el consorcio Handset Alliance con el objetivo de desarrollar estándares abiertos para móviles. Está formado principalmente por:

  • Google
  • Intel
  • Texas Instruments
  • Motorola
  • T-Mobile
  • Samsung
  • Sony
  • Toshiba
  • Vodafone
  • NTT DoCoMo
  • Sprint Nextel
  • entre otros….

Una pieza clave de los objetivos de esta alianza es promover el diseño y difusión de la plataforma Android. Sus miembros se han comprometido a publicar una parte importante de su propiedad intelectual como código abierto bajo licencia Apache V 2.0.

En noviembre del 2007 se lanza una primera versión del Android SDK. Al año siguiente aparece el primer teléfono móvil con Android (T-Mobile G1). En octubre Google libera el código fuente de Android principalmente bajo la licencia de código abierto Apache (licencia GPL v2 para el núcleo). Ese mismo mes se abre el Android Market, para la descarga de aplicaciones. En abril del 2009 Google lanza la versión 1.5 del SDK que incorpora nuevas características como el teclado en pantalla. A finales del 2009 se lanza la versión 2.0, durante el año 2010 las versiones 2.1, 2.2 y 2.3, después en el año 2011 se libera la versión 3.0 (exclusiva para tabletas), y a finales del mismo año se libera la 4.0 (que pretendía unificar tabletas y móviles en una sola interfaz), y por último a mediados de este año 2012 se libera la versión 4.1 con mejoras sustanciales respecto a su predecesor, principalmente en velocidad y optimización.

Desde el año 2010, Android se consolida como uno de los sistemas operativos para móviles mas utilizados, con resultados cercanos al iOS e incluso superando al sistema de Apple en EE.UU.

Comparativa con otras plataformas

Ahora pasemos a las características de las principales plataformas móviles en la actualizad. Debido a la gran cantidad de datos que se indican, he utilizado una tabla para representar la información, de esta forma resulta más sencillo comparar las plataformas. 

Otro aspecto fundamental a la hora de comparar las plataformas móviles es su cuota de mercado. En la siguiente gráfica podemos ver un estudio donde se muestra la evolución del mercado de los sistemas operativos móviles según el número de terminales vendidos. Podemos destacar el importante descenso de las ventas de Nokia, además del ascenso continuado de la plataforma Android.

Se han realizado otros tipos de estudios que miden la actividad de los usuarios en Internet. En estos casos se comprueba como los usuarios con otras plataformas, como Symbian, utilizan sus terminales de forma más convencional.

Fuente de el estudio: Gratner Group

 

Comentarios desactivados
Etiquetas:

Aplicaciones de los lectores: Wikitest Trivia Quiz y elOso

Para empezar la semana con tranquilidad os presentamos dos juegos muy diferentes traidos por nuestros lectores:

Wikitest Trivia Quiz

    Aplicaciones de los lectores: Wikitest Trivia Quiz y elOso

Katia nos envía su primer juego, que sigue la clásica mecánica de preguntas y respuestas. Gracias a ella podremos aprender y divertirnos mientras competimos con otros jugadores de todas partes del mundo e intentamos escalar a lo más alto del ránking mundial.

Hay más de medio millar de interesantes, divertidas y curiosas preguntas sobre los temas más diversos, deportes, música, actualidad, cine, etc., por lo que tenemos muchas horas de diversión aseguradas.

Puedes descargarlo de forma gratuita en el Play Market:

elOso

    Aplicaciones de los lectores: Wikitest Trivia Quiz y elOso

La gente de Cocoua nos mandan su nuevo juego, que ellos mismos describen de ésta forma:

Jugar a elOso es fácil, por turnos, cada jugador puede escribir una O o una S en uno de los cuadrados. El objetivo es formar la palabra OSO, el jugador que forma más veces la palabra OSO gana. Cuando un jugador consigue poner la palabra OSO repite turno colocando otra letra, una vez que ha puesto su letra, si no ve ningún OSO, puede pasar el turno al otro jugador.

Al principio se van distribuyendo alternativamente las letras y es difícil caer en un error y que el otro se apunte un tanto, pero a medida que se van rellenando los cuadraditos y queda menos espacio, se van reduciendo las opciones de evitar la formación de palabras. A menudo se termina con una avalancha de OSOs consecutivos.
El juego termina cuando se han rellenado todos los cuadraditos de la cuadrícula y puntuan los OSO conseguidos en Vertical, Horizontal y Diagonal.

Como vemos, una nueva versión del clásico juego de papel y lápiz, renovado con rankings, redes sociales, etc…

Puedes descargarlo de forma gratuita en el Play Market:

Nexphone: smartphone, tablet, portátil y sobremesa todo en uno, ¿se puede pedir más?

Mirad, mirad éste maravilloso video de un nuevo concepto muy parecido al maravilloso Asus Padfone, pero mezclando las bondades de Android con el maravilloso Ubuntu (gracias a ése hibrido desarrollado por mi querida Canonical):

0    Nexphone: smartphone, tablet, portátil y sobremesa todo en uno, ¿se puede pedir más?

¿No es puro amor? ¡Quiero uno!

Actualizando CyanogenMod 9 a CyanogenMod 10 (Jelly Bean) en un Samsung Galaxy S2 i9100

Hoy vamos a experimentar con versiones inestables de nuestra amada CyanogenMod. Se acaban de anunciar las versiones semiestables M, pero desafortunadamente no hay una disponible para nuestros Samsung Galaxy S2 i9100, así que instalaremos una versión Nightly, las versiones directas desde las ramas de desarrollo.

Para instalar la versión Nightly de la CyanogenMod 10 (Jelly Bean) haremos lo siguiente:

  1. Descargar la rom CM-10 Nightly y copiar a la SD
  2. Descargar las Google Apps para CM-10 y copiar a la SD
  3. Pulsar la tecla de apagado y arrancar en modo recovery desde el menú de reinicio de la CyanogenMod 9 (también se puede hacer con la combinación de teclas de siempre, pero así es más cómodo)
  4. Hacer un backup de la rom actual con la opción correspondiente
  5. Instalar los dos zips que hemos copiado desde la opción correspondiente del menú recovery. En mi caso NO he hecho un wipe de los datos, pero se puede hacer sin problemas.
  6. Reiniciar icon smile    Actualizando CyanogenMod 9 a CyanogenMod 10 (Jelly Bean) en un Samsung Galaxy S2 i9100

Tras un rato durante en el cual nuestras aplicaciones se optimizarán a Jelly Bean (siempre que no hayamos hecho el wipe) veremos la nueva pantalla de desbloqueo de Android 4.1.

Os iré contando qué funciona y que no en ésta versión Nightly. Además, iré actualizando la rom a la última publicada, así qu estad atentos al Diario de un Androide icon smile    Actualizando CyanogenMod 9 a CyanogenMod 10 (Jelly Bean) en un Samsung Galaxy S2 i9100

¡A las ricas golosinas!

Jelly Bean    Actualizando CyanogenMod 9 a CyanogenMod 10 (Jelly Bean) en un Samsung Galaxy S2 i9100

8 consejos para desarrolladores de Android

Cuando se habla del desarrollo de aplicaciones para dispositivos móviles es necesario tener en cuenta una serie de puntos acerca de la plataforma con el objetivo de garantizar la seguridad. Android es un sistema operativo para smartphones que contiene aplicaciones. Por defecto el sistema viene instalado con un conjunto de aplicaciones básicas como lo son el teléfono, correo, agenda de contactos y algunas más. Sin embargo cuando un desarrollador quiere crear su propia aplicación para esta plataforma debe seguir una serie de buenas prácticas al utilizar las API de Android y el SDK provisto por Google.

Las aplicaciones para esta plataforma se encuentran desarrolladas en Java y se ejecutan dentro de una máquina virtual, y para ser instalada en el sistema se distribuyen como archivos con extensión APK. Estas aplicaciones pueden estar disponibles en el Android Market publicadas por su desarrollador o en otros repositorios de aplicaciones no oficiales.

Android se encuentra basado en Linux, incluyendo además, sus propios mecanismos de seguridad adaptados para los smartphones. De esta manera el sistema operativo logra combinar una serie de funcionalidades como memoria compartidamultitarea, identificadores de usuarios (UIDs), permisos de archivoJava y toda su conocida estructura. El resultado de estas combinaciones lo convierte un sistema multiusuario, donde cada aplicación se ejecuta en un proceso separado bajo un UID diferente y con sus propios permisos.

Parte del modelo de seguridad de Android basado en estas características genera que un programa no pueda escribir el código o los datos de otra aplicación. En el caso que dos aplicaciones deseen compartir información dicha interacción debe ser explícita a través de distintos componentes del sistema:

  • Activity: permiten iniciar llamadas a distintos componentes del sistema, permiten la interacción con el usuario.
  • Service: permiten el procesamiento en segundo plano, suelen ser utilizados para el control de aplicaciones, recursos del sistema.
  • Content Provider: es una interfaz estandarizada para compartir datos o información entre la misma aplicación o con otra.
  • Broadcast Receiver: es una interfaz para recibir eventos (Intents) asociados a determinadas acciones. Por ejemplo la recepción de un mensaje de texto.

El componente con el cual se realiza la comunciación puede estar en la misma aplicación o pertenecer a otra. Dicha interacción es a través de los Intents. Un Intent es un objeto utilizado para la señalización entre componentes, permite iniciar la interfaz de usuario de una aplicación, enviar un mensaje entre componentes o iniciar un servicio en segundo plano. Además cada aplicación de Android contiene un archivo con nombre AndroidManifest.xml que contiene:

  • los componentes contenidos en la aplicación
  • reglas de acceso
  • dependencia de las rutinas
  • permisos del sistema necesarios

Como Android se centra en ICC (Inter Component Communication, en español, Comunicación entre Componentes) el manifiesto de Android le permite a los desarrolladores permitir una política de control y acceso a sus componentes. Como existen algunas excepciones, a continuación compartimos con ustedes una serie de buenas practicas para los desarrolladores de Android:

  • Definir atributos de privacidad (“exported”): esto se debe a que los componentes pueden ser públicos o privados. Si no se define correctamente esta política los componentes de la aplicación podrían ser accedidos por una aplicación ajena.
  • Definir permisos de acceso para todos los componentes: esto se debe a que si el acceso no se encuentra definido mediante una llamada remota al componente, una aplicación podría conectarse a un recurso para el cual no tiene acceso. Por ejemplo la ejecución remota de código que permita leer el contenido de la tarjeta SD.
  • Siempre especificar los permisos de acceso a los Intent Broadcast: si no se define una etiqueta  de permisos al emitir un Broadcast, cualquier aplicación podría leerlo.
  • Definir de manera separada los permisos de lectura y escritura: El intercambio de contenidos no tiene por qué ser todo o nada, según el recurso se pueden definir permisos de manera separada, garantizando la integridad y confidencialidad de la información.
  • Seleccionar los permisos de la aplicación con criterio: cada uno de los permisos solicitados en el Android Manifest para los componentes de la aplicación deben ser los mínimos necesarios para su funcionamiento. De otra manera se abre la puerta a la utilización de los componentes para fines maliciosos.
  • Proteger la información confidencial: Al almacenar información sensible del usuario o de sus contactos siempre es recomendable que se encuentre cifrada incluso si se va a almacenar dentro de una base de datos en el dispositivo.
  • Definir los permisos de acceso al sistema de archivo: como Android se encuentra basado en Linux es posible definir permisos a nivel de archivo dentro del sistema de archivos evitando que una aplicación bajo un disinto UID acceda a ellos.
  • Cifrar la comunicación: cuando una aplicación envía información a una dirección URL intenta cifrar los datos, ya que si la comunicación es bajo HTTP y se envían las contraseñas en texto plano podrían ser interceptadas por un atacante.

La política de permisos de Android que se puede definir en el Android Manifest es bastante clara y específica. Sin embargo se le debe prestar especial atención ya que una mala definición de permisos podría permitirle a una aplicación maliciosa acceder a información sensible del usuario. Cualquier proceso de desarrollo de software el proceso de testing es de suma importancia, además de garantizar un correcto funcionamiento se debe tener en cuenta la seguridad. Como desarrollador de aplicaciones no solo es necesario que la aplicación funcione correctamente sino que además le garantice al usuario la seguridad de su información.

 

Comentarios desactivados

Visión general y entorno de desarrollo

La telefonía móvil está cambiando la sociedad actual de una forma tan significativa como lo ha hecho Internet. Esta revolución no ha hecho más que empezar, los nuevos terminales ofrecen unas capacidades similares a una computadora personal, lo que permite que puedan ser utilizados para leer nuestro correo o navegar por Internet. Pero a diferencia de una computadora, un teléfono móvil siempre está en el bolsillo del usuario. Esto permite un nuevo abanico de aplicaciones mucho más cercanas al usuario. De hecho, muchos autores coinciden en que la nueva computadora personal del siglo veintiuno será un terminal móvil.

El lanzamiento de Android como nueva plataforma para el desarrollo de aplicaciones móviles ha causado una gran expectación y está teniendo una importante aceptación tanto para los usuarios como para la industria. En la actualidad se está convirtiendo en una seria alternativa a otras plataformas como Symbian, iOs, Blackberry o Windows Mobile/Phone.

¿Qué hace a Android Especial?

Como hemos comentado, existen muchas plataformas para móviles, sin embargo Android presenta una serie de características que lo hacen diferente. Es el primero que combina en una misma solución las siguientes cualidades:

  • Plataforma realmente abierta. Es una plataforma de desarrollo libre basada en Linux y de código abierto. Una de sus grandes ventajas es que se puede usar y personalizar el sistema sin pagar regalías a ninguna empresa.
  • Portabilidad asegurada. Las aplicaciones finales son desarrolladas en Java, lo que nos asegura que podrán ser ejecutadas en gran variedad de dispositivos, tanto presentes como futuros. Esto se consigue gracias al concepto de máquina virtual.
  • Arquitectura basada en componentes inspirados en Internet. Por ejemplo, el diseño de la interfaz de usuario se hace en xml, lo que permite que una misma aplicación se ejecuta en un móvil de pantalla reducida, en una tablet o en un netbook.
  • Filosofía de dispositivo siempre conectado a Internet.
  • Gran cantidad de servicios incorporados: por ejemplo, localización basada tanto en GPS como en torres de telefonía móvil. Incorpora potentes bases de datos con SQL. Reconocimiento y síntesis de voz, navegador, mapas…
  • Alto nivel de seguridad. Los programas se encuentran aislados unos de otros gracias al concepto de ejecución dentro de una caja que incorpora la máquina virtual. Cada aplicación dispone de una serie de permisos que limitan su rango de actuación (servicios de localización, acceso a Internet…)
  • Optimización para baja potencia y poca memoria. Por ejemplo, Android utiliza la Máquina Virtual Dalvik. Se trata de una implementación de Google de la máquina virtual de Java optimizada para dispositivos móviles.
  • Alta calidad de gráficos y sonido: gráficos vectoriales suavizados, animaciones inspiradas en Flash, gráficos en 3 dimensiones basados en OpenGL. Incorpora codecs estándar mas comunes de audio y vídeoincluyendo H.264 (AVC), MP3, AAC, ….

Como hemos visto, Android combina caracteristicas muy intereantes. No obstante, la pregunta del millón es: ¿Se convertirá Android en el nuevo estandar de sistema operativo para móviles? Solo el tiempo lo dirá, tomando en cuenta la evolucion tanto de Android como de los demás sistemas operativos, asi veremos la respuesta y competencia que pueda llegar a surgir.

En conclusión Android nos ofrece una forma sencilla y novedosa de implementar potentes aplicaciones para móviles. A lo largo de este blog, trataremos de mostrar de la forma más sencilla posible como conseguirlo.

 

Comentarios desactivados
Etiquetas:

Disclaimer: Las imágenes mostradas en ésta página web se utilizan sólamente con propósitos ilustrativos, y son propiedad de sus respectivos autores (cuando es aplicable).
Hijo de Blog es un producto del Dr. SeROne

Los contenidos se ofrecen bajo una licencia de Creative Commons
Attribution-NonCommercial-NoDerivs 3.0 Unported

salvo que se indique lo contrario

Licencia de Creative Commons

Switch to our mobile site