Vous êtes sur la page 1sur 54

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

ANDROID: LINUX + JAVA


CURSO: SISTEMAS OPERATIVOS (ST-324) SECCION: U

ALUMNOS:
Carrin Olivera, Michael Espinoza Rodriguez, Cristhian Muoz Villalobos, Luigi Lino Verdi, Marck Elvis Rojas Pizarro, Carolina 20092517J 20094051H 20094503F 20090014K 20094518C

"Ao de la integracin nacional y el reconocimiento de nuestra diversidad"

2012 - I
Pgina 1

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

ANDROID (Linux + Java)


Qu es Android?
Podemos definir Android como una pila de software que funciona en unidades mviles tales como telfonos, tablets, netbooks, etc, que incluyen un sistema operativo, middleware y un conjunto de aplicaciones clave. El SDK (kit de desarrollo de software) de Android proporciona las herramientas y APIs que se requieren para comenzar a crear aplicaciones en la plataforma Android utilizando el lenguaje de programacin Java.

Caractersticas generales:
Medios de apoyo para el audio, videos y formatos de imagen (MPEG4, H.264, MP3, JPG, PNG, GIF, AAC, AMR, etc.). Aplicacin que permita la reutilizacin y sustitucin de elementos. Bluetooth, Telefona GSM, EDGE, 3G y WiFi (dependiente del hardware). Cmara, GPS, brjula y acelermetro (dependiente del hardware). Grficos optimizados impulsados por una costumbre de la biblioteca de grficos 2D, grficos 3D basado en OpenGL ES 1.0 (aceleracin de hardware opcional). Navegador integrado fundamentado en el cdigo abierto WebKitmotor. Dalvik mquina virtual optimada para dispositivos mviles. SQLite para almacenamiento de datos estructurados. Medio de desarrollo ntegro que incluye un emulador de dispositivos, herramientas para el filtrado, la memoria y periferias de rendimiento, y un plugin para el IDE de Eclipse. 1

Pgina 2

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


________________________
1

Android: La nueva plataforma de desarrollos mviles http://picandocodigo.net/2007/android-la-nueva-plataforma-de-desarrollosmoviles/

Pgina 3

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

HISTORIAL DE EVOLUCIN DEL ANDROID:2

Setiembr e de 2008

Abril de 2009

Setiembr e de 2009 - Una interfaz compuesta de cmara, filmadora y galera. - Bsqueda por voz. - Se puede seleccionar varias fotos para eliminarlas.

Octubre de 2009

Mayo de 2010

Diciembre de 2010

Julio de 2011

Noviembr e de 2011 - Las carpetas son mucho ms fciles de crear, con un estilo de arrastrar y soltar. - Rene el uso tanto en telfonos, tablets, netbooks, etc. - Un nico y nuevo framework para las

- Poda grabar y reproducir videos a travs del modo camcorder. - Un distinto teclado con prediccin de texto. - Permite subir videos a YouTube e imgenes a Picasa de forma directa desde el mvil.

- Velocidad de hardware mejorada. - Soporte para mayores tamaos de pantalla y resolucione s. -Interfaz de usuario renovada. - Soporte para HTML5.

- Soporte para Adobe Flash 10.1 - Mejora del sistema Android, la memoria y el rendimiento . -Marcacin por voz y compartir contactos por Bluetooth. - Soporte para claves numricas y

- Mejoras en la entrada de datos, audio y grficos para creadores de juegos. - Teclado multi-tctil redefinido. - Soporte para pantallas extra grandes y resoluciones WXGA y mayores.

- Soporte para videochat mediante Google Talk. - Mejor soporte para tablets. - Escritorio 3D con widgets rediseado s. - Sistema multitarea mejorado.

Pgina 4

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


TIPO DE KERNEL:
Sabemos que el kernel acta como un manto de abstraccin entre el hardware y el software. Hasta hace poco era necesario compilar el kernel de Android sobre una distribucin GNU/Linux, ya que se basa en l. Android necesitaba de un Linux versin 2.6 para los servicios principales del sistema. Sin embargo, esto ya no ser asi:

En la innovadora versin del kernel Linux, se fusionan ambos, tanto el kernel de Android y el
kernel Linux estarn juntos, y ser el mismo tanto para dispositivos que usen Android como para PCs que utilizen una distribucin GNU/Linux. Los beneficios que se lograrn son considerables, ya que al ser el mismo kernel, ser mucho ms factible el portar Ubuntu a dispositivos mviles o tablets, y lo mismo pasar con Android. Se puede decir que para la informtica, ser un nuevo mundo.3

Logo y Tipografa:

Logo

Para crear el logo de Android se utiliz la fuente Droid, hecha por Ascender Corporation. El sistema operativo Android es representado por un robot color verde.

Tipografa

Android utiliza la tipografa Norad, solo usado en el texto del logo. Para el Android 4.0 se introduce la tipografa Roboto, que est establecida para el mejor aprovechamiento de la legibilidad en los dispositivos con alta resolucin.

______________________________
2

Historial de evolucin de Android http://holaandroid.com/wp-content/uploads/2011/08/The-Andriod-Story.png

MERCADO MUNDIAL:

Pgina 5

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Porcentaje de mercado:
ComScore predijo que para el primer bimestre de 2010, la plataforma Android tendra el 9% del mercado de mviles inteligentes en los EE.UU., como se mostraba tasado por los operadores, pero este monto fue mayor al estimado anterior de noviembre de 2009, el cual fue del 9%. Para finales de setiembre de 2010, el mercado de Android en los EE.UU haba crecido en un 21,4%. Para mayo de 2010, Android ya haba alcanzado y superado en ventas a iPhone, su mayor antagonista. Segn un alcance de NPD, Android obtuvo un 28% de ventas en el mercado de los EE.UU., un 8% ms que en el trimestre anterior. Para junio de 2010, aument en un 1% la intervencin de los dispositivos iOS en el mercado, lo cual indicaba que Android estaba tomando mercado especialmente de RIM. As mismo, los analistas respaldaron que las ventajas de que Android fuera un sistema multi-canal, multi-operador, le habilitara duplicar el rpido xito que obtuvo el sistema Windows Mobile de Microsoft. En el ltimo trimestre del 2010, Google sum 20 pases a los cuales los desarrolladores podan mandar sus aplicaciones, as tambin para mediados de octubre ya estaba disponible en 32 pases.

Fecha

Dispositivos Android activados por da 100 000 unid. 300 000 unid. 550 000 unid. 700 000 unid.

Mayo 2010 Diciembre 2010 Julio 2011 Diciembre 2011

______________________________
3

Tipo de Kernel http://picandocodigo.net/2007/android-la-nueva-plataforma-de-desarrollosmoviles/


4

Logotipo y Mercado mundial http://es.wikipedia.org/wiki/Android

ESTADSTICAS DE ANDROID5
Distribucin de versiones de Android

Pgina 6

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

Dispositivos con root

Distribucin de operadoras

Pgina 7

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

WEB DE DESCARGA:
En la ltima parte del documento se explicar cmo empezar a programar en ANDROID en un resumido tutorial para instalar un IDE adecuado y un SDK (software developer kit) para ANDROID.
Si ya se tiene el SDK de Android, se debe actualizar a las ltimas herramientas de la plataforma utilizando el SDK de Android y AVD Manager, en lugar de descargar un nuevo SDK de paquete de inicio.6 He aqu un resumen de los pasos que debe seguir para configurar el SDK de Android: 1. Prepare su equipo de desarrollo y verifique que se cumplan los requisitos del sistema. 2. Instale el paquete SDK de arranque de la tabla que se encuentra en la pgina de descarga (presentada en el link de arriba). Si ests en Windows, descargar el instalador para obtener ayuda con la configuracin inicial. 3. Instale el ADT plugin para Eclipse (si se va a desarrollar en Eclipse). 4. Aadir las plataformas Android y otros paquetes a su SDK.

5. Explora el contenido de la SDK de Android (opcional).7

__________________________
5

Estadsticas de Android

Pgina 8

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


http://www.elandroidelibre.com/2012/04/las-estadisticas-mundiales-deandroid-moviles-mas-populares-operadoras-y-mucho-mas-informeandroid.html 6 Web de descarga http://developer.android.com/sdk/index.html 7 Tutorial de guia http://casidiablo.net/tutorial-basico-android/

Pgina 9

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


