Vamos a platicar de culescules son las caractersticas generales de "Android" esto, es a un nivel de una vista general, es decir vamos a ver cules son los componentes, como interactan y como arrancamos a usarlos dentro del desarrollo, es importante cuando empezamos, consideremos, que, los mviles, tienen varias caractersticas diferentes, por ejemplo cuando estamos desarrollando para web o para algn otro equipo, lo tradicional, entonces cuando trabajamos para mviles,haymviles, hay ciertas cosas, como por ejemplo los recursos, incluyendo el poder de procesamiento, la memoria,losmemoria, los diferentes tipos de pantalla, y las resoluciones que se tienen, nos van a permitir explorar las diferentes opciones que el "Hardware" tiene, ahora como estamos limitados en estos aspectos, tememos que tomar en cuenta a ellos, para cuando desarrollamos, otros aspectos importantes, son por ejemplo, la transferencia de datos y la batera, con la transferencia de datos hay que tomar en cuenta que nuestra "APP" puede ser utilizada en un lugar donde hay una conexin a internet con "LTE" y es muy rpido o en un lugar donde talvez la persona va estar utilizando "EDGE", la batera es una rea de oportunidad enorme para los fabricantes de telfonos, que creo que en los aos que vienen, vamos a ver bastante mejora, y en cuanto al espacio por ejemplo, una pregunta que usualmente suelo compartir en este caso es: si el usuario se qued sin espacio, Qu ira a borrar? sus fotos?,msica?, etctera o nuestra aplicacin, es altamente probable que borre nuestra aplicacin,entoncesaplicacin, entonces debemos ser muy cuidadosos de como utilizamos estos recursos, es un reto, pero a la vez, es un reto interesante que nos permite optimizar y buscar la mejor forma de solucionar, Android tiene cierta anatoma que arranca desde el "kernel" de "Linux" esta es la base,nobase, no tenemos un gestor de ventanas, no tenemos por ejemplo: libreras, estndar que soporta "Linux" nicamente toda la parte de administracin, los componentes principales, y esto se complementa con algunas otras cosas desarrolladas especficamente para mviles, luego sobre esta parte del "kernel de Linux" vamos a tener libreras y el "RunTime", "RunTime" que sola ser "Dalvik" y desde hace un par de versiones se modific, ahora es "Dalvik", perdn ahora es "ART" quiere decir "Aged of Time RunTime" y lo que va ser es, compilar todo, antes de que se ejecute, esto provoca que cuando estamos actualizando sea mucho ms lento, a veces talvez han visto telfonos que tienen "ART" que dice optimizando aplicacin uno de ciento cincuenta, dos de ciento cincuenta, etctera, pero al ejecutar es mucho ms rpido, porque esta previamente compilado, a diferencia que "Dalvik" lo compilaba en el momento, otra cosa es que esto va ocupar ms espacio, sobre este "RunTime" vamos a tener un conjunto de aplicaciones que el "Framework" provee, ltimamente mucho de esto se ha centrado se ha centrado sobre "GooglePlay Services" y en "GooglePlay Services" lo que ha hecho "Google" es intentar reducir la fragmentacin, que estn conscientes que existe, entonces no necesitamos actualizar la versin de "Android" por completo, sino nicamente una parte, el componente de "Play Services" y en la parte superior de esta anatoma que es como una pirmide vamos a tener las aplicaciones, all es donde vamos a trabajar nosotros como desarrolladores de "Android" y vamos hacer uso de todo lo que esta hacia abajo, por ejemplo cuando utilizo un "Intent" este "Intent" eventualmente tiene, como una conexin con la parte ms baja del "kernel de Linux" en donde hace uso
Con formato: Fuente: Negrita
Con formato: Fuente: Negrita
Con formato: Fuente: Negrita
Con formato: Fuente: Negrita
de la comunicacin entre procesos y eventualmente permite que el usuario,
arranque con una actividad diferente ya sea de la misma aplicacin o de otra, adicional a esto, quisiera platicar un poco, de cules son los componentes de "Android" principalmente tenemos tres componentes que son activados con un mismo, activador, valga la redundancia, y de estos componentes hay uno, en particular que vamos a estar utilizando bastantes, que son las actividades(Activity),entonces las actividades son las pantallas que el usuario ve dentro de la aplicacin,una actividad se va mostrar a la vez y nada ms que una, pero la aplicacin puede tener mltiples actividades, imaginemos esto como un "Deck" de cartas, donde tengo mltiples cartas, pero nicamente, una est arriba y una es la que se ve, adems es posible,que tenga una porcin de mi aplicacin que no requiere de una interfaz grfica que no se ve, esto se llama un servicio "Service" de forma intuitiva a veces creemos que los servicios tienen su propio hilo de ejecucin y esto no es as, vale la pena tener en mente,que los servicios, no tienen su propio "Thread " va a ejecutarse en el "Main Thread" sin embargo eso no quiere decir que, implique que van a tener una parte visible, por ejemplo,el reproductor musical es un ejemplo de un servicio, adems de estos dos, vamos a tener los receptores de difusin o "Broadcast receivers" que van a capturar en el momento del que se emita, una difusin o un "Broadcast" y los tres "Activity" "Broadcast receivers" y "Services" son activados con "Intents" un "Intent" es la intensin de hacer algo, a travs de lo que va hacer es decir, A! ok, lo que quieres es visualizar este "URL" y abre el navegador o alguna de las aplicaciones que tengamos instalas, para poder responder ante este evento, tambin por otro lado podra ser, que quiero empezar una actividad de mi aplicacin, que yo mismo defin, entonces all defino de forma explcita, vamos a iniciar esta clase de "JAVA" que representa una actividad, el ltimo de los componentes, es el "Content Provider" este maneja datos y es activado no con "Intent" sino con "Content Resolver" este componentes no es tan comn, a menos a que yo quiera poner datos, no tengo una base de datos "SQL" tengo necesidad de usarlo si voy a exponer datos a terceros, yo puedo usar un "Content Provider" por ejemplo: para la galera, para los contactos, para diferentes cosas, pero en la mayora de casos, no voy a tener necesidad de hacerlo, sino ms bien voy a consumir de otros "Content Provider" existentes, algunos que provee el mismo sistema, otros que provee hacia terceros, ahora todo esto entra en funcionar en conjunto, cuando por ejemplo tengo una actividad y voy a pasar de una actividad que tiene un listado a una actividad que tiene un detalle de uno de estos elementos, haciendo un clic, esto requiere un "Intent" puede ser que al ver el detalle, necesite actualizar, entonces voy a tener un servicio que se encargue de eso, el servicio va hacer uso de un "Broadcast" para avisar
que ocurri algo, la actualizacin y voy a traer datos usando un "Content
Provider", all estn los bloques bsicos interactuando, y adems de los bloques bsicos voy a tener un archivo de configuracin, es el "Android Manifest" es un archivo "xml" donde voy a colocar por ejemplo los permisos, voy a colocar metadata, voy a colocar una descripcin de las actividades que tengo, voy a colocar que filtros de "intent" voy a estar utilizando y en general toda la configuracin necesaria,para que mi aplicacin funcione, recapitulando, los bloque bsicos para "Android" son "ACTIVIDADES"