Buscar

Exercicios

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução ao desenvolvimento para dispositivos 
móveis 
1. Para que um dispositivo seja considerado móvel, ele deve ter uma série de 
características, como a capacidade de operar de forma fácil e eficaz, as funcionalidades 
disponíveis nele, as opções flexíveis de conexão e troca dados e a funcionalidade de se 
deslocar junto do usuário. Das opções disponíveis, indique a que representa um dispositivo 
móvel. 
Você acertou! 
D. Smartphone. 
Smartphone é um dispositivo móvel dos mais utilizados na atualidade, sendo que a principal 
característica que o diferencia das demais opções é a capacidade de mobilidade. 
Televisor smart, refrigerador inteligente, computador do tipo PC e impressora WiFi, são 
dispositivos com muitas características similares às do smartphone, tendo, inclusive, muitas 
funcionalidades idênticas, como conectividade e possibilidade de execução de aplicativos 
(visto que muitos incorporam o mesmo sistema operacional com versões direcionadas a esses 
tipos de dispositivos), porém não têm a funcionalidade de mobilidade o que os 
descaracterizam como dispositivos móveis. 
 
2. O sistema operacional dos dispositivos móveis é um componente fundamental. Cada 
sistema operacional tem suas funcionalidades e características, sendo que essas diferenças 
influenciam o dispositivo em diversos sentidos, como usabilidade e disponibilidade de 
recursos. Indique qual das opções representa um sistema operacional móvel, ainda em uso 
na atualidade. 
Você acertou! 
A. iOS. 
O iOS é um sistema operacional desenvolvido pela Apple para integrar seus dispositivos 
móveis. Symbian OS e o Windows Phone são sistemas operacionais desenvolvidos pela Nokia 
e pela Microsoft, respectivamente, mas foram descontinuados pelos seus fabricantes. Ubuntu 
Server é um sistema operacional voltado a utilização em servidores, já o Windows 98 é um 
sistema operacional voltado a computadores do tipo PC, porém chegou a ser utilizado 
em laptops, mas já não é mais comercializado pela sua fabricante, a Microsoft. 
3. Segundo Lee, Schneider e Schell (2005), uma das características mais importantes de um 
dispositivo móvel é a usabilidade, que se caracteriza pela capacidade de ser utilizado por 
diversos usuários, em diversos ambientes. Essa usabilidade pode ser afetada por diversas 
características, seja dos usuários, do ambiente ou do próprio dispositivo. Qual opção indica 
uma característica relacionada ao usuário? 
Você acertou! 
D. Tamanho e força. 
O tamanho e a força de um usuário podem afetar a usabilidade do dispositivo, visto que um 
usuário adulto pode facilmente carregar um notebook, mas este pode ser pesado demais para 
um usuário com uma idade menor. Condições de tempo afetam a usabilidade dos dispositivos 
móveis, mas são relacionadas ao seu ambiente de utilização. Já o tempo de inicialização, a tela 
sensível ao toque e a resistência a impactos são características relacionadas ao dispositivo, 
que, por sua vez, afetam a usabilidade também. 
4. A fragmentação de um sistema operacional se caracteriza pela distribuição da utilização 
de diversas versões desse sistema, sendo a maioria dessas versões já defasadas. Indique 
qual das opções representa um benefício da fragmentação de um sistema operacional 
móvel. 
Você acertou! 
E. Maior vida útil do dispositivo. 
Maior vida útil do dispositivo é uma das principais características da fragmentação dos 
sistemas operacionais, visto que as atualizações disponibilizadas pelos fabricantes são 
pontuais para resolver problemas nos dispositivos, mantendo sua usabilidade adequada. 
Sistema desatualizado e segurança comprometida também são características dos sistemas 
operacionais fragmentados, mas não são benefícios, pelo contrário, são aspectos negativos. 
Atualizações constantes são características de sistemas pouco fragmentados, assim como a 
possibilidade de apresentar lentidão após a atualização. 
5. O mercado de dispositivos móveis não é novo, mas cresce muito a cada ano com uma 
concorrência acirrada, seja entre os fabricantes de dispositivos móveis ou entre os 
fabricantes de sistemas operacionais. Dentre as opções a seguir, indique a que apresenta 
um benefício gerado pela concorrência. 
Você acertou! 
D. Rápido ciclo de inovação. 
Rápido ciclo de inovação é um dos grandes benefícios gerados pela concorrência, dessa forma, 
cada vez mais surgem dispositivos com melhores recursos disponíveis, para solucionar as mais 
diversas necessidades. Alta dos preços só ocorre em situações em que não existem 
concorrentes em um nicho. Novas oportunidades para os desenvolvedores surgem a cada dia, 
em virtude da ferrenha concorrência em que cada empresa quer lançar primeiro o aplicativo 
inovador. Dispositivos e aplicações são cada vez mais inovadoras, visto que ao se manterem 
conservadoras perdem mercado, sendo este sedento por novidades que os concorrentes 
tentam suprir. 
 
Projeto de software para dispositivos móveis 
 
1. Para desenvolver softwares móveis de qualidade, deve-se analisar os diferentes contextos 
da aplicação, suas interações, sua usabilidade, a privacidade e a segurança. Para isso, testes 
devem ser realizados, como, por exemplo, o funcional, que busca conferir: 
Você acertou! 
B. a implementação e o funcionamento de todos os requisitos, que devem corresponder 
ao esperado. 
O teste funcional visa certificar que todos os requisitos foram implementados e funcionam da 
maneira que deveriam. Para eliminar lentidão, teste de desempenho deve ser realizado. Para 
verificar a experiência do usuário, testes de usabilidades devem ser feitos. Testes de 
mobilidade e compatibilidade visam garantir que os aplicativos se conectem a diferentes redes 
e interajam com diferentes hardwares. 
2. O desenvolvimento de softwares móveis apresenta peculiaridades em relação a softwares 
desktops, por exemplo. Qual das dificuldades técnicas no desenvolvimento não 
compreende o desenvolvimento móvel? 
Você acertou! 
D. Ciclos de desenvolvimento longos. 
No desenvolvimento de software móveis, os ciclos de desenvolvimento tendem a ser curtos. 
 
3. No projeto de desenvolvimento de softwares móveis, uma das atividades importantes é 
projetar as interfaces. Os projetos de interfaces podem ser feitos à mão ou com ferramentas 
de software. Para um protótipo de tela com alta fidedignidade, uma ferramenta indicada é: 
Você acertou! 
A. Figma. 
O Figma é uma ferramenta online e colaborativa para desenvolvimento de protótipos de alta 
fidedignidade. 
4. Existem várias regras para o desenvolvimento de aplicativos móveis e de aplicativos 
em determinadas plataformas como iOS e Android. Essa variedade, às vezes, dificulta a 
publicação do seu software em uma Store. É uma boa prática no desenvolvimento: 
Você acertou! 
E. serem os rótulos de widget de fácil reconhecimento e de tamanho adequado. 
Os rótulos devem ser limpos e coerentes: os rótulos de widget devem ser de fácil 
reconhecimento e de tamanho adequado. Evite rótulos com textos grandes e use abreviações 
com cautela. 
5. O projeto de desenvolvimento de software pode ser descrito em seis fases: formulação, 
planejamento, análise, engenharia, implementações e testes e, por fim, avaliação do 
usuário. A fase de engenharia envolve: 
Você acertou! 
E. analisar o projeto de interface, de arquitetura, navegação e conteúdo. 
As seis fases descritas são as seguintes: 
Formulação: envolve projeto arquitetural, projeto de navegação; as metas, os recursos e as 
funções do aplicativo móvel. 
Planejamento: visa elucidar os custos envolvidos e os riscos que o projeto possui. 
Análise: visa à especificação dos requisitos do software móvel e dos conteúdos necessários. 
A fase de engenharia: envolve a análise do projeto de interface, de arquitetura, navegação e 
conteúdo. 
A fase de implementação e testes: realizam-se a codificação e testes. 
Por fim, a avaliação do usuário, que visa garantir a usabilidade e a acessibilidade. 
 
Design de interação para aplicações móveis 
 
1. Google e Apple disponibilizam guias de recomendaçõespara os desenvolvedores de 
aplicativos nessas plataformas. Essas diretrizes, ou guidelines, servem como referência para 
o design de aplicativos. 
Sobre as diretrizes de guidelines das plataformas Android e iOS, analise as afirmações a 
seguir: 
I. Segundo o guia do desenvolvedor Android, os usuários de aplicativos desta plataforma têm 
uma expectativa alta em relação à aparência e ao comportamento. Por isso, é necessário que 
os desenvolvedores sigam somente as diretrizes relacionadas aos padrões visuais e de 
navegação. 
II. No guia de desenvolvimento do iOS, um designer de aplicativo tem a possibilidade de 
oferecer um produto extraordinário, que estará no topo dos gráficos da App Store, mas, para 
isso, é preciso atender às altas expectativas de qualidade e funcionalidade. 
III. Para a Apple, três temas principais diferenciam a plataforma iOS de outras: clareza, 
deferência e profundidade. 
É correto apenas o que se afirma em: 
Você acertou! 
C. II e III. 
Segundo o guia do desenvolvedor Android, os usuários de aplicativos desta plataforma têm 
uma expectativa alta em relação à aparência e ao comportamento. Por isso, é necessário que 
os desenvolvedores sigam não somente as diretrizes relacionadas aos padrões visuais e de 
navegação, mas também as de qualidade para compatibilidade, desempenho, segurança e 
outros. Isso torna a afirmação I incorreta. No guia de desenvolvimento do iOS está escrito 
que, como designer de aplicativo, você tem a possibilidade de oferecer um produto 
extraordinário, que estará no topo dos gráficos da App Store, mas, para isso, é preciso atender 
às altas expectativas de qualidade e funcionalidade, o que torna a afirmação II correta. Para a 
Apple, três temas principais diferenciam a plataforma iOS de outras: clareza (em todo o 
sistema, o texto é legível em todos os tamanhos, os ícones são precisos e lúcidos, os adornos 
são sutis e apropriados); deferência (movimento fluido e uma interface nítida e bonita ajudam 
as pessoas a entenderem e a interagirem com o conteúdo sem nunca competirem com ele); e 
profundidade (camadas visuais distintas e movimento realista transmitem hierarquia e 
vitalidade e facilitam a compreensão). Portanto, a afirmação III também é correta. 
2. Segundo o próprio guia do desenvolvedor Android, os usuários de aplicativos nessa 
plataforma têm uma expectativa alta em relação à aparência e ao comportamento. Para 
isso, é necessário que os desenvolvedores sigam as diretrizes do guia. 
Assinale a alternativa que cita alguns exemplos dessas diretrizes. 
Você acertou! 
D. Usabilidade, animação e layout. 
Nos guias de desenvolvedores, as diretrizes citadas estão relacionadas a conceitos de 
usabilidade, animação, layout, padrão, estilo e componentes. Outras questões como 
economia, performance e integração, apesar de serem itens a considerar em um projeto de 
desenvolvimento, não fazem parte das diretrizes citadas nos guias. 
 