MARKET SHARE MOBILE OS A NIVEL MUNDIAL Android domina el 59% del mercado mundial de Smartphones

Fuente: IDC Worldwide Mobile Phone Tracker, Mayo 24, 2012

18

Android ha alcanzado el 59% del mercado global de Smartphones. Eso es casi dos tercios de todos los Smartphones, lo que resulta una verdadera barbaridad. Si nos fijamos en el resto de fabricantes, Apple con su iOS se lleva un 23% del pastel, Symbian aguanta con un 6.8%, RIM y Blackberry OS bajan hasta un 6.4%, y Microsoft con sus Windows Phone y Windows Mobile tiene en su poder un 2.6% del mercado mundial. Si analizamos estos resultados en profundidad podemos observar como entre Android e iOS dominan el 82% del mercado, casi toda la base de usuarios mundial. Adems, junto a Windows Phone y Linux en general (Bada, por ejemplo, y que tiene un 2.3% del mercado global), son los nicos que presentan ganancias en el nmero de usuarios comparando con resultados del ao anterior. Mientras, Symbian pierde un 60.6% de su base de usuarios en el ao, y Blackberry OS el 29.7%. El resto de sistemas no clasificados por su minora tienen un 0.3% del mercado, aumentando en un 33.3% su base de usuarios.

18

Top 6 Sistemas Operativos en Smartphones http://www.idc.com/getdoc.jsp? containerId=prUS2350331

Pgina 10

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

TOP 8 MOBILE OPERATING SYSTEMS en Sudamrica (Julio 2011 a Junio 2012)


29

TOP 8 MOBILE OPERATING SYSTEMS en Per (Julio 2011 a Junio 2012)


310

29

Estadisticas Top 8 Mobile Operating Systems Latinamerica http://gs.statcounter.com/#mobile_os-ww-monthly-201106-201206 310 Estadisticas Top 8 Mobile Operating Systems Peru http://gs.statcounter.com/#mobile_os-PE-monthly-201106-201206

Pgina 11

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


DESCRIPCIN DE LOS PRINCIPALES SISTEMAS OPERATIVOS MBILES Y DIFERENCIAS Para que un mvil funcione necesita un sistema operativo mvil, que es como el Windows, Linux o MacOS que se instala en nuestros ordenadores, y que nos permite que podamos manejarlo, instalar aplicaciones y que se desenvuelva con los circuitos internos de nuestro terminal; en los mviles actualmente existen varios sistemas operativos, y menos el IOS de iPhone, el resto puede estar en diferentes terminales sin problema alguno y estos son: IOS (que solo esta en los IPhone, Ipad, Ipod de la marca Apple). Android (tiene al robot verde de su logotipo) Blackberry OS (Es el sistema operativo de la marca Blackberry) Windows Phone (Es la nueva apuesta de Microsoft para intentar sacar cuota de mercado de IOS y Android) CARACTERSTICAS ESENCIALES DE ANDROID Originalmente desarrollado por una organizacin independiente y basado en el sistema operativo Linux, el llamado Android OS es actualmente el sistema que comercializa la compaa Google para smartphones y tablets. Desde su creacin y hasta la actualidad, se trata de un sistema operativo que contina siendo de distribucin libre y cdigo abierto, lo que ha hecho que Android siga siendo elogiado por una enorme cantidad de usuarios, debido a su flexibilidad. Tengamos en cuenta que cualquier persona puede desarrollar aplicaciones para Android, y cualquier empresa puede lanzar un telfono o una tablet incluyndolo como OS preinstalado. Por ello, una de las grandes ventajas que posee este sistema operativo radica en que actualmente existe una disponibilidad de miles y miles de aplicaciones gratuitas y de pago que los usuarios pueden aprovechar para optimizar el uso de su dispositivo con Android. Asimismo, otro de los beneficios de esta plataforma radica en el hecho de que permite una excelente integracin con todos los servicios brindados por Google, lo que ampla notablemente las posibilidades del sistema.

Pgina 12

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Adems, al tratarse de un sistema de cdigo abierto, permite que los usuarios realicen una personalizacin realmente profunda, ajustando la plataforma a sus necesidades y a los recursos del dispositivo en el que correr Android. Cabe destacar que adems, los desarrolladores de Android ponen a disponibilidad de los usuarios una serie de actualizaciones frecuentes de la plataforma, las cuales por lo general no slo reportar mejoras notables en el desenvolvimiento del software, sino que tambin le aaden nuevas caractersticas. Entre los aspectos criticables de Android, por lo general muchos usuarios se quejan de la escasa oferta de juegos disponibles en Android Market, mientras que otros aseguran que una de las grandes contras de la plataforma reside en que muchas de las aplicaciones disponibles no se ajustan de forma adecuada a las pantallas de los dispositivos con Android. CARACTERSTICAS ESENCIALES DE IOS
411

El sistema operativo iOS de Apple, ha sido desarrollado para ser exclusivamente utilizado en los productos de la empresa, por lo que viene integrado a dispositivos tales como el iPhone, la brillante iPad y el iPod. Dos de los aspectos fundamentales de iOS estn dados por la seguridad que posee este sistema operativo y la compatibilidad con los equipos mencionados. Por supuesto, al tratarse de un producto creado por Apple para los dispositivos que la empresa fabrica y comercializa, se trata de una plataforma de cdigo cerrado. Entre las grandes ventajas que suelen sealar los usuarios de este sistema operativo, se destaca su facilidad de uso, ofreciendo una interfaz grfica que permite un notable desempeo. Posee una gran performance en el mbito multimedia, y al contrario de Android posee una gran variedad y calidad de juegos.

411

Diferencias sistemas perativos http://www.vanguardia.com.mx/androidiosywindowsphone7;lasdiferenciasentresistem asoperativos-1064855.html

Pgina 13

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Entre sus defectos ms notorios, en principio la principal desventaja radica en que slo puede ser utilizado en productos Apple. Asimismo requiere un importante consumo de energa, lo que hace que la batera dure menos tiempo que en un dispositivo con Android.

Al tratarse de una plataforma de cdigo cerrado, no permite la personalizacin profunda, por lo que los usuarios deben conformarse con un simple cambio de color y dems insignificancias. Adems una de sus grandes desventajas es que se encuentra totalmente atado a iTunes. CARACTERSTICAS ESENCIALES DE BLACKBERRY OS Uno de los sistemas operativos ms conocidos dentro del mundo de los telfonos mviles inteligentes es sin dudas el BlackBerry OS, y como su nombre lo indica, es el nico sistema operativo disponible para los dispositivos de la marca BlackBerry. Debido a que fundamentalmente ha sido diseada para ser utilizado a nivel empresarial, esta plataforma posee una apariencia acorde a este campo. De todas formas su popularidad en ascenso ha hecho que se convirtiera en uno de los preferidos de los usuarios comunes. Su enfoque principal apunta hacia la mensajera instantnea, el correo electrnico y otras funciones relacionadas con la comunicacin. Es por ello que los dispositivos de esta marca poseen teclados fsicos, pensados y desarrollados para ofrecer facilidad y rapidez para el ingreso de texto. Otra de las grandes ventajas de esta plataforma reside en su seguridad, lo que ha convertido a los dispositivos BlackBerry en los preferidos de las empresas. Adems posee una arquitectura que trabaja con un verdadero ahorro de energa, lo que permite que con una sola carga el dispositivo funcione mucho ms tiempo que los que trabajan con otro software. Ahora bien, debido a que ha sido pensado para la mensajera, uno de los grandes faltantes de esta plataforma suelen ser las aplicaciones para

Pgina 14

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


reproducir archivos multimedia. Adems, en general ofrece una escasa oferta de aplicaciones, sobre todo en lo que se refiere a juegos. Cabe destacar que las aplicaciones disponibles suelen tener un costo relativamente caro. En cuanto a la personalizacin, si bien ofrece muchas ms alternativas que el iOS,lo cierto es que jams se lo puede llegar a comparar en este punto con Android.

