Programação para Dispositivos Móveis



Documentos relacionados
INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

API's e Aplicações para Android

Programação para Android. Aula 06: Activity, menus e action bar

Android: Ciclo de vida da Activity

Programação para Dispositivos Móveis. Activities

Prof. Jhonatan Fernando

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis

Engenharia de Software III

BACKUP ONLINE LINHA OFFICE

Android Básico Hello World!

Computação II Orientação a Objetos

Google Android. Intents

EA998/MC933 Guido Araujo e Sandro Rigo

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

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

Sistemas Operacionais

OneDrive: saiba como usar a nuvem da Microsoft

Processos e Threads (partes I e II)

GUIA DE INSTALAÇÃO TOOLBOX.

Desenvolvimento de um aplicativo básico usando o Google Android

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

Desenvolvimento de aplicações na plataforma Google Android

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

MANUAL MIKOGO 1. VISÃO GERAL

GUIA INTEGRA SERVICES E STATUS MONITOR

Usar o Office 365 em seu telefone Android

SISTEMAS OPERACIONAIS

IMPORTAÇÃO DE CTe Conhecimento de Transporte Eletrônico - PARA O SISTEMA CONSISANET. Parametrização de CFOP e TIM para Importação de Dados

Desenvolvendo plugins WordPress usando Orientação a Objetos

Manual Sistema Mó vel Msys Cómercial

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

MANUAL BACKUP XDENTAL 2012

CONFIGURAÇÃO MINIMA EXIGIDA:

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

OCOMON PRIMEIROS PASSOS

Motorola Phone Tools. Início Rápido

MANUAL DE CONFIGURAÇÃO DO BACKUP

Manual SAGe Versão 1.2 (a partir da versão )

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Passo a Passo da instalação da VPN

Manual Rápido de Registro e Configuração do DJPDV

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho

Manual do Google agenda. criação e compartilhamento de agendas

Principais Novidades Abril/2013 a Junho/2013

WF Processos. Manual de Instruções

COMO INSTALAR O CATÁLOGO

Principais Ferramentas do Tidia-ae

2.0.0.X. Storage Client. TecnoSpeed. Tecnologia da Informação. Manual do Storage Client

RESTAURAÇÃO NO WINDOWS 8

Omega Tecnologia Manual Omega Hosting

Desenvolvimento de um aplicativo básico usando o Google Android

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

SSE 3.0 Guia Rápido Parametrizando o SISTEMA DE SECRETARIA Nesta Edição Configurando a Conexão com o Banco de Dados

Atenção! Não está autorizada a reprodução deste material. Direitos reservados a Multilaser.

Procedimentos para Reinstalação do Sisloc

Resolvendo problemas de conexão de rede wireless no pregão 83/2008

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

ANDROID APPLICATION PROJECT

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

4 O Workflow e a Máquina de Regras

1.6. Tratamento de Exceções

5 Mecanismo de seleção de componentes

Table of Contents. PowerPoint XP

Emissão de Nota Fiscal de Serviço Eletrônica

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Sistemas Distribuídos

Agendamento para Importação de Notas Fiscais

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

REFORMULAÇÃO SITE ARCA BRASIL

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

Tutorial Instalação Dual Boot Ubuntu e Windows XP Virtualização com VirtualBox

Arquitetura de Rede de Computadores

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Manual Administrador - Mídia System

Primeiros passos das Planilhas de Obra v2.6

Capítulo 04: Persistência com SQLite

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

10 DICAS PARA TURBINAR SEU PACOTE DE DADOS. 1 - Desative os Dados do Celular. 2 Remova as notificações e atualizações automáticas

2 echo "PHP e outros.";

O sistema que completa sua empresa Roteiro de Instalação (rev ) Página 1

GUIA BÁSICO DA SALA VIRTUAL

Introdução ao Android

Introdução ao Tableau Server 7.0

Desenvolvimento Android. Pontapé inicial...

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

Usar o Office 365 no iphone ou ipad

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

Sistemas Operacionais

Manual de Atualização Versão

Manual de Utilização COPAMAIL. Zimbra Versão 8.0.2

