PLATAFORMA ANDROID. Ariel Soares Teles arielsoaresteles@gmail.com



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

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

A plataforma Android: Uma Introdução

O que é o Android? O que é o Android

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

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

Computação II Orientação a Objetos

Android. Marcelo

Sistemas Embarcados Android

Sistemas Embarcados Android

EA998/MC933 Guido Araujo e Sandro Rigo

Desenvolvimento de um aplicativo básico usando o Google Android

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

MONOGRAFIA: PLATAFORMAS DE DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS

Sistemas Operacionais

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO

Manual de instalação e configuração da Ferramenta Android SDK

Programação para Dispositivos Móveis

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

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

OBJETIVO Criação e execução de um projeto Android dentro da IDE IntelliJ.

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

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Manual de Operação Aplicativo ClickIt

I N T R O D U Ç Ã O W A P desbloqueio,

Sistemas Operacionais Introdução

Itinerários de Ônibus Relatório Final

2ª Edição Ricardo R. Lecheta

Programação para Dispositivos Móveis

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

Manual de utilização do Zimbra

Android Básico Hello World!

Desenvolvimento de Aplicações. Android. Rick Rogers, John Lombardo, Zigurd Mednieks e Blake Meike. Novatec

Seminário de S.O - Google Android

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

SISTEMAS DISTRIBUIDOS

Java Básico. Aula 1 por Thalles Cezar

5 Mecanismo de seleção de componentes

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Introdução ao Android

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

UM FRAMEWORK PARA DESENVOLVIMENTO DE

Projeto Arquitetural do IEmbedded

O SISTEMA ANDROID NO UNIVERSO DOS DISPOSITIVOS MÓVEIS

Desenvolvimento de Aplicativos com ASR para Android

Minicurso introdutório de desenvolvimento para dispositivos Android. Cristiano Costa

Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operacionais

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Sistemas Operacionais. Conceitos de um Sistema Operacional

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis

Introdução ao Android SDK. Prof. Me. Hélio Esperidião

SISTEMA PARA AUTOMATIZAR O MONITORAMENTO DE ROTEADORES DE UM PROVEDOR DE ACESSO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

MANUAL DE INSTALAÇÃO CONFIGURAÇÃO IDE ECLIPSE

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CARTEIRA VIRTUAL C A R D B O A R D CAMINHOS PONTOMOBI EDU

2 Diagrama de Caso de Uso

Programação Palm OS. Roteiro da Apresentação. Motivação

Introdução ao Android. Prof. Fellipe Aleixo

4 Estrutura do Sistema Operacional Kernel

Modelos de Arquiteturas. Prof. Andrêza Leite

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Programa Adesivos Impressos Versão 4.0

API's e Aplicações para Android

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

ANIMAÇÕES WEB AULA 2. conhecendo a interface do Adobe Flash. professor Luciano Roberto Rocha.

7 Utilização do Mobile Social Gateway

PROJETO INFORMÁTICA NA ESCOLA

Minicurso de Introdução a GNU/Linux. Nicolas Katte Dornelles Raul José Chaves Róbson Tolfo Segalla

Office 365 Manual Outlook 365 Web Application

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Informática. Informática. Valdir

Acadêmico: Maicon Machado Orientador: José Carlos Toniazzo

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.

Descrição geral do Android

Administração de Sistemas de Informação Gerenciais

Plano de Trabalho Docente Ensino Técnico

Capítulo 2 Introdução à ferramenta Flash

SISTEMAS OPERACIONAIS

Serviços Web: Introdução

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

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

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

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

DMS Documento de Modelagem de Sistema. Versão: 1.4

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Manual do Sistema "Fala Comigo - Sistema de Atendimento On-Line" Editorial Brazil Informatica

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

Transcrição:

Universidade Federal do Maranhão UFMA Programa de Pós-graduação em Engenharia de Eletricidade PPGEE Área de Concentração: Ciência da Computação Disciplina: Introdução a Computação Móvel Professor: Dr. Francisco José da Silva e Silva PLATAFORMA ANDROID Ariel Soares Teles arielsoaresteles@gmail.com

Agenda Conceitos Principais Características Técnicas Arquitetura Blocos de Construção (de uma aplicação) Ciclo de Vida (Aplicação e Atividade) Como desenvolver para Android? Exemplo Simples de Aplicação Referências 23/09/2010 Plataforma Android 2