CARACTERSTICAS ESENCIALES DE WINDOWS PHONE Windows Mobile, tambin conocido como Windows Phone, es la versin mvil del sistema operativo de Microsoft, esto por supuesto hace que la plataforma sea compatible con casi todos los programas que funcionan en Windows, entre los que se encuentra la popular suite de oficina Microsoft Office. Este es uno de los motivos fundamentales por el cual Windows Phone es una de las opciones ms elegidas, no slo por los usuarios comunes, sino tambin para ser utilizado en el mbito laboral. Entre las principales ventajas que reporta la plataforma, adems de ser totalmente compatible con todos los productos de Microsoft, cabe mencionar que el diseo de su interfaz grfica hace posible un usabilidad eficaz. Por otra parte, si bien no posee soporte para Flash, lo cierto es que ofrece una excelente experiencia de navegacin, y tiene una total compatibilidad con HTML5. Otro punto a destacar es sin dudas su desempeo en lo que se refiere a la mensajera instantnea y el

Pgina 15

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


correo electrnico. Tambin se destaca la excelente respuesta en el mbito multimedia y en el mundo de los juegos. En lo que se refiere a sus desventajas, al tratarse de un sistema de cdigo cerrado no ofrece las posibilidades de customizacin que brinda Android, siendo ms similar en este aspecto a iOS. Adems en este caso, las posibilidades de ampliacin de sus aplicaciones y dems se encuentran atadas a Zune.

Pgina 16

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


ANDROID VS IOS
12

12

Pgina 17

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


ARQUITECTURA DE ANDROID
512

Kernel de Linux El ncleo del sistema operativo Android es un kernel Linux versin 2.6, similar al que puede incluir cualquier distribucin de Linux, como Ubuntu, solo que adaptado a las caractersticas del hardware en el que se ejecutar Android (normalmente, un smartphone). Proporciona una capa de abstraccin para los elementos hardware a los que tienen que acceder las aplicaciones. Esto permite que se pueda acceder a esos componentes sin necesidad de conocer el modelo o caractersticas precisas de los que estn instalados en cada telfono. De esta forma, si una aplicacin necesita, por ejemplo, la brjula, podr utilizar la que incluya el telfono, sea cual sea. Para cada elemento hardware del telfono existe un controlador (odriver) dentro del kernel que permite utilizarlo desde el software. Adems de proporcionar controladores hardware, el kernel se encarga de gestionar los diferentes recursos del telfono (energa, memoria, etc) y del sistema operativo en s: procesos, elementos de comunicacin (networking), etc.

Bibliotecas
512

Arquitectura Android http://androideity.com/2011/07/04/arquitectura-de-android/

Pgina 18

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


La capa que se sita justo sobre el kernel la componen las bibliotecas nativas de Android (tambin mal llamadas libreras, por el trmino ingls libraries). Estas bibliotecas estn escritas en C o C++ y compiladas para la arquitectura hardware especfica del telfono, tarea que normalmente realiza el fabricante, que tambin se encarga de instalarlas en el terminal antes de ponerlo a la venta. Su cometido es proporcionar funcionalidad a las aplicaciones, para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma ms eficiente (en teora, al menos). Estas son algunas de las bibliotecas que se incluyen habitualmente:

Gestor de superficies (Surface Manager): se encarga de componer las imgenes que se muestran en la pantalla a partir de capas grficas 2D y 3D. Cada vez que la aplicacin pretende dibujar algo en la pantalla, la biblioteca no lo hace directamente sobre ella. En vez de eso, realiza los cambios en imgenes (mapas de bits) que almacena en memoria y que despus combina para formar la imagen final que se enva a pantalla. Esto permite realizar con facilidad diversos efectos: superposicin de elementos, transparencias, transiciones, animaciones, etc. SGL (Scalable Graphics Library): desarrollada por Skia (empresa adquirida por Google en 2005) y utilizada tanto en Android como en Chrome (navegador web de Google), se encarga de representar elementos en dos dimensiones. Es el motor grfico 2D de Android. OpenGL | ES (OpenGL for Embedded Systems): motor grfico 3D basado en las APIs (Application Program Interface) de OpenGL ES 1.0, 1.1 (desde la versin 1.6 de Android) y 2.0 (desde la versin 2.2 de Android). Utiliza aceleracin hardware (si el telfono la proporciona) o un motor software altamente optimizado (o eso dice Google) cuando no la hay. Bibliotecas multimedia: basadas en OpenCORE, permiten visualizar, reproducir e incluso grabar numerosos formatos de imagen, vdeo y audio como JPG, GIF, PNG, MPEG4, AVC (H.264), MP3, AAC o AMR. WebKit: motor web utilizado por el navegador (tanto como aplicacin independiente como embebido en otras aplicaciones). Es el mismo motor que utilizan Google Chrome y Safari (el navegador de Apple, tanto en Mac como en el iPhone). SSL (Secure Sockets Layer): proporciona seguridad al acceder a Internet por medio de criptografa. FreeType: permite mostrar fuentes tipogrficas, tanto basadas en mapas de bits como vectoriales. SQLite: motor de bases de datos relacionales, disponible para todas las aplicaciones. Biblioteca C de sistema (libc): est basada en la implementacin de Berkeley Software Distribution (BSD), pero optimizada para sistemas Linux embebidos. Proporciona funcionalidad bsica para la ejecucin de las aplicaciones.

Entorno de ejecucin El entorno de ejecucin de Android, aunque se apoya en las bibliotecas enumeradas anteriormente, no se considera una capa en s mismo, dado que tambin est formado por bibliotecas. En concreto, las bibliotecas esenciales

Pgina 19

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


de Android, que incluyen la mayora de la funcionalidad de las bibliotecas habituales de Java as como otras especficas de Android. El componente principal del entorno de ejecucin de Android es la mquina virtual Dalvik, componente que ejecuta todas y cada una de las aplicaciones no nativas de Android. Las aplicaciones se codifican normalmente en Java y son compiladas, pero no para generar un ejecutable binario compatible con la arquitectura hardware especfica del dispositivo Android. En lugar de eso, se compilan en un formato especfico para la mquina virtual Dalvik, que es la que las ejecuta. Esto permite compilar una nica vez las aplicaciones y distribuirlas ya compiladas teniendo la total garanta de que podrn ejecutarse en cualquier dispositivo Android que disponga de la versin mnima del sistema operativo que requiera cada aplicacin. Aunque las aplicaciones se escriben en Java, Dalvik no es realmente una mquina virtual Java. Es decir, no es compatible con el bytecode Java (instrucciones ejecutables independientes de la arquitectura hardware) que ejecutan las mquinas virtuales Java normales. Java se usa nicamente como lenguaje de programacin, pero los ejecutables que se generan con el SDK de Android no son ejecutables Java convencionales y, por lo tanto, no se pueden ejecutar en mquinas virtuales Java convencionales. Durante el proceso de compilacin de los programas Java (normalmente archivos .java) s que se genera, de forma intermedia, el bytecode habitual (archivos .class). Pero esos archivos son convertidos al formato especfico de Dalvik en el proceso final (.dex, de Dalvik executable). Google hace esto por una cuestin de optimizacin. Los archivos .dex son mucho ms compactos que los .class equivalentes (hasta un 50% menos de tamao), lo que permite ahorrar espacio en el telfono (algo siempre escaso) y acelerar el proceso de carga. Adems, a diferencia de las mquinas virtuales tradicionales, Dalvik se basa en registros en lugar de una pila para almacenar los datos, lo que requiere menos instrucciones. Esto permite ejecuciones ms rpidas en un entorno con menos recursos. Las aplicaciones Android se ejecutan cada una en su propia instancia de la mquina virtual Dalvik, evitando as interferencias entre ellas, y tienen acceso a todas las bibliotecas mencionadas antes y, a travs de ellas, al hardware y al resto de recursos gestionados por el kernel. Marco de aplicacin La siguiente capa la forman todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones y que, obviamente, se apoyan en las bibliotecas y en el entorno de ejecucin que ya hemos detallado. La mayora de los componentes de esta capa son bibliotecas Java que acceden a los recursos a travs de la mquina virtual Dalvik. Entre las ms importantes se encuentran las siguientes:

Administrador de actividades (Activity Manager): se encarga de controlar el ciclo de vida de las actividades (del que hablo en otro post) y la propia pila de actividades. Sin entrar en muchos detalles ahora, las actividades se pueden definir como las ventanas que se muestran, una sobre otra, en la pantalla del dispositivo Android (usando un concepto de ventana similar al de los sistemas operativos grficos de PC, aunque el funcionamiento en Android sea muy diferente).

Pgina 20

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