Transcrição:

Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 04 Anatomia de uma aplicação Android Dalton Martins dmartins@gmail.com São Paulo, Fevereiro, 2012 24/02/12

Anatomia de uma aplicação Android Desenvolver uma aplicação para Android envolve termos um bom conhecimento de como funciona sua arquitetura; É fundamental, pois será a partir dela que conseguiremos organizar e projetar nossas aplicações; Hoje, veremos os blocos de construção dessa arquitetura, seu papel, função e modo de organização.

Entendendo a terminologia Android Context: é o centro de comando central de uma aplicação. Todas as funcionalidades específicas de uma aplicação são referenciadas a partir de um contexto; Activity: Uma aplicação Android consiste numa coleção de tarefas, sendo que cada uma é chamada de Atividade. Cada atividade tem um único propósio; Intent: É um mecanismo assíncrono para facilitar a troca de mensagens entre atividades. Funciona como uma declaração de intenção de se fazer algo; Service: Os serviçõs são tarefas que não requerem interação com usuário.

Usando o Contexto da Aplicação O Context é o local central para todas as funcionalidades de alto nível de uma aplicação; A classe Context pode ser usada para gerenciar detalhes das configurações específicas de uma aplicação, assim como as operações e dados; Usaremos o Context para acessar configurações e recursos compartilhados entre diversas instâncias de Activity (atividades);

Usando o Contexto da Aplicação Recuperando o Context da aplicação: Context context = getapplicationcontext(); Após recuperar um contexto válido da aplicação, pode ser utilizado para acesso as suas funcionalidades e serviços; Podemos recuperar recursos de uma aplicação usando o método getresources(); Podemos recuperar as preferências compartilhadas de uma aplicação com a classe SharedPreferences(), que pode ser utilizada para salvar dados simples de uma aplicação, como suas configurações; O melhor modo de recuperar um recurso é utilizando seu identificador, um número único criado dentro da classe R.java. Ex: String teste = getresources().getstring(r.string.hello);

Usando o Contexto da Aplicação Outras coisas que podemos fazer a partir de um Context de uma aplicação: Lançar uma instância de Activity (será um de nossos usos mais comuns); Recuperar dados encapsulados na aplicação; Requisitar um serviço do sistema, tal como georeferenciamento; Gerenciar arquivos privados da aplicação, diretórios e bancos de dados; Inspecionar e garantir permissões da aplicação.

Executando tarefas com as Activities A classe Activity é o núcleo de um aplicação Android; Muito de nosso tempo passaremos definindo e implementando uma classe Activity para cada uma das telas de nossa aplicação; Vejamos um exemplo: Um jogo possui 5 telas e, logo, 5 Activities para organizar seu funcionamento: A tela de entrada: ponto de entrada primário da aplicação; O menu principal: essa atividade funciona como interface para o usuário acessar as principais atividades da aplicação; A tela do jogo: é onde a interatividade do jogo ocorre; A tela de pontuação: é onde aparem os pontos após cada rodada; A tela de ajuda: é onde aparecem informações sobre jogar e sobre a aplicação.

Exemplo de estrutura da Aplicação Atividade de Entrada Atividade do Menu Principal Atividade de Pontuação Atividade de Interação Atividade de Ajuda

O ciclo de vida de uma Activity Aplicações podem rodar como processos em background, ou mesmo serem interrompidas ou serem colocadas em estado de espera quanto um evento do tipo o telefone tocar ocorrer; Somente pode haver uma atividade visível para o usuário por vez; O sistema operacional do Android monta uma pilha de atividades em operação. Quando uma nova atividade inicia, a atividade que estava no topo da pilha entra em espera e a nova atividade vai para o topo da pilha. Quando a atividade finaliza, ela é removida da pilha e a atividade prévia é ativada.

O ciclo de vida de uma Activity É de responsabilidade da aplicação gerenciar seu estado, sua memória, recursos dados. Isso significa que nós devemos colocar atividades em espera e torná-las ativas novamente.

Activities callbacks: gerenciando o estado e os recursos de uma aplicação No ciclo de vida de um Activity, temos diferentes estados que um programador deve conhecer para poder controlá-los: OnCreate (Bundle savedinstancestate); onstart(); onrestart(); onresume(); onpause(); onstop(); ondestroy().

