Java ME e Android: Onde manter o foco?

4
Java ME e Android: Onde manter o foco? Ambas plataformas são direcionadas a dispositivos que possuem processamento, memória e vídeo limitado, onde o foco maior está em celulares e PDA’s. No mundo modernizado em que vivemos, onde os dispositivos móveis tornaram-se equipamentos onipresentes, possuindo o mesmo poder de processamento que computadores de 10 anos atrás, é necessário pensar em tecnologias para desenvolvimento para estes aplicativos. Dentre as tecnologias, atualmente as que mais se destacam para o desenvolvimento móvel é o Java ME e o Android. Java ME A plataforma Java Micro Edition é direcionada a dispositivos limitados. Além de celulares e PDA’s é comum encontramos aplicações para TVs, controles remotos, entre outros sistemas embarcados. O Java está presente na grande maioria dos celulares, sendo que hoje existe no mercado inúmeros jogos e aplicações desenvolvidos em Java. Um grande diferencial do Java ME sobre as outras plataformas de desenvolvimento é a acessibilidade e portabilidade, pois com um baixo custo suas aplicações poderem ser executadas nas plataformas de várias empresas de dispositivos móveis, isto acontece graças a KVM (Kilo Virtual Machine), uma máquina virtual com funções reduzidas construída especialmente para implementar as necessidades e restrições impostas pela configuração CLDC (Connected Limited Device Configuration). Vale ressaltar que a plataforma Java em si possui uma vasta gama de APIs e frameworks (o que não acontece com as outras plataformas), com o objetivo de otimizar o desenvolvimento de aplicações muitas das funcionalidades necessárias já foram codificadas, basta encontrar a API ou o framework que a implementem). Os programadores Java ME também podem contar com várias API´s, frameworks, ferramentas, emuladores e plug-ins que enriquecem o arsenal do desenvolvedor. Mas nem tudo é vantagem na plataforma Java ME, além da dificuldade de programar com pouca memória e processamento (limitação do dispositivo), o Java ME tem uma série de limitações no que diz respeito ao acesso de funcionalidades nativas do aparelho, pois a segurança do Java está centrada no conceito de sandbox, que consiste na idéia de que quando um aplicativo precisa ser executado em uma máquina, deseja-se prover um meio

Transcript of Java ME e Android: Onde manter o foco?

Page 1: Java ME e Android: Onde manter o foco?

Java ME e Android: Onde manter o foco?

Ambas plataformas são direcionadas a dispositivos que possuem processamento,

memória e vídeo limitado, onde o foco maior está em celulares e PDA’s. No mundo

modernizado em que vivemos, onde os dispositivos móveis tornaram-se equipamentos

onipresentes, possuindo o mesmo poder de processamento que computadores de 10

anos atrás, é necessário pensar em tecnologias para desenvolvimento para estes

aplicativos. Dentre as tecnologias, atualmente as que mais se destacam para o

desenvolvimento móvel é o Java ME e o Android.

Java ME

A plataforma Java Micro Edition é direcionada a dispositivos limitados. Além de

celulares e PDA’s é comum encontramos aplicações para TVs, controles remotos, entre

outros sistemas embarcados. O Java está presente na grande maioria dos celulares,

sendo que hoje existe no mercado inúmeros jogos e aplicações desenvolvidos em Java.

Um grande diferencial do Java ME sobre as outras plataformas de desenvolvimento é a

acessibilidade e portabilidade, pois com um baixo custo suas aplicações poderem ser

executadas nas plataformas de várias empresas de dispositivos móveis, isto acontece

graças a KVM (Kilo Virtual Machine), uma máquina virtual com funções reduzidas

construída especialmente para implementar as necessidades e restrições impostas pela

configuração CLDC (Connected Limited Device Configuration).

Vale ressaltar que a plataforma Java em si possui uma vasta gama de APIs e

frameworks (o que não acontece com as outras plataformas), com o objetivo de otimizar

o desenvolvimento de aplicações muitas das funcionalidades necessárias já foram

codificadas, basta encontrar a API ou o framework que a implementem).

Os programadores Java ME também podem contar com várias API´s, frameworks,

ferramentas, emuladores e plug-ins que enriquecem o arsenal do desenvolvedor. Mas

nem tudo é vantagem na plataforma Java ME, além da dificuldade de programar com

pouca memória e processamento (limitação do dispositivo), o Java ME tem uma série

de limitações no que diz respeito ao acesso de funcionalidades nativas do aparelho, pois

a segurança do Java está centrada no conceito de sandbox, que consiste na idéia de que

quando um aplicativo precisa ser executado em uma máquina, deseja-se prover um meio

Page 2: Java ME e Android: Onde manter o foco?

no qual o aplicativo possa rodar, porém este meio possui seus limites. O fato é que o

Java ME está presente nos aparelhos da maioria dos fabricantes (ex. Nokia, Motorola,

Samsung) - e dessa maneira o hardware dos mesmos possuem uma série de

particularidades, o que torna praticamente impossível criar mecanismos genéricos para

acesso a recursos específicos do dispositivo.

Outra limitação do Java ME é o processo para manipulação dos dados persistidos.

A configuração CLDC do JavaME, esta disponível em praticamente todos os aparelhos

celulares Java enabled, possui uma grande limitação para manipulação de registro.

Nestes dispositivos, os registros são tratados como “arquivos binários”, ou seja, são

persistidos como um array de bytes, cabendo ao desenvolvedor elaborar lógicas para

