Olá, pessoal! Sei que estou um pouco atrasado com as colunas, mas não os esqueci. "Acho" que me envolvi em projetos demais e fiquei com tempo curto para escrever. Mas isso não significa que abandonarei a coluna, certo?
Teremos neste artigo uma introdução ao J2ME e, no próximo, construiremos uma aplicação exemplo.
Efetuar ligações telefônicas e servirem de agendas. Alguns ainda vêem os celulares e dispositivos móveis com apenas estas funcionalidades. Porém, nos últimos anos, diversos serviços foram incorporados a estes aparelhos, permitindo aos seus usuários acompanhar as ações do mercado financeiro, verificar suas caixas de correio eletrônico, trocar informações com seus escritórios quando estão em visita a clientes, divertir-se com jogos ou músicas, entre outras coisas.
Com a grande demanda para o desenvolvimento de novas aplicações e cada vez mais complexas, as empresas que fabricavam os aparelhos deixaram de ser as únicas responsáveis por produzir os aplicativos contidos em seus aparelhos. Estas empresas precisaram encontrar um meio de permitir que outras empresas pudessem desenvolver estas aplicações. Só que esta situação envolvia um problema com relação às informações que seriam distribuídas para estes desenvolvedores, pois não era interessante que eles tivessem conhecimento da arquitetura interna dos aparelhos nem de algumas funcionalidades dos sistemas operacionais dos mesmos, garantindo o sigilo de soluções proprietárias.
Os fabricantes, por conta dessa necessidade, decidiram construir uma camada entre os sistemas operacionais de seus aparelhos e as aplicações. Camada esta, que seria usada por outras empresas para acessar as funcionalidades nativas dos aparelhos.
Java 2 Micro Edition (J2ME), foi a primeira iniciativa neste sentido, sendo uma versão da linguagem Java para dispositivos móveis. Assim sendo, só seria necessário que os fabricantes implementassem uma JVM em seus sistemas operacionais, assim como acontece com os navegadores de Internet e os applets Java. Com esta solução adotada, permitiu-se em muito menos tempo, o desenvolvimento de um número muito maior de aplicações, devido a grande disponibilidade de programadores que conheciam a linguagem Java (versão Standard) e que poderiam migrar, facilmente, para J2ME. Aplicações portáveis e de menor custo de desenvolvimento foram algumas das conseqüências dessa medida.
A plataforma J2ME é a plataforma JAVA para dispositivos compactos, como celulares, PDAs, controles remotos, e uma outra gama de dispositivos. Assim como a versão Enterprise (J2EE), a Standard (J2SE) e a Smart Card (Java Card), a plataforma J2ME é uma coleção de APIs do JAVA definidas através da JCP (Java Community Proccess). A plataforma leva ao consumidor o poder e os benefícios da tecnologia JAVA em seus aparelhos, incluindo uma interface flexível, um modelo robusto de segurança e suporte a aplicações em rede ou offline. Com o J2ME, as aplicações são escritas somente uma vez para um grande número de dispositivos e são baixadas dinamicamente, dentre outros benefícios.
A arquitetura J2ME
A arquitetura J2ME define configurações, perfis e pacotes opcionais como elementos para construir ambientes de execução completos que preenchem os requisitos para um bom número de dispositivos e mercados-alvo. Cada combinação é otimizada para a memória, capacidade de processamento e de I/O de uma determinada categoria de dispositivos.
O resultado é uma plataforma comum que é compatível com a maioria dos dispositivos móveis do mercado.
Configurações
As configurações são compostas de uma VM e um conjunto mínimo de bibliotecas. Elas fornecem a funcionalidade básica para um número particular de dispositivos que possuem características similares, como conectividade e memória. Atualmente, existem duas configurações no J2ME:
· Connected Limited Device Configuration (CLDC)
· Connected Device Configuration (CDC)
Falaremos mais sobre essas configurações logo abaixo.
CLDC
A CLDC é a menor das duas configurações, designada para dispositivos com conexões de rede intermitentes, processadores lentos e memória limitada (como celulares, pagers, e PDAs). Estes dispositivos possuem, geralmente, processadores de 16 ou 32 bits e memória disponível entre 128KB e 512KB para a implementação da plataforma JAVA e suas aplicações.
CDC
A CDC foi feita para dispositivos que possuem mais memória processadores e conexões mais rápidos, como controles-remoto, gateways residenciais, etc.
A CDC inclui uma full-featured JVM e uma parte maior do J2SE que o CLDC. Como resultado, a maioria dos dispositivos compatíveis com CDC possui processadores de 32 bits e um mínimo de 2MB de memória disponíveis para a implementação da plataforma JAVA e suas aplicações.
Profiles
Para fornecer um ambiente completo para cada categoria de dispositivos, as configurações devem ser combinadas com um conjunto de APIs de alto nível, ou perfis, que definirão o modelo do ciclo de vida da aplicação, a interface do usuário e acesso a propriedades específicas do dispositivo.
Mobile Information Device Profile(MIDP)
O MIDP foi feito para celulares e PDAs. Ele oferece a base para a funcionalidade requerida pelas aplicações móveis, incluindo interfaces do usuário, conexões com rede, persistência de dados e controle de aplicações. Combinado com o CLDC, o MIDP fornece um ambiente de execução JAVA completo que alavanca a capacidade de handhelds e minimiza o consumo de memória e energia.
Foundation Profile(FP)
Os perfis CDCs são divididos, ou seja, esses perfis podem ser adicionados quando preciso para fornecer a funcionalidade para diferentes tipos de dispositivos. O Foundation Profile(FP) é o nível mais baixo de perfil do CDC. Ele fornece uma implementação de rede do CDC que pode ser usada para construir aplicações sem interface com o usuário. Ele pode também ser combinado com o PBP(Personal Basis Profile) e o PP(Personal Profile) para dispositivos que necessitem de uma interface com o usuário(GUI).
Personal Profile(PP)
O Personal Profile(PP) é o perfil CDC utilizado em dispositivos que necessitam de um suporte completo para interface ou applet, como PDAs e consoles para jogos. Ele inclui a biblioteca AWT completa e é fiel ao ambiente web, executando facilmente applets feitos para ambientes desktop. O PP substitui a tecnologia PersonalJava e fornece um caminho fácil de migração das aplicações escritos na mesma para J2ME.
Personal Basis Profile(PBP)
O Personal Basis Profile (PBP), uma divisão do PP, fornece um ambiente para dispositivos conectados que suportem um nível básico de apresentação gráfica ou necessitem do uso de toolkits específicos para aplicações. Ambos, PP e PBP, são as camadas superiores do CDC e FP.
Pacotes Opcionais
A plataforma J2ME pode ser estendida pela combinação de vários pacotes opcionais com CLDC, CDC e seus perfis. Criado para atingir requisitos específicos de mercado, os pacotes opcionais oferecem APIs padrões para tecnologias existentes e emergentes como Bluetooth, Web Services, multimedia, conexão com banco de dados e envio de mensagens.
Um forte abraço e até a próxima!
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Christiano Pinheiro é desenvolvedor do iBanking da Caixa para Handhelds e diretor tecnológico da Systray.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.