DP Sessao 01

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 38

Programação Dispositivos

Móveis
Seção 1 – Introdução

Prof. Victor Machado


Objetivos:
O aluno deverá reconhecer o conceito
de desenvolvimento mobile, atentar à
importância do desenvolvimento
Android e Java ME, analisando e
comparando as linguagens e
entendendo o histórico respectivo.
Introdução ao Ambiente
• Analisar tecnologias empregadas em
dispositivos móveis;
• Verificar os principais recursos de apoio;
• Reconhecer limitações em equipamentos e
tecnologias;
• Determinar o meio de desenvolvimento.

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.

No que tange dispositivos móveis empregados


para a telefonia (celulares e smartphones) no
Brasil, existem mais dispositivos móveis do que
pessoas. Portanto, existe uma demanda crescente
de consumo que exige uma demanda de
desenvolvimento de programas (software) nesses
dispositivos.
17/08/2015 4
Desenvolvimento para
Dispositivos Móveis
Nos últimos anos, se destacam no mercado brasileiro os
dispositivos móveis que possuem capacidade
computacional, conectividade (internet e telefonia) e
multimídia. Dentre eles, seguem os mais comuns:

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.

Como o mercado está em constante mudança é


realmente difícil prever a penetração dos
dispositivos, pois tudo depende muito de fatores
políticos, sociais, econômicos e ecológicos.

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:

1. Telefones Celulares comuns estão convergindo


para Smartphones
O smartphone é um telefone celular mais inteligente
e que possui funcionalidades mais avançadas que
atendem necessidades por meios computacionais
(manipulação de arquivos, documentos, e-mail,
agenda, jogos, recursos multimídia dentre outros).
Além disso, através da instalação de programas as
funcionalidades podem ser ampliadas.

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:

2. Os Netbooks e Notebooks sofrerão transformações


Novos dispositivos móveis estão causando verdadeiras
revoluções e alguns dispositivos em determinadas
situações poderão assumir o lugar dos netbooks e dos
notebooks tradicionais.
Equipamentos mais robustos como ultrabooks,
equipamentos que usam “touch screen” (toque na tela -
dispensam o uso do mouse e do teclado), que são mais
portáteis como tablets e notebooks que se dividem em
partes, formando tablets estarão cada vez mais
presentes no mercado.

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:

3. Surgimento de novos equipamentos com redes sem


fio e com longa autonomia de bateria
Novos dispositivos estão surgindo para funcionar por um
dia inteiro ou mais com uma única carga e com a
conexão 3G opcional para o usuário ficar online em
praticamente qualquer lugar.
Alguns equipamentos trabalham na ideia de que será
que “seus aplicativos, jogos, fotos, músicas, filmes e
documentos estarão acessíveis de qualquer lugar e não
será mais preciso se preocupar em perder o computador
ou com não fazer o backup das informações”.

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

Refere-se ao ambiente onde os softwares são executados.


Ela pode ser diferente em cada tipo de dispositivo, todavia
deve atender as capacidades e limitações específicas de
cada um deles sem prejudicar a execução dos softwares.

17/08/2015 13
Plataforma
2. 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.

17/08/2015 Fagner S. de Lima - Programação para Dispositivos Móveis 14


Uso da Plataforma de
Desenvolvimento
No mercado existem muitas plataformas de execução e de
desenvolvimento para dispositivos móveis.

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.

Normalmente isso acontece porque é complicado de se


desenvolver em alguns dispositivos que, por vezes, não
oferecem recursos ou facilidades devido a restrições físicas
como display, memória, processador e teclado dentre outras
e, limitações lógicas como softwares.

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.

Como cada computador é diferente, escrever ideias na


linguagem de máquina de cada novo sistema operacional ou
hardware que surge pode realmente ser muito trabalhoso e
complicado, por esse motivo, para facilitar a vida de quem
desenvolve software e acelerar os resultados de produtividade,
foram criadas as linguagens de programação.

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.

As 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.

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.

Essa plataforma conta com um sistema operacional baseado


em Linux, foi criada pelo Google e utiliza uma máquina virtual
chamada Dalvik para executar programas criados a partir do
Java. Como a máquina virtual Dalvik utiliza padrões que não
são compatíveis com os padrões de bytecode da máquina
virtual Java, é preciso converter o bytecode do formato Java
para o formato da Dalvik.

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.

17/08/2015 Fagner S. de Lima - Programação para Dispositivos Móveis 37


Links
Download do Java ME
• http://www.oracle.com/technetwork/java/javame/javamobile/download/overvie
w/index.html

Fórum para Desenvolvedores Java


• Guj: http://www.guj.com.br/

Tutoriais do NetBeans
• https://netbeans.org/features/java-on-client/java-me.html

Download do Eclipse
• https://eclipse.org/downloads/

Download do Android Studio


• https://developer.android.com/sdk/index.html

17/08/2015 38

Você também pode gostar