Expectativa de respostas

Documentos relacionados
Usando e Gerenciando Activities

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

Introdução ao Desenvolvimento para Dispositivos Móveis

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

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Desenvolvimento de um aplicativo básico usando o Google Android

API's e Aplicações para Android

Android. Interfaces: widgets

Desenvolvimento de um aplicativo básico usando o Google Android

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis. Activities

Aplicações que executam, em geral, processos longos em background desprovidos de interface. Usado para executar tarefas em segundo plano

Curso online de Fundamentos em Android. Plano de Estudo

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

Prof: Ricardo Quintão Site:

Programação para Dispositivos Móveis

Android: Ciclo de vida da Activity

Curso Online de E-commerce. Plano de Estudo

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Computação II Orientação a Objetos

6 Resultados experimentais

Curso GeneXus - Deploying. Veremos a seguir os detalhes de como colocar em Produção e Publicar aplicativos para Smart Devices.

Curso online de Aplicações. Híbridas. Plano de Estudo

Desenvolvimento Web II

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

Engenharia de Software

PADRÃO DE RESPOSTA DAS QUESTÕES DISCURSIVAS ANÁLISE DE SISTEMAS - DESENVOLVIMENTO

Sistemas Distribuídos Capítulo 3 - Aula 3

Processos ca 3 pítulo

TÉCNICO EM INFORMÁTICA

Prof. Jhonatan Fernando

Marcela Mariotti Peres Arquitetura em três camadas Parte 1 [conceito]

AULA 1 INTRODUÇÃO AO JAVA

Manual de instalação, configuração e utilização do Enviador XML

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

Aplicações com Banco de Dados e Cliente-Servidor

Arquitetura de Serviços na Embrapa, viabilização da integração de informações eletrônicas de UDs e UCs. 12 de agosto de 2014 Fernando Chagas Santos

Prof: Ricardo Quintão Site:

Geração Automática de Código Android Eficiente a partir de Modelos UML

DISPOSITIVOS MÓVEIS. Vantagens: Acesso à rede e a s; Acesso à nuvem; Aplicativos personalizados para empresas.

Programação para Dispositivos Móveis

EA998/MC933 Guido Araujo e Sandro Rigo

Trabalho Final de SISTEMAS INTEGRADOS DE MANUFATURA

Apps na prática 1 Aviso Legal: Este material foi produzido e desenvolvido pela Fábrica de Aplicativos S.A para o curso presencial e online.

O Terminal Server nos fornece a possibilidade de vários usuários utilizarem o mesmo sistema ao mesmo tempo.

PROVA 03/07 Segunda-feira (semana que vem)

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Introdução ao Desenvolvimento de

5 Arquitetura de implementação

Dispositivos Móveis. Trabalho apresentado na disciplina Tópicos Avançados Profª Andrea Padovan Jubileu. Káthia Nogima, 6º semestre

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO

Rede de computadores Cliente- servidor. Professor Carlos Muniz

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

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

Desenvolvedor Android: Avançado. Plano de Estudo

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

Comentários: Desenvolvimento de Sistemas Rogério Araújo

Tutorial de Manipulação de dados com SQLite

CLIPPING SERVICE. Clipping Service 2014 Todos direitos reservados

[ Arquitecturas Móveis ] 2017/2018

Protocolos e Serviços de Redes

Plano de Trabalho Docente 2017 Ensino Técnico

Android DEFINIÇÕES E CICLO DE VIDA. Prof. Dr. Joaquim assunção.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Aula 2: Arquitetura em Três Camadas e APIs

Sistemas Distribuídos

REDES DE COMPUTADORES

Objetos e Componentes Distribuídos: EJB

Visões Arquiteturais. Visões Arquiteturais

Vamos fazer um pequeno experimento

GERADOR DE INTERFACES GRÁFICAS PARA IOS GABRIEL SEBASTIAN RAMIREZ JOYCE MARTINS

Arquiteturas. capítulo

Camada de Aplicação da Arquitetura TCP/IP

APOSTILA 1 - TUTORIA SISTEMAS OPERACIONAIS

ROTEIRO METADADOS ATUALIZAÇÃO DO SIRH METADADOS

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

SOFTWARE DE APOIO A GESTÃO DE SOLICITAÇÃO DE MUDANÇAS