O que é o Android? É uma plataforma de software de código aberto que inclui um sistema operacional para dispositivos móveis baseado em Linux; É uma plataforma completa para dispositivos móveis, e inclui: Sistema Operacional (Kernel GNU Linux) Middleware Aplicações Android surgiu da parceria da Google com a Open Handset Alliance (OHA), aliança onde figuram os principais atores do mercado móvel mundial. 23/09/2010 Plataforma Android 3

Open Handset Alliance Criada e fundada pela Google, nasceu para o desenvolvimento e implementação do Android em terminais móveis; Atualmente é formada por mais de 30 organizações do setor móvel, com o objetivo de acelerar as inovações nas comunicações móveis e oferecer a seus consumidores um melhor serviço; Dentre as empresas que a formam estão: Fabricantes de Dispositivos Móveis Samsung, LG, HTC, Motorola... Fabricantes de Componentes Texas Instruments, Intel, Nvidia... Fabricantes de Software PV, Ebay, Esmertec... Operadoras Móveis de todo mundo T-Mobile. Italia Telecom, China Mobile... Empresas de Comercialização Aplix, Noser, Systems... 23/09/2010 Plataforma Android 4

Filosofia de Desenvolvimento Android nasceu com uma filosofia de código aberto; A ideia é que programadores de todo o mundo contribuam de maneira livre e constante com o seu desenvolvimento; É liberado também para que os fabricantes desenvolvam aplicações específicas para seus telefones; É importante ressaltar que não é pelo fato da licença ser de código aberto que os desenvolvedores não cobrem pelos programas que venham a desenvolver. 23/09/2010 Plataforma Android 5

Principais Características Técnicas Baseado em Linux, onde todos os serviços básicos, como gerenciamento de drivers, memória e segurança, estão baseados nesse SO de código aberto; Dalvik é o nome da máquina virtual onde executam as aplicações; Ela é otimizada para requerer pouca memoria e poder usar várias instancias simultaneamente sem que o dispositivo fique lento; Os executáveis tem uma extensão.dex, que é uma versão otimizada do.class; A linguagem em que se programa é Java (estratégia da Google). 23/09/2010 Plataforma Android 6

Principais Características Técnicas Navegador web integrado, baseado no projeto open source Webkit o mesmo do iphone e Nokia série 60; Ele é de código aberto; Atua como base para varias aplicações que existem atualmente no mercado, como o navegador Safari. Utiliza o SQLite para armazenamento de dados estruturados; Já vem incluído na SDK; Pode acessar totalmente as suas classes; É possível utilizar também outros BDs. Bluetooth, EDGE, 3G e WiFi: foco nas principais tecnologias de transmissão de dados sem fio; Câmera e GPS: Ter o celular como uma ferramenta para interação com redes sociais; 23/09/2010 Plataforma Android 7

Principais Características Técnicas Biblioteca de gráficos otimizada para dispositivos móveis: biblioteca para gráficos 2d e 3d baseada na especificação OpenGL ES 1.0; Suporte multimídia: compatibilidade com os principais formatos existentes, dentre eles: mpeg4, mp3, aac, amr, jpg, png e gif. Telefonia com tecnologia GSM: As aplicações podem manipular operações telefônicas, caso o fabricante permita esse acesso; 23/09/2010 Plataforma Android 8

Principais Características Técnicas Framework de desenvolvimento de aplicações: Reutilização de código; Facilidade de acesso a recursos exclusivos e manutenção; Ambiente de desenvolvimento com plugin para Eclipse, incluindo: Emulador; Ferramentas para debug e supervisão de memória e desempenho. 23/09/2010 Plataforma Android 9

23/09/2010 Plataforma Android 10

Arquitetura do Android A arquitetura da plataforma Android é dividida em quatro camadas: Kernel GNU Linux; Bibliotecas. Framework para aplicações; As próprias aplicações; Além da porção runtime, necessária para a execução dos aplicativos no dispositivo. 23/09/2010 Plataforma Android 11

23/09/2010 Plataforma Android 12

Linux Kernel A camada mais baixa da arquitetura, Kernel Linux, é a responsável por gerenciar: Processos e threads; Memória; Arquivos e pastas Redes; Drivers dos dispositivos; Energia. Os drivers de dispositivo fornecidos incluem Display, câmera, teclado, WiFi, memória Flash, áudio, etc. 23/09/2010 Plataforma Android 13

Android Runtime A base de desenvolvimento do Android é Java, porém não existe uma JVM e sim outra maquina virtual, a Dalvik, otimizada para interpretar códigos em dispositivos móveis; Ao compilar o bytecode (.class), este é convertido para o formato específico da máquina virtual Dalvik, o.dex (Dalvik Executable), que representa a aplicação compilada; Depois da aplicação Android ter sido compilada é gerado um arquivo único, neste caso com a extensão.apk (Android Package File). 23/09/2010 Plataforma Android 14