separar os registros em campos, fazer pesquisas complexas, filtrar registros e até mesmo

recuperar um registro específico. Já a configuração CDC (Connected Device

Configuration), disponível para dispositivos não tão limitados quanto os CLDC, possui

uma máquina virtual mais completa e pode trabalhar com banco de dados relacional,

dando suporte inclusive a sintaxe SQL, porém não é a melhor alternativa quando é

necessário um bom desempenho das aplicações.

Então para este foco: "Desenvolvimento de aplicações móveis para grandes

corporações", creio que o Java ME não atenda com tanta eficiência quanto outras

plataformas disponíveis no mercado. Penso que o Java ME esteja destinado à aplicações

móveis voltadas para a "massa", usuários comuns.

Android

O Android é uma plataforma para dispositivos móveis com um sistema

operacional baseado em Linux - Criado pelo Google em consórcio com mais de 40

empresas. Utiliza uma máquina virtual, chamada Dalvik, projetada para otimizar a

memória e os recursos de hardware em um ambiente limitado. No entanto esta máquina

virtual não executa bytecodes no padrão da JVM (“Java Virtual Machine”), desta forma

é necessária a conversão do bytecode padrão da JVM para o formato do Android.

É a primeira plataforma open source para desenvolvimento de aplicações móveis,

portanto é livre para incorporar novas tecnologias, já que o Google optou por usar uma

máquina virtual própria, distanciando-se da Sun e JCP, ocasionando um rápido avanço

da plataforma. Por possuir um SO relativamente novo, esta tecnologia ainda está em

Page 3: Java ME e Android: Onde manter o foco?

aceitação pelos usuários e desenvolvedores. Existem duas grandes vantagens nesta

plataforma, uma é o fato de já ser agregada com todas as funcionalidades que os

aparelhos móveis mais atuais fornecem, a outra é a criação do Android Market, a loja de

aplicativos da plataforma (semelhante a App Store do iPhone), que já vem integrada nos

aparelhos, desta forma o usuário pode escolher dentre milhares de aplicativos os que

mais lhe agradam. É importante ressaltar que os serviços da Google passam a ser

facilmente acoplados com as tecnologias móveis após o surgimento do Android, já que

o interesse e os investimentos atuais da empresa visam à mobilidade.

O Android foi construído com a intenção de permitir que os desenvolvedores

possam criar aplicações tirando maior proveito do que o aparelho possa oferecer. Tudo

é construído em Java, desta forma os desenvolvedores Java podem construir aplicativos

e disponibiliza-los facilmente. Os desenvolvedores têm acesso a mesma API utilizada

nos aplicativos centrais, podendo aproveitá-las livremente para acessar recursos nativos

do aparelho.

Por ser open source, voltam algumas polêmicas antigas: “Se todo mundo mexer

no código isso não vai virar uma bagunça?”.

Talvez, tanto que o SO já nasceu fragmentado, e precisa se padronizar. Mas

pensando desta forma, se o Linux é open source e possui várias distribuições, onde cada

usuário opta pela que mais lhe agrada, imagine se todos os usuários e desenvolvedores

mantivessem o foco em uma única distribuição. Será que esta distribuição iria tomar

proporções tão grandes a ponto de se tornar um SO referência tanto para leigos quanto

para desenvolvedores?

Além dos aplicativos feitos em Java, o Android possui um conjunto de bibliotecas

C/C++ usadas por diversos componentes que permitem trabalhar com arquivos de

mídia, exibição de conteúdo em 2D e 3D, inclusive bibliotecas implementadas

utilizando OpenGL e um poderoso e leve banco de dados relacional, o SQLite.

Este último é um grande diferencial em relação ao Java ME, pois o SQLite já

possui métodos de indexação. Com um gerenciador é possível criar um banco de dados

no ambiente de desenvolvimento e instalá-lo no dispositivo, o que acelera o processo de

desenvolvimento, visto que os dispositivos possuem um poder de processamento

limitado.

Apesar da grande quantidade de recursos e de funcionalidades que a plataforma

oferece, ainda está nascendo e algumas funcionalidades faltam ser implementadas, além

Page 4: Java ME e Android: Onde manter o foco?

de possuir poucos aparelhos no Brasil que a suportem. Pode ser demagogia, mas

praticamente tudo que a Google põe a mão vira ouro! Então espere o melhor.

Conclusão

Ambas tecnologias se mostram bastante robustas no desenvolvimento móvel, mas

caso a intenção seja desenvolver aplicações atingir a maioria dos usuários e

dispositivos, com uma aplicação que não exige tanto processamento, mas sim

funcionalidade, o Java ME é o ideal, mas se o objetivo é ter acesso a todas

funcionalidades que o dispositivo oferece, trabalhar de uma forma genérica, sem que

haja restrições devido a portabilidade, inclusive com aplicações que exigem um bom

desempenho com banco de dados relacional, então o Android é a melhor opção. Porém

em algumas situações o programador se sente motivado em contornar as limitações da

plataforma, aceitando o desafio de trabalhar com a limitação do Java ME, e nessa

situações, com certeza o resultado final será mais satisfatório, visto que os aplicativos

podem rodar em diversos devices, sem a necessidade de um hardware específico. O

Java ME é limitado porque sua plataforma é enxuta, cujo foco é a filosofia “Write here,

run Anyware” (“Codifique uma vez, rode em qualquer lugar”).

Por Rodolfo Chaves Fernandes

[email protected]

Revisado pela equipe Java Móvel