Buscar

Questões de Prog. Disp. Móveis

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 19 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 19 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 19 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

QUESTÕES DE PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
1- São sistemas operacionais de smartphone:
- iOS, Symbian, Android, PalmOS, WebOS, RIM BlackBarry, Windows Mobile e Windows Phone.
2- Uma máquina virtual é:
- Um simulador eficiente e isolado de uma máquina real.
3- 4- A diferença significativa entre um telefone celular e um smartphone:
- É que o smartphone é um telefone inteligente, ele possui funcionalidades que são mais avançadas e que podem ser estendidas por meio de programas executados através de seu sistema operacional.
4- As configurações JME direcionam os aplicativos para uma ampla família de dispositivos com características similares. Com respeita à configuração do tipo CDC:
- Precisa de pelo menos 512 KB de memória para execução do Java.
5- Para a plataforma Java Micro Edition, podemos afirmar que a diferença significativa entre as configurações de um telefone celular e um smartphone:
- Está no CLDC e no CDC.
-6 As classes gráficas (classes GUI) do Java Micro Edition são definidas pela JCP (Java CommunityProcess) e estão inclusas no MIDP. Marque a alternativa que possui somente Displayable que herdam de Screen:
- Alert, List, Form e TextBox
7- Devemos considerar o uso de bibliotecas gráficas:
- Quando a biblioteca empregar um paradigma de programação que facilite o desenvolvimento e quando houver espaço no equipamento para a adição dela.
8- A High Level API é voltada para a construção de interfaces de usuário, similares às janelas dos sistemas desktop, sendo estas interfaces descendentes da classe Screen. O elemento Gauge é descendente de Screen?
- Não
9- O NetBeans permite o desenvolvimento de aplicativos para JME com grande produtividade. A afirmação abaixo NÃO corresponde a uma característica deste ambiente.
- Obriga uma construção totalmente visual, não permitindo ao programador interferir em nenhum ponto via codificação.
10- Podemos afirmar que a área de fluxo da IDE NetBeans:
- É responsável por estabelecer fluxo de dados e ações da aplicação de maneira gráfica.
11- O tipo de objeto StringItem:
- Serve para exibir um rótulo e um texto em um formulário.
12- CamelCase é uma estratégia de notação para dar nomes apropriados as variáveis. Ela consiste em: 
- Utilizar nomes compostos para as variáveis, sempre com a primeira letra maiúsculas e as demais minúsculas.
13- Analise o texto: "Quando assume um valor, não pode mais ser alterada, todavia quando é um objeto, seu valor pode eventualmente mudar, mas sua referência de memória não pode ser alterada." Considerando que estamos no contexto de Java Micro Edition, este texto refere-se a: 
- Uma constante.
14- Uma boa estratégia de programação é utilizar a técnica chamada de "Curto - Circuito", que serve para:
 - Sempre colocar do lado esquerdo, a condição que possuir maior probabilidade de mudança ou o que for mais importante
15- O termo “plataforma de hardware” refere-se: 
- Ao tipo de equipamento ou, de dispositivo ou, ainda, ao ambiente de execução.
16- A plataforma Android quando comparada à plataforma Java ME possui o diferencial de:
- Permitir que desenvolvedores possam tirar proveitos de tudo o que o dispositivo móvel possa oferecer.
17- Podemos afirmar que a “API”: - É a interface de programação da aplicação, ela dá acesso a um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.
18- O principal papel da MIDP é para: 
- Complementar a configuração que caracteriza o dispositivo.
19- Podemos afirmar que o NetBeans: 
- É uma ferramenta para desenvolvimento profissional que atende plenamente os requisitos para desenvolvimento de software para celular na plataforma Java Micro Edition.
20- Um smartphone, diferentemente de um celular comum, quando possui suporte para a plataforma Java ME, tipicamente está: 
- Classificado como CDC.
21- A KVM possui um tamanho extremamente reduzido e consome poucos recursos do dispositivo em sua execução e por conta disso:
- diversas funcionalidades de máquinas virtuais e da linguagem de programação que não eram necessárias para a maior parte das aplicações tornaram-se opcionais, portanto a linguagem e a máquina virtual tiveram que ser modificadas e as bibliotecas também tiveram que ser reduzidas, tornando a programação para a plataforma de execução Java Micro Edition diferente da Java Standard Edition e da Java Enterprise Edition.
22- Como a KVM implementa parcialmente as especificações da JVM (Java Virtual Machine) os aplicativos gerados:
- para uma plataforma podem não ser portáveis para outras.
23- Os MIDlets são empacotadas:
- dentro de um arquivo de extensão JAR (Java Archive).
24- Podemos afirmar que a área de fluxo da IDE NetBeans:
- É responsável por estabelecer fluxo de dados e ações da aplicação de maneira gráfica.
25- A instrução if serve para:
- Verificar condições e conduzir o fluxo da aplicação.
26- O tipo de objeto que representa um campo de texto nativo da plataforma Java ME é:
- TextField.
27- Analise o trecho de código-fonte Java a seguir:
	boolean b = false;
	if (b = true) {
		b = false;
	}