Native Libraries A camada de Bibliotecas é formada por um conjunto de bibliotecas escritas em C/C++; Tudo disponível para os desenvolvedores através do Framework de aplicações; Entre as mais importantes encontra-se o SQLite, OpenGL, WebKit, FreeType, Secure Sockets Layer (SSL) e as bibliotecas de mídia que permitem reproduzir arquivos de áudio, vídeo e imagem. 23/09/2010 Plataforma Android 15

Java SDK O Framework é uma base para as aplicações, onde os desenvolvedores tem acesso completo; Pensando na reutilização dos componentes, uma aplicação pode capturar funcionalidades de outra criada anteriormente para o seu desenvolvimento; Nele estão inclusos: Telephony manager: gerência de hardware do dispositivo; View system: conjunto de telas (componentes gráficos) para desenvolver uma aplicação; Content providers: dados que são compartilhados entre várias aplicações, como por exemplo, a agenda; Resource Manager: administrador de recursos que permite acessar a recursos como Strings, gráficos, arquivos de layout; 23/09/2010 Plataforma Android 16

Java SDK Notification Manager: administrador de notificações para mostrar alertas. As aplicações podem adicionar eventos numa barra de de notificações; Activity Manager: administrador de atividades. Este gerencia o ciclo de vida das aplicações e da navegação entre elas; Location Manager: serviço de localização. Permite o celular receber avisos, notificações, eventos, etc. de um lugar específico ou de sua localização atual; Serviço XMPP. Envio de mensagens para aplicações entre terminais Android. Pode ser utilizado entre jogos multiusuário, por exemplo. 23/09/2010 Plataforma Android 17

Applications Conjunto de aplicações do Android, dentre as básicas encontra-se um navegador Web, um cliente de e-mail, um calendário, entre outras; Todas feitas em linguagem Java. 23/09/2010 Plataforma Android 18

Blocos de Construção Na hora de desenvolver aplicações, estes são construídos com baseados em blocos de construção básicos, onde se pode citar os mais importantes: Activity; Intent e IntentReceiver; Service; Content Provider. Nem todas aplicações necessitam de todos os blocos. 23/09/2010 Plataforma Android 19

Activity É o mais utilizado; Uma definição para este bloco seria uma tarefa que é executada com a aplicação e tem uma interação com o usuário; Se implementa extendendo a classe activity e cada uma delas tem um processo de vida próprio; Funcionamento: A maioria das aplicações tem telas múltiplas e cada vez que se adiciona uma nova, a anterior é retirada e guardada numa pilha; Graças a essa pilha o usuário pode navegar para trás pelas activities que estão ativas; Se o Android considerar melhor, pode priorizar ou excluir uma activity da pilha por questões de memória; Exemplo: Mensagem SMS x Calculadora. 23/09/2010 Plataforma Android 20

Intent Intent é um pedido para realizar uma ação; É como fazer uma tentativa de algo ou dizer quero fazer uma coisa ; É um evento genérico de uma aplicação, criado por ela mesma; Pode ser um evento predefinido pelo Android, como fazer chamada, abrir um navegador, enviar um e-mail; Intent é necessário para navegar entre as telas de uma aplicação. 23/09/2010 Plataforma Android 21

IntentReceiver Um IntentReceiver é chamado para executar uma aplicação, por um Intent de outra aplicação que já está em execução; Diferentemente de um Intent, a aplicação não tem que está em execução para que execute um IntentReceiver; Ou seja, o usuário não tem que está interagindo com o programa no momento da chamada de um IntentReceiver. 23/09/2010 Plataforma Android 22

Service Um serviço é equivalente a uma Daemon ou serviço de um sistema operacional tradicional; É executado em background sem necessidade de interagir com o usuário. 23/09/2010 Plataforma Android 23

Content Provider Um provedor de conteúdo é usado quando os dados de uma aplicação são compartilhados com outras; Essa classe implementa um conjunto de métodos padrões para as aplicações que compartilham dados armazenados e extraem a informação que contém no Content Provider. 23/09/2010 Plataforma Android 24

