Computação II Orientação a Objetos

Documentos relacionados
Computação II Orientação a Objetos

Computação II Orientação a Objetos

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.

Programação para Dispositivos Móveis

Universidade Federal do Paraná

Programação para Dispositivos Móveis

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K

Curso online de Fundamentos em Android. Plano de Estudo

RecyclerView. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Capítulo 02: Cadastro de Alunos

Imagem retirada do site:

Programação para Dispositivos Móveis. Activity e Intent

Introdução ao Desenvolvimento de Aplicativos Android

Introdução ao Desenvolvimento para Dispositivos Móveis

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Computação II Orientação a Objetos

AULA 2. Minicurso PET-EE UFRN

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android

Programa Analítico de Disciplina INF311 Programação para dispositivos móveis

DESENVOLVIMENTO DE APLICATIVO PARA GERENCIAMENTO E ACOMPANHAMENTO DE ESCAVAÇÃO ARQUEOLÓGICA

Desenvolvimento de Aplicativos Android

Programação para Dispositivos Móveis

Professor: Rogério Benedito de Andrade. Formação:

Apresentação Introdução Ambiente de desenvolvimento Aplicativos. Minicurso Android. Dia 1. Adão Henrique R. Justo Filho UFC - DETI 16/10/2012

UTILIZAÇÃO DA BIBLIOTECA DIMEPSAT PARA ANDROID

AULA 3. Minicurso PET-EE UFRN

Escrito por Maicris Fernandes Qua, 08 de Maio de :00 - Última atualização Qui, 18 de Abril de :17

Computação II Orientação a Objetos

Computação II Orientação a Objetos

Ricardo R. Lecheta. Novatec

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Android Básico Hello World!

Desenvolvimento Android. Pontapé inicial...

Descrição geral do Android

Computação II Orientação a Objetos

Laboratório de Ciências Computação

Programação para dispositivos móveis. Cassio Diego cassiodiego.com/m

Usando e Gerenciando Activities

Índice. 1. Introdução Instalação: Eclipse e Android Primeira aplicação em Android... 11

Linguagens e Técnicas de Programação III Aula 01 Introdução ao Android

Retrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos

Paradigmas de Programação React Native

Introdução à Programação Android: LocationManager

Computação II Orientação a Objetos

5 Implementação 5.1 Plataforma 5.2 Arquitetura

Manual do Usuário Brother Meter Read Tool

Computação II Orientação a Objetos

Instalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Projeto GoHome Tutorial Sobre o serviço do Google Maps no Android

Ferramenta 1 -NetBeans 8.0

Configurando o Ambiente de Desenvolvimento Android Studio No Windows Antes de qualquer trabalho ser iniciado no desenvolvimento de uma aplicação

Instalação JDK 10/03/2017

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Prof: Ricardo Quintão Site:

Expectativa de respostas

Criando o primeiro projeto para entender a estrutura do app

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

Desenvolvendo aplicações Java

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

Computação II Orientação a Objetos

Tutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo)

Microsoft Office 365 Acesso ao , calendário e contatos

Campus Samambaia INFORMÁTICA PROFESSOR ALESSANDRO

[ Arquitecturas Móveis ] 2017/2018

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

2ª Edição Ricardo R. Lecheta

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 24/09/2010. Carlos Eugênio Torres Engenheiro de Informática

Computação II (MAB 225)

Tutorial: Configuração do CLP Citrino

Tutorial sobre Activity: Como carregar um fragmento do mapa para a tela do celular

Notification. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Software Básico. Silvio Fernandes Aula 15: Carregamento dinâmico

Computação II Orientação a Objetos

Android e Bancos de Dados

Linguagens de Domínio Específico

Desenvolvedor Android: Avançado. Plano de Estudo

Guia Rápido. Elgin L42-DT Impressora de etiquetas.

TUTORIAL DE INSTALAÇÃO DO AMBIENTE DE DESENVOLVIMENTO ANDROID NO UBUNTU

