O que é o Android? O que é o Android



Documentos relacionados
A plataforma Android: Uma Introdução

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr

MONOGRAFIA: PLATAFORMAS DE DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008

Conceitos Básicos e Práticos do Android

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Android. Marcelo

Descrição geral do Android

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Computação II Orientação a Objetos

PLATAFORMA ANDROID. Ariel Soares Teles

Minicurso - Android Fábio Silva / João Paulo Ribeiro

Sistemas Embarcados Android

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Sistemas Embarcados Android

CONTEÚDO (técnico) COMPLETO DO TREINAMENTO INTENSIVO PARA ANDROID Universidade Android

EA998/MC933 Guido Araujo e Sandro Rigo

Introdução ao Android

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

Artigo: PLATAFORMAS PARA APLICATIVOS MÓVEIS

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Sistemas Operacionais Introdução

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Introdução a Computação Móvel

API's e Aplicações para Android

Sistemas Operacionais. Prof. André Y. Kusumoto

Seminário de S.O - Google Android

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Estrutura de um Sistema Linux Moderno Padrões de um Sistema Linux. Prof. Claudio Silva

Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

(Aula 15) Threads e Threads em Java

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Introdução à Computação: Sistemas de Computação

Capítulo 04: Persistência com SQLite

Capítulo 06: Trabalhando com Intents

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Programação para Dispositivos Móveis

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Aula 03-04: Modelos de Sistemas Distribuídos

4 Arquitetura do middleware

Fasci-Tech FRAMEWORK PARA INTEGRAÇÃO DE SERVIÇOS MÓVEIS BASEADO EM REDE SOCIAL

Computador Digital Circuitos de um computador (Hardware)

AULA: Introdução à informática Computador Digital

VIII Semana de Ciência e Tecnologia IFMG campus Bambuí VIII Jornada Científica TECLADO VIRTUAL ACESSÍVEL PARA SMARTPHONES E TABLETS

Introdução à Informática

SERVIDORES REDES E SR1

Desenvolvimento de uma aplicação embarcada em celular visando controle de robô via Wi-Fi

8 Threads. 8.1 Introdução

2ª Edição Ricardo R. Lecheta

Introdução à Engenharia de Computação

Automação Comercial utilizando Aplicativos Móveis - Um Foco na Plataforma Android

Introdução à Engenharia de Computação

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Funcionalidades da ferramenta zabbix

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

agility made possible

Modelos de Arquiteturas. Prof. Andrêza Leite

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

GNU Image Manipulation Program, mais conhecido pelo acrônimo GIMP.

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Projuris Enterprise Visão Geral da Arquitetura do Sistema

Programação para Dispositivos Móveis

MODELAGEM DE PROCESSOS USANDO BPMN (BUSINESS PROCESS MODEL AND NOTATION) E IOT (INTERNET DAS COISAS)

Diagrama de Estrutura Composta

Android Básico Hello World!

2. Conceitos e Arquitetura de Bancos de Dados

PROCESSOS DE CRIAÇÃO DE APLICATIVOS

Noções de. Microsoft SQL Server. Microsoft SQL Server

Sobre o Colméia: Grupo de pesquisa em Software e Hardware Livre. Software Livre não é só Linux!

GBD PROF. ANDREZA S. AREÃO

Sistemas Operacionais

II Semana de Tecnologia da Informação. Rails Framework

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

GPSBusca: Um software sobre o georreferenciamento de imagens com base em tecnologia móvel celular e Android

Engenharia de Software II

Sistemas Operacionais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Introdução a Computação

Manual do Teclado de Satisfação Online WebOpinião

Projeto 1 - Bootloader

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Desenvolvimento de aplicações na plataforma Google Android

PROJETO PEDAGÓGICO DE CURSOS

Introdução ao Desenvolvimento para Dispositivos Móveis

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Métodos de Sincronização do Kernel

Projeto mgov2 Redes Sociais e Dispositivos Móveis. Projeto mgov2 Redes Sociais e Dispositivos Móveis

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Infra-estrutura de Software

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Virtualização. Prof. Emiliano Monteiro

Requisitos de Sistemas

ARQUITECTURA DO WINDOWS

Transcrição:

O que é o Android? O Android é um sistema operacional para dispositivos móveis, baseado em uma plataforma de código aberta sob a licença apache, permitindo que os fabricantes possam modificar seu código fonte, essa liberdade permite adicionar novos recursos e incorporá-los ao sistema, desta forma o software evolui constantemente. O sistema possui cerca de 12 milhões de linhas de código, sendo: 3 milhões em XML; 2.8 milhões em C; 2.1 milhões em Java; e 1.75 milhões em C++. Ao contrário do que muita gente pensa, o Android não é desenvolvido apenas pela Google, existe um grupo de empresas como a Motorola, Samsung, LG, Sony Ericsson, HTC, China Mobile, Intel, Asus e muitas outras, que forma o Open Handset Alliance (OHA) com o objetivo de desenvolver a plataforma. Primeiro dispositivo para plataforma Android foi lançado em setembro de 2008 O que é o Android Características

Arquitetura Android A arquitetura do sistema operacional Android é uma pilha de programas agrupados em camadas. Podemos dividir essas camadas em níveis zero, um, dois e três, conforme figura abaixo.

Nível zero No nível zero, temos a base da pilha, ou seja, o Kernel (Linux Kernel), para desenvolvê-la foi utilizado à versão 2.6 do Sistema Operacional Linux. Nele encontraremos os programas de gerenciamento de memória, configurações de segurança e vários drivers de hardware. Nível um No nível um, temos as camadas de bibliotecas (Libraries) e tempo de execução (Android RunTime). ƒ System C library uma implementação derivada da biblioteca C padrão sistema (libc) do BSD adaptada para dispositivos rodando Linux.

