10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 1
Programação para Dispositivos Móveis
Introdução ao Ambiente
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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:
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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 SmartphonesO 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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çõesNovos 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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 bateriaNovos 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”.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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çãoRefere-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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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 DesenvolvimentoRefere-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.
10/04/2023 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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).
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 27
Introdução ao Ambiente
Exercícios de Fixação
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 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.
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 38
Introdução ao Ambiente
Extras
10/04/2023 Fagner S. de Lima - Programação para Dispositivos Móveis 39
Links
Download do Java ME http://www.oracle.com/technetwork/java/javame/javamobile/download/overview/ind
ex.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
Top Related