Informática. Backup do Windows. Professor Márcio Hunecke.

Passo-a-passo: como abrir os e-pubs sobre Astronomia

Continuação... Criando a Interface e adiante

Instalação Wiser Discovery Sistema Operacional Windows

Uso do PIN-Pad USB com o SCOPE Versão 1.0

Programação para Android

Prof: Ricardo Quintão Site:

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano

NOVIDADES DO JAVA PARA PROGRAMADORES C

Prof: Ricardo Quintão Site:

Administração Central Cetec Capacitações Capacitação Sistema Operacional Linux Semana IV

ESET Secure Authentication

SISTEMAS OPERACIONAIS

Prof. Msc. André Luís Duarte

Introdução à Informática

Informática I. Aula 2. Ementa

Transcrição:

Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java

Android Android é um sistema operacional para dispositivos móveis Kernel Linux, drivers e bibliotecas do sistema, frameworks de aplicação (Android Software Development Kit, Android Native Development Kit) e aplicações embutidas Aqui estaremos interessados no Android SDK, um framework para desenvolvimento de aplicações para Android na linguagem Java O sistema Android possui farta documentação

Arquitetura do SO Android

Java no Android O sistema Android não usa a implementação oficial de Java, mas a sua própria, um pouco atrás da versão 1.8 (a não ser na próxima versão do Android, a versão N) A maior parte das classes nos pacotes java.* e javax.* estão presentes Classes específicas do sistema Android estão nos pacotes android.*, e classes úteis para aplicações Android estão nos pacotes org.* Outras bibliotecas Java geralmente funcionam sem modificações, mas às vezes dependem de partes que não estão no Android, mesmo que possuam equivalentes

Android Studio O Android Studio é um ambiente de desenvolvimento para Android que junta todo o necessário para desenvolver em Android: O Android SDK O emulador Android e uma imagem para o emulador Um ambiente integrado de desenvolvimento Baixe o instalador Windows nesse link (cerca de 1Gb!)

Hello, Android Vamos criar e rodar uma aplicação Uma aplicação Android já vem com muita estrutura, pois ela está inserida em um framework bastante complexo Ela já está separada em um controlador (a classe principal) e uma visão (descrita em arquivos XML), e mesmo algumas partes que formam um modelo bem simples (no arquivo strings.xml) Para rodar essa aplicação, primeiro precisamos criar um dispositivo virtual no emulador (ou conectar um dispositivo real via USB)

Componentes de uma App Android Atividades (Activities) Serviços (Services) Comunicadores (Broadcastreceivers) Provedores de Conteúdo (Content Providers) Recursos (Resources) O sistema Android instancia os componentes sob demanda, e cada um deles tem seu propósito e API

Recursos Recursos são metadados usados pela aplicação Strings, layouts, imagens, menus, animações... Poderiam ser todos instanciados por código Java, mas usar arquivos de recursos deixa as aplicações mais flexíveis e configuráveis Normalmente recursos são descritos em arquivos XML Exemplo: internacionalização

XML Um formato para descrever dados Um arquivo XML é um conjunto de blocos, onde cada bloco é delimitado por uma tag de abertura e uma tag de fechamento Uma tag de abertura é composta por <, o nome da tag, os atributos, e >, enquanto uma tag de fechamento é </, o nome da tag, e > Cada atributo é composto do nome do atributo, o operador =, e o valor do atributo

Strings Strings são tipicamente usadas para configurar o idioma da aplicação Descritas em um arquivo strings.xml, com blocos do tipo: <string name="hello_world">olá, Android!</string> Podem ter tags <b>, <i> e <u> para formatação Referenciadas por outros recursos com @string/hello_world ou em código Java por R.string.hello_world

Layouts Layouts são descrições dos componentes visuais que formam as telas da aplicação Eles estão arquivos XML em res/layout, e contêm um bloco XML com uma das tags de layout possíveis; dentro desse bloco colocamos outros blocos com tags dos componentes que queremos No HelloAndroid, o layout está nos arquivos activity_hello.xml e content_hello.xml, e podemos referenciar esses layouts com @layout/content_hello em um recurso, ou R.layout.content_hello em código Java

