Prévia do material em texto
Apol 1
Questão 1/10 - Tópicos Avançados em Programação
No arquivo activity_main.xml podemos realizar as alterações de posição, tamanho e cores da tela e seus
componentes.
Sobre as configurações dos Gerenciadores de Layout e View é INCORRETO afirmar:
A Para definir uma cor de fundo deve ser atribuido um valor em Hexadecimal no
atributo “android:background”.
B Os atributos layout_width e layout_height são responsáveis por definir a largura e a altura de
uma view.
C O valor wrap_content deixa o tamanho da view (largura ou altura) somente com o espaço
necessário.
D O valor match_parent deixa o tamanho da view ocupando todo o espaço disponível na tela
ou no seu layout-pai, o que leva a view a dar ficar proporcional.
Você assinalou essa alternativa (D)
E Se configurar o atributo android:orientation="vertical" do LinearLayout , as views ficarão uma
abaixo da outra na tela.
Questão 2/10 - Tópicos Avançados em Programação
A plataforma Android tem toda uma pilha bem definida e com base no Linux. Sobre as camadas dessa pilha
podemos afirmar:
I. Na Camada Native Libraries temos os componentes de hardware, como áudio, bluetooth, câmera e
sensores, e que fornecem uma interface padrão de comunicação com as APIs do sistema.
II. A camada HAL consiste em módulos de biblioteca, que implementam uma interface para um tipo
específico de componente de hardware, como o módulo de câmera ou Bluetooth.
III. Android Runtime, que é a máquina virtual capaz de executar os aplicativos Android, distribuídos por um
arquivo com a extensão APK.
IV. Android Framework consiste em um conjunto de APIs que os desenvolvedores utilizam para acessar
todos os recursos disponíveis no Android.
Na Camada Linux Kernel temos os aplicativos de sistema e nossos próprios aplicativos todos eles são
construídos da mesma forma, com as linguagens Java ou Kotlin e utilizando o Android SDK.
São corretas:
A Apenas II.
B Apenas I e II.
C Apenas II, III e IV.
Você assinalou essa alternativa (C)
D Apenas II e III.
E Todas estão corretas.
Questão 3/10 - Tópicos Avançados em Programação
Sobre utilização das View RadioButton e CheckBox, avalie as assertivas abaixo:
I. Para criação do RadioButton não é necessário que esteja aninhado dentro de uma tag RadioGroup.
II. É necessário criar um RadioButton para cada opção que desejamos e cada opção deve possuir um id
único.
III. Para que os RadioButtons fiquem um ao lado do outro utiliza o atributo android:orientation="horizontal"
no RadioGroup.
IV. O RadioGroup também precisa de um id único.
V. O Texto que aparecerá ao lado do Checkbox utiliza o atributo android:text.
Baseado nas suas respostas são corretas:
A Apenas I, IV e V
B Apenas II e III
C Apenas II, III e V
Você assinalou essa alternativa (C)
D Todas estão corretas
E Apenas a I
Questão 4/10 - Tópicos Avançados em Programação
É muito comum na programação precisarmos converter um Int para um String, esse processo de conversão
é chamado de Cast.
Sobre a conversão de tipos em Kotlin é correto afirmar:
A É necessário realizar a validação de tipo antes de utilizar a chamada de Cast, da mesma forma
que é feita em Java.
B Utilizando o operador “is” é realizada a verificação do tipo e o Cast é realizado ao mesmo
tempo.
Você assinalou essa alternativa (B)
C Utilizando o operador “as” será lançada uma exceção do tipo TypeCastException.
D Utilizando o operador “as?” lança uma exceção ClassCastException e retorna null.
E O Kotlin não realiza o cast automaticamente o chamado Smart Cast, como em outras
linguagens de programação.
Questão 5/10 - Tópicos Avançados em Programação
Kotlin Playground, criada pelos fundadores da linguagem, justamente para você digitar alguns códigos e se
acostumar com a sintaxe.
Com base na imagem acima podemos é correto afirmar:
A É necessário realizar a instalação no PC.
B Quando inicia a ferramenta já abre com uma classe main().
C Quando é pressionado o Botão “Run” (item 1 da imagem) é mostrado o resultado
“Hello, world!!!” (item 2 da imagem)
Você assinalou essa alternativa (C)
D Para que seja possível executar a linha 2 (item 3 da imagem) é necessário desenvolver
a função println.
E O Item 2 da imagem pode ser alterado apenas clicando em cima.
Questão 6/10 - Tópicos Avançados em Programação
Para adicionar o id em uma view, utilizamos o atributo android:id, a sintaxe que deve ser utilizada é :
A android:id=“@+id/codigoIdAqui”
Você assinalou essa alternativa (A)
B android:id=“codigoIdAqui”
C android:id=“+id/codigoIdAqui”
D android:id=“@id/codigoIdAqui”
E android:id=“/codigoIdAqui”
Questão 7/10 - Tópicos Avançados em Programação
Cada membro da OHA está fortemente comprometido com uma maior abertura no ecossistema móvel. A
maior abertura permitirá que todos em nosso setor inovem mais rapidamente e respondam melhor às
demandas dos consumidores. Nosso primeiro projeto conjunto como uma nova aliança é o Android ™. O
Android foi desenvolvido do zero com o objetivo explícito de ser a primeira plataforma aberta, completa e
gratuita criada especificamente para dispositivos móveis.
Fonte: http://www.openhandsetalliance.com/oha_overview.html
Sobre a OHA é correto afirmar:
A Em meados de 2007, o Google não quis se juntar a outras empresas gigantes da tecnologia,
que futuramente chamada de OHA (Open Handset Alliance).
B O objetivo da aliança era criar desenvolve um sistema operacional móvel único para
monopolizar o mercado de celular.
C Na época existiam apenas 88 empresas integrantes do grupo, entre elas: Samsung, Intel,
LG, Motorola, ASUS, Acer, Dell, dentre outras. Ficaram de fora a Aliança Google e Sony
Ericsson.
D Com a união se a Samsung fizesse melhorias no software da câmera, isso ficaria disponível no
código-fonte aberto do Android, e todos os fabricantes participantes da aliança poderiam se
beneficiar disso.
Você assinalou essa alternativa (D)
E Como a Sony ficou fora da União, caso ela fizesse melhorias nos wiadgets que ficam na
Home do Android, ela não passaria isso para as outras empresas.
Questão 8/10 - Tópicos Avançados em Programação
Java Platform, Micro Edition (Java ME) oferece um ambiente robusto e flexível para aplicativos executados
em dispositivos móveis e integrados: celulares, set-top boxes, reprodutores de discos Blu-ray, dispositivos
de mídia digital, módulos M2M, impressoras etc.
A tecnologia Java ME foi originalmente criada para lidar com as restrições associadas à criação de
aplicativos para pequenos dispositivos. Para essa finalidade, a Oracle definiu o básico para a tecnologia
Java ME para acomodar esse ambiente limitado e possibilitar a criação de aplicativos Java executados em
dispositivos pequenos com memória, vídeo e capacidade de processamento limitados.
Fonte:https://www.java.com/pt-BR/download/help/whatis_j2me_pt-br.html
Marque a alternativa INCORRETA sobre celulares que utilizavam J2ME:
A A ideia do J2ME era usufruir do grande lema da linguagem Java (Write Once Run
Everywhere – escreva uma vez, execute em qualquer lugar) e criar uma plataforma única
de desenvolvimento que executasse em diversos dispositivos, independentemente do fabricante.
B Os celulares Java eram embarcados com uma JVM (Java Virtual Machine) capaz de executar
esses aplicativos.
C O J2ME tinha um problema: era uma especificação, e não uma implementação.
D Na especificação (criada pela Sun Microsystems – criadora do Java e hoje comprada pela
Oracle), apenas citava-se que, para criar a interface do aplicativo, era preciso existir um
componente de Botão, outro para um Campo de Texto, Checkbox, Imagem etc., porém cada
fabricante podia implementar esses componentes visuais como quisesse.
E A interface de um botão e checkbox de um celular do fabricante X ficava diferente do celular
que foi feito pelo fabricanteY, e isso era aceitável por grandes empresas e as empresas queria
que existissem essas diferenças.
Você assinalou essa alternativa (E)
Questão 9/10 - Tópicos Avançados em Programação
Os números utilizados para identificar a versão do SDK do Android é chamado de API Level. Iniciou com
Android 1.0 e API Level 1.
Sobre API Level é incorreto afirmar:
A Para testar o aplicativo para verificar com se comporta no Android 5, basta baixar o
Android 5.0 (API 21).
B Desenvolvedores trabalham com o número da API, sendo comum falar que o aplicativo
é compatível com API 16, 21, 26, etc.
C A partir do Android 6.0 é necessário que o desenvolvedor configure para solicitar ao
usuário que aceite as permissões antes de chamar alguma API segura.
D Sempre que for ser utilizado uma biblioteca ou algum código do próprio Android SDK,
não é necessário ser validado se esse código é compatível com a versão do Android que
está instalada no celular do usuário.
Você assinalou essa alternativa (D)
E Cada API Level corresponde ao número de determinada versão do Android.
Questão 10/10 - Tópicos Avançados em Programação
Com base na imagem acima, avalie coloque V ou F sobre Funções em Kotlin:
( ) A função imprimir(String) recebe uma String como parâmetro e a salva na memória.
( ) A função imprimir(String) não tem retorno, portanto, é identificada como Unit, semelhante ao void do
Java.
( ) A função soma(Int, Int) recebe dois inteiros e retorna dois inteiro sem realizar a soma.
( ) Quando a função não tem retorno, a palavra Unit pode ser omitida.
( ) A sintaxe resumida ao declarar funções, chamada de Single-Expression functions. Sempre que uma
função tiver apenas uma linha, não será preciso abrir e fechar chaves { }: basta usar o operador de igual '='
e escrever tudo em uma única linha.
( ) O tipo do retorno da função pode ser omitido, pois o Kotlin pode descobrir isso sozinho.
Baseado nas suas respostas, a sequência correta é:
A V F V V F F
B F V F V V V
Você assinalou essa alternativa (B)
C V V V F F F
D F V F F F V
E V F F V F V
Apol 2
Questão 1/10 - Tópicos Avançados em Programação
Uma Intent é o coração do Android e está presente em todos os lugares, ela representa uma mensagem do
aplicativo para o sistema operacional, solicitando que algo seja realizado. Com uma intent, podemos abrir
telas de outros aplicativos como o de um email, SMS, mapas etc.
Sobre Intents, avalie as assertivas abaixo:
I. Podemos criar uma intent simples para chamar o browser com: “val intent = Intent(Intent.ACTION_VIEW,
Uri.parse("https://google.com"))”
II. Podemos criar uma intent passando como parametro uma localização com: “val intent =
Intent(Intent.ACTION_VIEW, Uri.parse("geo://@-25.3848941,-49.2763565,15z"))
III. Para chamar a intent segura “val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:987654321"))” é
necessário adicionar uma tag <uses-permission android:name="android.permission.CALL_PHONE" /> no
AndroidManigest.xml
IV. Solicitar permissão dentro do aplicativo e mostrar ao usuário o alerta de permissão, não é considerada
uma melhor alternativa e boa prática.
Baseado nas suas respostas são corretas:
A Apenas I, II e IV
B Apenas II e IV
C Apenas I, II e III
Você assinalou essa alternativa (C)
D Todas estão corretas
E Apenas a I
Questão 2/10 - Tópicos Avançados em Programação
Para navegar de uma tela para outra no aplicativo deve ser chamado o método startActivity(intent).
Ao clicar no botão voltar, a tela atual será destruída e a MainActivity, assinale a sequência correta que será
utilizada para reiniciar a MainActity
A onRestart > onStart > onResume
Você assinalou essa alternativa (A)
B onCreate > onStart > onResume
C onCreate > onResume > onStart
D onRestart > onResume > onStart
E onStart > onCreate > onResume
Questão 3/10 - Tópicos Avançados em Programação
Avalie o trecho de código acima e assinale a alternativa incorreta sobre os métodos do ciclo de vida de uma
activity:
A Sempre que sobrescrever um método da classe Activity, chame o método da classe-mãe com
o super; caso contrário, uma exceção será lançada em tempo de execução.
B No início da classe, foi declarada a propriedade className e foi sobrescrito o método get() para
que ela tenha um retorno, facilitando o seu uso no código.
C Essa classe imprime um log quando algum método do ciclo de vida é chamado, por exemplo
o método onCreate(bundle).
D O log é criado com a tag “android”, portanto, é necessário criar um filtro para essa tag na
janela do LogCat. Também deve ser alterado a classe MainActivity para ser filha
de LogActivity, assim, ela vai herdar todos os métodos que foram customizados na sua
classe-mãe.
E Na primeira vez que o aplicativo executar os métodos onResume(), onCreate()
e onStart() são chamados exatamente nesta sequência.
Você assinalou essa alternativa (E)
Questão 4/10 - Tópicos Avançados em Programação
Com a utilização do LogCat pode ser categorizado os logs utilizando tags, também pode ser selecionado o
nível de severidade.
Sobre a utilização do LogCat é CORRETO afirmar:
A Não é necessário fazer o import da classe Log: import android.util.Log
B Por padrão, o LogCat não mostra todos os logs do sistema operacional do Android e o que
precisamos é encontrar a mensagem que foi escrita com a tag criada no código.
C Na janela do LogCat, clique no combo que filtra os logs (lá na direita), e selecione a opção
Verbose, onde é realizada a criação do Filtros.
D Também podemos logar mensagens no LogCat com outros níveis de severidade, exemplo,
Log.i (info), Log.w (warning), Log.d (debug), Log.v (verbose), Log.e (erro).
Você assinalou essa alternativa (D)
E No centro da janela do LogCat, você verá um combo que está escrito Verbose, onde pode
ser criados os filtros com apenas o nível de severidade que estamos interessados.
Questão 5/10 - Tópicos Avançados em Programação
Quando utilizamos a função do GPS em um aplicativo para obter localização do usuário, o app entrará em
um nova tela para mostrar a localização. Ao realizar a chamada do GPS terá um aumento significativo de
consumo de bateria, caso o usuário clique no botão Home neste momento o Android realizará a parada e
deixará em segundo plano a abertura da tela de GPS para economizar recursos de bateria.
Marque a alternativa incorreta sobre o ciclo de vida de uma Activity:
A O método onCreate(bundle) é chamado uma única vez. O objetivo desse método é fazer
a inicialização necessária para executar o aplicativo.
B O método onStart() é chamado quando a activity está ficando visível ao usuário e já tem
uma view.
C O método onRestart() é chamado quando uma activity foi parada temporariamente e está
sendo iniciada outra vez.
D O método onResume() é chamado quando a activity está no topo da pilha “activity stack”
e, dessa forma, já está executando como a activity principal e interagindo com o usuário.
E O método onPause() será chamado apenas uma vez quando a tela da activity fechar. Isso
pode acontecer se o usuário pressionar o botão Home ou o botão voltar do Android.
Você assinalou essa alternativa (E)
Questão 6/10 - Tópicos Avançados em Programação
Com base no trecho de código apresentado na imagem acima, avalie coloque V ou F sobre a visualização
de erros no LogCat:
( ) No Android, sempre que o aplicativo travar e encerrar, significa que uma exceção foi tratada e lançada,
com isso podemos visualizar todos os detalhes desses logs usando o LogCat.
( ) Comentando a configuração da HomeActivity do arquivo de manifesto, pois vamos adicionar um bug
proposital apenas para aprendermos a visualizar os logs. Um comentário em XML começa com '<!--' e
termina com '-->'.
( ) Será lançada uma exceção, e inclusive a mensagem é bastante clara: "ActivityNotFoundException:
Unable to find explicit activityclass {HomeActivity}; have you declared this activity in your
AndroidManifest.xml?".
( ) O Android não auxilia muito com as mensagens de erro, pois depois de não encontrar a configuração da
HomeActivity, ele não pergunta se fizemos a configuração dessa activity no arquivo de manifesto.
Baseado nas suas respostas, a sequência correta é:
A V V F V
B F V V F
Você assinalou essa alternativa (B)
C V V V F
D F V V V
E V F F F
Questão 7/10 - Tópicos Avançados em Programação
1 – onCreate(bundle)
2 – onStart()
3 – onRestart()
4 – onResume()
5 – onPause()
6 – onStop()
7 – onDestroy()
Relacione cada item acima com sua respectiva definição:
( ) chamado sempre que a tela da activity fechar.
( ) realizar a inicialização necessária para executar o aplicativo.
( ) quando chamado encerra a execução de uma activity. Ele pode ser chamado automaticamente pelo
sistema operacional para liberar recursos ou pode ser chamado pelo aplicativo com o método finish() da
classe Activity.
( ) chamado quando uma activity foi parada temporariamente e está sendo iniciada outra vez.
( ) chamado quando a activity está no topo da pilha “activity stack” e, dessa forma, já está executando como
a activity principal e interagindo com o usuário.
( ) chamado logo depois do método onPause() e indica que a activity está sendo encerrada e não está mais
visível ao usuário.
( ) raramente utilizado, chamado quando a activity ficará visível ao usuário é já tem um view.
A sequência correta é:
A 5, 1, 7, 3, 4, 6, 2
Você assinalou essa alternativa (A)
B 7, 3, 4, 6, 2, 5, 1
C 5, 1, 7, 4, 3, 6, 2
D 6, 2, 5, 1, 7, 4, 3
E 5, 1, 7, 2, 6, 3, 4
Questão 8/10 - Tópicos Avançados em Programação
Ao girar a tela do celular da vertical para a horizontal, o Android vai destruir a activity atual e recriá-la logo
em seguida. O Android faz isso porque ele precisa recriar todas as views e aplicar espaçamentos e margens
adequadas para a nova orientação (vertical ou horizontal).
Sobre o método onSaveInstanceState(bundle), assinale a alternativa correta:
A Esse método recebe um objeto do tipo android.os.Bundle como argumento que deve ser utilizado
para armazenar os dados em uma estrutura de String.
B Mesmo que o aplicativo salve valores no Bundle (estrutura de chave e valor) lá no método
onSaveInstanceState(bundle), não é possível recuperar esses valores no bundle que vem como
parâmetro no método onCreate(bundle?).
C Se for a primeira vez que a activity é executada, o parâmetro bundle pode não estar nulo, por isso
ele contém a sintaxe da interrogação (? – pode ser nulo).
D Se o aplicativo faz uma busca em um web service para mostrar uma lista de produtos, caso
o usuário gire a tela do celular, a lista não será perdida, mesmo com a tela sendo destruída
e recriada.
E Pode ser salvar uma lista dentro do bundle (HashTable), e depois pode recuperar essa lista
já pronta quando o método onCreate(bundle) for chamado.
Você assinalou essa alternativa (E)
Questão 9/10 - Tópicos Avançados em Programação
Pode ser realizadas algumas melhorias nos formulários e tratamentos, avalie os itens abaixo e coloque V
ou F:
( ) Para incluir uma ação quando clicamos no botão Ok de uma mensagem de alerta, podemos passar como
parâmetro uma função que popularmente chamamos de callback, utilizando a sintaxe: callback: () -> Unit =
{}
( ) Um ScrollView é um gerenciador de layout que pode ter várias tags filha, e geralmente são LinearLayout
(vertical), o qual possui todas as views uma embaixo da outra. Essa view fará a rolagem (scroll)
automaticamente caso a tela seja pequena e não consiga mostrar todos os campos do formulário.
( ) Para descobrir se o CheckBox está selecionado, basta chamar o método isChecked() que retorna um
boolean.
( ) A lógica para ler o valor do RadioGroup (grupo) é chamar o método getCheckedRadioButtonId() que
retorna um int referente ao id do RadioButton que está selecionado. Para descobrir qual item está
selecionado (M o F), esse id pode ser comparado com as constantes da classe R, que nesse caso são
R.id.radioMasculino e R.id.radioFeminino, ambas definidas como id do RadioButton lá no XML.
Baseado nas suas respostas, a sequência correta é:
A V V F V
B F V V F
C V V V F
D F V V V
E V F V V
Você assinalou essa alternativa (E)
Questão 10/10 - Tópicos Avançados em Programação
1 – Classe Controller
2 – Data classe
3 – Classe Service
Relacione cada item acima com sua respectiva definição:
( ) a classe que contem a lógica do negócio.
( ) a classe activity deve ser um intermediador entre a view/layout e a lógica de negócios
( ) a classe de dados que contem os atributos do objeto.
A sequência correta é
A 3, 2, 1
B 1, 3, 2
C 3, 1, 2
Você assinalou essa alternativa (C)
D 1, 2, 3
E 2, 1, 3