ƒ Media Libraries baseado no PacketVideo s OpenCORE; as bibliotecas suportam os mais populares formatos de audio e video, bem como suportam os mais populares formatos de audio e video, bem como imagens estáticas. ƒ Surface Manager acesso ao subsistema de exibição bem como as múltiplas camadas de aplicações 2D e 3D; ƒ LibWebCore um web browser engine utilizado no Android Browser ƒ SGL o engine de gráficos 2D ƒ 3D libraries uma implementação baseada no OpenGL 1.0; as bibliotecas utilizam aceleração 3D via hardware (quando disponível) ou o soft d d i ã 3D lt t ti i d i l íd A d id ftware de renderização 3D altamente otimizado incluído no Android. ƒ FreeType renderização de fontes bitmap e vector ƒ SQLite um poderoso e leve engine de banco de dados relacional disponível para todas as aplicações A camada de biblioteca é um conjunto de instruções que dizem ao dispositivo como lidar com diferentes tipos de dados, incluindo um conjunto de biblioteca C / C + + usadas por diversos componentes do sistema e são expostas a desenvolvedores através da estrutura de aplicativo Android. A camada de tempo de execução inclui um conjunto de bibliotecas do núcleo Java (Core Libraries). Para desenvolver aplicações para o Android, os programadores utiliza a linguagem de programação Java, nesta camada encontraremos a Máquina Virtual Dalvik (DVM). O Android usa a máquinas virtuais Dalvik para rodar cada aplicação com seu próprio processo. Isso é importante por algumas razões: nenhuma aplicação é dependente de outra e se uma aplicação parar, ela não afeta quaisquer outras aplicações rodando no dispositivo e isso

simplifica o gerenciamento de memória, pois a máquina virtual está baseada em registradores e desenvolvida de forma otimizada para requerer pouca memória e permitir que múltiplas instâncias executem ao mesmo tempo. Ao contrário do que se afirma, que a Dalvik é uma máquina virtual Java, isso não é verdadeiro, pois ela executa seu próprio tipo de bytecodes. Nível dois No nível dois, temos a camada de framework de aplicação (Application Framework), programas que gerenciam as aplicações básicas do telefone. Os desenvolvedores têm acesso total ao framework como um conjunto de ferramentas básicas com o qual poderá construir ferramentas mais complexas. Nível três No nível três, temos a camada de aplicações e as funções básicas do dispositivo. Esta é a camada de interação entre o usuário e o dispositivo móvel, nela encontramos aplicativos cliente de e-mail, programa de SMS, calendário, mapas, navegador, contatos entre outros.

Estrutura de uma aplicação Activities Intents e IntentFilters (e BroadcastReceivers) Services Content Providers Nem toda aplicação precisa ter todos os tipos, mas terá alguma combinação. Os componentes que compõem a aplicação são declarados no arquivo AndroidManifest.xml. Android Manifest AndroidManifest.xml é necessário p/ cada aplicação. Descreve os elementos da aplicação: (Activities, Content Providers, Services, and Intent Receivers) Content Providers, Services, and Intent Receivers) globalmente visíveis, as classes de implementação de cada componente, e qual tipo de dado este pode tratar, quando pode ser ativado, etc. Compara-se cada Intent gerado com os Intentfilters registrados para identificar qual é a atividade mais app p ro riada para tratar este intent Pode-se também descrever as permissões e parâmetros de instrumentação Activity Uma tela de sua aplicação; cada uma é uma especialização da classe base Activity. Sua classe será composta de views que respondem a eventos; uma atividade pode retornar um valor para outra atividade;

Intent Classe usada para passar o controle de uma atividade para outra; um intent consiste de uma ação (evento/requisição) e uma URI indicando um dado sobre o qual a ação deve ser executada. Valores comuns para ação MAIN (entrada da aplicação), VIEW, PICK, EDIT, etc.. Exemplo: para visualizar informação de contato cria-se um intent com ação VIEW e a URI indicando os dados associados a uma pessoa IntentFilter Descrição de quais intents uma Activity (ou BroadcastReceiver) é capaz de tratar e são publicados no arquivo AndroidManifest.xml Exemplo: Uma Activity capaz de mostrar dados de uma pessoa iria publicar um IntentFilter com a capacidade VIEW para determinados dados. Activities com IntentFilters equivalentes podem ser trocadas a qualquer instante BroadcastReceiver Deve ser usado quando a aplicação deve reagir a eventos externos à aplicação (e.g. ligação telefônica, timer, rede wifi disponível, etc) BroadcastReceivers são definidos no AndroidManifest.xml, ou são registrados usando método Context.registerReceiver(). Obs: A aplicação não precisa estar executando; o sistema vai iniciá-la quando o BroadcastReceiver é disparado Aplicações também podem enviar seus IntentBroadcasts para outras aplicações. Serviço

Uma thread (processo) executando em background, independentemente de uma Interface do usuário (p.ex. tocar músicas de uma playlist) Activities (para escolha do album) podem se conectar a um serviço usando Context.bindService() para inicia-lo (se já não executa).uma vez conectado, pode-se interagir com ele através da interface exportada pelo mesmo (p.ex. p/ pause ) ContentProvider Uma classe usada para que aplicações compartilhem dados entre si; implementa um conjunto de métodos padrão para armazenar e recuperar dados de um determinado tipo; Obs: aplicações também podem interagir através de um banco de dados SQL ou de arquivos

Referências: http://www.tiselvagem.com.br/geral/desenvolvendo-para-android-arquitetura-android/ (Acessado em 17:37 29/02/2016) http://www-di.inf.puc-rio.br/~endler/courses/mobile/dev-tools/android.pdf (acessado em 18:01 29/02/2016)