Administrador de ventanas (Windows Manager): se encarga de organizar lo que se muestra en pantalla, creando superficies que pueden serrellenadas por las actividades. Proveedor de contenidos (Content Provider): permite encapsular un conjunto de datos que va a ser compartido entre aplicaciones creando una capa de abstraccin que hace accesible dichos datos sin perder el control sobre cmo se accede a la informacin. Por ejemplo, uno de los proveedores de contenido existentes permite a las aplicaciones acceder a los contactos almacenados en el telfono. Esta biblioteca nos permite crear tambin nuestros propios proveedores para permitir que otras aplicaciones accedan a informacin que gestiona la nuestra. Vistas (Views): si antes equiparbamos las actividades con las ventanas de un sistema operativo de PC, las vistas las podramos equiparar con los controles que se suelen incluir dentro de esas ventanas. Android proporciona numerosas vistas con las que construir las interfaces de usuario: botones, cuadros de texto, listas, etc. Tambin proporciona otras ms sofisticadas, como un navegador web o un visor de Google Maps. Administrador de notificaciones (Notification Manager): proporciona servicios para notificar al usuario cuando algo requiera su atencin. Normalmente las notificaciones se realizan mostrando alerta en la barra de estado, pero esta biblioteca tambin permite emitir sonidos, activar el vibrador o hacer pardear los LEDs del telfono (si los tiene). Administrador de paquetes (Package Manager): las aplicaciones Android se distribuyen en paquetes (archivos .apk) que contienen tanto los archivos .dex como todos los recursos y archivos adicionales que necesite la aplicacin, para facilitar su descarga e instalacin. Esta biblioteca permite obtener informacin sobre los paquetes actualmente instalados en el dispositivo Android, adems de gestionar la instalacin de nuevos paquetes. Administrador de telefona (Telephony Manager): proporciona acceso a la pila hardware de telefona del dispositivo Android, si la tiene. Permite realizar llamadas o enviar y recibir SMS/MMS, aunque no permite reemplazar o eliminar la actividad que se muestra cuando una llamada est en curso (por motivos de seguridad). Administrador de recursos (Resource Manager): proporciona acceso a todos los elementos propios de una aplicacin que se incluyen directamente en el cdigo: cadenas de texto traducidas a diferentes idiomas, imgenes, sonidos e incluso disposiciones de las vistas dentro de una actividad (layouts). Permite gestionar esos elementos fuera del cdigo de la aplicacin y proporcionar diferentes versiones en funcin del idioma del dispositivo o la resolucin de pantalla que tenga, por ejemplo. Administrador de ubicaciones (Location Manager): permite determinar la posicin geogrfica del dispositivo Android (usando el GPS o las redes disponibles) y trabajar con mapas. Administrador de sensores (Sensor Manager): permite gestionar todos los sensores hardware disponibles en el dispositivo Android: acelermetro, giroscopio, sensor de luminosidad, sensor de campo magntico, brjula, sensor de presin, sensor de proximidad, sensor de temperatura, etc. Cmara: proporciona acceso a las cmaras del dispositivo Android, tanto para tomar fotografas como para grabar vdeo. Multimedia: conjunto de bibliotecas que permiten reproducir y visualizar audio, vdeo e imgenes en el dispositivo.

Pgina 21

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Aplicaciones La capa superior de esta pila software la forman, como no podra ser de otra forma, las aplicaciones. En este saco se incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no, tanto las nativas (programadas en C o C++) como las administradas (programadas en Java), tanto las que vienen de serie con el dispositivo como las instaladas por el usuario. Aqu est tambin la aplicacin principal del sistema: Inicio (Home), tambin llamada a veces lanzador (launcher), porque es la que permite ejecutar otras aplicaciones proporcionando la lista de aplicaciones instaladas y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso pequeas aplicaciones incrustadas o widgets, que son tambin aplicaciones de esta capa. Lo principal a tener en cuenta de esta arquitectura es que todas las aplicaciones, ya sean las nativas de Android, las que proporciona Google, las que incluye de serie el fabricante del telfono o las que instala despus el usuario utilizan el mismo marco de aplicacin para acceder a los servicios que proporciona el sistema operativo. Esto implica dos cosas: que podemos crear aplicaciones que usen los mismos recursos que usan las aplicaciones nativas (nada est reservado o inaccesible) y que podemos reemplazar cualquiera de las aplicaciones del telfono por otra de nuestra eleccin. Este es el verdadero potencial de Android y lo que lo diferencia de su competencia: control total por parte del usuario del software que se ejecuta en su telfono. LA SEGURIDAD EN ANDROID Informe de Seguridad del Symantec
TM 613

Resumen de seguridad de Android

613

A Windows into mobile device security June 2011 Symantec Security Response

Pgina 22

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


En general, aunque creemos que el modelo de seguridad de Android es una mejora importante con respecto a los modelos utilizados por las computadoras de escritorio tradicionales y servidores basados en sistemas operativos, tiene dos grandes inconvenientes. En primer lugar, su sistema de origen permite a los atacantes para crear de forma annima y distribuir malware. En segundo lugar, su sistema de permisos, mientras que muy potente, en ltima instancia, se basa en el usuario para tomar decisiones importantes de seguridad. Desafortunadamente, la mayora de los usuarios no son tcnicamente capaces de tomar esas decisiones, y esto ha llevado ya a los ataques de ingeniera social. En resumen: El enfoque de la procedencia de Android garantiza que las aplicaciones firmadas digitalmente slo se pueden instalar en dispositivos con Android. Sin embargo, los atacantes pueden utilizar annimos certificados digitales para firmar sus amenazas y distribuirlos a travs de Internet sin ningn tipo de certificacin por parte de Google. Los atacantes tambin pueden fcilmente "trojanize" o inyectar cdigo malicioso en aplicaciones legtimas y luego redistribuir fcilmente a travs de Internet, la firma con un nuevo certificado, el anonimato. En el lado positivo, Google requiere de los autores de aplicaciones que deseen distribuir sus aplicaciones a travs del mercado oficial de Android App que pagar una cuota y registrarse en Google (compartiendo la firma digital del desarrollador de Google). Como con el enfoque de registro de Apple, esto debera tener un efecto disuasorio para los atacantes menos organizados. La poltica por defecto de Android de aislamiento asla de forma efectiva aplicaciones de los dems y de la mayora de los sistemas del dispositivo incluyendo el sistema operativo Android ncleo del sistema, con varias excepciones notables (las aplicaciones pueden leer todos los datos sobre la tarjeta SD sin restricciones). El modelo de Android permiso garantiza que las aplicaciones estn aisladas de prcticamente todos los sistemas principales del dispositivo a menos se solicita explcitamente el acceso a esos sistemas. Desafortunadamente, Android finalmente se basa en que el usuario pueda decidir si procede o no conceder permisos a una aplicacin, Android dejando abierto a ataques de ingeniera social. La mayora de los usuarios no estn equipados para hacer de la seguridad como decisiones, dejndolos expuestos a malware y todo los ataques secundarios (por ejemplo, los ataques DDoS, ataques de prdida de datos) que el malware puede poner en marcha.

Pgina 23

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Android recientemente comenz a ofrecer una encriptacin a partir de Android 3.0. Sin embargo, las versiones anteriores de Android (que se ejecutan en casi todos los telfonos mviles en el campo), no contienen ninguna capacidad de cifrado, en lugar de confiar en el aislamiento y los permisos para proteger los datos. As, un failbreak simple de un telfono Android o el robo de la tarjeta SD del dispositivo puede conducir a una cantidad significativa de prdida de datos. Al igual que con iOS, Android no tiene ningn mecanismo para prevenir los ataques de ingeniera social, tales como los ataques de phishing u otros engaos basados en la web.

147

SE AGREG UNA CAPA A LA SEGURIDAD EN ANDROID

714

A Windows into mobile device security June 2011 Symantec Security Response Pag 17 Tables 1 and 2