Redes de Computadores

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO WEB E MOBILE

Informática. Cloud Computing e Storage. Professor Márcio Hunecke.

2 Conceitos. 2.1 Sistema Multiagentes Abertos e Abordagens de Leis

Sistemas Distribuídos

Voice Recognition. Carlos Damasceno Francisco Lima Luckas Santos Perichdey Leitão Wellyson Melo. DIE - UFPI Teresina PI Brasil

Capítulo 02: Cadastro de Alunos

Tutorial sobre o uso da ferramenta de autoria A Ferramenta de Autoria - Célula

Protocolos e Serviços de Redes

2

Java TM Applets. Java Deployment Course: Aula 3. por Jorge H. C. Fernandes DI-UFPE 30 de Abril de 1999

Introdução ao GAM. Agora queremos aumentar a Segurança da aplicação, tanto na parte web como a de Smart Device. Page1

Guia de instalação. Configuração necessária Instalação e ativação - 1 -

Ângelo Lovatto Éderson Ferreira Taiane Ramos

Universidade Federal do Paraná

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Transcrição:

Expectativa de respostas Prova Objetiva Questão Resposta 1 A 2 A 3 C 4 B 5 B 6 ANULADA 7 A 8 D 9 A 10 C 11 B 12 ANULADA 13 C 14 D 15 B 16 B 17 ANULADA 18 C 19 C 20 C Prova Discursiva 1. Explique cada um dos diferentes métodos do ciclo de vida de uma Activity e comente sobre o uso dos mesmos. Como expectativa de resposta, o candidato deve indicar que para a plataforma Android, uma Activity representa um estado da aplicação em um dado instante, durante sua execução. Desta forma, o ciclo de vida de uma Activity corresponde aos possíveis estados de uma aplicação, e como são feitas as transições entre estes estados. Uma representação clássica para este ciclo de vida é através de uma máquina de estados finitos, como apresentada na Figura a seguir.

1. No caso em questão, cada estado é representado por um método particular da classe Activity. São eles: oncreate(), onstart(), onresume(), onpause(), onstop(), onrestart() e ondestroy(). A seguir, cada estado/método é detalhado: 2. oncreate(bundle): Método obrigatório e é chamado uma única vez, quando um Activity é iniciada. Geralmente é a responsável por carregar os layouts XML e outras operações de inicialização, além de definir uma View, que constrói a interface na tela. Após a chamada do método oncreate(bundle), o método onstart() é chamando para iniciar o ciclo de vida da Activity. 3. onstart(): É chamado quando a Activity fica visível ao usuário (chamado também de receber o foco) e já possui uma View. 4. onrestart(): Este método é chamando quando uma Activity foi parada temporariamente e está sendo reiniciada. O método onrestart() chama o método onstart() automaticamente. 5. onresume(): Representa o estado de que a Activity vai para execução, sendo chamado sempre depois do método onstart().

6. onpause(): método chamado caso algum evento ocorra e precise interromper a execução da Activity, como por exemplo, o celular entrar em espera para economizar energia. Este método salva o estado da Activity para que possa ser recuperado no método onresume(). 7. onstop(): Este método é chamado quando a Activity está sendo encerrada, e não está mais sendo visível ao usuário, sendo que pode ocorrer quando outra Activity está sendo iniciada. Depois de parada, a Activity pode ser reiniciada com o método onrestart(). 8. ondestroy(): Este, literalmente encerra a execução de uma Activity. Este método pode ser chamado pelo próprio Android, para liberar recursos ou pelo método finish() da classe Activity. 2. Em relação aos quatro tipos de componentes do Android, explique o que eles são, para quê servem e como implementá-los. Nessa questão o candidato deve citar os 4 tipos de componentes do Android: Activites, Services, Content Providers e Broadcast Receivers. Além disso ele deve explicar (i) o que cada um deles representa numa aplicação android, (ii) para que eles servem e (iii) como implementa-los. Ao descrever o que eles representam (ou o que são, conforme o texto da questão), é vital que seja descrito conceitualmente o que é o componente. Para efeito de correção, pode-se tomar por base que: 1. Activities devem ser descritas como representam uma única tela com uma interface de usuário ; 2. Services devem ser definidos como componentes que são executados em segundo plano para executar operações de longa duração ou para realizar tarefas para processos remotos. 3. Content Provider deve ser descrito como responsável por gerenciar um conjunto compartilhado de dados do aplicativo. 4. Broadcast Receiver deve ser descrito como o componente que responde às mensagens de Broadcast do sistema. No quesito para o que eles servem é desejável que seja usado um exemplo para descrever um uso de cada componente. No quesito como implementa-los, é preciso descrever o código para implementar cada uma das componentes: Para as Activities é preciso descrever que são criadas por herança; que métodos importantes (como oncreate) devem ser sobrescritos; que as mesmas devem ser declaradas no arquivo de manifest; e por fim falar sobre o uso de Intents; Sobre Services é preciso falar sobre os métodos que devem ser sobrescritos (onstartcommand e onbind) e como eles se relacionam com o estado do serviço. É importante falar sobre como executar um serviço no plano de fundo (citando o metodo startforeground()); Sobre ContentProvider é preciso citar o métodos que devem ser implementados: query(), insert(), update(), delete(), gettype() e oncreate(), visto que a classe pai é abstrata.