3. No guia de desenvolvimento do iOS, está escrito que, como designer de aplicativo, você 
tem a possibilidade de oferecer um produto extraordinário que estará no topo dos gráficos 
da App Store. Para isso, é preciso atender às altas expectativas de qualidade e 
funcionalidade. 
Para a Apple, três temas principais diferenciam a plataforma iOS de outras. Assinale a 
alternativa correta sobre os três temas. 
Você acertou! 
A. Clareza, deferência e profundidade. 
No guia de padrões para a interface de usuário disponibilizado pela Apple, são classificadas as 
diretrizes de padrões em três temas: clareza, deferência e profundidade. Os demais itens 
como layout, desempenho e animação, apesar de citados e envolvidos nos padrões de 
interface de usuário, não são classificados como temas. 
4. Um dos temas abordados pela Apple é o conceito de profundidade. 
Sobre esse conceito, assinale a alternativa que está correta de acordo com o descrito no guia 
da Apple. 
Você acertou! 
D. São camadas visuais distintas que transmitem vitalidade e facilitam a compreensão. 
É um conceito adotado há mais tempo pela Apple, estando diretamente ligado a facilitar a 
compreensão dos usuário e transmitir vitalidade. Esse conceito não tem relação com outros 
pontos, como o tamanho em 3D dos widgets, por exemplo ou com o alcance da execução de 
um comando. 
5. Segundo o guia do desenvolvedor Android, para fornecer aos usuários uma experiência 
mais familiar, é necessário usar os padrões mais comuns do guia. 
Assinale a alternativa correta sobre um dos padrões do guia. 
Você acertou! 
E. Mostrar e ocultar a navegação do seu aplicativo com a gaveta de navegação. 
Os padrões mais comuns citados no guia são ações relacionadas com: permitir a ação principal 
da sua interface com um botão de ação flutuante; mostrar a sua marca, navegação, pesquisa 
e outras ações com a barra de aplicativos; e mostrar e ocultar a navegação do seu aplicativo 
com a gaveta de navegação. 
Outros padrões, apesar de adotados em comunidades de desenvolvedores, como o 
reaproveitamento de bibliotecas e de código, não estão como os padrões comuns do guia. 
 
 
Publicando aplicações para Android e iOS 
 
1. Existem normas e regras que regulamentam a publicação de aplicativos na Apple App 
Store e na Google Play Store. Sobre essas normas, é correto afirmar que: 
Você acertou! 
C. as normas são baseadas em princípios próprios de cada companhia, além da legislação 
local de onde o aplicativo será distribuído. 
As normas são baseadas em princípios próprios de cada companhia que administra as app 
stores. Contudo, também sofrem influência da legislação local de cada país onde o aplicativo 
será distribuído. A legislação dos Estados Unidos da América pode até servir de base para a 
elaboração do documento em alguns aspectos, mas não é fator definitivo; o mesmo acontece 
com os princípios de direitos humanos. 
2. A publicação de aplicativos na Google Play Store e Apple App Store é regulada por 
diretrizes e normativas que visam tanto a questões de segurança como de experiência 
do usuário. Considerando as normativas da Google Play e da Apple App Store, é correto 
afirmar que: 
Você acertou! 
B. a Apple mantém uma política rígida de análise de desempenho de aplicações. 
A Apple mantém uma política de controle rígida sobre desempenho e estabilidade, realizando 
testes em cada aplicação submetida; a não conformidade resulta em rejeição da publicação 
do app. Para a Google, esse não é fator preponderante para a aceitação de aplicativos. 
3. Publicar uma aplicação nas lojas de aplicativos oficiais significa, necessariamente, estar 
em conformidade com as diretrizes de cada companhia. A esse respeito, é correto afirmar 
que: 
Você acertou! 
D. ambas as app stores apresentam normas explícitas que regulamentam o acesso a dados 
e o uso que se dará aos dados coletados. 
É explícito nas políticas de ambas as app stores oficiais que os recursos devem ser solicitados 
dentro dos critérios da razoabilidade; ou seja, que sejam necessários para o bom 
funcionamento da aplicação. Os dados coletados e a destinação deles devem ser deixados 
claros ao usuário na política de privacidade do aplicativo. Nos casos de jurisdições que 
apresentem leis específicas sobre o assunto, como o caso da União Europeia, tais leis são 
consideradas e devem ser seguidas caso o aplicativo seja disponibilizado nesses locais. 
4. Existem alguns requisitos que os desenvolvedores devem cumprir antes da publicação 
nas lojas de aplicativos. Sobre esses requisitos, é correto afirmar que: 
Você acertou! 
A. ambas as plataformas exigem conta de desenvolvedor paga e assinatura de contrato 
digital. 
Google e Apple exigem criação de conta de desenvolvedor paga e concordância com um 
contrato digital. Contudo, a assinatura da Google é paga apenas uma vez no momento 
da realização do cadastro; enquanto na Apple o valor é cobrado anualmente. Além disso, não 
há cobrança por publicação de aplicativos. 
5. 
O Ionic é um framework de desenvolvimento multiplataforma. Em resumo, a aplicação 
desenvolvida com o Ionic podeser executada em Android e em iOS. Sobre a geração do 
arquivo para publicação, é correto afirmar que: 
Você acertou! 
C. o Ionic gera o executável do Android via linha de comando e prepara o projeto do iOS 
que deve ser compilado via Xcode. 
Apesar do desenvolvimento via Ionic ser realizado por ferramentas de desenvolvimento web, 
é necessário compilar os aplicativos para os formatos originais de cada plataforma: iOS e 
Android. No caso do Android, tendo o SDK instalado na máquina, o próprio Ionic realiza a 
compilação e gera o arquivo publicável, não sendo necessária a utilização do Android Studio. 
Já no caso do iOS, o produto gerado pelo Ionic é um projeto Xcode; e a compilação para a 
plataforma da Apple é realizada pelo Xcode e não pelo Ionic. 
WebApps 
1. WebApps estão no mercado mobile para preencher uma lacuna deixada pelos aplicativos 
nativos de dispositivos móveis no que diz respeito à portabilidade e à facilidade de 
desenvolvimento. Sobre WebApps, site responsivo e aplicativos nativos, assinale a 
alternativa correta: 
Você acertou! 
E. WebApps são aplicativos que são disponíveis off-line e interagem com componentes 
nativos dos dispositivos. 
WebApps são aplicativos que ficam disponíveis off-line e interagem com componentes 
nativos dos dispositivos. Aplicativos nativos são acessíveis apenas no sistema operacional 
para o qual foram desenvolvidos (por exemplo, no Android). Além disso, não são acessíveis 
em navegador. Sites responsivos não são a mesma coisa que os WebApps, sendo que 
estes têm características particulares. Por exemplo, os WebApps são acessíveis off-line, e 
os sites responsivos não. 
2. Um recurso que pode ser adicionado ao seu aplicativo web é push notification. Esse tipo 
de notificação está disponível na maioria dos aplicativos comerciais. Sobre essas 
notificações, assinale a alternativa correta: 
Você acertou! 
E. Um exemplo de push notification são notificações de chegada de mensagens. 
Push notification são mensagens que o usuário do aplicativo recebe sem que ele tenha feito 
nenhuma ação para isso. As mensagens de confirmação e cancelamento são exemplos 
de alert,e não de push notification. Atualmente, é possível adicionar push notification aos 
PWAs; não é preciso utilizar nenhum tipo de emulador. As push notifications estão disponíveis 
em todos os sistemas operacionais. Um exemplo de push notification são notificações de 
chegada de mensagens, porque elas chegam sem o usuário programá-las, são exibidas na tela 
de bloqueio e, quando clica nelas, é direcionado para o aplicativo de origem. 
3. Um site responsivo já construído pode ser utilizado como porta de entrada para o 
desenvolvimento de um WebApp. Para isso, algumas ações precisam ser tomadas. Sobre 
essas ações, assinale a alternativa correta: 
Você acertou! 
C. O icone que será utilizado pelo aplicativo é informado no arquivo manifest.json. 
O que precisa ser inserido no index da aplicação é uma referência ao arquivo service 
worker.Além disso, o arquivo utilizado para, antes de fazer um request, buscar as informações 
no cache, para que seja feito um request apenas quando não existe no cache, também é 
o service worker. Já o arquivo manifest.json é usado para configurações iniciais do aplicativo 
como, por exemplo, a definição do ícone do aplicativo e a permissão para que o aplicativo seja 
instalado e, consequentemente, com a exibição de uma mensagem pra isso. Esse arquivo não 
tem relação com a possibilidade de disponibilização do aplicativo no Google Play. 
4. Um WebApp também pode ser chamado de PWA. Porém, para ser considerado um 
PWA, o site precisa ter algumas características bem específicas. Sobre elas, assinale a 
alternativa correta: 
 
 
 
 
Resposta correta. 
C. Reenvolvente: facilita o reengajamento com recursos nativos do dispositivo como, por 
exemplo, notificações push. 
As principais características de um PWA são: 
Progressivo: deve funcionar para qualquer navegador. 
Responsivo: deve ser adaptável a qualquer computador desktop, celular 
e tablet, independente do tamanho de tela. 
Seguro: deve utilizar o protocolo HTTPS para evitar invasões e garantir que o conteúdo não 
seja adulterado. 
Reenvolvente: facilita o reengajamento com recursos como notificações push. 
Linkável: deve permitir compartilhamento por URL; não requer instalação complexa. 
5. Uma das principais características de um PWA é estar sempre disponível mesmo off-
line; para que isso seja possível, é necessário efetuar a programação de um componente 
específico no seu PWA, chamado de Service Worker. Assinale a alternativa que contém a 
descrição correta de alguma característica desse componente: 
 