Pgina 24

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Google ha presentado un nuevo servicio que ha desarrollado, su nombre clave es Bouncer. Este ofrece escaneo automatizado del Android Market en busca de software malicioso, todo sin alterar la experiencia de los usuarios en la tienda y sin que sea necesario que los desarrolladores tengan que pasar por un proceso de aprobacin para sus aplicaciones. El servicio realiza una serie de anlisis de las nuevas aplicaciones, aplicaciones que ya estn en el Android Market, y de las cuentas de los desarrolladores. Funciona de la siguiente manera: una vez que la aplicacin es subida, el servicio inmediatamente inicia el anlisis en busca de malware, spyware y troyanos conocidos. Tambin busca comportamientos que pudieran indicar que una aplicacin no est funcionando como debe, y lo compara con anlisis previos de las aplicaciones en busca de posibles problemas. De hecho, se ejecutan cada una de las aplicaciones en la infraestructura en la nube de Google y se simula su funcionamiento en un dispositivo Android para buscar cualquier comportamiento malicioso que pudiera estar oculto. Tambin Google analiza las cuentas de los nuevos desarrolladores para prevenir que regresen los desarrolladores que han sido maliciosos antes. Las descargas de malware en Android estn disminuyendo815 Adems de utilizar los nuevos servicios de seguridad para ayudar a prevenir el malware, Google dise a Android desde el inicio para evitar que el malware mvil sea muy perjudicial. Tomaron como base la forma en la que el malware puede ser potencialmente ms daino en una PC, y disearon la plataforma enfocados en los dispositivos mviles conectados a Internet. Algunas de las principales funcionalidades de seguridad en Android son:

Sandboxing: La plataforma Android utiliza una tcnica llamada sandboxing para crear paredes virtuales entre las aplicaciones y otro software en el dispositivo. As que, si descargan una aplicacin maliciosa, esta no podr acceder a la informacin en otras partes del telfono, y su peligro potencial se ve drsticamente limitado. Permisos: Android ofrece un sistema de permisos que les ayuda a conocer las capacidades de las apps que instalan, as como a administrar sus propias preferencias. De esa manera, si ven que un juego solicita un permiso innecesario para enviar mensajes SMS, por ejemplo, pueden elegir no instalarlo. Eliminacin de Malware: Android est diseado para prevenir que el malware modifique la plataforma, o se esconda, lo que permite eliminarlo fcilmente del dispositivo afectado. El Android Market, en caso de que haga falta, tambin tiene la capacidad de eliminar el malware (en ingls) en su telfono o tablet de manera remota.

815

Tecnologa y anuncios de Google Sobre la seguridad en Android http://tecnologiayproductosgoogle.blogspot.com/2012/02/sobre-la-seguridad-enandroid.html

Pgina 25

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


ESTRUCTURA DE DIRECTORIO La estructura de directorio o sistema de archivos, es la organizacin que se dan a los archivos para protegerlos, los archivos se agrupan en directorios y estos pueden tener subdirectorios. Como sabemos Android posee el kernel GNU/LINUX el cual es algo similar al ncleo de UNIX, el cual se muestra a continuacin (derecha): Como sabemos android es una plataforma libre que se basa en GNU/Linux, es decir, que usa el kernel de Linux, siendo ms especficos usa la versin 2.6, el cual tiene la siguiente estructura de 916

916

Estructura de directorio de Unix http://www.cecalc.ula.ve/bioinformatica/UNIX/node10.html

Pgina 26

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


DEFINICION DE DIRECTORIOS17 / Directorio raz del sistema de ficheros.

/bin/ Utilidades de usuario fundamentales tanto para el ambiente monousuario como para el multiusuario. /boot/ Programas y ficheros de configuracin necesarios durante el arranque del sistema operativo. /boot/defaults/ loader.conf /dev/ /etc/ /etc/defaults/ /etc/mail/ como sendmail(8). /etc/namedb/ Ficheros de configuracin por omisin del arranque; ver Nodos de dispositivo. Ficheros de configuracin y scripts del sistema. Ficheros de configuracin por omisin del sistema. Ficheros de configuracin para agentes de transporte de correo Ficheros de configuracin de named.

/etc/periodic/ Scripts que se ejecutan diariamente, semanalmente y mensualmente mediante cron. /etc/ppp/ Ficheros de configuracin de ppp.

/mnt/ Directorio vaco utilizado de forma habitual por administradores de sistemas como punto de montaje temporal. /proc/ /rescue/ emergencia. Sistema de ficheros de procesos. Programas enlazados estticamente para restauraciones de

/root/ Directorio local para la cuenta root. /sbin/ Programas del sistema y utilidades administracin para ambientes monousuario y multiusuario. fundamentales de

/tmp/ Ficheros temporales. El contenido de /tmp NO suelen conservarse despus de un reinicio del sistema. Los sistemas de ficheros basados en memoria suelen montarse en /tmp Puede automatizarse mediante variables de tmpmfs en rc.conf (o con una entrada en /etc/fstab; ver mdmfs. /usr/ /usr/bin/ aplicaciones. /usr/include/ /usr/lib/ La mayora de utilidades y aplicaciones de usuario. Aplicaciones comunes, herramientas de programacin y otras Ficheros include estndar de C. Bibliotecas.

Pgina 27

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


/usr/libdata/ /usr/libexec/ otros programas). Ficheros de datos con diversas funciones. Dmons del sistema y utilidades del sistema (ejecutados por

/usr/local/ Ejecutables locales, bibliotecas, etc. tambin se usa como destino por omisin de la infraestructura de ports. Dentro de /usr/local debe seguirse el esquema general definido en hier(7) para /usr. Las excepciones son el directorio man, que est directamente bajo /usr/local en lugar de debajo de /usr/local/share, y la documentacin de los ports est en share/doc/port. /usr/obj/ del rbol /usr/src. /usr/ports Arbol destino dependiente de arquitectura fruto de la compilacin La coleccin de Ports (opcional).

/usr/sbin/ Dmons del sistema y utilidades del sistema (ejecutados por usuarios del sistema). /usr/share/ /usr/src/ /usr/X11R6/ Ficheros independientes de arquitectura. Ficheros fuente BSD y/o local. Ejecutables de la distribucin X11R6, bibliotecas, etc (opcional).

/var/ Ficheros multipropsito de log, temporales, en trnsito y de spool. En ocasiones se monta en /var un sistema de ficheros basado en memoria. /var/log/ /var/mail/ /var/spool/ Diversos ficheros de log del sistema. Ficheros de buzones de correo de usuarios. Directorios diversos del sistema de spool de impresora y correo.

/var/tmp/ Ficheros temporales. Estos ficheros suelen conservarse tras el reinicio del sistema, a menos que /var sea un sistema de ficheros basado en memoria. /var/yp Mapas NIS.

Como vemos la estructura de directorio del kernel usado por Android tiene una forma de rbol de directorio jerarquizada. Cada disco particin tiene una propia organizacin lgica y al mismo tiempo pertenece a la misma estructura lgica de todo el sistema. Hay una gestin eficiente ya que los dispositivos se comportan como directorios y para usarlos se tiene que montar los dispositivos en un directorio existente y as aparecer como contenido del directorio. A continuacin se presenta la estructura de directorio de android:10
1017

Estructura de directorio de kernel Linux usado en android http://www.redesyseguridad.es/la-estructura-de-directorios-en-linux/

Pgina 28

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


A nivel modulo de memoria, hay particiones para usos especficos. MTD0 (MISC PARTITION) MTD1 (RECOVERY PARTITION) MTD2 (BOOT PARTITION) MTD3 (SYSTEM PARTITION) MTD4 (CACHE PARTITION) MTD5 (USERDATA PARTITION)

A nivel directorios android tiene una particular organizacin. config cache sdcard acct mnt o o o d etc system o fonts o o o o o o o usr lib bin app etc lost+found media droid family fonts (TTF) asec secure sdcard

Pgina 29

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


o sys sbin proc data o tombstones o anr o o o o o backup system dalvik-cache properly app (aplicacin de almacenamiento .APK) AndroidManifest.xml Clases.dex Resources.arsc META-INF Assets Res o o app-private data userdata storage (APP DATA) Drawable Layout Raw xml APP no responde trazas DUMP APP CRASHES ringtones, sonidos y boot logo framework

Pgina 30

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


o o o o root dev local misc dontpanic lost+found

MANEJO DE DISPOSITIVOS E/S Android controla los diferentes dispositivos de e/s como teclado, pantalla tctil, auriculares, etc. Haciendo uso de las bibliotecas desarrolladas por google mediante el lenguaje de programacin Java.

Pgina 31

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


ARQUITECTURA 1118

Como podemos observar en la arquitectura de Android, el Linux kernel contiene una serie de controladores o drivers los cuales se encargan de que el sistema operativo se comunique con los perifricos o dispositivos de E/S y tambin los controle, gracias a ellos se puede hacer uso del hardware, es decir, el manejo del OS sobre los dispositivos de E/S se da a travs de los driver y luego las libreras se encargan de procesar la entrada o las salidas que habrn ya que contienen una gran cantidad de funciones para controlar y procesar medios. Por ejemplo tenemos: USB Driver: http://developer.android.com/sdk/oem-usb.html El controlador USB Google es un componente descargable para el SDK de Android, disponible en el Manager SDK, el cual permite la comunicacin y control de dispositivos USB. Controlador de cmara, bluetooth, teclado, WI-FI, memoria flash, audio, presentacin (display), carpeta, gestor de energa, etc.

MANEJO DE MEMORIA

1118

DIAGRAMA DE ARQUITECTURA DE OS ANDROID http://commons.wikimedia.org/wiki/File:System-architecture.jpg?uselang=es

Pgina 32

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


El sistema operativo Android usa la memoria para almacenar los procesos y aplicaciones, pero hay un gran problema, usualmente las memorias internas de los dispositivos mviles tienen poca capacidad de almacenamiento (la mayora 512 MB) y gran parte de este es usada por el sistema operativo lo cual hace que quede una pequea capacidad libre para los procesos. En la versin Android 2.2 se solucion este problema haciendo que las aplicaciones puedan moverse de la memoria interna a la memoria externa o tarjeta externa, obviamente no todas las aplicaciones pueden moverse de una memoria a otra. Para saber si es necesario movilizar aplicaciones, debemos consultar la memoria disponible, para ellos nos dirigimos a Ajustes->Almacenamiento y ah podremos ver el espacio disponible de la memoria interna Un detalle muy importante en el manejo de la memoria de Android es que no es muy eficiente a la hora de finalizar o matar procesos e incluso hay aplicaciones que no tienen el botn Cerrar, esto se da por la filosofa de Android sobre la memoria: Memoria que no es usada es memoria desperdiciada, es por esto que el sistema mantiene la aplicacin almacenada en la memoria y cuando el usuario lo ejecute de nuevo la carga ser inmediata lo cual hace ms eficiente al sistema operativo adems de que no hay gasto innecesario de energa y CPU. Pero en la realidad esto no es cierto ya que la velocidad empieza a reducirse y esto de debe a que como el sistema operativo hace que se almacenen las aplicaciones en memoria, llegara un momento en que al ejecutar una aplicacin la memoria sea insuficiente para los requerimientos, ah el OS android aplicara un algoritmo propio y liberara espacio, este tiempo para liberar espacio y luego almacenar la nueva aplicacin es la que lleva un tiempo considerable que hace que el mvil se haga lento. REGIONES DE LA RAM1219 Android divide a la memoria RAM en varias regiones en donde se almacenan las aplicaciones segn el estado actual de cada aplicacin, este tambin regir el orden de liberacin de memoria en caso de haberse llegado al lmite de memoria designado en la configuracin a cada regin. Existen 6 espacios, son: a) Foreground_app (primer plano): Aqu se encuentran los procesos que se estn ejecutando, por ejemplo cuando revisamos nuestra bandeja o alguna red social. Cuando se haga optimizacin, no conviene incrementar el mximo de este espacio ya que causara que otro espacio tuviera menos para almacenar y no se podra almacenar muchas aplicaciones lo cual hara ms lento la carga de aplicaciones. b) Visible_app (visible): Son los procesos visibles o tambin reconocidos por verse en la pantalla, esta regin almacena aquellas aplicaciones que estn abiertas como las que se dan al navegar por una pgina Web. Cuando se optimice memoria, no es recomendable modificar esta regin.
1219

