Your SlideShare is downloading. ×
Programação para Dispositivos Móveis - (01) Introdução ao Ambiente
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Programação para Dispositivos Móveis - (01) Introdução ao Ambiente

5,376
views

Published on

No mundo atual, onde os mais diversos dispositivos podem ser utilizados para manusear as informações, a conectividade e interatividade chegaram a níveis altíssimos, e usuários pretendem obter as …

No mundo atual, onde os mais diversos dispositivos podem ser utilizados para manusear as informações, a conectividade e interatividade chegaram a níveis altíssimos, e usuários pretendem obter as informações a qualquer instante e em qualquer lugar.
Dentro deste contexto os dispositivos móveis tornaram-se um importante meio físico para o tramite de informações.
Para a programação destes dispositivos a linguagem Java demonstra-se interessante devido a sua grande abrangência em termos da plataforma móvel.
Com alta portabilidade e conectividade com outras plataformas, o Java permite a construção de jogos e sistemas cadastrais, bem como a utilização de recursos avançados como GPS e assinatura digital.
A adoção da linguagem Java também pode ser justificada pela grande base de programadores já existente para a mesma, facilitando a migração destes programadores para a plataforma móvel.


0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,376
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
100
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programação para Dispositivos Móveis Introdução ao Ambiente 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 1
  • 2. Objetivos  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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 2
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 3
  • 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: 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 4
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 5
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 6
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 7
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 8
  • 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”. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 9
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 10
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 11
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 12
  • 13. 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: 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 13
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 14
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 15
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 16
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 17
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 18
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 19
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 20
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 21
  • 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). 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 22
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 23
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 24
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 25
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 26
  • 27. Introdução ao Ambiente Exercícios de Fixação 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 27
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 28
  • 29. 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 29
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 30
  • 31. 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 31
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 32
  • 33. 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 33
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 34
  • 35. 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 35
  • 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 36
  • 37. 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. 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 37
  • 38. Introdução ao Ambiente Extras 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 38
  • 39. Links Download do Java ME  http://www.oracle.com/technetwork/java/javame/javamobile/download/overview/in dex.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 13/8/2013 Fagner S. de Lima - Programação para Dispositivos Móveis 39