LinearLayout e CoordinatorLayout LinearLayout é o tipo de layout mais simples Distribui seus componentes em sequência (por isso o nome), ou na vertical ou na horizontal (atributo android:orientation) Pode conter outros LinearLayouts! CoordinatorLayout é o tipo default de layout padrão, e permite que partes dele afetem outras partes (veja esse post) Layouts são componentes (views) como quaisquer outros

AndroidManifest O manifesto da aplicação descreve os atributos gerais da aplicação: Nome, versão e ícone Atividade principal da aplicação, e seus outros componentes Versão mínima do Android que ela precisa Permissões (câmera, internet, contatos, etc.)

Atividades Uma atividade é uma subclasse da classe abstrata Activity, e representa uma ação do usuário, e sua interface gráfica O método principal que uma atividade deve implementar é o oncreate, onde ela: Restaura o seu estado Diz qual a visão que ela vai exibir Inicializa os componentes da interface, e liga seus eventos a ações

Calculadora Android Como exemplo de uma aplicação Android um pouco mais complexa que Hello, World, vamos construir uma calculadora como a do laboratório O modelo que vamos usar é exatamente o mesmo, já que ele não depende de nenhuma classe que não está presente no sistema Android Para a visão e o controlador, vamos usar os componentes embutidos do sistema Android: atividades, listeners e views

Layout de Tabela Nossa calculadora tem um display e dezesseis botões organizados em fileiras de quatro Uma maneira natural de organizar esses componentes é como uma tabela de quatro colunas e cinco linhas, onde o display ocupa toda a primeira linha O sistema Android tem um layout perfeito para isso: TableLayout Cada linha da tabela é um componente TableRow É mais fácil editar diretamente o XML do que usar o designer

Display Para o display, vamos usar uma TextView Não vamos usar um recurso para o texto do TextView, já que seu conteúdo vai mudar dinamicamente Para conectar a TextView com o modelo, precisamos de uma instância de ObservadorDisplay Usamos findviewbyid para obter a instância de TextView do display

Botões e Cliques Um clique (toque) no botão pode ser observado por um OnClickListener Usamos findviewbyid para cada botão, e registramos um listener para ele Podemos usar um listener diferente para cada botão Uma simplificação é reaproveitar o mesmo listener para os dígitos: o listener recebe o componente que foi clicado, podemos pegar o texto do botão e converter para um número para ter o dígito Uma vez que conectamos cada botão a um listener, a calculadora está funcionando, mas ainda não está completa!

Estado da Aplicação Em um computador, aplicações ficam abertas até o usuário fechá-las explicitamente No sistema Android, se uma aplicação não está mais em primeiro plano, o sistema pode decidir fechá-la para economizar memória Se o usuário volta para a aplicação, é como se ela estivesse sendo iniciada de novo Na nossa calculadora, isso implica que perdemos todo o estado atual dela

Salvando o Estado Quando o sistema fecha uma aplicação, ele dá uma chance para ela guardar toda a informação necessária para recriar o estado onde estava Isso é feito pelo método onsaveinstancestate de Activity Esse método recebe um objeto Bundle, onde a informação necessária deve ser armazenada Esse objeto é passado depois para o método oncreate, quando a aplicação é reiniciada Podemos guardar nele informação para recriar o modelo da calculadora

Serialização Podemos recriar o estado da calculadora só a partir de dados primitivos, com alguma mágica Class.forName( Nome ).getconstructor(...).newinstance(...) Uma alternativa é serializar todo o modelo, empacotando todos os seus objetos em uma representação que permite depois reconstruí-los Para marcar um objeto como serializável, precisamos implementar a interface Serializable Essa interface não tem métodos; o trabalho todo é feito pelo sistema Java