MANEJO DE MEMORIA, regiones de memoria y optimizacin http://vidandroid.blogspot.com/2010/11/manejo-de-memoria-en-android.html

Pgina 33

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


c) Secondary_server (servidor secundario o segundo plano): Almacena aquellos procesos que estn en ejecucin porque son necesarios para otras aplicaciones. d) Hidden_app (oculto): almacena procesos no visibles que son necesarios para otras aplicaciones. e) Content_provider (proveedor de contenido): Esta regin almacena aplicaciones que proveen de datos al sistema, estos permiten que el sistema por si mismo pueda actualizar su contenido, aqu tenemos por ejemplo el mercado de aplicaciones de android que se actualiza con las recientes descargas. Esta zona es muy importante ya que al limitar la capacidad, podramos liberar memoria y mejorar el rendimiento. f) Empty_app (vacio o sin carga): Esta regin almacena a los procesos denominados dormidos o zombies, los cuales son procesos que han abierto, usado y cerrado, pero se almacenan en caso de que el usuario los vuelva a ejecutar, la carga ser mas rpido. La ventaja de este espacio es que no hay consumo de batera ni CPU, pero el consumo de memoria debe ser ajustado ya que podra causar una lentitud en el sistema. Para optimizar estas regiones de memoria, se deben ajustar los mximos dados por defecto por el SO, esto se puede realizar a travs de aplicaciones como MinFreeManager que se encuentra disponible de forma gratuita en el mercado Android. LIBERACION DE MEMORIA 1320 Como ya sabemos, la memoria posee regiones que almacenan procesos y aplicaciones, ahora cuando la memoria est saturada, el sistema operativo tiene un algoritmo propio para liberar el espacio de memoria, este depende de las regiones ya que en primer lugar se opta por liberar a los procesos dormidos, luego los procesos de segundo plano y as sucesivamente en sentido inverso en que fue utilizada. No se recomienda hacer uso de los task-killers (cierran aplicaciones para liberar memoria) ya que pueden desactivar tareas programadas que nunca se realizaran y hace gran consumo de la batera, en caso de haberlo usado, al ser liberados las aplicaciones android volver a su ciclo de gestin de memoria y volver a hacer la carga de las aplicaciones, haciendo intil el trabajo de haberlos liberado.

ROOTEO EN ANDROID 1421


1320

LIBERARACION DE ESPACIO EN MEMORIA: TARJETA EXTERNA SD - ANDROID 2.2 Y 2.3 http://www.xatakandroid.com/tutoriales/primeros-pasos-con-android-gestion-dememoria 1421 PROCEDIMIENTO PARA ENTRAR EN MODO ROOT PARA OPTIMIZAR MEMORIA http://vidandroid.blogspot.com/2010/11/usuario-root-en-5-segundos.html GESTION DE MEMORIA, problema en la liberacin de memoria http://holaandroid.com/2011/12/android-y-su-gestion-de-memoria-ram/

Pgina 34

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