Ciclo de Vida de uma Aplicação No Android é o sistema que determina o cliclo de vida de uma aplicação e não ela mesma; Ou seja, ele determina sua duração baseado nas partes da aplicação que estão rodando no momento e a importância destas para o usuário e na memória disponível; Ele classifica os processos de maneira hierárquica de acordo com sua importância num determinado momento para o sistema, da seguinte maneira: Foreground process: processo em primeiro plano no qual o usuário pode está interagindo, utiliza uma Activity e o sistema só o mata em última opção alta prioridade; 23/09/2010 Plataforma Android 25

Ciclo de Vida de uma Aplicação Visible process: é um processo que utiliza uma Activity, mas não está em primeiro plano, apesar de visível; Um exemplo sería uma tela lançada como diálogo, onde se interage com ele, mas se continua vento a tela principal por trás. Este tipo de processo também tem prioridade e só é eliminado em estados de memória muito crítico, igual um Foreground process. Background process: processo que utiliza uma Activity, mas não está visível na tela; Ou seja, se esse processo for morto não terá uma repercussão direta para o usuário. 23/09/2010 Plataforma Android 26

Ciclo de Vida de uma Aplicação Empty process: processo que não utiliza nenhum componente visualmente ativo; O sistema os eliminará com frequência e pode mantê-los vivos se haver memória suficiente para melhor o tempo de ativação de outro componente dessa aplicação. É importante ressaltar que Activity, IntentReceiver e Services influenciam de maneira importante no tempo de execução das aplicações; Possíveis erros no uso deste podem fazer que processos importantes para o usuário finalizem antes do tempo. 23/09/2010 Plataforma Android 27

Ciclo de Vida de uma Atividade (Activity) Parecido com o ciclo de vida de uma aplicação, porém trabalha com uma pilha de activities ; Nela o sistema empilha exclusivamente activities que estão em execução; Quando se muda de uma Activity para outra, a nova Activity que é criada, é colocada na parte superior da pilha e passa a ser a Activity que executa nesse momento, enquanto a anterior fica por baixo na pilha; Com isso, deve-se preocupar para que a Activity principal que está no topo da pilha não seja eliminada (morta) da pilha. 23/09/2010 Plataforma Android 28

Ciclo de Vida de uma Atividade (Activity) Uma Activity pode ter quatro estados, de acordo com sua interação com o usuário: Ativa ou em execução: ocorre quando a Activity está em execução na parte superior da pilha, sendo a última Activity criada pela aplicação e última que o sistema tentará eliminar; Em pausa: ocorre quando a Activity deixa de ser a principal, mas ainda continua visível na tela. Isto é possível em activities transparentes que deixam ver a inferior. Ela continua viva mantendo toda informação do usuário; Parada: diferencia de pausa por não ser visível na tela. Continua mantendo toda informação do usuário, mas pode ser eliminada pelo sistema para liberar memória; Eliminada: Activity morta caso o sistema necessite de memória ou simplesmente porque a aplicação tenha pedido. 23/09/2010 Plataforma Android 29

23/09/2010 Plataforma Android 30

23/09/2010 Plataforma Android 31

Ciclo de Vida Se pode ver que o ciclo de vida de uma aplicação está diretamente relacionado com o ciclo de vida de uma Activity, dando prioridade para os processos que tem pelo menos uma ativa; Conclui-se então que o Android considera com prioridade aqueles processos que o usuário está interagindo e faz o possível para que não seja afetado em estados críticos de memória. 23/09/2010 Plataforma Android 32

O que é necessário para desenvolver para a plataforma Android? JDK; Eclipse; Android SDK; Plug-in ADT (Android Development Tools) para o Eclipse; Configuração de variáveis de ambiente. 23/09/2010 Plataforma Android 33

Exemplo Simples Localizador GPS 23/09/2010 Plataforma Android 34

Referências Rick Rogers, John Lombardo, Zigurd Mednieks, and Blake Meike. Android Application Development. First Edition. USA, Sebastopol, CA. O Reilly Media, Inc., 2009. Judit Balaguero Peña. Trabalho de Conclusão de Curso: Ingeniería Técnica de Telecomunicaciones, especialidad Telemática. Estudio de la plataforma Android. Orientador: Antoni Oller Arcas. 2008 Ed Burnette. Hello, Android: Introducing Google s Mobile Development Platform. 3rd Edition. The Pragmatic Bookshelf Raleigh, USA, 2010. Sayed Hashimi, Satya Komatineni and Dave MacLean. Pro Android 2. USA, 2010. 23/09/2010 Plataforma Android 35

Dúvidas? Perguntas? Sugestões? 23/09/2010 Plataforma Android 36

Obrigado!!! 23/09/2010 Plataforma Android 37