Projeto de software WebApps 
 
1. Uma característica essencial de uma aplicação web é seu dinamismo. As necessidades de 
uma aplicação web podem mudar em pouquíssimo tempo, levando à necessidade de 
projetos que tomem cada vez menos tempo e aplicações cada vez mais adaptáveis às 
necessidades atuais de seus usuários. Sendo assim, qual das opções abaixo representa a 
melhor decisão ao se iniciar um projeto de WebApp? 
Você acertou! 
B. Adaptar modelos tradicionais, realizando todas as etapas previstas no processo de 
desenvolvimento, e, sempre que possível, realizar atividades em paralelo. 
A coleta de requisitos deve ser a primeira atividade a ser realizada. Somente após, as demais 
podem iniciar, e em aplicações web a modelagem dos requisitos é uma das atividades mais 
importantes. Saiba que não se deve suprimir etapas do processo de desenvolvimento. 
Qualquer modelo tradicional pode ser adaptado, não somente os modelos ágeis e desde que 
seus objetivos sejam modificados para os objetivos de um projeto de WebApp. 
2. A entrada de um usuário em um WebApp pode ocorrer a partir de diversas origens, 
sendo um dos maiores desafios em projetos de WebApp. Em qual das atividades a 
seguir esse tipo de problema deve ser tratado? 
Você acertou! 
D. Projeto de interface. 
Em um projeto de WebApp, cada etapa tem suas responsabilidades. Veja que o projeto de 
arquitetura preocupa-se com a forma como os componentes serão organizados internamente. 
Na etapa projeto de componentes, a preocupação está na definição de quais serão e o que 
fará cada um dos componentes do WebApp. No projeto de navegação, é determinado como 
será o fluxo de transição entre os componentes, seja do ponto de vista do usuário, seja dos 
componentes. No projeto de conteúdo, a preocupação maior está no que será inserido em 
cada componente, e como serão apresentados. Por fim, no projeto de interface, é definido 
como tudo será apresentado para o usuário, daí a preocupação em saber de onde este vem, 
pois, dependendo da origem de entrada do usuário, a forma de apresentação do WebApp 
deverá ser diferente. 
3. Um projeto de arquitetura permite definir quais serão as regras de navegação em 
um WebApp, ou seja, por quais caminhos o usuário poderá seguir uma vez que estiver 
dentro da aplicação web. O modelo de arquitetura que permite o agrupamento de dois ou 
mais objetos por categoria e que é altamente aplicado em modelos de e-commerce é 
conhecido como: 
 
Você acertou! 
E. modelo em grade. 
Dos modelos de arquitetura existentes, perceba que o linear é utilizado para determinar um 
fluxo pré-definido, ótimo em casos de tutoriais, quando se deseja direcionar o usuário. 
Semelhante a esse modelo, você pode considerar o linear de fluxo alternativo, quando o 
usuário pode optar por seguir por outros caminhos, e o com desvio de fluxo, que, de acordo 
com a interação com o usuário, direciona-o por determinados caminhos. Em um modelo de 
estrela, a navegação é aberta, o usuário pode seguir de qualquer ponto para qualquer outro 
ponto, o que pode causar confusão. Existe também o modelo hierárquico, nele o usuário pode 
descer por uma hierarquia de componentes, podendo sempre que necessário subir na 
hierarquia ou visitar os componentes que estão no mesmo nível ou níveis inferiores do ramo 
hierárquico que decidiu seguir. Entretanto, o mais aplicadoem e-commerces, devido 
principalmente ao fato de permitir o agrupamento de componentes, é o modelo em grade. O 
modelo em grade permite que componentes "semelhantes" ou "de um mesmo grupo" sejam 
organizados em conjuntos. 
4. Todo projeto de WebApp deve levar em consideração alguns requisitos que, mesmo não 
especificados pelo usuário, são necessários. O principal grupo de requisitos a ser 
observado em um projeto de WebApp são os requisitos de qualidade, que devem estar 
presentes em qualquer projeto. Assim sendo, a descrição a seguir é referente a qual 
requisito de qualidade? “Capacidade de busca e recuperação de dados, facilidade de 
navegação e leitura das informações, características relacionadas ao domínio da 
aplicação, etc.” 
Você acertou! 
A. Funcionalidade. 
O requisito usabilidade trata da facilidade da compreensão geral do site, feedback on-line, 
recursos de ajuda, etc. Já o requisito funcionalidade tem a capacidade de busca e recuperação, 
leitura das caraterísticas de navegação. Enquanto o requisito confiabilidade é para o correto 
processamento dos links, recuperação de erros, validação e recuperação dos dados de 
formulários, etc. Ao passo que o requisito eficiência está relacionado à velocidade de 
carregamento das páginas, o tempo de resposta, velocidade de geração das imagens, etc. Por 
fim, o requisito facilidade de manutenção, o site deve ser extensível, adaptável e fácil de 
corrigir. 
5. O desenvolvimento de um projeto de WebApp deve atender a uma série de objetivos 
que, muitas vezes, não são especificados pelo usuário durante o processo de coleta de 
requisitos, mas que são observados em inúmeros projetos web, uma vez que, 
quando não aplicados, elevam as chances de fracasso do projeto. Observe a afirmação a 
seguir e responda a qual objetivo se refere: “O usuário espera que o conteúdo seja 
relevante às suas expectativas. A falta ou insuficiência de elementos pode levar ao fracasso 
do WebApp”. 
Você acertou! 
E. Robustez. 
O objetivo simplicidade diz que a aplicação deve fazer uso moderado de seus recursos. O 
objetivo consistência: o conteúdo deve ser construído com consistência, o designer gráfico 
deve ser semelhante em todas as partes, etc. Identidade: design e apresentação gráfica devem 
ser coerentes como domínio da aplicação para a qual está sendo desenvolvida. Robustez: 
trata-se de entender o que o usuário espera do conteúdo, ou seja, que o conteúdo seja 
relevante às suas necessidades. Navegabilidade: a navegação deve ser projetada para ser 
intuitiva e previsível. Apelo visual: o indicado é o equilíbrio entre os 
componentes. Compatibilidade: uma aplicação web deve ser utilizada em uma variedade de 
ambientes e deve ser projetada para executar perfeitamente em cada um deles. 
 
Plataformas de desenvolvimento: IDE e emulador 
Android 
 
1. Na atualidade, um desenvolvedor de software tem disponível para utilização uma grande 
variedade de linguagens de programação e cada uma tem suas características. Em 
dispositivos móveis, as plataformas de desenvolvimento normalmente utilizam uma 
linguagem de programação como linguagem nativa. Considerando o sistema operacional 
Android, qual é a sua linguagem de programação nativa? 
Você acertou! 
E. Java 
Java é a linguagem de programação nativa da plataforma Android. Swift é a linguagem nativa 
da plataforma iOS concorrente do Android. C#, Delphi e Html são linguagens de programação 
de IDEs que também possibilitam o desenvolvimento de aplicativos para Android, porém não 
são nativas da plataforma. 
2. Uma IDE poderosa ajuda o desenvolvedor de software na confecção do aplicativo, 
gerenciando-o, organizando a estrutura do projeto e automatizando processos nos quais o 
usuário, sem a ajuda dela, teria de realizar manualmente. Dentre as plataformas a seguir, 
qual é a plataforma indicada pela Android para desenvolver aplicativos? 
Você acertou! 
C. Android Studio 
Android Studio é a IDE indicada e mantida pela Android para desenvolvimento de aplicativos 
para a sua plataforma. Visual Studio, NetBeans, Eclipse e RAD Studio são IDEs que têm a 
possibilidade de desenvolver aplicativos para a plataforma Android, mas não são reconhecidas 
pela Android como uma plataforma indicada para esse fim. 
3. Em um ecossistema de dispositivos muito variados (variação está relacionada aos 
recursos ou até mesmo as suas características físicas, como tamanho e formas de 
interação), é complexo prever em que tipo de dispositivo um determinado aplicativo será 
executado. Ter diversos dispositivos reais para realização de testes pode não ser uma 
opção viável, logo a emulação é uma opção muito utilizada. O Android disponibiliza em seu 
SDK um emulador oficial. Selecione a opção que representa essa ferramenta: 
Você acertou! 
B. Android Emulator 
Android Emulator é o emulador disponibilizado pela Android no SDK da plataforma. 
BlueStacks, Android X84 e GenyMotion são emuladores do Android desenvolvidos por 
terceiros, já o Virtual Box é uma ferramenta de virtualização, na qual é possível executar os 
mais diversos sistemas operacionais. 
4. Para identificar problemas em um código-fonte, as IDEs disponibilizam funcionalidades 
para ajudar o desenvolvedor a encontrar tais falhas. Existem recursos em que o 
aplicativo para o seu fluxo de execução em um determinado local e disponibiliza ao usuário 
diversas funcionalidades, para que ele possa identificar possíveis problemas na execução. 
Qual das opções a seguir representa a funcionalidade descrita? 
Você acertou! 
E. Break points 
Ao inserir um break point em um determinado ponto do código de um aplicativo, durante uma 
execução do aplicativo, é possível realizar a verificação de várias coisas relacionadas ao 
aplicativo, como por exemplo o valor armazenado em cada uma das variáveis declarada. 
Verificador de sintaxe analisa erros de escrita do código-fonte. Os repositórios de 
versionamento possibilitam que equipes numerosas trabalhem em um mesmo projeto sem 
que ocorra perda de dados. Plugins dão versatilidade a uma IDE, e funcionalidades e recursos 
desenvolvidos por terceiros são disponibilizados através deles. A renderização 
de layouts permite ao desenvolvedor visualizar como o layout está ficando. 
5. Recursos, em um dispositivo móvel, devem ser consumidos de forma responsável por um 
aplicativo. Se um determinado aplicativo consumir recursos de memória e processamento 
de um dispositivo de forma desmoderada pode comprometer o bom funcionamento dele, 
frustrando o usuário frente à utilização do aplicativo e levando-o a buscar outra ferramenta 
que atenda as suas necessidades. Indique qual opção a seguir é uma ferramenta que auxilia 
o desenvolvedor a evitar situações como a descrita anteriormente. 
Você acertou! 
A. Monitor de recursos 
Monitor de recursos ajuda ao desenvolvedor a analisar a quantidade de recursos que o 
aplicativo está utilizando em cada estágio de sua execução. Gradle é uma ferramenta de 
automatização da compilação dos arquivos finais do aplicativo. Dispositivos reais e 
emuladores são formas de testar a aplicação, mas o desenvolvedor não tem noção se o 
aplicativo está ou não consumindo os recursos de forma adequada. Boas praticas de 
programação são sempre bem-vindas, mas um aplicativo pode ter boas práticas e assim tender 
a não apresentar os problemas citados, mas isso só será aferido com o uso do monitor de 
recursos. 
 