(http://vidandroid.blogspot.com/2010/11/usuario-root-en-5-segundos.html)

Para hacer las modificaciones de las capacidades de cada regin de la memoria, debemos estar como administrador o en modo root, para ello la forma ms rpida es a travs de una aplicacin llamada Z4root. Buscamos la aplicacin en el market, la instalamos y luego aparecer una pantalla con un botn que dice ROOT, presionamos y luego de segundos se reinicia el mvil, cuando vuelva a estar encendida ya estaremos en modo administrador. Una vez all ya podremos ejecutar aplicaciones que hacen cambios en configuracin. Para ms detalle de los pasos ver el link. OPTIMIZACION DE REGIONES DE MEMORIA Para optimizar las regiones de la memoria debemos seguir los siguientes pasos: Entrar en modo administrador o root Buscar en el market la aplicacin MinFreeManager y ejecutarla, luego observaremos una ventana con los valores de memoria designados por defecto para cada regin. Ah podemos modificar los valores que queramos designar como ajuste y luego presionar Apply para ver los cambios. La aplicacin tambin tiene configuraciones eficientes para aplicar, para verlas debemos ir a opcin Presets, all tenemos opciones como Default, Mild, Aggressive y Custom. Cada uno de ellos satisface necesidades de forma eficiente, por ejemplo el modo Aggressive permite que haya mayor disponibilidad de memoria, pero podra presentarse mayor lentitud al poder almacenar pocos procesos. En ese caso podran aplicarse el modo Mild que da menos disponibilidad de memoria pero hay mas aplicaciones reservadas en memoria. Una vez ajustado los cambios que creamos convenientes, presionamos Apply para aplicar los cambios, pero estos se pierden al reiniciar el mvil, en cambio, la opcin Apply at root permite que el ajuste se mantenga incluso si se reinicia.

MEMORIA O TARJETA EXTERNA (http://www.xatakandroid.com/tutoriales/primeros-pasoscon-android-gestion-de-memoria)

Pgina 35

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Como se comento, el problema de poca capacidad de memoria es muy comn, una de las soluciones ms simples es liberar espacio eliminando archivos temporales en Ajustes ->Aplicaciones -> Administrar aplicaciones, all podremos borrar la cache. Pero una solucin ms eficiente que se dio para Android 2.2 y 2.3 es la de poder movilizar aplicaciones de la memoria interna a la tarjeta externa o tarjeta SD, en la versin 2.2 se deba mover aplicacin por aplicacin, pero en la 2.3, Android incluyo una interface ms eficiente que muestra las aplicaciones movidas y aquellas que se pueden mover pero siguen en la memoria interna. Para ver un mayor detalle ver link

I.- HERRAMIENTAS DE OFICINA.- Dentro de las herramientas ms


resaltantes podemos resaltar: Google Docs.- Herramienta gratuita que permite crear documentos y editar los existentes, ambos en lnea, tambin brinda la posibilidad de compartir dichos documentos en la red con otros usuarios. Cuenta con una hoja de clculo; un procesador de texto, lo que permite editar documentos en Word, documentos de texto, PDF, etc.; un programa de presentacin y un editor de formularios destinado a encuestas. Google Docs soporta gran cantidad de formatos y todos los documentos se almacenan en lnea, de esta manera facilita acceder a ellos desde cualquier ordenador con conexin a internet.

OfficeSuite 5 Pro.- Esta herramienta requiere de Android 1.5 o superior, es una oficina mvil, que le permite crear, ver y editar archivos Microsoft Word, Excel ,PowerPoint y PDF en su telfono. El software utiliza los formatos ms comunes DOC, DOCX, XLS, XLSX, PPT, PPTX, PPT, PPTX, CSV, TXT, PDF y ZIP. Entre sus caractersticas estn:

Barras de herramientas del explorador de archivos, el documento

y los mdulos de clculo.


Guardar directamente de los documentos de texto en Google

Docs.
Otros formatos PDF, EML, ZIPVer archivos adjuntos y compartir

documentos.
Fcil de abrir archivos adjuntos en el correo electrnico. Trabajar con archivos de Outlook EML. Subir documentos en Google Docs. Comparta documentos por correo electrnico o Bluetooth.

Pgina 36

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

QuickOffice Pro.- Tiene caractersticas y funcionalidades parecidas a Google Docs y OfficeSuite 5 Pro, tambin permite crear, editar y ver archivos de Word, Excel y PowerPoint y tambin incluye un avanzado visor de PDF, esta herramienta permite abrir los archivos ms rpido y ver las notas al pie y notas al final en los documentos. Entre sus caractersticas y Funcionalidades destacan:
Crear, editar y compartir de Microsoft Word, Excel y PowerPoint. Acceder y administrar los archivos adjuntos de correo electrnico

en los formatos de archivo ms populares. Experimentar la visualizacin avanzada de PDF. Examinar y abrir las carpetas ZIP. Plena integridad de los datos: compatibilidad garantizada por Microsoft. Localizar en Ingls, francs, alemn, italiano, espaol, coreano, portugus brasileo, japons, chino simplificado y chino tradicional. PDF Converter.- Permite crear, convertir, editar y aadir opciones de formato y seguridad a todos tus documentos. Entre sus opciones, PDF Converter permite editar los documentos para, convertirlos de documentos de slo lectura a archivos editables por los usuarios. PDF Converter se integra tambin con Outlook y Word para obtener acceso rpido a sus funciones desde fuera del programa. Caractersticas:
Se integra en Word y Outlook. Mltiples opciones de edicin. Permite aadir seguridad a los documentos.

Resultados profesionales

Remote PowerPoint OpenOffice.- Controla diapositivas desde el dispositivo Android. Este software permite controlar las presentaciones de PowerPoint y OpenOffice desde tu telfono convirtindolo as en un mando a distancia. Para lograr su funcionamiento, se debe conectar el telfono y la PC a travs de sus direcciones IP.

Adobe Reader.- Es un estndar global que permite visualizar y compartir documentos PDF de forma confiable. Adobe Reader es el software lder, gratuito y confiable para visualizar e interactuar con documentos PDF entre distintas plataformas y

Pgina 37

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


dispositivos. La aplicacin Adobe Reader X para mviles permite trabajar con archivos PDF en telfonos Android y tabletas. Permite acceder, administrar y compartir de una forma fcil la ms amplia gama de tipos de archivos PDF, incluidas carteras PDF, documentos PDF protegidos mediante contrasea, formularios que se puedan rellenar y archivos PDF.

Open Office Document Reader.- Esta aplicacin de cdigo abierto ofrece un impresionante funcin, permite abrir cualquier archivo .Odt O archivo .Ods desde casi cualquier aplicacin en el dispositivo. Asimismo se puede ampliar, copiar texto, y cambiar el formato del documento. Permite visualizarlos documentos desde Gmail, Box.net, Dropbox, Zumo Drive, File Expert, Android Browser, ASTRO File Manager, Open Document, Estrongs File Explorer y otros muchos.

II.- BASE DE DATOS.- El almacenamiento de datos propios de ste


sistema es realizado por SQLite. SQLite es un sistema de gestin de base de Datos de dominio pblico escrita en lenguaje C, fue creada por Richard Hipp mientras trabajaba para la fuerza naval de los Estados Unidos. A diferencia de los sistema de gestin de bases de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a travs de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son ms eficientes que la comunicacin entre procesos. El conjunto de la base de datos (definiciones, tablas, ndices, y los propios datos), son guardados como un slo fichero estndar en la mquina host. Este diseo simple se logra bloqueando todo el fichero de base de datos al principio de cada transaccin. En su versin 3, SQLite permite bases de datos de hasta 2 Terabytes de tamao, y tambin permite la inclusin de campos tipo BLOB.1522 Como SQLite es un Software Libre entonces el cdigo fuente es de dominio pblico y tiene licencia GPL. Los programas que se enlazan con SQLite pueden tener acceso a una base de datos en SQL. Las caractersticas destacadas por sus desarrolladores son: su rapidez, dos veces ms veloz que PostgreSQL y MySQL; completa portabilidad; tamao reducido, 25 mil lneas de cdigo C; pero sobre todo su completo soporte para tablas e ndices en un archivo por base de datos; adems su instalacin es
1522

http://es.wikipedia.org/wiki/SQLite

Pgina 38

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


muy sencilla slo requiere de los pasos habituales: tar, configure, make y make install. SQLite, no permite usuarios accediendo en modo escritura a la base de datos, debido que el mecanismo de bloqueo que utiliza es muy "basto": bloquea toda la base de datos. As esta librera est especialmente indicada cuando se requiera de una gran rapidez en las consultas y nos baste que slo un nico usuario pueda realizar modificaciones. SQLite, cuenta con una utilidad llamada sqlite que nos permitir ejecutar comandos SQL contra una base de datos SQLite en modo consola. Desde aqu podemos crear nuestra base de datos, realizar consultas, insertar datos, etc.1623

III.- APLICACIONES EN JAVA.- Dentro de las ms usadas tenemos:


Android Market, Google Maps, Facebook, Gmail, Google Search, Youtube, Skype, entre otros. Android Market es una tienda online donde se pueden adquirir aplicaciones para Android. Un estudio hecho por Nielsen muestra un ranking por edades de las aplicaciones ms usadas de Android:

17

24

1623

http://www.somoslibres.org/modules.php?name=News&file=article&sid=183

1724

http://www.elandroidelibre.com/2011/12/las-aplicaciones-android-masusadas-segun-la-edad.html

Pgina 39

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Vemos que en los tres rangos estudiados la aplicacin ms utilizada es Android Market, seguida por Facebook; y disputndose los siguientes puestos con mrgenes muy pequeos estn Google Search, Google Maps y Gmail. Actualmente existen una serie de aplicaciones imprescindibles entre ellas tenemos: Business Calendar.- Muy funcional, se puede encontrar con facilidad eventos, cumpleaos, acontecimientos importantes entre otros.

Documents To Go.- Esta aplicacin permite abrir y editar documentos de Word, Excel, PowerPoint as como tambin acceder a documentos en formato PDF.

Dropbox.- Permite guardar archivos en la nube mediante un disco duro virtual en Internet.

Gasolineras Espaa.- Localiza las estaciones de servicio de gasolina ms cercanas, indicando el precio en cada una de ellas.

Google Traslate.- Es un traductor de bolsillo, traduce gran cantidad de idiomas adems cuenta con un modo conversacin.

Settle Up.- Gestiona gastos para un determinado evento ya sea viajes, cenas, fiestas, evitando la tarea de realizar clculos.

Whatsapp.- Permite el envo de mensajes gratuitos en los que se pueden incluir videos, fotos, vlido para Android, Blackberry, Nokia e iPhone.

Pgina 40

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


TUTORIAL PARA PROGRAMAR EN ANDROID:

1.

INSTALAR EL SOFTWARE NECESARIO

Se necesita: a) El SDK (software developer kit) para Android Este paquete se debe descargar de la siguiente pgina
http://developer.android.com/sdk/index.html

b) IDE: Eclipse Indigo 3.7.2 Usaremos un IDE de cdigo como es Eclipse, el link para descargar es el siguiente:
http://www.eclipse.org/downloads/packages/eclipse-classic372/indigosr2