O trecho de código-fonte Java:
- Cria uma variável “b”, define um valor “false” (falso) para o “b” e, por atender a condição, o fluxo entrará na instrução “if”, pois diante da atribuição e comparação, o resultado é “true”.
28- Quando se programa em celular com uma configuração baixa como, por exemplo, CLDC 1.0, o melhor a fazer a fim de reduzir o consumo de memória RAM é:
 - Usar o mínimo possível de objetos.
29- Podemos afirmar que os erros mais difíceis de resolver são: 
- Os erros na lógica de programação.
30- Boas práticas de programação compreendem: 
- Documentação e objetividade, a fim de contemplar a manutenção e o resultado.
31- Implemente um método em J2ME para abrir um Banco de Dados. Este método deverá receber dois parâmetros, um booleano que indica se o banco deverá ser criado ou não caso exista ou não e o outro, uma String com o nome do banco. Este método deverá retornar um ponteiro para o banco aberto ou nulo caso não consiga abrir. 
publicRecordStoreabrirBanco(booleancriar, String banco) { 
try { 
returnRecordStore.openRecordStore(banco, criar); 
} catch (RecordStoreException ex) { 
returnnull; 
}
}
32- Podemos dizer que a API RMS (Record Management System) serve para: 
- Acessar a área de memória dedicada ao armazenamento persistente de dados da aplicação e que provê um mecanismo uniforme para criar, destruir, localizar e modificar dados.
33- Com relação ao Android é correto dizer que: 
- Não possui restrições quanto ao acesso às funcionalidades nativas do aparelho. 
- Permite a implementação de bancos de dados com o SQLite. 
- Fornece ao desenvolvedor poderosos recursos 2D e 3D. 
- Trata-se de uma plataforma open source. 
34- O componente utilizado para exibir mensagens de aviso ao usuário é: 
- Alert
35- Sobre as ações do AMS (Application Management Software) é correto dizer:
- Trabalha com três estados básicos da MIDlet: Iniciado, Pausado e Destruído. 
- Notifica alterações no estado da MIDlet. 
- É responsável por receber propriedades do arquivo descritor da aplicação. 
- Controla o comportamento da MIDlet durante a execução. 
36- Apresente exemplos de boas práticas de programação:
- Documentação e comentários 
- Troca da posição de variáveis e constantes na comparação 
- Uso de "curto-circuito" na comparação 
- Limitação de novos objetos 
- Variáveis de objetos nulas 
- Nomes apropriados 
37- Com o lançamento do Mobile Information Device Profile (MIDP) versão 2.0, foi introduzido o pacote javax.microedition.lcdui.game que disponibiliza cinco classes com uma grande variedade de recursos para a produção de jogos. Cite as cinco classes explicando suas funções.
GameCanvas;
Sprite;
Layer
TiledLayer;
LayerManager.
 