Entendendo cada um dos métodos oncreate tem um único parâmetro, o Bundle, que será nulo se estivermos criando uma nova atividade. Se a atividade foi morta pelo sistema e agora reiniciada, o Bundle contém o seu estado prévio. É adequado configurarmos o layout da tela e conexão com dados neste método. Será aqui que faremos muitas vezes a chamada a setcontentview();

Entendendo cada um dos métodos onresume Quando uma atividade atinge novamente o topo da pilha e sai do background para se tornar a atividade ativa, este método é chamado. Ainda que a atividade não esteja visível, ele é o lugar apropriado para recuperar os recursos que a atividade precisa para rodar. É o lugar adequado para iniciar vídeos, músicas e animações.

Entendendo cada um dos métodos onpause() Quando uma nova atividade é realocada para ser a atividade principal, a atividade em execução é colocada em estado de espera. Aqui é onde devemos parar qualquer vídeo, música ou animação que foi iniciada pela aplicação. É também aqui a última chance que temos de liberar qualquer recurso inútil a aplicação enquanto ela estiver em estado de espera. O que é fundamental é tudo o que seja feito aqui seja feito de modo rápido para não travar próximas atividades que desejam entrar no topo da pilha.

Entendendo cada um dos métodos Sob condições extremas de memória e bateria, o sistema Android pode decidir matar alguma atividade que esteja na pilha aguardando para ser colocada em execução. Ou seja, qualquer atividade pode desaparecer! Se uma atividade é morta depois de onpause(), os métodos, os métodos onstop() e ondestroy() não podem ser chamados. Por isso, quanto menos recursos uma atividade consumir em estado de espera, menor suas chances de ser morta pelo sistema. A atividade não desaparece da pilha. O estado da atividade é salvo em seu Bundle, se ele for implementado o método onsaveinstancestate().

Entendendo cada um dos métodos Se uma atividade é vulnerável a ser morta pelo Android, a Atividade pode salvar suas informações de estado no seu objeto Bundle. Isso pode ser feito usando onsaveinstancestate(); Porém, nem sempre é garantido. Logo, vale salvar qualquer dado fundamental no método onpause(); Quando a atividade é reiniciada, o Bundle é passado para o método oncreate, permitindo a atividade voltar ao seu estado anterior. Podemos também recuperar o Bundle no método onstart() usando o método onrestoreinstacestate().

Entendendo cada um dos métodos OnDestroy() pode ser chamado de dois modos possíveis: Quando a atividade é finalizada; Quando o sistema Android precisa finalizar uma atividade por falta de recursos.

Gerenciando transições de atividades com Intents Ao longo do ciclo de vida de uma aplicação, um usuário transita por diferentes atividades; Podemos iniciar atividades de vários modos: Definindo pontos de entrada no arquivo AndroidManifest.xml; Usar o contexto da aplicação para iniciar uma atividade. Para isso, usamos o método startactivity(), que deve ser parametrizado com uma Intent Uma intent é um mecanismo de mensagem assíncrono utilizado pelo sistema Android para compatibilizar uma ação com uma atividade específica ou um serviço. Ex. startactivity(new Intent(getApplicationContext(), MyDrawActivity.class)); Podemos usar o Intent para passar dados entre uma atividade e outra.

Criando Intents com ações e dados Intents não precisam especificar um componente ou classe explicitamente para ser inicializada; Podemos criar uma espécie de filtro Intent registrá-lo no arquivo AndroidManifest.xml; O Android vai buscar qual atividade deve ser lançada com base no filtro escolhido; Sabendo que uma Intent tem que receber, por sua sintaxe um par de ação/dado, vejamos o exemplo a seguir...

Criando Intents com ações e dados O exemplo mostra como uma atividade pode chamar uma atividade de outra aplicação: Uri numero = Uri.parse(tel:30999999); Intent ligar = new Intent(Intent.ACTION_DIAL, numero); startactivity(ligar); Uma lista de filtros prontos do Google: http://developer.android.com/guide/appendix/g-app-intents.html