Componentes dos aplicativos Android 
 
1. O Android utiliza como base o sistema operacional Linux, no qual cada processo é 
encapsulado em sua própria máquina virtual o isolado dos demais. Por meio dessas e de 
outras características, o Android implementa um princípio relacionado à segurança do 
aplicativo. Indique qual opção representa esse princípio: 
Você acertou! 
C. Privilégio mínimo 
O Android parte do princípio do privilégio mínimo, uma vez que todas as permissões devem 
ser concedidas. VM isolada, ID único do aplicativo e liberar memória são informações 
relacionadas a características de como os aplicativos são executados.Privilégio total somente 
existe se o desenvolvedor do aplicativo assim implementar e o usuário assim permitir. Dessa 
forma, não se caracteriza como um princípio. 
2. Os aplicativos do Android são construídos utilizando componentes bem definidos. O 
componente de aplicativo do Android que fornece uma tela com a qual os usuários podem 
interagir para fazer algo, como discar um número no telefone, enviar um e-mail ou ver um 
mapa é: 
Você acertou! 
A. Activity 
Activity é o componente que disponibiliza a interface ou tela para o usuário. Services são 
processos realizados em background e muitas vezes os usuários nem sabem da sua 
existência. Broadcast receiver são componentes que trabalham recebendo e tratando os 
eventos do dispositivo. Intent são objetos de comunicação entre os vários componentes de 
um aplicativo e também dos componentes com o sistema Android. Content 
provider implementa o acesso aos dados tanto do sistema quanto dados do próprio aplicativo. 
3. Os componentes presentes em um aplicativo Android são capazes de realizar diversas 
funções diferentes, como acessar dados, propagar informações para o sistema e também 
exibir leiautes. Com relação aos componentes Android, qual deles possui a funcionalidade 
de enviar dados ao sistema Android, solicitando que ele execute um determinado aplicativo 
enviando-o um conjunto de dados? 
Você acertou! 
D. Intent 
Intent são objetos de comunicação entre os vários componentes de um aplicativo e também 
dos componentes com o sistema Android. Activity é o componente que disponibiliza a 
interface ou tela para o usuário. Services são processos realizados em background e, muitas 
vezes, os usuários nem sabem da sua existência. Broadcast receiver são componentes que 
trabalham recebendo e tratando os eventos do dispositivo. Content provider implementa o 
acesso aos dados tanto do sistema quanto dados do próprio aplicativo. 
4. Muitos processos de longa duração executados pelos aplicativos Android, se executados 
pelo componente inadequado, podem causar problemas ao aplicativo e ao sistema em si, 
travando-o e causando dificuldades aos usuários. Qual é o componente adequado à 
execução de processos de longa duração? 
Você acertou! 
E. Service 
Services são processos realizados em background e, muitas vezes, os usuários nem sabem da 
sua existência, dada esta característica são amplamente utilizada para a execução de 
funcionalidades de longa duração. Intent são objetos de comunicação entre os vários 
componentes de um aplicativo e também dos componentes com o sistema Android. Activity é 
o componente que disponibiliza a interface ou tela para o usuário. Broadcast receiver são 
componentes que trabalham recebendo e tratando os eventos do dispositivo. Content 
provider implementa o acesso aos dados tanto do sistema quanto dados do próprio aplicativo. 
5. O Android disponibiliza um componente para o controle e gerenciamento de dados. Por 
meio desse componente, podemos acessar dados disponíveis no sistema, dados de outros 
aplicativos e disponibilizar os dados do próprio aplicativo para os demais aplicativos 
presentes no dispositivo. Qual dos componentes a abaixo representa esse componente? 
Você acertou! 
C. Content provider 
Content provider implementa o acesso aos dados tanto do sistema quanto dados do próprio 
aplicativo e por meio dele podemos acessar contatos de um smartphone ou até mesmo dados 
do calendário, como eventos da agenda. Services são processos realizados em background e, 
muitas vezes, os usuários nem sabem da sua existência. Intent implícito ou explícito são 
objetos de comunicação entre os vários componentes de um aplicativo e também dos 
componentes com o sistema Android. Broadcast receiver são componentes que trabalham 
recebendo e tratando os eventos do dispositivo. 
 
Componente Activity 
 
1. Activities são responsáveis pela exibição das interfaces de usuário. Por meio destas, os 
usuários podem interagir com os aplicativos, usufruindo suas funcionalidades. Analise as 
opções a seguir e marque a que representa determinada interação do usuário com uma 
Activity. 
Você acertou! 
A. Informar login e senha para acessar o aplicativo. 
Informar login e senha para acessar o aplicativo é exemplo de interação do usuário com a 
interface de uma Activity. Receber notificação do sistema e processar ações adequadas são 
ações realizadas pelo componente Broadcast Receiver. Processar rotinas de longa duração e 
realizar conexões com a rede de dados normalmente são efetivadas em componentes do tipo 
Service. O envio de solicitação para o sistema na busca de um aplicativo, normalmente, ocorre 
por meio de intents. 
2. Uma Activity é enviada para o segundo plano em virtude de segunda Activity ser 
disponibilizada ao usuário. Ao ser enviada para segundo plano, essa Activity é colocada em 
uma pilha, visando ao fato de que ela pode recuperar o foco novamente. A pilha utilizada 
para empilhar as Activities no Android segue mecanismo básico. Entre as opções a seguir, 
indique a que apresenta tal mecanismo. 
Você acertou! 
B. LIFO – Último a Entrar, Primeiro a Sair. 
LIFO - Último a Entrar, Primeiro a Sair - é o mecanismo de empilhamento de Activities 
utilizado pelo Android. FIFO, HIFO, LOFO e FEFO são estratégias de empilhamento usadas 
em diversas áreas, porém não no empilhamento de Activities. 
3. O ciclo de vida de uma Activity é um dos conceitos mais importantes a serem 
compreendidos, tendo em vista que se trabalha com tal componente. Esse ciclo engloba 
todos os comportamentos e estados que determinada Activity pode assumir durante o 
período em que está em execução. No ciclo de vida da Activity, qual é o primeiro método a 
ser chamado quando a sua execução é solicitada? 
Você acertou! 
D. onCreate() 
"onCreate()" é o primeiro método a ser chamado ao criar uma Activity. "onResume()", 
"onPause()", "onDestroy()" e "onStart()" são métodos que pertencem a uma Activity e seu ciclo 
de vida, mas não são chamados antes do "onCreate()" em hipótese alguma. 
4. A persistência de dados (processos de salvamento em uma base de dados) é tarefa 
crucial em aplicativo normalmente, Android ou outro, independentemente de plataforma. 
No Android, devido ao ciclo de vida de uma Activity, a persistência dos dados consiste em 
processo delicado, uma vez que, dependendo da situação, é possível que alguns métodos 
do ciclo de vida não sejam executados e a Activity seja eliminada sem a ação de salvar os 
dados de modo adequado. Qual método presente no ciclo de vida do Android normalmente 
é utilizado para a persistência de dados em uma Activity? 
Você acertou! 
E. onPause() 
"onPause()" é o método recomendado para a implementação da persistência dos dados. 
"onCreate()" e "onStart" são métodos do ciclo de vida que inicializam a Activity. 
"setContentView()" e "findViewById()" manipulam a interface de usuário e os seus controles. 
5. Em uma Activity, há diversos métodos disponíveis para a realização de várias 
funcionalidades, desde o controle do ciclo de vida da Activity até procedimentos que 
controlam parâmetros passados para ela e a definição de layouts para serem exibidos em 
interação com o usuário, dentre vários outros. Qual dos métodos a seguir é utilizado para 
finalizar e destruir uma Activity do sistema? 
Você acertou! 
B. finish() 
"finish()" é o método que finaliza e destrói uma Activity. "onResume()", "onStart()" e "onCreate" 
são métodos pertencentes à Activity que fazem parte do controle do ciclo de vida da Activity. 
"findViewById()" busca controles da interface do usuário para tratá-los na Activity. 
 
Tipos de leiaute RelativeLayout e LinearLayout 
 
