Filipe Nogueira Tavares Bruno de Oliveira Petry Guilherme Alarcão Renato Carauta Ribeiro Dennis Oliveira Crenasco Victor Setúbal Cardoso Integrantes : SISTEMA OPERACIONAL
Introdução
Introdução A crescente demanda de tecnologia no mundo atual vem tornando cada vez mais necessário o desenvolvimento de novas arquiteturas, e pode-se dizer que o Sistema Operacional Android é responsável por essa grande massa, que cresce a cada dia, em busca dos dispositivos móveis . Usuários comuns, assim como o mercado coorporativo, estão se beneficiando com as diversas praticidades impostas pelo sistema em questão. A interação com os dispositivos acabou ficando mais rápida, simples e segura. Esse sistema móvel, torna possível que as aplicações, e consequentemente as pessoas, estejam conectadas e online diariamente . A interface de fácil utilização e com diversos recurso é resultado da execução dessas diversas rotinas concorrentemente em função de eventos assíncronos.
Histórico
Histórico 4.0 - "Ice Cream Sandwich "
Histórico 2005 a Google adquiriu a Android Inc . 2007 , Google anunciou Android como uma plataforma e a criação da Open Handset Alliance (OHA ) . 2008, Open souce e Lançamento do primeiro aparelho. Atualmente, 75% do mercado de smartphones. 500 milhões de aparelhos +600 dispositivos diferentes usam o sistema. Milhão de novos usuários todos os dias.
Histórico 1.5 - " Cupcake " - Introduziu a correção automática nos textos e também os famosos widgets .; 1.6 - " Donut " - Trouxe a busca online partir da página principal; 2.0 - "Éclair" - Uso de múltiplas contas do Google; 2.1 - "Éclair" Busca por voz; 2.2 - " Froyo "- Transformar o dispositivo em um ponto de acesso via wi-fi usando a rede 3G e introdução do Flash no navegador; 2.3 - " Gingerbread "- trouxe pela primeira vez o suporte a voz sobre IP; 3.0 - " Honeycomb " - Primeiro a operar em telas maiores e gerenciamento de aplicativos abertos; 4.0 - "Ice Cream Sandwich " - Reformulou toda a interface da plataforma, novidade foi a criação de pastas na tela principal do aparelho e agora é possível; 4.1 / 4.2 - " Jelly Bean " Melhora na funcionalidade e desempenho da interface
Características Gerais
Características Comuns É da Google; G ratuito; Seu código é aberto; N ão está preso a um hardware específico; O seu Kernel é Linux. Uma versão personalizada voltada para dispositivos móveis; Seus aplicativos são desenvolvidos em Java; P ossui uma quantidade imensa de aplicativos disponíveis, tanto gratuitos como pagos;
Características Específicas Handset layouts : a plataforma é adaptada tanto para dispositivos VGA maiores, gráficos 2D, bibliotecas gráficas 3D baseadas em OpenGL ES especificação 2.0 e os layouts mais tradicionais de smartphones. Armazenamento : é utilizado SQLite para armazenamento de dados. Mensagens : tanto SMS como MMS são formas disponíveis de envio de mensagens. Navegador : o navegador disponível no sistema é baseado no framework de Código aberto conhecido como WebKit .
Características Específicas Máquina virtual Dalvik : aplicações escritas em Java são compiladas em bvtecodes Dalvik e executadas usando a Máquina Virtual Dalvik , que é uma máquina virtual especializada desenvolvida para uso em dispositivos móveis, o que permite que programas sejam distribuídos em formato binário ( bytecode ) e possam ser executados em qualquer dispositivo Android , independentemente do processador utilizado. Apesar das aplicações Android serem escritas na linguagem Java, ela não é uma máquina virtual Java, já que não executa bytecode JVM.
Características Específicas Multimídia : o sistema irá suportar formatos de áudio e vídeo como: MPEG-4, H.264, MP3, e AAC. Suporte Adicional de Hardware : o Android é totalmente capaz de fazer uso de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração de gráficos 3D. Ambiente de desenvolvimento (SDK): inclui um emulador, ferramentas para debugging , memória e análise de performance. O Eclipse IDE (atualmente 3.4 ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools (ADT).
Características Específicas Multimídia : o sistema irá suportar formatos de áudio e vídeo como: MPEG-4, H.264, MP3, e AAC. Suporte Adicional de Hardware : o Android é totalmente capaz de fazer uso de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração de gráficos 3D. Ambiente de desenvolvimento (SDK): inclui um emulador, ferramentas para debugging , memória e análise de performance. O Eclipse IDE (atualmente 3.4 ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools (ADT).
Estrutura do sistema
Estrutura do sistema Android é um sistema operacional baseado no kernel do Linux . Podemos dizer que o Android é uma máquina virtual Java rodando sobre o kernel do Linux, dando suporte para o desenvolvimento de aplicações Java através de um conjunto de bibliotecas e serviços . Sua arquitetura possui basicamente 5 camadas, como visto na Figura a seguir .
Estrutura do sistema
Processos e Threads
Processos A camada mais baixa da arquitetura, Kernel Linux, é a responsável por gerenciar os processos e threads, além da memória, arquivos e pastas, redes, drivers dos dispositivos e energia. No sistema Android , todos os componentes de uma aplicação são executados em um mesmo processo e thread. Quando a memória fica sobrecarregada ou quando outro processo faz requisição de memória, por ter maior nível de importância, o processo em execução é parado e o processo que tem maior importância de acordo com o usuário é carregado. Existem cinco níveis de importância: Foreground Process Processo visível Processo de serviço Serviços em Background Processos vazios
Threads UI Thread (Thread principal " main ") Trabalho intensivo na UI Thread trava a aplicação Multithread Ciclo de vida
Gerência de Processo
Gerência de Processo Android usa-se o binder , um mecanismo usado para a comunicação entre processos. Toda comunicação entre processos passa pelo binder ( uma classe do Java) . Escalonamento de CPU: O Android usa uma criação de filas com os componentes: processos interativos processos batch processos tempo real. escalonador do sistema Android é baseado em time-sharing, e é do tipo preemptivo . Deadlock : No Android não é feito tratamento de Deadlock . O sistema parte do princípio de que eles não virão a ocorrer.
Gerência de memória
Gerência de memória Como já foi dito anteriormente o Android é um sistema operacional baseado em kernel Linux e utiliza o gerenciamento de memória baseado em tal . Todas as operações básicas do sistema operacional em níveis mais baixos, como o I /O, gerenciamento de memória, e assim por diante, são tratados pelo kernel do Linux Para o gerenciamento de memória é usada a técnica de memória virtual. Houve duas motivações principais: Permitir o compartilhamento seguro e eficiente da memória entre os vários programas Remover os transtornos de programação de uma quantidade pequena e limitada na memória principal
Sistema de Arquivos
Sistema de Arquivos O sistema operacional gerencia os arquivos para facilitar o acesso dos usuários ao seu conteúdo. A parte do S.O que é responsável por essa gerencia é o sistemas de arquivos. Principais diretórios do android são : o “ data ” , que armazena os dados das aplicações, e o “ system ” , com as bibliotecas (system/ lib ), serviços (system/bin e system/ xbin ) e aplicações Java (system/ app ).
Sistema de Arquivos O Android implementou uma biblioteca chamada Bionic para usar como biblioteca do sistema. Contem os diretórios: / – diretório raiz ( Android e Linux) / Cache – armazenamento de dados para execuções rápidas ( Android ) /Data – Dados ( Android ) O diretório /Data contém dados do usuário armazenados em uma partição separada de MTD / Default.prop - ( Android ) definições de propriedade-padrão e valores restaurados a partir dos arquivos em cada reinicialização. / Dev – arquivos de dispositivos (Linux e Android )
Sistema de Arquivos / Etc – arquivos de configuração (Linux e Android ) / Init – inicialização ( Android ) / Lib - Bibliotecas essenciais partilhadas (Linux e Android ) / Lost+found - arquivos recuperados (Linux e Android ) /Media - mídias removíveis (Linux e Android ) / Proc – kernel e arquivos de processo (Linux e Android ) /Root - Diretório home para o super usuário (Linux e Android ) / Sbin – arquivos binários de administração (Linux e Android ) / Sdcard – Cartão SD ( Android ) /System – Sistema ( Android ) / Tmp - arquivos temporários (Linux e Android )
Gerência de Entrada e Saída
Gerência de Entrada e Saída É implementado através do device drivers . Sempre que um novo dispositivo é acrescentado no sistema, o drive deve ser acoplado ao núcleo . O sistema Android trabalha com duas formas de entrada e saída: uma orientada a blocos relacionados a dispositivos com alta transferência (cartões de memoria), quando uma operação de leitura é realizada um bloco é transferido para a memória e posteriormente processado E outra orientada a caracteres que são relacionados a dispositivos mais lentos, controlados pelo sistema operacional.
Referências ABNT. Manual de normas da ABNT. Disponível em: http :// www.abnt.org.br / Celeiro Android . Processos e Threads. Disponível em: http :// celeiroandroid.blogspot.com.br /2011/04/processes-e- threads.html Wikipédia . Android . Disponível em: http://pt.wikipedia.org/wiki/Android Midiacom.uff.br . Sistema Operacional Android . Disponível em: http://www.midiacom.uff.br/~natalia/2012-1-sisop/tgrupo1.pdf Sergioprado.org . Android . Disponível em: http :// sergioprado.org / introducao -ao-funcionamento-interno-do- android / Bibliografia Consultada MACHADO, F.de.B ; MAIA, L.P. Arquitetura de Sistemas Operacionais . 4.ed - Rio de Janeiro: LTC, 2007. LECHETA, R.R. Google Android : Aprenda a criar aplicações para dispositivos moveis com o Android SDK. 3.ed – São Paulo-SP: Novatec,2013