Um BroadcastReceiver é implementado como uma sub-classe da classe BroadcastReceiver, e cada mensagem de broadcast é distribuída como um objeto Intent. 3. Explique as diferentes maneiras de se comunicar com um servidor a partir do Android. Além disso, avalie cada uma das abordagens, apontando vantagens e desvantagens das mesmas. A resposta deverá contemplar ao menos 3 maneiras de se comunicar com um servidor a partir do Android. SOCKETS Vantagem: possibilidade de se comunicar com qualquer servidor através de TCP. Maior controle sobre a conexão. Desvantagem: Implementação manual do protocolo de comunicação utilizado. Necessidade de gerenciamento da conexão, incluíndo processamento de mensagens (streams) enviadas/recebidas, e tratamento de erros. Maior complexidade do código. HTTP (Webview) A aplicação se utiliza do protocolo HTTP e comunica-se o servidor como se estivesse acessando uma página HTML. Vantagem: Facilidade de uso (devido ao HTTP). Desvantagem: Pouco controle. A aplicação exibirá páginas HTML fornecidas pelo servidor. Serviços WEB (SOAP/REST) Vantagem: Especificação com protocolo bem definido. Simplicidade de utilização. Baseado no protocolo HTTP. Desvantagens: Dificuldade de encontrar bibliotecas que implementem a especificação para Android (SOAP). Overhead no processamento das mensagens SOAP. 4. Explique quais são as possíveis formas de monetização de aplicações móveis, ressaltando as vantagens e desvantagens de cada uma delas. O candidato deve citar as seguintes formas de monetização para aplicações móveis: Venda direta Neste modelo, o desenvolvedor cobra um valor único pela licença de uso de uma aplicação. Tipicamente isso é feito por meio das lojas virtuais existentes nas principais plataformas (Apple Store, Play Store, Marketplace). O lucro é imediato, mas em geral não duradouro. Usuários também apresentam resistência em comprar algo, sem prévio conhecimento, antes de testá-lo, por exemplo. Pirataria também pode ser considerado um problema. Freemium Neste modular bastante popular, a ideia é distribuir seu aplicativo com a funcionalidade mínima de

graça e cobrar do usuário uma funcionalidade estendida. Um exemplo seria o jogo Candy Crush, onde caso o usuário que um pacote de poderes ou novos recursos, ele é cobrado. O lucro não é imediato, mas a possibilidade de ganhos é alta. Este modelo, junto com propaganda, tem se mostrado o mais lucrativo. Propaganda O uso de propaganda é um forma comum de se obter recursos em aplicações móveis. Em geral, usuários trocam a gratuidade de aplicações por anúncios que são periodicamente apresentados durante o uso da aplicação. Apesar de seu potencial, para maiores receitas é necessário um número razoável de usuários. Como desvantagem adicional, há a insatisfação dos usuários pela publicidade durante uso da aplicação. Venda/Assinatura de Serviços Um quarto modelo é aquele em que a aplicação móvel necessita de recursos remotos que são oferecidos apenas através de uma tarifação (tipicamente uma mensalidade). Há necessidade de manter uma infraestrutura servidora para os serviços.