1. O Android disponibiliza muitos recursos para se trabalhar a interface com o usuário. 
Dentre eles, destacam-se os layouts, componentes de fundamental importância, sendo o 
LinearLayout o tipo mais utilizado. Assinale a alternativa correta acerca desse tipo 
de layout: 
Você acertou! 
C. O LinearLayout permite o alinhamento de componentes tanto na horizontal como na 
vertical.O LinearLayout possibilita o alinhamento de componentes tanto na vertical como na 
horizontal. O alinhamento de um componente em relação ao outro é possível com o 
RelativeLayout e sua utilização não está ligada ao fato de possuir mais recursos que outro tipo 
de layout ou pelo fácil manuseio. 
2. O RelativeLayout, um tipo de layout muito poderoso, permite que a interface do aplicativo 
apresente uma experiência fantástica de interação com os usuários. Assinale a alternativa 
abaixo que descreve corretamente a principal característica do RelativeLayout: 
Você acertou! 
A. O RelativeLayout permite que um componente filho tenha a sua posição atribuída em 
relação à posição de outro componente. 
A principal característica do RelativeLayout é permitir que componentes tenham sua posição 
determinada em relação à posição de outros. Componentes não são necessariamente 
empilhados como no LinearLayout e sua utilização não envolve componentes gráficos 
diferentes, nem a necessidade de trabalhar em conjunto com o LinearLayout. 
3. No LinearLayout, tem-se a possibilidade de manipular atributos que permitem aos 
componentes apresentarem formatos ou comportamentos diferenciados. Um atributo que 
pode ser manipulado, por exemplo, é o android:layout_weight. Assinale a alternativa abaixo 
que descreve o que ocorre quando se manipula o valor desse atributo: 
Você acertou! 
D. Permite que um item de maior peso possa expandir e usar mais espaço na tela. 
Esse atributo permite que um item com maior peso possa expandir e ocupar mais espaço da 
tela. Não está relacionado a aparecer ao fundo dos demais, nem mesmo no topo ou fim de 
uma lista de exibição. 
4. O RelativeLayout permite alcançar recursos fantásticos de interação com o usuário; 
porém, uma das grandes desvantagens desse tipo de layout é que, quando se altera um 
componente, pode ser necessário alterar todos os outros. Assinale a alternativa correta 
sobre por que isso ocorre: 
Você acertou! 
B. Ocorre pelo fato da relatividade da posição de um com o outro. 
Isso ocorre pelo fato da relação de posicionamento de um componente com o outro, não 
necessariamente pelas coordendas ou hierarquia ou encapsulamento de componentes. 
5. "Indicado quando as posições dos componentes podem ser melhor descritas em relação 
a outro elemento (à esquerda) ou à área de fronteira do pai (lado direito, ou centrado)". De 
acordo com essa afirmativa, é correto dizer que se trata de: 
Você acertou! 
E. Somente RelativeLayout. 
Sempre que puder ser determinada a posição de um componente em relação ao outro, sem 
dúvida, trata-se de usar RelativeLayout. LinearLayout será quando os componentes fluem na 
horizontal ou vertical. 
 
Tipos de layout ConstraintLayout e TableLayout 
 
1. O TableLayout é uma especialização do LinearLayout, muito utilizado para criar 
formulários, telas de login ou para mostrar informações de forma tabular, como na imagem a 
seguir. Para ela, quantos <TableRow> são necessários? 
 
 
Você acertou! 
C. São necessários dois TableRow. 
O TableRow define a quantidade de linhas existentes em um TableLayout. Na imagem, há 
apenasduas linhas, então, caso você usasse apenas um TableRow não existiria uma segunda 
linha, já três, quatro e cinco TableRow criariam um leiaute com três, quatro e cinco linhas, 
respectivamente. 
2. Cada restrição ou constraint define a posição da view ao longo do eixo vertical ou 
horizontal. Ao usar o atributo app:layout_constraintStart_toStartOf="parent", informa-
se ao leiaute que a view em questão vai 
Você acertou! 
C. aparecer ao lado da view parent. 
O atributo app:layout_constraintStart_toStartOf="parent" define que a view vai ser 
exibida ao lado de uma determinada view. Como o atributo setado é parent, ele vai se 
posicionar ao lado da ViewGroup em que ele se encontra. O atributo 
app:layout_constraintStart_toBottomOf aparece abaixo da view. Já o 
app:layout_constraintStart_toTopOf aparece acima. 
O valor do atributo parent faz com que a view seja acorrentada ao "pai" da view, caso contrário 
seria necessário mencionar a view que você quer relacionar. 
3. Para definir a posição de uma view no ConstraintLayout, deve-se ter, pelo menos, uma 
restrição horizontal e uma vertical para a view. Cada restrição representa uma conexão ou 
alinhamento para outra view, o leiaute "pai" ou uma diretriz invisível. Cada restrição 
ou constraint define a posição da view ao longo do eixo vertical ou horizontal. São formas 
de criação de restrições no ConstraintLayout os seguintes: 
Você acertou! 
B. Margens, posicionamento centralizado, chains e posicionamento circular. 
Atualmente, o ConstraintLayout aceita as seguintes restrições: posicionamento relativo, 
margens, posicionamento centralizado, posicionamento circular, comportamento de 
visibilidade, restrições de dimensão, chains, objetos do Virtual Helpers e 
otimizador. Layout_span e shrinkColumns são atributos de TableLayout. 
As margens e os posicionamentos centralizados relacionam-se aos conteúdos das views em 
si, e não à sua posição. 
4. No desenvolvimento de uma tela para exibir dados em tabelados usa-se o TableLayout, 
o qual agrupa exibições em linhas. Ao utilizá-lo, os componentes são exibidos na tela 
conforme 
Você acertou! 
B. a ordem em que foram escritos no leiaute apresentados na TableRow. 
O TableLayout exibe o leiaute conforme especificado no TableRow, sendo cada view uma 
coluna. 
Os leiautes são montados de cima para baixo, conforme o render lê o arquivo xml 
e constraint, chains e outros atributos não interferem num TableLayout. 
5. TableLayout é um ViewGroup que agrupa exibições em linhas, já o TableRow é 
responsável por criar as linhas na tabela e cada elemento adicionado a ele torna-se uma 
coluna. Caso seja necessário expandir uma coluna para ocupar mais de um espaço deve-se 
utilizar o atributo: 
Você acertou! 
A. android:layout_span. 
Para expandir uma coluna no TableView é preciso atribuir o android:layout_span com o 
número de colunas desejadas. 
- shrinkColumns: especifica em quais colunas se quer reduzir o espaço, quando necessário. 
- stretchColumns: especifica em quais colunas se quer aumentar o espaço, quando necessário. 
 
- TableRow: define uma nova linha na tabela. 
 
- Layout_merge: atributo que não existe no android. 
 
Recursos e a classe R.java 
 
1. A classe R.java tem por finalidade possibilitar a comunicação entre o código do aplicativo 
e o arquivo XML do recurso. Nela, está a referência aos recursos consumidos pelo 
aplicativo. 
Ainda a respeito dessa classe, é correto afirmar que: 
Você acertou! 
B. a classe R não deve ser alterada diretamente; sua alteração se dá em decorrência de 
alterações no código. 
A classe R nunca deve ser alterada diretamente e é gerada no momento da compilação do 
aplicativo. Além disso, ela não gera o arquivo XML, apenas realiza mapeamento entre este e 
o código. 
2. Referenciar a utilização dos recursos é um processo bem simples, sendo preciso, 
apenas, referenciar o respectivo ID do recurso no código. 
Com base nessa afirmação, assinale a alternativa correta. 
Você acertou! 
C. Todos os IDs de recursos são definidos pela classe R automaticamente. 
A classe R define todos os IDs dos recursos automaticamente, não sendo necessário consultar 
no arquivo XML e muito menos alterar na classe. Jamais deve-se realizar ajustes diretamente 
nessa classe. 
3. Apesar de a classe R ser o local onde os códigos de recursos são especificados, nunca 
deverá ser necessário verificá-la para descobrir um código de recurso. 
Refletindo sobre essa afirmação, assinale a alternativa correta. 
Você acertou! 
E. Essa afirmativa baseia-se no fato de que todo ID é composto pelo tipo e nome do 
recurso. Logo, não é necessário consultar a classe. 
A classe R define automaticamente todos os IDs dos recursos, que são compostos pelo tipo 
seguido do nome. Sendo assim, não é necessário realizar consultas à classe ou ao arquivo .xml. 
 
4. A classe R é gerada pelo aapt automaticamente quando a aplicação é compilada.Nesse 
sentido, o que ocorrerá caso algo seja alterado diretamente na classe R após nova 
compilação do aplicativo? 
Você acertou! 
A. As alterações serão sobrepostas pela compilação e perdidas. 
Jamais devem ser realizadas alterações na classe R diretamente. Qualquer alteração nessa 
classe será sobreposta no momento em que o aplicativo for compilado de novo. Com o 
arquivo .xml, não deve ocorrer problema. 
5. Nos projetos de desenvolvimento de aplicativos para o Android, é imprescindível 
conhecer e saber utilizar a classe R.java. Nesse contexto, pode-se dizer que o principal 
benefício dela é: 
Você acertou! 
C. possibilitar o mapeamento entre recursos e código de modo dinâmico, sem necessidade 
de codificação. 
O grande benefício da classe R é fazer o mapeamento entre o arquivo .xml dos recursos e o 
código do aplicativo, não sendo necessário realizar codificação específica para tal 
ligação. Além disso, não devem ser realizadas alterações na classe R diretamente. 
 
Componentes de tela do usuário 
 
