Java ME e Android: Onde manter o foco?

     Ambas plataformas são direcionadas a dispositivos que possuem processamento,
...
no qual o aplicativo possa rodar, porém este meio possui seus limites. O fato é que o
Java ME está presente nos aparelhos ...
aceitação pelos usuários e desenvolvedores. Existem duas grandes vantagens nesta
plataforma, uma é o fato de já ser agrega...
de possuir poucos aparelhos no Brasil que a suportem. Pode ser demagogia, mas
praticamente tudo que a Google põe a mão vir...
Upcoming SlideShare
Loading in...5
×

Java ME e Android: Onde manter o foco?

5,282

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,282
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
123
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Java ME e Android: Onde manter o foco?

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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 chavesrodolfo@gmail.com Revisado pela equipe Java Móvel

×