DP Sessao 01
DP Sessao 01
DP Sessao 01
Móveis
Seção 1 – Introdução
17/08/2015 3
Desenvolvimento para
Dispositivos Móveis
Nos últimos anos, principalmente pela praticidade
e comodidade, cada vez mais pessoas aderem ao
uso de dispositivos com tecnologia móvel. Os
crescentes números de venda no mercado
brasileiro apontam essa realidade.
17/08/2015 5
Características Comuns em
Dispositivos Móveis
Normalmente, os dispositivos móveis são pequenos e
possuem algumas diferenciações importantes quando
comparados a equipamentos maiores. São elas:
1. Normalmente são menores e mais leves;
2. Possuem memória com menor capacidade;
3. Possuem processador com capacidade inferior;
4. Possuem maior autonomia de bateria / menor
consumo de energia;
5. Tendem a ser mais seguros e confiáveis;
6. Podem possuir conectividade ou não, ou ainda
conectividade limitada;
7. Normalmente são mais rápidos na inicialização e no
desligamento;
8. Podem ser mais resistentes a quedas.
17/08/2015 6
Presença no Mercado
Os equipamentos móveis estão em constante
evolução e estão presentes no mercado nos mais
variados formatos.
17/08/2015 7
Presença no Mercado
Alguns dos movimentos que estão acontecendo há
algum tempo nos dão uma pequena ideia das
tendências do mercado de equipamentos móveis:
17/08/2015 8
Presença no Mercado
Alguns dos movimentos que estão acontecendo há algum
tempo nos dão uma pequena ideia das tendências do
mercado de equipamentos móveis:
17/08/2015 9
Presença no Mercado
Alguns dos movimentos que estão acontecendo há algum
tempo nos dão uma pequena ideia das tendências do
mercado de equipamentos móveis:
17/08/2015 10
Reflexão
Diferentes estratégias de mercado reconhecem que a
internet tem vantagens na forma de aplicação e como
plataforma de produtividade. O Google usa essa estratégia e
seus serviços são um bom exemplo desse conceito de
entregar tudo ao usuário a partir da nuvem (internet), todavia
em nossas escolhas temos que ponderar sobre os novos
paradigmas, pois a partir de um dispositivo móvel, assim
como é verdade que é possível abandonar o desktop e o
modelo de software tradicional e trabalhar inteiramente na
nuvem, é verdade também que o usuário pode facilmente
escolher utilizar essas ferramentas baseadas na web, a partir
de plataformas tradicionais como Windows, Mac OS X ou
Linux, mantendo o benefício de instalar programas de
maneira local.
17/08/2015 11
Escolha da Tecnologia e de
Equipamento
Na área de tecnologia 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.
17/08/2015 12
Plataforma
A palavra “plataforma” será utilizada daqui por diante e você
deve entendê-la como sendo um tipo de ambiente com
características específicas em que alguma acontecerá. A
seguir, temos dois termos que serão utilizados com certa
frequência:
1. Plataforma de Execução
17/08/2015 13
Plataforma
2. Plataforma de Desenvolvimento
17/08/2015 15
Máquina Virtual
O termo “máquina virtual” também será empregado daqui por diante e
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). Uma máquina virtual, também
conhecida como Virtual Machine ou simplesmente VM, pode ser
entendida 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.
17/08/2015 16
Linguagem de Máquina, de
Programação e Código-Fonte
Para desenvolver um software, em uma visão simplificada, é
necessário conceber uma ideia e depois transmiti-la ao
computador em um idioma que ele possa compreender e
executar – a esse idioma chamaremos de linguagem de
máquina.
17/08/2015 17
Linguagem de Máquina, de
Programação e Código-Fonte
A linguagem de programação além de permitir uma melhor
compreensão humana das instruções (códigos-fontes)
escritas, traz também a conveniência de possibilitar a
conversão para a linguagem de máquina em condições
diferentes, desde que algum software consiga traduzi-la para
ser compatível com o sistema operacional, máquina virtual ou
hardware.
17/08/2015 18
Compilação, Interpretação e
Bytecode
Compilação é o termo utilizado para descrever o
processo que realiza a tradução da linguagem de
programação para a linguagem de máquina. O produto
final da compilação é o software (programa executável).
O processo de compilação é sempre complexo, pois
depende de hardware, de software, de interpretações,
de verificações, de junções e de otimizações nos
elementos que compreendem o código-fonte da
linguagem de programação levando em conta sua
lógica, bibliotecas e as partes da plataforma onde o
software será concebido.
17/08/2015 19
Compilação, Interpretação e
Bytecode
Interpretação é o termo utilizado para descrever 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 um
software, em outras palavras, o processo funciona
como se alguém lesse um arquivo e pedisse para o
computador ir fazendo. O interpretador, software que
faz a interpretação, pode ler o código-fonte linha-a-linha
e pedir para o computador ir executando o programa ou
pode ler o código-fonte inteiro para depois realizar sua
execução passo-a-passo.
17/08/2015 20
Compilação, Interpretação e
Bytecode
Bytecode (código em bytes) é o termo utilizado para descrever
compilação para um software, normalmente de máquina virtual.
Descrevendo um pouco mais, a compilação gera como resultado um
programa que pode ser executado pelo sistema operacional e a esse
programa dá-se o nome de programa executável, todavia um bytecode
apesar de ser compilado não é imediatamente executável, pois sua
execução ocorre através da interpretação de software que normalmente
é uma máquina virtual, em outras palavras, ele é um programa
executável que roda somente em um software. A principal vantagem do
bytecode em relação aos outros modos está na dualidade entre a
portabilidade - o bytecode irá produzir o mesmo resultado em qualquer
dispositivo - e a ausência da necessidade do pré-processamento típico
dos compiladores - o bytecode é encarado como um produto final, cuja
validação da sintaxe e tipos de dados (entre outras funções dos
compiladores) é desnecessária.
17/08/2015 21
Tecnologias para
Desenvolvimento
Como já foi dito anteriormente, na área de tecnologia surgem e somem
constantemente aparelhos, ferramentas, plataformas de
desenvolvimento e linguagens de programação. Para evitar uma
escolha equivocada de equipamentos ou de tecnologias você deve
estar atento às informações e tendências de mercado. Neste
momento, descreveremos resumidamente apenas duas tecnologias,
todavia você deve pesquisar na internet e procurar mais informações a
respeito delas e de outras que existem no mercado.
17/08/2015 22
Java Micro Edition (JME)
Plataforma de desenvolvimento que faz uso da tecnologia Java para
execução de programas em dispositivos móveis. Foi criada pela SUN
Microsystems e, atualmente, é suportada pela ORACLE.
Essa plataforma possui compatibilidade com diversos equipamentos e é
aceita na maioria dos dispositivos móveis. Um grande diferencial
quando comparada a outras plataformas de desenvolvimento é que
programas desenvolvidos nessa plataforma contam com acessibilidade
e portabilidade dentro de algumas especificações. Programas feitos
para a Java ME consomem poucos recursos do dispositivo graças a
KVM (Kilo Virtual Machine) que é uma máquina virtual com funções
reduzidas construídas para atender as necessidades e restrições dos
dispositivos, impostas por uma especificação chamada configuração
CLDC (Connected Limited Device Configuration) ou CDC (Connected
Device Configuration).
17/08/2015 23
Java Micro Edition (JME)
Por um lado, são vantagens dessa plataforma a vasta quantidade de
bibliotecas livres que podem ser encontradas na internet, o baixo
consumo de recursos e a disponibilidade da tecnologia em diversos
equipamentos, todavia, por outro lado, existe a dificuldade de se
programar com pouca memória e processamento, dificuldade para
manipular dados que necessitam ser armazenados ou pesquisados,
além disso, algumas características da própria plataforma trazem
restrições que impedem acesso completo às funcionalidades nativas do
dispositivo móvel, ocasionando algumas limitações que necessitam de
esforço extra para serem superadas - coisa que nem sempre é possível.
A plataforma Java ME é gratuita e sua disponibilidade no equipamento
depende do fabricante do dispositivo móvel. Dependendo do dispositivo
o desenvolvedor necessita comprar a KVM, ou negociar a distribuição,
ou ainda, negociar a licença do produto por imposições legais.
17/08/2015 24
Android
Plataforma que atende dispositivos móveis mais avançados e
que permite desenvolvimento de programas através da
linguagem Java. Ela possui compatibilidade com
equipamentos relativamente novos e funciona principalmente
em smartphones e tablets, todavia a plataforma também é
compatível com equipamentos de maior capacidade.
17/08/2015 25
Android
A plataforma Android também é gratuita e é open-
source (código-fonte aberto), ou seja, tem seus
códigos-fontes disponíveis na internet e qualquer
desenvolvedor de software pode consulta-los,
alterá-los ou aprimorá-los e redistribui-los.
17/08/2015 26
Android
Diferentemente do Java ME, o Android não possui restrições
quanto ao acesso às funcionalidades nativas do dispositivo
móvel, muito pelo contrário, foi concebido para permitir que
desenvolvedores possam tirar proveitos de tudo o que o
aparelho possa oferecer. Além disso, o desenvolvedor conta
com recursos muito poderosos para exibição gráfica 2D e 3D
e também conta com um poderoso e leve banco de dados
com suporte SQL através do SQLite. Outro ponto muito
importante para os aplicativos dessa plataforma é que eles
podem ser divulgados e distribuídos facilmente através do
Android Market, um serviço on-line que o Google oferece e
que já vem pré-instalado no Android.
17/08/2015 27
Exercícios de Fixação
1. A diferença significativa entre um telefone celular e
um smartphone:
a) está na marca do aparelho.
b) está no hardware empregado.
c) está no tamanho do aparelho.
d) está na aplicação do smartphone, que é um
tablet.
e) é 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.
17/08/2015 28
Exercícios de Fixação
1. A diferença significativa entre um telefone celular e
um smartphone:
a) está na marca do aparelho.
b) está no hardware empregado.
c) está no tamanho do aparelho.
d) está na aplicação do smartphone, que é um
tablet.
e) é 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.
17/08/2015 29
Exercícios de Fixação
2. O termo "plataforma de hardware" refere-se:
a) ao ambiente de desenvolvimento de
software.
b) ao ambiente de desenvolvimento de
hardware.
c) ao sistema operacional.
d) ao tipo de equipamento ou, de dispositivo
ou, ainda, ao ambiente de execução.
e) ao ambiente desktop.
17/08/2015 30
Exercícios de Fixação
2. O termo "plataforma de hardware" refere-se:
a) ao ambiente de desenvolvimento de
software.
b) ao ambiente de desenvolvimento de
hardware.
c) ao sistema operacional.
d) ao tipo de equipamento ou, de dispositivo
ou, ainda, ao ambiente de execução.
e) ao ambiente desktop.
17/08/2015 31
Exercícios de Fixação
3. Uma máquina virtual é:
a) uma máquina que não existe.
b) um tipo de plataforma de hardware.
c) a classificação dada para o tamanho do
aparelho.
d) uma duplicata eficiente e isolada de uma
máquina real.
e) uma tecnologia de desenvolvimento de
software para dispositivos móveis.
17/08/2015 32
Exercícios de Fixação
3. Uma máquina virtual é:
a) uma máquina que não existe.
b) um tipo de plataforma de hardware.
c) a classificação dada para o tamanho do
aparelho.
d) uma duplicata eficiente e isolada de uma
máquina real.
e) uma tecnologia de desenvolvimento de
software para dispositivos móveis.
17/08/2015 33
Exercícios de Fixação
4. A plataforma Android, quando comparada à
plataforma Java ME, possui o diferencial de:
a) permitir que desenvolvedores possam tirar
proveitos de tudo o que o dispositivo móvel
possa oferecer.
b) funcionar com Java na plataforma de execução.
c) funcionar usando linguagem de programação
Java.
d) funcionar em telefones celulares comuns.
e) não permitir que o hardware seja acessado pela
máquina virtual.
17/08/2015 34
Exercícios de Fixação
4. A plataforma Android, quando comparada à
plataforma Java ME, possui o diferencial de:
a) permitir que desenvolvedores possam tirar
proveitos de tudo o que o dispositivo móvel
possa oferecer.
b) funcionar com Java na plataforma de execução.
c) funcionar usando linguagem de programação
Java.
d) funcionar em telefones celulares comuns.
e) não permitir que o hardware seja acessado pela
máquina virtual.
17/08/2015 35
Exercícios de Fixação
5. São sistemas operacionais de smartphone:
a) Windows, Linux e MAC.
b) iOS, Symbian, Android, PalmOS, WebOS,
RIM BlackBerry, Windows Mobile e Windows
Phone.
c) Android e Java ME.
d) Java.
e) Dalvik e KVM.
17/08/2015 36
Exercícios de Fixação
5. São sistemas operacionais de smartphone:
a) Windows, Linux e MAC.
b) iOS, Symbian, Android, PalmOS, WebOS,
RIM BlackBerry, Windows Mobile e
Windows Phone.
c) Android e Java ME.
d) Java.
e) Dalvik e KVM.
Tutoriais do NetBeans
• https://netbeans.org/features/java-on-client/java-me.html
Download do Eclipse
• https://eclipse.org/downloads/
17/08/2015 38