1. A plataforma Android oferece diversos componentes visuais sofisticados, principalmente 
se compararmos com o desenvolvimento de aplicativos em aparelhos celulares antigos. 
Sobre essa afirmativa, assinale a alternativa correta: 
Você acertou! 
C. A plataforma Android oferece componentes visuais sofisticados que não eram 
possíveis nas plataformas antigas. 
A atual plataforma Android oferece recursos visuais sofisticados que não eram possíveis em 
plataformas mobile antigas. Quando se fala plataforma mobile, trata-se 
de celular, tablet, etc. O Android, como plataforma, permite a evolução de muitos recursos 
além dos visuais de que estamos falando nesta unidade. 
2. No Android, o conceito de View é o de um “espaço” em tela que sirva para exibir alguma 
mensagem ou forma de interação com o usuário, permitindo que este possa executar uma 
ação ou se informar sobre algo. 
De acordo com esse conceito, marque a alternativa que apresenta 
componentes relacionados a ele: 
Você acertou! 
C. Mensagens de texto, imagens e botão. 
Todos os componentes que, de certa forma, são apresentados ao usuário por meio de um 
"retângulo" na tela do aplicativo, sejam eles mensagens, botões, lista de dados e ícones, 
são View. Porém, componentes de fundo, como conectores, XML, entre outros, apesar de 
serem essenciais para o funcionamento, não entram nesse conceito. 
3. A plataforma Android possibilita utilizar vários componentes visuais para a interação do 
usuário com o aplicativo. 
Leia as alternativas e identifique qual componente a seguir é utilizado para permitir ao 
usuário confirmar uma solicitação do aplicativo. 
 
 
Você acertou! 
E. ImageButton. 
O componente TextView permite exibir uma mensagem na tela, e o ListView exibe uma série 
de dados. Já o ImageView é usado para exibir uma imagem, e o DigitalClock, um relógio. 
O ImageButton oferece um botão que permite a interação do usuário; por isso, essa é a opção 
correta. 
4. O componente ImageView tem especificamente a função de exibir imagens em telas de 
aplicativos Android e é um recurso muito utilizado na construção de aplicativos. 
Acerca dessa afirmativa, assinale a alternativa correta: 
Você acertou! 
D. O componente ImageView pode ser utilizado para exibir imagens baixadas da Internet. 
O componente ImageView não possibilita a interação com o usuário. Para exibir um ícone, há 
o componente específico, e, apesar de exibir o componente ImageButton, não é necessário o 
componente Button. Já para uma lista de dados, o correto seria usar o 
componente ListView. Assim, a resposta correta é "exibir imagens baixadas da Internet". 
 
5. Trabalhar com componentes visuais não é difícil, já que muitos deles são possíveis 
via layout. Porém, você deve se atentar a alguns itens importantes. 
Assinale a alternativa que contenha os itens considerados importantes para se pensar ao 
trabalhar com layout no Android. 
Você acertou! 
A. Usabilidade e transparência. 
Ao trabalhar com os componentes visuais no Android, é importante ficar atento quanto a dois 
itens em especial: a usabilidade do usuário e a transparência para não causar problemas de 
visualização. As demais opções são importantes, mas podem não ser priorizadas ao se 
trabalhar com layouts no Android. 
 
Navegação entre telas 
 
1. Durante o desenvolvimento de uma aplicação Android multitelas, o desenvolvedor 
depara-se com a necessidade de enviar dados entre as telas. O fluxo de envio de dados é 
linear e unidirecional, ou seja, os dados seguirão sempre de uma tela anterior para uma tela 
posterior, não havendo comunicação de outra forma. Existem diversas possibilidades para 
esse tipo de comunicação, porém, das opções a seguir, somente uma está correta. Assinale-
a: 
Você acertou! 
C. Uma das formas mais comuns de comunicação entre telas é utilizar objetos da 
classe intent. Para a operação desejada, pode-se escrever a seguinte instrução: 
Intent i = new Intent(contextoAtual.this, novaTela.class); 
i.putExtra(“info”,”Informação”). 
Existem variadas formas de resolver a questão do desenvolvedor; as mais comuns envolvem 
a utilização de intents com ou sem bundles. Utilizando intents, o desenvolvedor 
obrigatoriamente deverá criar um intent— por exemplo: Intent i = new 
Intent(contextoAtual.this, novaTela.class). Como o uso de bundles não é obrigatório, pode-se 
transferir os dados por meio da própria intent, com sintaxe semelhante a: 
i.putExtras("info","dadosDaInformacao"). 
2. A invocação de novas telas/atividades (em Android) é realizada a partir de um objeto da 
classe intent. Um objeto intent indica à aplicação alguma intenção. Intenções não 
obrigatoriamente indicam nova tela; elas podem indicar qualquer outro serviço. Contudo, 
supondo-se a criação de nova tela, qual das opções a seguir está correta para o comando 
de invocação de nova tela? 
Você acertou! 
E. Ao se criar um objeto intent de forma explícita, deve-se utilizar a 
instrução intent nome_objeto = new Intent(parâmetro1, parâmetro2), sendo o parâmetro1 
referente ao contexto/pacote da classe da nova intenção, e o parâmetro2, a classe 
propriamente dita. 
Uma das formas de se utilizar intents para iniciar uma nova atividade é criar 
um intent explícito. Em um intent explícito, a sintaxe é semelhante ao seguinte exemplo: 
Intent novo_intent = new Intent(parâmetro1, parâmetro2), sendo o parâmetro1 referente ao 
contexto/pacote da nova intenção, e o parâmetro2, referente à classe da nova intenção. 
3. Em aplicações Android, diferentemente do que ocorre com aplicações Web e aplicações 
para desktop, as telas que são apresentadas para o usuário são conhecidas como activity (ou 
seja, atividade), e, para que uma atividade (que não seja a principal) seja invocada, é 
necessária a utilização de um objeto intent, ou intenção. Sobre um intent, sua utilização e 
caraterísticas, é correto dizer que: 
Você acertou! 
B. Intents são objetos para troca de mensagens entre objetos de uma aplicação Android. 
Apesar de serem utilizados para abertura de novas telas, os intents podem ser utilizados para 
iniciar serviços e transmissões de mensagens/dados entre objetos e aplicações. 
Para a troca de mensagens entre objetos/componentes de uma aplicação Android, deve-se 
utilizar a classe intent. Ela representa uma intenção e pode ser utilizada para representar a 
intenção de iniciar uma nova atividade/activity/tela, serviços e até mesmo transmissão de 
mensagens/dados entre objetos e aplicações distintas que dão suporte a esse tipo de 
operação. 
 
4. A combinação dos objetos intent e bundle permite que dados sejam enviados, ou seja, 
trocados entre as telas de uma aplicação para Android. A respeito dessa troca de mensagens 
entre atividades de uma aplicação para Android, é correto afirmar que: 
Você acertou! 
A. Ao armazenar os dados em um objeto bundle, garante-se que esses dados ficarão 
armazenados até o momento em que forem novamente solicitados. Assim, os dados podem 
ser recuperados posteriormente em qualquer uma das telas daaplicação. 
Objetos do tipo bundle permitem que dados sejam armazenados (persistidos) em uma 
aplicação Android até que sejam novamente necessários. Os dados em um bundle somente 
serão apagados se a aplicação for reinicializada ou se os dados forem propositalmente 
substituídos. 
5. Acerca dos intents, sua invocação/criação pode ocorrer de forma explícita ou implícita 
sobre sua segurança, sintaxe de utilização, etc. Em relação aos intents, quais das opções a 
seguir está correta? 
Você acertou! 
D. Intents implícitos podem ser utilizados para invocação de atividades tanto internas 
quanto externas ao aplicativo. Contudo, o fato de não especificar qual atividade será invocada 
reduz a segurança da aplicação. 
Intents implícitos podem ser utilizados para invocar atividades/serviços tanto internos quanto 
externos à aplicação. Contudo, a utilização no modelo implícito reduz a segurança da 
aplicação, haja vista que não é possível determinar qual atividade/serviço será executado. 
 
Fornecimento de recursos 
1. Ao desenvolver um aplicativo para o Android, é fundamental conhecer os recursos que 
estão disponíveis e saber como utilizá-los na aplicação. Também é possível 
desenvolver recursos próprios que serão utilizados por outros aplicativos. Sobre o conceito 
de recursos, é correto afirmar: 
Você acertou! 
B. São exemplos de recursos originais, por exemplo, os relacionados a layout de interface. 
Os recursos originais estão disponíveis pelo próprio Android e não em ambiente de 
desenvolvimento. Os exemplos de recursos originais mais utilizados são os relacionados 
a layout de interface. Pode-se estender recursos e também criar novos. 
2. Um dos recursos que se pode trabalhar no Android são as strings. Por exemplo, se 
quiser padronizar o rótulo de um botão para que todo lugar em que ele seja exibido fique 
com a mesma informação, pode-se fazer isso alterando o arquivo string.xml. Acerca do 
arquivo string.xml, é correto afirmar: 
Você acertou! 
B. O arquivo string.xml fica localizado no diretório de resources e é utilizado para 
armazenar strings e seus valores. 
O arquivo strings.xml não tem armazenadas as mensagens da aplicação. Ele fica localizado no 
diretório de resources e é utilizado para armazenar valores de strings reutilizáveis. É um dos 
recursos do Android e, assim como demais recursos, deve-se referenciar com um ID. 
3. Em todo projeto Android existe a necessidade de externalizar alguns itens, por exemplo, 
imagens, strings, para que seja possível mantê-los independentes e para que possam 
suportar configuração específica, idioma do dispositivos, tamanho de tela, orientação, 
etc. A pasta res, utiliza várias subpastas que, juntas, classificam os resources por tipo e 
configuração. 
Com base nessa explicação, é correto afirmar: 
Você acertou! 
C. A subdivisão em subpastas conforme a classificação dos recursos é importante para 
organização e localização. 
A pasta res existe em todo e qualquer projeto para Android. Além dos recursos naturais, pode-
se utilizar para arquivos necessários para externalizar a aplicação. A subdivisão por pastas 
conforme a classificação do tipo de recurso é importante para organizar e classificar os 
recursos. 
4. A classe R.java é gerada automaticamente pelo plugin da IDE de desenvolvimento. Essa 
classe tem papel fundamental, pois ela é responsável por fazer o relacionamento entre os 
arquivos .xml e os .java do projeto. Essa classe não pode, de forma alguma, ser alterada, e a 
sua alteração só será feita pela geração de uma nova compilação do projeto. Não é preciso 
se preocupar com isso, mas é importante conhecer seus métodos. 
Escolha a alternativa que está correta acerca da finalidade da classe R.java: 
Você acertou! 
D. A classe R.java é tem por finalidade manter a sincronia entre o arquivo .xml do projeto 
e o .java do desenvolvimento. 
A classe R.java tem o objetivo de manter a sincronização entre o xml do projeto e o java do 
desenvolvimento. Não se deve alterá-la, pois sua alteração é consequência de uma nova 
compilação, mas é fundamental conhecer seus métodos, pois é por meio deles que se pode 
sincronizar o código com os recursos da estrutura. 
5. Os recursos de string fornecem strings de texto para o aplicativo com estilo e formatação 
de texto opcional. Existem três tipos de recursos que podem fornecer strings ao seu 
aplicativo. A utilização do recurso de strings permite: 
Você acertou! 
B. criar recursos de strings reutilizáveis para aplicação. 
Criar recursos reutilizáveis de strings é o principal objetivo. Não se utiliza o recurso string para 
padronizar variáveis, mensagens de texto ou layout de tela. 
Tela principal e componentes de menu 
 