Pgina 41

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

Finalmente cuando ya se dispone de ambos archivos, se instala mediante un procedimiento que no representa mayor dificultad. As continuamos a lo que debemos hacer despus de instalarlos.

2. DESCARGAR APIs y CONFIGURAR AVD: Ingresamos a la carpeta donde instalamos el SDK para Android y ejecutamos el programa SDK manager. Aparecer una ventana como la que sigue:

Pgina 42

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

En esta ventana aparece cada una de las versiones de Android asociada a un API (Interfaz de programacin de aplicaciones) De acuerdo a la versin de ANDROID en la que queramos escribir la aplicacin debemos escoger un API correspondiente o uno anterior.

Luego de seleccionar el API necesario damos a Install (#) packages

Configurar el Android AVD Esto se hace despus de tener las APIs necesarias instaladas. En la carpeta donde instalamos Android debemos ejecutar el AVD Manager, AVD (Android virtual device) hace referencia a un dispositivo virtual Android.

Nos aparecer una ventana como la que se presenta a continuacin donde debemos crear un nuevo dispositivo virtual en el cual poder correr nuestros aplicativos.

Pgina 43

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

En Name asignar un nombre cualquiera para la mquina. Target debe seleccionar a la versin de Android que necesitamos, SD Card Size dejarlo en 256 MiB salvo que se haga alguna prueba relevante que necesite ms espacio. El Skins Built-in dejarlo en Default. Finalmente darle click a Create AVD.

3. INSTALAR SOFTWARE EN ECLIPSE


Vamos a la pestaa Help y hacemos click en Install new software.

Pgina 44

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

Pgina 45

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


En la ventana que aparece damos click a Add para ingresar la siguiente direccin:
https://dl-ssl.google.com/android/eclipse/ Luego ponemos un nombre (Android en el ejemplo) damos click en OK y luego damos Finish para que se agregue.

Despus de haber realizado todos estos pasos podemos crear un proyecto android (Android Application Proyect)

Pgina 46

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

DESCRIPCIN DE UN PROYECTO ANDROID En la imagen anterior se puede apreciar el proyecto calculadora, luego de instalar la ltima parte para Eclipse aparece el pequeo cono que nos da una opcin para crear proyectos Android rpidamente sin recurrir al men File\New

El proyecto se conforma de varias carpetas donde hay libreras, cdigo java, imgenes, archivos xml. Se han resaltado las carpetas src donde se encuentran los recursos JAVA (la lgica de nuestra aplicacin) y tambin la otra carpeta resaltada es res donde se encuentran los recursos en general y donde se encuentra el archivo activity_main.xml (el nombre se define cuando se crea el proyecto) que contiene la capa grfica del programa.

La programacin de una aplicacin es un tema ms extenso y no ser abarcado. Aqu finaliza el breve tutorial para empezar a programar en JAVA.

Fuente: Elaboracin propia, basado en


http://casidiablo.net/tutorial-basico-android/ En esta URL tambin se puede encontrar una gua antigua en LINUX pero tambin con detalles. Y una conocida aplicacin de ejemplo: Hola mundo

Pgina 47

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

Pgina 48

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


APLICACIN DEMOSTRATIVA: CALCULADORA EN ANDROID Siguiendo el tutorial bsico de la primera parte se ha implementado una calculadora sencilla con base en un cdigo abierto.

Se ha modificado parte del cdigo usando como entorno el ECLIPSE Indigo. La aplicacin sencilla permite sumar, restar, multiplicar o dividir 2 nmeros ingresados. Funciona con un AVD que hace uso del API 10 (para versin Android 2.3.3)

Pgina 49

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

Dentro de la aplicacin se tiene la parte visual del programa y tambin una pestaa para ver el cdigo en formato .xml

Pgina 50

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA

La parte lgica de la aplicacin se escribe en JAVA. Se puede apreciar en la siguiente imagen.

Pgina 51

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


CONCLUSIONES Android es actualmente el sistema operativo con mayor proporcin del mercado (59% a junio 2012), superando a su ms cercano competido iOs que abarca un 23% Android es el sistema operativo que ofrece mayores beneficios para el usuario debido a sus fortalezas de cdigo abierto, personalizacin, cantidad de dispositivos y miles de aplicaciones gratis disponibles En cuanto al tema de seguridad, Android es uno de los sistemas ms vulnerables debido a la gran cantidad de ataques reportados el ao 2011. Sin embargo, estos ataques surgen principalmente por falta de precaucin de los usuarios al descargar las aplicaciones del Android Market. As tambin estudios presentados en el trabajo concluyen que el sistema operativo iOs es mucho menos vulnerable Android ofrece una gran flexibilidad al momento de gestionar la memoria a travs de las aplicaciones ofrecidas en el market, estas permitirn que dependiendo del uso que le d el cliente, se pueda estructurar de forma ptima a fin de no ralentizar la ejecucin de los procesos. La gestin de los dispositivos se dan a travs de controladores o drives, los cuales van a ser procesados por las libreras del kernel y as poder ejecutar los procesos de los dispositivos E/S. La estructura de directorio es de tipo jerrquica con la raz / y usuario administrador root lo cual hace intuible que su kernel deriva del GNU/LINUX, La gestin de archivos se da por el protocolo ext4 debido a que se aprovecha la capacidad de multiprocesamiento.

Pgina 52

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


BIBLIOGRAFIA MANEJO DE MEMORIA, regiones de memoria y optimizacin http://vidandroid.blogspot.com/2010/11/manejo-de-memoria-en-android.html GESTION DE MEMORIA, problema en la liberacin de memoria http://holaandroid.com/2011/12/android-y-su-gestion-de-memoria-ram/ PROCEDIMIENTO PARA ENTRAR EN MODO ROOT PARA OPTIMIZAR MEMORIA http://vidandroid.blogspot.com/2010/11/usuario-root-en-5-segundos.html LIBERARACION DE ESPACIO EN MEMORIA: TARJETA EXTERNA SD ANDROID 2.2 Y 2.3 http://www.xatakandroid.com/tutoriales/primeros-pasos-con-android-gestion-dememoria Estructura de directorio de Unix http://www.cecalc.ula.ve/bioinformatica/UNIX/node10.html Estructura de directorio de kernel Linux usado en android http://www.redesyseguridad.es/la-estructura-de-directorios-en-linux/ Android, caractersticas y aplicaciones http://www.configurarequipos.com/doc1107.html Herramientas de oficina y BASE DE DATOS: http://www.subinet.es/software/10-grandes-aplicaciones-de-oficina-paraandroid-parte-2/ http://www.elandroidelibre.com/2011/08/las-10-aplicaciones-android-masusadas-del-mundo-y-las-50-mas-imprescindibles.html http://www.elandroidelibre.com/2011/12/las-aplicaciones-android-mas-usadassegun-la-edad.html http://alerce.pntic.mec.es/bmarco1/pagina_web/googledocs.htm http://www.todo-android.net/aplicaciones/negocios/officesuite-pro.html

NOTICIAS Nuevo kernel Linux 3.3 compatible con Android


http://www.muylinux.com/2012/03/19/kernel-linux-3-3-disponible-bienvenido-denuevo-android/

Pgina 53

SISTEMAS OPERATIVOS: ANDROID LINUX + JAVA


Ms detalles aqu

Pgina 54

Vous aimerez peut-être aussi