38- Podemos concluirque a linha de programação “Display.getDisplay(this)”:
- Retorna um objeto que representa a tela do dispositivo.
39- Objetos da classe ByteArrayInputStream:
- Representam o fluxo de entrada da aplicação e armazenam dados de um arranjo de bytes.
40- A classe RecordStoreException trata:
- de erros ocasionados na API RMS.
41- Podemos afirmar que a linha de programação “Display.getDisplay(this).getCurrent()”
- Retorna o objeto que foi colocado na tela do dispositivo.
42- Um Sprite (alma, fada) é uma classe que serve para:
- Representar uma imagem na memória.
43- É correto afirmar que a classe RecordStore:
- Representa o banco de dados da aplicação e possui a capacidade de armazenar registros, que são os dados que pretendemos salvar na área de memória dedicada ao armazenamento 
44- Para utilizar a classe RecordStore é necessário:
- Utilizar instruções de tratamento de erros da linguagem Java (trBytey/catch).
45- Para que possamos obter registros de um objeto do tipo RecordStore, primeiramente:
- é preciso abrir o banco de dados.
46- A classe Connector e uma URL para criar uma conexão:
- estabelecem uma conexão.
47- Referente ao GCF, o formato geral de uma URL,como definido na RFC 1738 (e depois na RFC 2396), é o seguinte: scheme://user:password@host:port/url-path;parameters, onde:
- Scheme é obrigatório e especifica o método ou o protocolo e define o tipo de conexão a ser usada.
48- O método “setCommandListener(this)” faz com que todo evento de comando de um formulário seja:
- Recebido através do método“CommandAction”.
49- Em MIDP 2.0, um novo pacote que fornece recursos para construção de jogos foi introduzido, simplificando o desenvolvimento de atividadesque só seriam possíveis em MIDP 1.0 com uma grande quantidade de código repetitivo. Apresente qual foi esse pacote.
- Em MIDP 2.0, foi introduzido o pacote javax.microedition. lcdui.game que disponibiliza cinco classes com uma grande variedade de recursos para a produção de jogos, são elas:
GameCanvas;
Sprite;
Layer
TiledLayer;
LayerManager.
50- A classe Canvas é uma classe:
- Base que é utilizada em aplicações que necessitam lidar com eventos de baixo nível e emissão de gráficos na tela.
51- O método paint da classe Canvas: 
- Serve para desenhar gráficos na tela.
52- Podemos concluir que o fragmento de código-fonte a seguir:
publicclassJogoDaVelhaextendsCanvas {
protected void paint (Grafics g) {
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
 }
}
- Serve para limpar a tela.
53. Qual a motivação para programação para dispositivos móveis?
- Cada vez mais as pessoas utilizam dispositivos com tecnologia móvel. Existem mais dispositivos móveis do que pessoas. Existe uma demanda crescente de consumo que exige uma demanda de desenvolvimento de programas (sw) nesses dispositivos
54. O que podemos destacar no mercado brasileiro?
- Que os dispositivos móveis possuem capacidade computacional, conectividade e multimídia.
55. Qual a presença no mercado de dispositivos móveis?
- Os equipamentos móveis estão em constante evolução e estão presentes no mercado nos mais variáveis formatos.
56. Quais as tendências do mercado de equipamentos móveis?
- 1. Telefones celulares comuns estão convergindo para smartphones;
- 2. Os Netbooks e Notebooks sofrerão transformações;
- 3. Surgimento de novos equipamentos com redes sem fio e com longa autonomia de bateria.
57. Qual equipamento ou tecnologia usar?
- Surgem e somem constantemente aparelhos, ferramentas, plataformas de desenvolvimento e linguagens de programação. Para evitar uma escolha equivocada de equipamentos ou de tecnologias, é preciso ficar atento às informações e tendências de mercado - leia sites de notícia regularmente.
58. Você sabe o que é plataforma?
- Devemos entendê-la como sendo um tipo de ambiente com características específicas em que alguma coisa acontecerá.
59. A que se refere a plataforma de execução?
- Refere-se ao ambiente onde os softwares são executados. É o meu aparelho, onde o sw vai ser executado.
60. E a plataforma de desenvolvimento?
- Refere-se ao ambiente que possibilita o desenvolvimento (criação ou manutenção) de softwares. Essa plataforma está diretamente relacionada à plataforma de execução e deve produzir softwares capazes de atender as capacidades e limitações específicas da plataforma de execução, ou seja, é aonde eu vou trabalhar (netbeans, jdk, rim).
61. Como é o uso da plataforma de desenvolvimento?
- Normalmente as plataformas de desenvolvimento são instaladas e utilizadas em computadores do tipo desktop (ou notebook) e os resultados produzidos são transferidos e utilizados pelos dispositivos móveis.
62. A que se refere o termo “máquina virtual”?
- Se refere à plataforma de execução de softwares por uma estrutura relativamente complexa. Basicamente, uma máquina virtual é uma máquina, criada através de software, que executa programas como se fosse um dispositivo real (físico).
63. Como pode ser entendida uma máquina virtual (VM)?
- Como “uma duplicata eficiente e isolada de uma máquina real”. A IBM, por exemplo, define uma máquina virtual como uma cópia totalmente protegida e isolada de um sistema físico.
64. O que é “linguagem de máquina”?
- É um idioma que o computador possa compreender e executar, ou seja, idioma compreendido pelo computador ou plataforma de execução.
65. O que são “linguagens de programação?
- São a representação de ideias dentro de uma lógica humana em uma escrita especial que atuam como um idioma intermediário, ou seja, um idioma que fica entre o nosso idioma e o idioma da máquina.
66. O que são códigos-fontes?
- Instruções escritas em uma linguagem de programação.
67. O que é compilação?
- É a tradução da linguagem de programação para a linguagem de máquina. O produto final da compilação é o software. Este processo depende do hardware ou da plataforma
68. O que é interpretação? 
- Processo onde programas de computador leem um código-fonte de uma linguagem de programação e o executam sem necessariamente convertê-lo em sw.
69. O que é bytecode?
- Compilação para um sw, normalmente de máquina virtual, ou seja, a compilação gera como resultado um programa que pode ser executado por máquina virtual.
70. O que é API (Application Programming Interface)?
- refere-se a um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.
71. O que é o CLDC (Connected Limited Device Configuration)?
- refere-se ao conjunto de configurações que caracterizam dispositivos limitados em memória e poder de processamento. Como exemplos de dispositivos móveis que usam CLDC destacam-se o celular comum, pagers e PDAs
72. O que é CDC (Connected Device Configuration) - refere-se ao conjunto de configurações que caracterizam dispositivos mais potentes em memória, poder de processamento e conectividade de rede. Como exemplos de dispositivos móveis que usam CDC destacam-se o celular smartphone, set-top boxes, dispositivos e servidores embarcados.
73. MIDP (Mobile Information Device Profile)?
- refere-se ao perfil que complementa a configuração que caracteriza o dispositivo. Os dispositivos podem se encaixar dentro de uma configuração, todavia um telefone celular comum, um PDA e pager apesar de se encaixarem nas diretrizes do CLDC não possuem os mesmos recursos de tela e de funcionalidade. Para resolver esta ampla gama de capacidades, e para proporcionar uma maior flexibilidade como as mudanças tecnológicas, a Sun introduziu o conceito de perfil (MIDP) para a plataforma Java Micro Edition.
74. O que é um perfil?
- É uma extensão da configuração e ele provê as bibliotecas para o desenvolvedor escrever aplicativos para um determinado tipo de dispositivo. Por exemplo, o MIDP define APIs (Application Programming Interface) para a interfacede usuário, entrada, componentes, manipulação de eventos, armazenamento persistente, rede e temporizadores, levando em consideração a tela, memória e limitações do dispositivo móvel.
75. O que é a KVM (Kilo Virtual Machine)?
- É uma máquina virtual que oferece suporte ao Java Micro Edition em plartaformas de 16 ou 32 bits, possui um tamanho extremamente reduzido e consome poucos recursos do dispositivo em sua execução, pois o fabricante de um dispositivo que utiliza a tecnologia Java Micro Edition tem a liberdade de modificar e de pesonalizar a KVM em conformidade com suas necessidades, por isso, ela é realmente pequena e leve.
76. O que é uma MIDlet?
- É uma aplicação da plataforma Java Micro Edition que utiliza recursos do MIDP e do CLDC.
77. O que é o software AMS e o que ele faz?
- Para gerenciar e executar aplicações MIDlet, os dispositivos possuem um software denominado AMS que é responsável por controlar os aplicativos. Gere a instalação, o armazenamento e o comportamento da MIDlet durante a execução. O AMS também é responsável por receber propriedades do arquivo descritor da aplicação e por notificar alterações no estado da MIDlet.
78. Como ocorre o empacotamento da aplicação?
- Para facilitar a organização e a manipulação da aplicação, as MIDlets são colocadas (empacotadas) dentro de um arquivo de extensão JAR.
79. Como ocorre a distribuição da aplicação?
- Depois de empacotar, chega o momento de distribuir a aplicação para que ela possa ser instalada nos dispositivos. Para auxiliar com o processo, existe um arquivo de extensão JAD (Java Application Descriptor) que deve ser gerado após o empacotamento das MIDlets e esse arquivo deve conter um texto que descreva as MIDlets que são distribuídas como arquivos JAR.
80. Como é utilizado o tipo JAD?
- Comumente é utilizado para distribuir aplicações Java ou jogos para que possam ser baixados para dispositivos móveis, pois dentro deles existem referências de localização do JAR, a lista das MIDlets e outros atributos. A distribuição da aplicação pode ser realizada por rede ou localmente.
81. O que requer a distribuição local?
- Requer que os arquivos da MIDlet sejam transferidos para o dispositivo através de uma conexão, como cabo USB, Bluetooth ou IrDA (necessitando eventualmente de hardware e software específico para realizar a transferência).
82. Como acontece a distribuição por rede?
- acontece via protocolo HTTP (Hypertext Transfer Protocol) e os procedimentos a seguir acionam um tipo de instalação conhecida por OTA (over the air):
Enviar os arquivos do tipo JAR e JAD a um servidor Web que esteja acessível ao dispositivo móvel através via HTTP;
O usuário entra em um software cliente HTTP, com o navegador do dispositivo, baixa o arquivo JAD e os MIDlets necessários são instalados.
83. Como são definidas as classes gráficas (classes GUI) do Java Micro Edition?
- São definidas pela JCP (Java Community Process) e estão inclusas no MIDP.
84. Quais os tipos de APIs para o desenvolvimento de interfaces gráficas?
- A High Level API e a Low Level API.
85. O que é possível fazer utilizando a High Level API e a Low Level API?
- É possível escrever aplicativos atraentes para diferentes dispositivos móveis, todavia a aparência e o comportamento são sempre um desafio.
86. Qual a finalidade do uso de bibliotecas gráficas?
- Pode simplificar o desenvolvimento de aplicações, facilitando o trabalho. Uma biblioteca notória é o LWUIT (Lightweight UI Toolkit), ela foi desenvolvida para simplificar a criação de aplicativos atraentes para diferentes dispositivos móveis, dispondo de recursos que simplificam a criação de interfaces de modo bem atraente.
87. Qual a vantagem dessa biblioteca?
- Ela emprega um paradigma de programação semelhante ao da biblioteca Swing do Java SE e usa também uma avançada ferramenta de criação de telas e temas para que os elementos se comportem da mesma maneira em todos os dispositivos.
88. O que são técnicas de programação?
- Existem muitas boas práticas e técnicas de programação que contribuem para o bom desenvolvimento de uma aplicação. 
89. Quais os tipos de erros de programação?
- Os erros de programação se encaixam em três categorias:
1.	Erros de compilação
2.	Erros em tempo de execução
3.	Erros na lógica de programação
90. O que são erros de compilação?
- são erros que ocorrem antes de seu programa executar. Se o compilador encontrar algo que não possa traduzir, haverá um erro de compilação, um aviso será emitido ao programador e o processo possivelmente não irá adiante.
91. Por que os erros de compilação ocorrem?
- A maioria dos erros de compilação ocorre por erros de digitação de código-fonte.
92. O que são Erros de Tempo de Execução?
- Erros em tempo de execução são erros que ocorrem enquanto o programa é executado. Temos como exemplos clássicos a divisão por zero, a utilização de objetos que são nulos e, ainda, a conversão de objetos para tipos incompatíveis, todavia o exemplo mais simples de elucidar é o da divisão por zero.
93. O que são Erros de Lógica?
- Erros lógicos são erros que impedem seu programa de fazer de maneira adequada o que deveria ser feito
94. Quais os exemplos de boas práticas de programação?
- Documentação e comentários;
- Troca da posição de variáveis e constantes na comparação;
- Uso de “curto-circuito” na comparação;
- Limitação de novos objetos;
- Nomes apropriados.
95. O que é a ferramenta Depuração?
- Para analisar o funcionamento de um programa passo-a-passo ou para identificar e corrigir falhas e/ou erros de raciocínio lógico de programas podemos utilizar uma ferramenta chamada Depurador (debugger).
96. O que é persistência de dados?
- Todo dispositivo móvel compatível com MIDP mantém uma área de memória dedicada ao armazenamento persistente de dados da aplicação.
97. O que é a API RMS?
- é uma API que nos permite acessar essa área de memória dedicada ao armazenamento persistente de dados da aplicação e que provê um mecanismo uniforme para criar, destruir e modificar dados.
98. O que garante a API RMS?
- A API RMS garante a portabilidade para MIDlets (aplicações) em diferentes dispositivos, porque mapeia (abstrai) as capacidades que são dependentes da plataforma do dispositivo e as disponibiliza em um formato padrão, simplificando o desenvolvimento, pois os dispositivos móveis podem ser diferentes internamente, tanto no funcionamento de seus circuitos, quanto na localização física e nas capacidades de armazenamento de dados
99. O que representa a classe RecordStore?
- A classe RecordStore representa o banco de dados da aplicação e possui a capacidade de armazenar registros, que são os dados que pretendemos salvar na área de memória dedicada ao armazenamento persistente de dados da aplicação.
100. O que pode conter uma área de memória persistente?
- Uma área de memória persistente reservada pela classe RecordStore pode conter zero, um ou mais registros;
101. Como pode ser compartilhada uma classe RecordStore?
- Uma classe RecordStore pode ser compartilhada para outras MIDlets desde que ele esteja dentro de um mesmo MIDlet suite (arquivo JAR) ou desde que a especificação MIDP permita chama-lo externamente em outra MIDlet suite através de um nome único.
102. A High Level API destina-se à construção de interfaces de alto nível, sendo composta de componentes voltados para a criação de ambientes "janelizados". Qual dos seguintes componentes não faz parte da High Level API?
( ) Form
( ) TextBox
( ) Ticker
( ) List
(X) Canvas
103. Formulários são utilizados na concepção de softwares MIDP com uso de High Level API quando apenas um componente não é suficiente para a entrada de dados. Qual dos elementos abaixo pode ser utilizado como um item de formulário?
- TextField
104. Podemos concluir que o fragmento de código a seguir utilizado pela IDE NetBeans:
- Coloca na tela um objeto de alerta ou outro objeto que seja item de exibição ("Displayable").
105. A ClasseSprite é uma das 5 classes introduzidas pelo pacote javax.microedition.lcdui.game com o lançamento do Mobile Information Device Profile (MIDP) versão 2.0. Ele serve para:
- representação de uma imagem na memória.
106. Quando desenvolvemos aplicativos gráficos para celulares em J2ME, utilizamos a classe Canvas, que é uma classe:
- Base e é utilizada em aplicações que necessitam lidar com eventos de baixo nível e emissão de gráficos na tela.
107. No ambiente JME CLDC a tecnologia para gravação de dados deve se preocupar com as características do dispositivo com relação a processamento e armazenamento físico. Para tal foi adotado um ambiente de persistência padrão que apresenta a seguinte característica:
- Utilização de estruturas denominadas RecordStore, as quais se caracterizam por um id inteiro e um array de bytes. 
108. Utilizando os recursos providos pelas classes e interfaces da API RMS, podemos afirmar que a forma mais eficiente para navegar, filtrar e ordenar registros de um objeto do tipo RecordStore:
- É utilizar um objeto da classe RecordEnumeration, pois permite que naveguemos pelos registros da classe RecordStore de forma filtrada e ordenada.
109. Objeto da classe ByteArrayOutputStream trata:
- Representam o fluxo de saída da aplicação e gravam dados em um arranjo de bytes que aumentam de tamanho automaticamente na medida em que os dados são gravados.
110. Sobre a Interface RocerdComparator, podemos afirmar que:
- Define a comparação entre dois registros, para ver se são iguais ou a ordem relativa entre eles.
111. A camada, ou layer, de persistência ou de acesso aos dados é a parte da aplicação responsável por se comunicar com o banco de dados, ou com o framework de persistência. Ela prove:
- Um conjunto de classes com a função de gerenciar a persistência de objetos.
112. A Classe RecordStore é a responsável por:
- Manter uma coleção de dados que serão persistidas através dos MIDlets.
113. Em termos de comunicação remota, o JME trabalha com um framework denominado GCF, sendo a forma correta de abrir uma conexão do tipo Socket com uso do mesmo a seguinte:
- SocketConnection c = (SocketConnection) Connector.open ("socket://192.168.100.1:40");
114. Marque a opção dentre os exemplos de conexão para GCF da classe Connector que está ERRADA:
( ) (DatagramConnection) String url = "datagram://portal.estacio.br:12345"; 
 (UDPDatagramConnection c = (UDPDatagramConnection)Connector.open(url);
(X) (SocketConnection) String url = "socket:\\portal.estacio.br:1234"; SocketConnection c = 
 (SocketConnectio)Conector.open(url);
( ) (FileConnection) String url = "file://myResourceFile.res"; FileConnection c = 
 (FileConnection)Connector.open(url);
( ) (arquivo de Recurso) String url = "file://myResourceFile.res"; InputConnection c = 
 (InputConnection)Connector.open(url); 
( ) (HttpConnection) String url = "http://portal.estacio.br/portal"; HttpConnection c = 
 (HttpConnection)Connector.open(url);
115. Dentre os exemplos de conexão para GCF da classe Connector, assinale a opção que está ERRADA:
( ) (DatagramConnection) String url = "datagram://portal.estacio.br:12345"; 
 (UDPDatagramConnection c = (UDPDatagramConnection)Connector.open(url);
( ) (FileConnection) String url = "file://myResourceFile.res"; FileConnection c = 
 (FileConnection)Connector.open(url);
(X) (HttpConnection) String url = "http://portal.estacio.br/portal"; HttpConnection c = 
 (Conection)Connector.open( );
( ) (arquivo de Recurso) String url = "file://myResourceFile.res"; InputConnection c = 
 (InputConnection)Connector.open(url);
( ) (SocketConnection) String url = "socket://portal.estacio.br:80"; SocketConnection c = 
 (SocketConnection)Connector.open(url);
116. Apresente dois exemplos de boas práticas de programação:
- Documentação e comentários
- Troca da posição de variáveis e constantes na comparação
- Uso de "curto-circuito" na comparação
- Limitação de novos objetos
- Variáveis de objetos nulas
- Nomes apropriados
117. Explique a diferença entre erro de compilação e erro de execução:
- Erros de compilação são aqueles que ocorrem antes de seu programa executar, enquanto que erros em tempo de execução são erros que ocorrem enquanto o programa é executado. Estes, normalmente ocorrem quando o programa tenta uma operação que é impossível executar.
118. É correto afirmar que quando uma MIDlet é removida:
- sua área de memória persistente também é removida, ou seja, todos os dados gravados (salvos) pelo usuário nessa área de memória persistente criada por meio da classe RecordStore através dessa MIDlet também são excluídos.
119. Para melhorar o desempenho dos sistemas criados com JME deve-se:
( ) Compactar o arquivo de distribuição no formato "rar".
( ) Apagar os comentários.
( ) Nas comparações colocar do lado direito a de maior probabilidade de ocorrência.
( ) Evitar nomes grandes para as variáveis do sistema.
(X) Instanciar objetos somente quando forem necessários.
120. O termo "API" refere-se: 
 - a um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas 
funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços. 
121. Explique como é feita a persistência de dados no JME. 
- O armazenamento de dados em celulares é feito através de estruturas denominadas RecordStore. A estrutura de armazenamento de um RecordStore é bem simplória, possuindo apenas um id e um array de Bytes como local para armazenagem de dados. 
122. Boas práticas de programação compreendem: 
- Documentação e objetividade, a fim de contemplar a manutenção e o resultado.
123. O J2ME fornece uma série de formulários do tipo Displayable. Marque a alternativa que identifica apenas classes deste tipo:
-javax.microedition.lcdui.List,javax.microedition.lcdui.Form e javax.microedition.lcdui.SMSComposer 
124. Em Java, quando falamos sobre o método Construtor, podemos afirmar que: 
I- Possui o mesmo nome da Classe 
II- Serve para definir como o objeto será criado 
III- Pode ter diversas assinaturas, ou melhor, parâmetros diferentes
125. Com relação ao Android é incorreto dizer que: 
( ) Trata-se de uma plataforma open source. 
( ) Permite a implementação de bancos de dados com o SQLite. 
( ) Não possui restrições quanto ao acesso às funcionalidades nativas do aparelho. 
( )Fornece ao desenvolvedor poderosos recursos 2D e 3D. 
(X) Consome poucos recursos devido à utilização da KVM. 
126. Quando utilizamos a classe RecordStore, precisamos proteger o código para eventuais problemas em tempo de execução. Por isso, quando utilizamos a classe RecordStore é necessário: 
- Utilizar instruções de tratamento de erros da linguagem Java (try / catch). 
127. Qual interface encapsula o mecanismo de gerência de eventos no J2ME? 
- CommandListener. 
128. Um smartphone, diferentemente de um celular comum, quando possui suporte para a plataforma Java ME, tipicamente está: 
- Classificado como CDC. 
129. Sobre as ações do AMS (Application Management Software) é incorreto dizer: 
( ) Notifica alterações no estado da MIDlet. 
( ) Controla o comportamento da MIDlet durante a execução. 
( )Trabalha com três estados básicos da MIDlet: Iniciado, Pausado e Destruído. 
( ) É responsável por receber propriedades do arquivo descritor da aplicação. 
(X) Define as APIs (Application Programming Interface) para a interface de usuário. 
130. Podemos afirmar que a área de fluxo da IDE NetBeans: 
- É responsável por estabelecer fluxo de dados e ações da aplicação de maneira gráfica.
131. Um framework genérico de conexão, também conhecido por GCF (Generic Connection Framework), foi desenvolvido porque:
- As características limitadas de hardware de um dispositivo móvel poderiam não suportar a quantidade de classes e interfaces dos pacotes java.net e java. Io presentes na plataforma “Java StandardEdition”.
132. Podemos afirmar que a área de código-fonte da IDE NetBeans: 
- Permite a codificação da aplicação. 
133. Sobre as MIDlets: 
- Trabalha com a High Level API para o desenvolvimento de interfaces cadastrais. 
134. Assinale o item que não corresponde a uma constante para controle de fluxo no JME: 
( ) Command.CANCEL 
( ) Command.OK 
(X) Command.LOGOUT 
( ) Command.EXIT 
( ) Command.ITEM 
135. As MIDlets são: 
- Aplicações da plataforma Java Micro Edition. 
136. Com o lançamento do Mobile Information Device Profile (MIDP) versão 2.0, foi introduzido o pacote javax.microedition.lcdui.game que disponibiliza cinco classes com uma grande variedade de recursos para a produção de jogos. Cite as cinco classes explicando suas funções.
- GameCanvas - responsável pela tela gráfica do jogo; Layer - é a estrutura de camada para a
construção da tela gráfica do jogo; Sprite- Desenvolvedores em Java Micro Edition (JME) podem utilizar a classe chamada Sprite que é a representação de uma imagem na memória. TiledLayer - Classe disponibilizada para construir camadas gráficas; LayerManager - gerenciador das camadas da interface
137. Introduzidas pelo pacote javax.microedition.lcdui.game com o lançamento do Mobile Information Device Profile (MIDP) versão 2.0. Ele serve para:
- é a classe responsável pelo gerenciamento das diversas camadas gráficas na interface
138. Assinale a alternativa falsa:
( ) A máquina virtual Java voltada para dispositivos móveis é denominada KVM.
( ) A plataforma Android utiliza uma máquina virtual denominada Dalvik.
( ) A empresa Oracle é quem atualmente suporta a plataforma JME.
( )A configuração CLDC é voltada para dispositivos de recursos muito escassos, como celulares.
(X) A plataforma Android foi desenvolvida pela Apple para utilização em tablets
139. Programas feitos com JME consomem poucos recursos graças:
- Às características da KVM.
140. O MIDlet é um aplicativo para dispositivos móveis, que rodam na máquina virtual Java. Ele possui uma série de métodos obrigatórios. São métodos obrigatórios de um MIDlet:
- "startApp", "pauseApp" e "destroyApp
141. Atualmente, você pode encontrar o GCF:
- em dispositivos baseados em CLDC, como os que utilizam as MIDP (Mobile Information Device Profile) e IMP (Information Module Profile) e em dispositivos que usam CDC.
142. Para a descoberta de erros de lógica de programação a opção mais adequada seria: 
- Utilizar um depurador. 
143. A classe Connector possui alguns métodos de conveniência para a criação de vários tipos de fluxo de entrada e saída: 
static DataInputScream		openDataInputStream(String name)
staticDataOutputStream	openDataOutputStream(String name)
staticInputStream		openInputStream(String name)
staticOutputStream		openOutputStream(String name)
Podemos afirmar que esses métodos de conveniência da classe Connector:
- são usados para encurtar o caminho para criação de fluxos de entrada ou saída, todavia, a utilização desses métodos podem não ser satisfatórios na maioria dos casos e, por isso, sua utilização é, por muitas vezes, desencorajada, pois não se obtém um objeto que faz referencia à conexão.
144. Como são denominados os elementos dispostos sobre um formulário no J2ME?
- Items
145. Apresente três exceções que precisam ser tratadas para a classe RecordStore, explicando o fator gerador do erro. 
- RecordStoreException => Usado para indicar um erro genérico relativo ao contexto do RMS. 
-InvalidRecordIDException => Usado para indicar um número de registro inválido. Por exemplo, esse erro ocorrerá se o método RecordStore.getRecord(int) for utilizado para chamar um registro que não existe. 
- RecordStoreFullException => Sinaliza o esgotamento da capacidade para armazenamento de 
registros. Por exemplo, esse erro ocorrerá quando o método RecordStore.addRecord(byte[], int, int) for chamado para adicionar um novo registro e não houver mais capacidade no dispositivo móvel para adicioná-lo. 
- RecordStoreNotFoundException => Indica que o nome do banco de dados utilizado pela classe RecordStore não foi encontrado. Por exemplo, esse erro ocorrerá se RecordStore.deleteRecordStore(String) for chamado com um nome de banco de dados que não existe. 
- RecordStoreNotOpenException => Usado para indicar que o banco de dados utilizado pela classe RecordStore não foi aberto. Por exemplo, esse erro acontece se o método RecordStore.getNumRecords() for chamado antes do banco de dados estar aberto. 
146. Cite as cinco classes do pacote javax.microedition.lcdui.game explicando suas funções. 
- CanvasGame => utiliza recursos de baixo nível para criação de telas gráficas 
- Sprite => é a representação de uma imagem na memória 
- Layer => cria uma camada gráfica na interface 
- LayerManager => responsável pelo gerenciamento das diversas camadas gráficas na interface 
- TiledLayer => é utilizada para desenhar cenários
147. Explique a diferença entre erro de compilação e erro de execução. 
Erros de compilação são aqueles que ocorrem antes de seu programa executar, enquanto que erros em tempo de execução são erros que ocorrem enquanto o programa é executado. Estes, normalmente ocorrem quando o programa tenta uma operação que é impossível executar. 
148. Explique como é feita a persistência de dados no JME. 
O armazenamento de dados em celulares é feito através de estruturas denominadas RecordStore. A estrutura de armazenamento de um RecordStore é bem simplória, possuindo apenas um id e um array de Bytes como local para armazenagem de dados.
149. Implemente um método em J2ME para abrir um Banco de Dados. Este método deverá receber dois parâmetros, um booleano que indica se o banco deverá ser criado ou não caso exista ou não e o outro, uma String com o nome do banco. Este método deverá retornar um ponteiro para o banco aberto ou nulo caso não consiga abrir. 
public RecordStore abrirBanco(boolean criar, String banco) { 
 try { 
 return RecordStore.openRecordStore(banco, criar); 
 } catch (RecordStoreException ex) { 
 return null; 
 } 
} 
 
150. Implemente um método em J2ME para fechar o Banco de Dados. Este método deverá receber um parâmetro, uma String com o nome do banco a ser fechado. Este método deverá retornar um booleano informando se houve ou não sucesso. 
public boolean fecharBanco(RecordStore banco) { 
 boolean retorno=false; 
 try { 
 banco.closeRecordStore( ); 
 retorno = true; 
 } catch (RecordStoreException ex) { 
 retorno = false; } 
 return retorno;
151. A classe responsável pelo desenho das várias geometrias utilizadas no Low Level API, dentro da 
plataforma JME, é o Graphics. Através deste componente é possível criar um círculo com o interior 
preenchido por uma cor especificada através do método: 
- fillOval 
152. A High Level API destina-se à construção de interfaces de alto nível, normalmente associada à criação de formulários. Qual dos seguintes componentes não pode ser utilizado em um formulário JME? 
( ) DateField 
( ) TextField 
( ) StringItem 
(X) List 
( ) Gauge
153. Ao contrário das interfaces de alto nível, apenas uma classe é utilizada na definição da interface. Esta classe é denominada: 
- Canvas
154. As IDE's fornecem ferramentas para efetuar a depuração dos programas, com o objetivo de corrigir falhas na programação de erros de raciocínio lógico de programas. Através deles, podemos: 
- Executar o programa passo a passo, ver o valor das variáveis em memória. 
155. Em Java, quando falamos sobre Interface, podemos afirmar que: 
I. É um recurso da orientação a objeto que define ações que devem ser obrigatoriamente 
executadas, mas que cada classe pode executar de forma diferente. 
II. É uma classe com um grupo de métodos que possuem seu corpo vazio. 
III. Uma Interface define apenas o que deve ser feito, não o como se faz.
156. O efeito da utilização do método deleteRecordStore dentro de um aplicativo JME que utiliza o banco de dados padrão da plataforma é: 
- A remoção dobanco de dados completo. 
157. Para as interfaces Web é muito comum a submissão dos dados do formulário para um servidor através de um botão do tipo. No caso de formulários JME, os dados do formulário podem ser tratados na programação a partir de: 
- Uma interface do tipo CommandListener 
158. Sobre as ações do AMS (Application Management Software) é incorreto dizer: 
( ) É responsável por receber propriedades do arquivo descritor da aplicação. 
(X) Define as APIs (Application Programming Interface) para a interface de usuário.
( ) Trabalha com três estados básicos da MIDlet: Iniciado, Pausado e Destruído.
( ) Notifica alterações no estado da MIDlet.
( ) Controla o comportamento da MIDlet durante a execução.

Outros materiais