1. Ao se adicionar um menu na tela do aplicativo, é importante preenchê-locom itens que 
auxiliem o usuário a utilizar o aplicativo de forma intuitiva e adaptável às suas 
necessidades. Há um menu que é responsável por carregar o XML desse menu. 
Qual das alternativas a seguir apresenta esse menu que carrega o XML do menu? 
Você acertou! 
D. Menu Inflater. 
O Menu Inflater é especialista em carregar XML 
de menu. O método Activity.onCreateOptionsMenu(Menu menu) nos oferece um 
objeto menu vazio, que pode ser utilizado pelo Menu Inflater para carregar um XML, de modo 
que o método Activity.getMenuInflater() nos devolve um Menu Inflater. 
Inflate.inflate(): lê um XML e carrega um menu; essa é a especialidade dos Inflaters. 
 
2. O uso de barra de ações ou do aplicativo tem sido uma boa prática no desenvolvimento 
de aplicativo. Ela é um dos elementos mais importantes da Activity do aplicativo, pois 
fornece uma estrutura visual e elementos interativos que são familiares aos usuários. 
Qual das alternativas a seguir é considerada uma barra dentro do aplicativo? 
Você acertou! 
A. Toolbar. 
OptionMenu é a coleção principal de itens de menu para uma atividade. É onde se devem 
colocar as ações que têm impacto global no aplicativo, como "Buscar", "Escrever e-mail" e 
"Configurações". ListView, ViewGroup e RadioButton são componentes de interface, ou seja, 
são utilizados nas aplicações como entrada, saída e processamentos de dados. Já o Toolbar 
através de um ActionBar, de acordo com a biblioteca de suporte v7 appcompat,permite 
implementar como uma barra de aplicativo. O uso da Toolbar da appcompat facilita a 
configuração de uma barra de aplicativo que funcione no conjunto mais amplo de 
dispositivos, além de permitir que você a personalize posteriormente ao desenvolver seu 
aplicativo. 
3. Após criar uma ActionBar no aplicativo, é importante sobrescrever três 
métodos. Qual método é executado sempre antes de o menu ser mostrado e que pode ser 
usado para habilitar/desabilitar itens ou modificar algum conteúdo dinamicamente? 
Assinale a alternativa correta. 
Você acertou! 
B. onPrepareOptionsMenu. 
Esse método é executado sempre antes de o menu ser mostrado. Ele pode ser usado para 
habilitar/desabilitar itens ou modificar algum conteúdo dinamicamente. Já 
o método onCreateOptionsMenu infla o menu em XML que foi criado na tela, e o 
onOptionsItemSelected gera a ação do item que foi selecionado no menu. onMenuItemClick 
e onCreateContextMenu são métodos relacionado ao menu contextual. 
4. É o menu que exibe seus itens abaixo do texto âncora, se houver espaço disponível na 
tela do aplicativo, o menu é exibido acima do texto âncora. Seus itens aparecem na tela em 
uma lista vertical e sua importância é em ações estendidas que são relacionados com a 
Activity. 
Que menu é esse? Assinale a alternativa correta. 
Você acertou! 
A. Menu PopUp. 
Option Menu é um menu em que se desenvolvem as ações do aplicativo, e menu contextual é 
o menu que oferece ações que afetam um item ou uma estrutura de contexto específico de 
UI. Menu Inflater permite inflar o menu contextual do recurso do menu, e Navigation Drawer é 
um painel da interface do usuário que mostra o menu de navegação principal do aplicativo. A 
gaveta aparece quando o usuário toca no ícone da gaveta na barra de aplicativosou quando 
o usuário passa o dedo pela borda esquerda da tela. Porém, o menu PopUp é um menu que 
exibe itens abaixo do texto âncora, se houver espaço disponível; caso contrário, acima do 
texto âncora. O menu PopUp exibe itens em uma lista vertical e serve para fornecer ações 
adicionais relacionadas a um conteúdo específico ou ações de fornecimento de uma segunda 
parte de comando. Suas ações não devem afetar um conteúdo correspondente diretamente; 
é para isso que servem as ações contextuais. Geralmente, omenu PopUp serve para as ações 
estendidas que relacionam os conteúdos da Activity. 
5. Os dispositivos móveis estão em todos os lares, e dentro desses dispositivos estão os 
aplicativos, que são uma extensão do mundo real direto pra a tela do celular. Sabe-se que 
os aplicativos têm funcionalidades e recursos que facilitam a vida de seus usuários. Os 
aplicativos são constituídos por menus e componentes que executam a aplicação. A tela 
principal do aplicativo é a cara do app. 
Esse componente é o padrão de design mais importante, que abriga botões com 
ações, tabs e menus para interagir com usuários. Assinale a alternativa que define o 
componente citado. 
Você acertou! 
B. ActionBar. 
ActionBar é o padrão de design mais importante, é a barra de navegação que fica na parte 
superior da aplicação, que contém os botões com ações, tabs e menus para interagir com o 
usuário, mostrando-os de forma simples e consistente aos usuários; como estes já estão 
acostumados com os aplicativos, por serem aplicativos nativos, essa é uma grande 
vantagem. OptionMenu é um menu onde se desenvolvem as ações do aplicativo, 
e menu contextual oferece ações que afetam um item ou uma estrutura de contexto 
específicos de UI. ViewGroup e ListView são componentes de interface, ou seja, são utilizados 
nas aplicações como entrada, saída e processamento de dados. 
 
Telas de cadastro 
 
1. Qual das alternativas abaixo descreve corretamente o objeto LiveData e a classe 
MutableLiveData? 
Você acertou! 
E. Um objeto LiveData é parte integrante do ViewModel e naturalmente implementa o 
padrão Observer. As classes MutableLiveData permitem que os objetos LiveData sejam 
definidos manualmente. 
Um objeto LiveData é parte integrante do ViewModel e naturalmente implementa o padrão 
Observer. As classes MutableLiveData permitem que os objetos LiveData sejam definidos 
manualmente. Um objeto que implemente um padrão Observer não pode implementar um 
padrão Factory, uma vez que o padrão Factory seria uma fábrica de objetos, e não uma classe 
que "observa" alterações em estados de objetos criados para determinar ações a serem 
executadas. Além disso, é a classe MutableLiveData que permite alterar de forma manual um 
objeto LiveData. 
2. Com base no material estudado, marque abaixo a alternativa que apresenta as opções 
mais adequadas para o desenvolvimento de uma tela de cadastro para aplicações móveis. 
Você acertou! 
B. Evitar cadastros extensos com solicitação de grande quantidade de dados. Quando isto 
for necessário, o indicado é estimular o preenchimento gradativo, não impedindo a utilização 
da ferramenta caso o cadastro não esteja completo. 
Sempre que se cria telas de cadastro para aplicativos móveis, deve-se evitar telas extensas, 
com grande quantidade de dados. Para os casos em que são necessárias muitas informações, 
deve-se optar pelo preenchimento gradativo, não condicionando a utilização do aplicativo ao 
preenchimento completo do cadastro. Dados que não são de extrema importância não devem 
ser obrigatórios. Apesar de ser comum observar telas com rolagens, o mais indicado ainda é a 
utilização de várias telas. Evite rolagens, pois o usuário pode se confundir. Lembre-se também 
de que uma aplicação deve exigir tantos dados quanto forem necessários para seu 
funcionamento correto e para operações futuras, mesmo que isso implique em vários campos 
a serem preenchidos, nesse caso, o melhor a fazer é saber como organizá-los. Contudo, 
lembre-se, somente exija que um usuário realize cadastro se realmente for necessário. 
Algumas aplicações não dependem de cadastro prévio, não precisam de segurança de dados, 
são simples e pontuais. Nesse caso, exigir cadastro é desnecessário. 
3. Em diversos casos, como desenvolvedor, você terá que utilizar componentes do tipo 
RadioGroup e RadioButton. Caso tenha que fazê-lo, qual seria a alternativa correta para 
recuperação do RadioButton marcado na interface gráfica com o usuário? 
Você acertou! 
E. Integer sVip = rgVip.getCheckedRadioButtonId(); 
Button rbVip = (RadioButton)findViewById(sVip); 
Integer sVip = rgVip.getCheckedRadioButtonId(); 
Button rbVip = (RadioButton)findViewById(sVip); 
Para recuperar a identificação do botão marcado em um RadioGroup, é preciso recorrer ao 
método getCheckedRadioButtonId() do objeto que representa o RadioGroup. Observe que 
não existe uma função CheckedRadioButtonId() ou somente getCheckedRadioButton(), veja 
também que os métodos iniciados com set tem o objetivo de atribuir valores e não 
recuperar. O segundo passo é recuperar a instância do objeto RadioButton referente ao ID 
que foi recuperado. O método é o findViewById(idDoObjeto), em quase todas as respostas 
o método está correto, no entanto, seu antecessor não está. 
4. Com base no que foi estudado no material, qual alternativa melhor se adequa aos 
conceitos, descrições e funcionalidades da classe ViewModel? 
Você acertou! 
C. Uma classe ViewModel permite a persistência de dados durante todo o ciclo de vida 
de uma aplicação. Por meio dessa classe, é possível transferir dados entre as diferentes 
atividades de uma aplicação, além de criar ações de recuperação de dados em caso de falhas 
no sistema. 
 
5. Em algumas ocasiões, a necessidade de preencher cadastros para ter acesso ao 
sistema/aplicativo pode ser suprimida, recuperando informações de outros sistemas ou 
redes sociais das quais o usuário participa. Qual das opções abaixo representa uma forma 
correta de implementar esta funcionalidade? 
Você acertou! 
B. Um acordo “lógico” é realizado entre as partes, utilizando plug-ins ou códigos 
disponibilizados pelas proprietárias das redes sociais. Para o desenvolvedor Android, a 
comunicação pode ser feita através do componente/plug-in Google Sign in. 
Desenvolvedores de aplicativos móveis podem utilizar dados disponibilizados pelos usuários 
em cadastros de redes sociais para preencher seus cadastros (ou parte deles). No caso dos 
desenvolvedores Android, esta coleta de dados é feita através do componente Google 
Identity Platform que mantém uma espécie de acordo "lógico" entre a aplicação e a rede 
social, permitindo a troca de informações. 
 
Alertas e a classe Toast 
 
1. É de suma importância conhecer as principais funções da classe Toast. Com elas, o 
programador altera o conteúdo a ser apresentado, bem como suas características de cor e 
tamanho, entre outras. 
Marque a opção que descreve a função makeText(). 
Você acertou! 
A. Recebe 3 parâmetros: primeiro, o contexto em que o componente será apresentado; 
segundo, o texto a ser apresentado; e terceiro, o tempo de duração do alerta na tela. O retorno 
dessa função é um objeto do tipo Toast devidamente inicializado. 
MakeText() recebe 3 parâmetros: primeiro, o contexto em que o componente será 
apresentado; segundo, o texto a ser apresentado; e o terceiro, o tempo de duração do alerta 
na tela. O retorno dessa função é um objeto do tipo Toast devidamente inicializado. A função 
que define a posição é a setGravity(). A função que define o tempo do alerta é a setDuration(). 
Para exibir o alerta na tela, a função chamada é a show(). 
 
2. A empresa de produtos alimentícios está solicitando a criação de um aplicativo e quer 
apresentar mensagem de erro caso haja falha de conexão quando o usuário finalizar o pedido 
de compra de produtos. 
Assinale a alternativa que representa o modo correto de codificar a apresentação da 
mensagem em Java. 
Você acertou! 
A. Toast.makeText(getApplicationContext(), “Nãofoi possível enviar seu pedido, verifique 
sua conexão com a internet.”, Toast.LENGTH_LONG).show(); 
A função da classe Toast que cria a instância do objeto é a makeText, que tem como 
parâmetro o contexto em que será apresentado e é obtida por meio do método 
getApplicationContext(), o texto a ser apresentado e o tempo que ficará visível na tela. O 
método show, no final, serve para apresentar o objeto que foi instanciado no momento 
anterior. A função setGravity serve para mudar a posição do alerta na tela. 
3. Dependendo do desenho das telas do aplicativo, pode ser necessário reposicionar o 
alerta na tela. Para isso, é preciso que o desenvolvedor saiba qual função utilizar. 
Sendo assim, marque a alternativa que representa o uso correto da função responsável por 
definir a posição do alerta. 
Você acertou! 
C. setGravity. 
A função makeText cria a instância do objeto e tem como parâmetros o contexto em que será 
apresentado, o conteúdo e o tempo que ficará visível na tela. A função show exibe o alerta na 
tela. A setDuration altera o tempo de exibição, e a view conecta o alerta ao componente no 
qual será exibido. A função que define a posição em que o alerta vai aparecer na tela é a 
setGravity(). 
 
4. É muito comum o desenvolvedor passar parâmetros para funções, a fim de que sejam 
processados como parte da lógica de negócio do seu projeto. 
Marque a opção que representa o parâmetro passado para o método construtor no caso de 
o desenvolvedor inicializar a variável com: Toast toast = new Toast(). 
Você acertou! 
A. getApplicationContext. 
Quando o usuário utiliza o construtor para inicializar um objeto do tipo Toast, o parâmetro 
passado deve ser o do contexto da aplicação e, portanto, deve ser utilizado o método 
getApplicationContext(). Está errado passar um valor numérico, bem como as funções show, 
setGravity ou setView como parâmetro, já que elas retornam valores de tipo diferente do que 
o esperado pelo construtor Toast. 
 
5. Caso o programador tenha inicializado a variável por meio do construtor, mas precise 
adicionar o texto em segundo momento, marque a opção que representa o comando 
utilizado a fim de passar o texto para o objeto. 
Você acertou! 
A. setText(“mensagem”); 
Caso o desenvolvedor não tenha inicializado a variável com o texto por meio do método 
makeText ou queira alterar a mensagem a ser enviada, a função a ser utilizada é a setText(). 
Com exceção do método setView, que define em qual view o alerta vai aparecer, os demais 
métodos não existem. 
 
Persistência de dados em dispositivos móveis 
 
1. Ao utilizar a plataforma Google para o desenvolvimento de aplicativos móveis, existem 
algumas possibilidades de armazenamento dos dados do aplicativo. 
Segundo a Google, quais seriam as opções possíveis de utilizar para armazenar os dados em 
uma aplicação Android? 
Você acertou! 
B. Shared preferences, armazenamento interno, banco de dados relacional, conexão de 
rede e servidores externos. 
Quando for para o armazenamento das informações em dispositivos móveis na plataforma 
Android, é possível armazenar os dados de cinco maneiras diferentes: shared preferences, 
armazenamento interno, armazenamento externo, banco de dados relacional e conexão de 
rede. 
2. A persistência de dados pode ser conceitualizada como o armazenamento coerente e 
confiável das informações em um sistema de armazenamento de dados. 
Em outras palavras, como poderia ser um possível conceito de persistência de dados para 
dispositivos móveis? 
Você acertou! 
E. Garantir que os dados que estão sendo manipulados em um aplicativo não sejam 
perdidos quando a aplicação for encerrada. 
A persistência de dados em aplicativos móveis pode ser conceitualizada como a garantia 
de que os dados, os quais estão sendo manipulados em um aplicativo, não sejam perdidos 
quando a aplicação for encerrada. 
 
3. Um aplicativo móvel deve ser capaz de lidar com a troca de dados em ambientes 
heterogêneos e com baixa confiabilidade, de maneira segura, consistente e com 
desempenho. 
Quando se fala em segurança da informação, quais são os três aspectos fundamentais de 
serem observados? 
Você acertou! 
A. Confidencialidade, integridade e disponibilidade. 
A segurança de dados pode ser vista como a proteção dos dados contra sua corrupção, 
podendo ser chamada de segurança da informação. A segurança da informação se define em 
três palavras: confidencialidade, integridade e disponibilidade, CID (do inglês 
CIA, Confidentiality, Integrity and Availability). 
4. As propriedades básicas de uma transação são popularmente conhecidas pelo acrônimo 
ACID (atomicidade, consistência, integridade e durabilidade). 
Qual alternativa representa uma informação correta? 
Você acertou! 
E. Uma transação atômica tem por conceito ser uma unidade de processamento que é ou 
não realizada de forma integral. 
Uma transação atômica pode ser conceitualizada como uma unidade de processamento, a 
qual deve ser realizada de maneira integral ou não. 
5. SQLite é uma das ferramentas mais utilizadas para armazenamento de dados em 
aplicativos móveis. 
Se houvesse uma tabela chamada “TabExer”, com os campos (id int primary key, enunciado 
text, gabarito text) e você quisesse inserir um registro nessa tabela, qual dos comandos você 
deveria executar? 
Você acertou! 
C. sqlite> INSERT INTO TabExer (id, enunciado, gabarito) values (1, “Nesta questão...”, 
“A”). 
No momento da inserção de um registro deve ser seguida a ordem dos campos que foram 
listados antes do values “(id, enunciado, gabarito)”, respeitando o seu tipo (int, text, text). 
 
Funcionalidades nativas 
 
1. Quando se fala em desenvolvimento específico para cada plataforma, é possível chamar 
essa abordagem de desenvolvimento nativo. 
Sendo assim, marque a alternativa que melhor corresponde a esse tipo de desenvolvimento. 
Resposta correta. 
A. É quando toda e qualquer funcionalidade de uma determinada plataforma fica à 
disposição, sem restrições, podendo implementar padrões de interface gráfica e de 
experiência com o usuário. 
É quando toda e qualquer funcionalidade de uma determinada plataforma fica à disposição. A 
grande vantagem das aplicações nativas é a capacidade que elas têm de se comunicar com os 
dispositivos do aparelho, como câmera, acelerômetro, entre outros. Isso faz com que a 
aplicação fique mais completa. 
2. Além do desenvolvimento nativo, é possível elencar o desenvolvimento híbrido, o qual 
pode ser descrito como uma mistura do desenvolvimento nativo, utilizando os recursos 
mais complexos de hardware, com o desenvolvimento Web, utilizando HTML5, CSS e 
JavaScript. 
Sendo assim, marque a alternativa que melhor conceitualiza o desenvolvimento híbrido. 
Você acertou! 
E. Uma aplicação híbrida é desenvolvida para funcionar em múltiplas plataformas, sendo 
que os custos de apoio a uma aplicação híbrida podem ser maiores que os custos de apoio a 
uma aplicação nativa. 
Uma aplicação híbrida é desenvolvida para funcionar em múltiplas plataformas. É preciso 
utilizar uma única linguagem de programação (como Java ou uma combinação de HTML5 e 
Javascript) e, após a aplicação, pode ser compilada para ser executada em cada uma das 
plataformas (como iOS e Android, por exemplo). A maior vantagem de aplicativos híbridos é 
que eles permitem o suporte a vários sistemas operacionais com um custo mais razoável do 
que desenvolver vários aplicativos nativos. 
3. Devido ao não acesso direto às funcionalidades nativas do dispositivo, algumas das 
interações mais específicas, serão, por padrão, controladas pelo auxílio de 
alguns plugins e/ou ferramentas desenvolvidas para o sistema operacional específico. 
Qual das opções a seguir é um possível exemplo de framework que possibilita a comunicação 
com as funcionalidades nativas do dispositivo? 
Resposta correta. 
B. Apache Cordova. 
O Apache Cordova é uma estrutura de desenvolvimento móvel de código aberto. Ele permite 
que sejam utilizadas tecnologias padrões da Web, como HTML5, CSS3 e JavaScript, para o

Continue navegando