UNIVERSIDADE FEDERAL DE SANTA CATARINA – UFSC CENTRO TECNOLÓGICO – CTC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA – INE DISCIPLINA: PROJETOS I GRADUANDO: LUCAS DE SOUZA REIS GOMES 0023823-6 Resumo “Introdução à J2ME e programação MIDP” - Introdução J2ME ou Java 2 Micro Edition é a segunda revolução na curta história da tecnologia Java. A primeira revolução aconteceu em 1995 com o surgimento das applets, que mudaram o modo como as aplicações Web poderiam ser desenvolvidas e oferecidas aos usuários. A segunda revolução se deu com a inserção de tecnologia Java em dispositivos móveis, aliada à explosão do mercado desses dispositivos, principalmente telefones celulares. Assim que esses aparelhos começaram a possuir maior capacidade de processamento e memória, executar programas, aproveitar esses novos recursos passaram a ser ótimos diferenciais para sistemas que precisavam de mobilidade e portabilidade, principalmente utilizando uma tecnologia já familiar aos desenvolvedores, como Java. - Entendendo J2ME J2ME é a edição de Java para pequenos dispositivos, como pagers, telefones celulares, set-top boxes de TVs a cabo, PDAs etc. É uma versão específica de máquina virtual criada para ser executada em um ambiente limitado, com recursos por vezes exíguos de memória e processamento. Como pontos importantes na tecnologia J2ME no mercado de telefonia móvel, destacamos o fato de que os desenvolvedores são livres para criar aplicações e executá-las em qualquer dispositivos de qualquer fabricante que possua uma máquina virtual, não sendo necessário se prender a um dos fabricantes ou a uma tecnologia. Os usuários também são livres para escolher o modelo de telefone celular mais adequado às suas necessidades que possa executar o aplicativo desejado. Antes do J2ME, qualquer programa que precisasse ser incluído em celulares deveria ser escrito na linguagem nativa do próprio dispositivo, provavelmente utilizando bibliotecas proprietárias do mesmo. O processo de conversão do aplicativo de um dispositivo para outro era potencialmente complexo, com custos que poderiam inviabilizá-lo. Também não existem limitações em relação à operadora de telefonia celular ou à tecnologia adotada por ela. Existem telefones celulares com máquina virtual Java para quaisquer das tecnologias mais utilizadas atualmente (GSM/GPRS, CDM/1.xRTT, TDMA etc). Para que o seu aplicativo possa ser executado no celular, não é necessária qualquer licença especial da operadora ou sequer a sua ciência. Além disso, com as operadoras criando planos mais acessíveis para transporte de dados, os aplicativos que usam a rede de comunicação passam a ter uma viabilidade econômica inédita, permitindo que mais empresas e pessoas físicas se decidam a acessar dados remotos por meio de J2ME. Outro ponto importante é que recursos conhecidos da tecnologia Java também estão disponíveis para os aplicativos J2ME, como, por exemplo, os recursos de segurança de código semelhantes aos encontrados na versão convencional de Java J2SE, entre outros. - Arquitetura do J2ME J2ME é dividido entre Configurations (configurações), Profiles (perfis) e APIs opcionais. Essa divisão permite ao desenvolvedor conhecer informações específicas sobre as diferentes famílias de dispositivos e as APIs disponíveis em cada uma delas. Configurations: A Configuration define o mínimo que um desenvolvedor pode esperar do dispositivo, classificando-os por capacidade de memória e processamento. Especifica uma JVM que pode ser portada entre dispositivos e também determina um subconjunto das APIs da J2SE a serem utilizadas, além de outras APIs adicionais necessárias. Entre as configurações destacam-se a CDC (Connected Device Configuration) e a CLDC (Connected, Limited Device Configuration). A especificação CDC é baseada na máquina virtual Java convencional, definindo um ambiente com um conjunto rico de recursos, semelhantes aos encontrados em um sistema desktop. A CLDC, por outro lado, consiste em uma máquina virtual reduzida (KVM) e um conjunto de classes mais apropriado para dispositivos pequenos e com limitações de desempenho e memória. Esta configuração é destinada para dispositivos wireless menores, possuindo geralmente entre 160Kb e 512 Kb disponíveis para Java (mínimo de 128 Kb), uma conexão à rede limitada, intermitente e provavelmente lenta. A tela é de tamanho pequeno, e a fonte de energia é reduzida, fornecida por baterias. A CLDC 1.0 possui limitações, como o impedimento à adição de métodos nativos em runtime e a falta de tipos primitivos de ponto flutuante. Profiles: Os perfis são conjuntos de APIs que suplementam as Configurations, fornecendo funcionalidades para um determinado tipo de dispositivo ou mercado virtual. São mais específicos que as configurações, apesar de serem baseados nelas. Adicionam APIs para interface com o usuário, armazenamento persistente e outras auxiliares. O profile utilizado em celulares é a MIDP (Móbile Information Device Profile), com o Foundation Profile sendo utilizado em dispositivos de rede sem interface gráfica, e o Personal Basis e Personal Profile utilizados em dispositivos com suporte gráfico e alta capacidade sobre a CDC. A segurança das aplicações Java em MIDP 1.0 é semelhante às applets, com o conceito de uma sandbox, onde o programa Java é mantido seguro, sem acesso ao ambiente externo. Em MIDP 2.0, as aplicações possuem um tratamento de segurança baseado em permissões semelhantes à J2SE. APIs opcionais: As APIs opcionais são funcionalidades adicionais específicas que não serão encontradas em todos os dispositivos de uma determinada configuração ou perfil, mas importante o suficiente para serem padronizadas. As APIs opcionais mais conhecidas como WMA (Wireless Messaging API), que permite aos aplicativos J2ME manipular mensagens SMS, e a MMAPI (Móbile Media API), que adiciona controle de mídia aos programas J2ME que o permitem. Juntos, Configurations, Profiles e APIs opcionais formam uma pilha que define o que está disponível pra o desenvolvedor em um dado dispositivo ou classe de dispositivos, fornecendo o escopo de recursos que podem ser acessados pelos aplicativos escritos para eles. - Plataforma J2ME Atual Em telefones celulares, é encontrada a combinação CLDC 1.0 e MIDP 1.0. Alguns lançamentos recentes atendem à especificação MIDP 2.0 e/ou CLDC 1.1, mas ainda não são dispositivos massificados. Por muito tempo ainda, o desenvolvedor terá como plataforma mais freqüente a combinação citada. - Programação MIDP O perfil MIDP traz as classes de interface com o usuário e acesso à rede, dando nome aos aplicativos desenvolvidos para celulares. De maneira semelhante às applets e aos servlets, um aplicativo MIDP é chamado de midlet, por herdar de uma classe denominada MIDlet (javax.microedition.midlet.MIDlet). Com essa herança, a classe recebe a capacidade de se comunicar com o Gerenciador de Aplicativos que os dispositivos MIDP possuem e de interagir com a interface do aparelho. Um aplicativo MIDP é um conjunto de classes que implementam seu funcionamento, reunidas em um pacote chamado MIDlet Suíte. O aplicativo é desenvolvido em um computador desktop, compilado, pré-verificado, empacotado (JAR) e então instalado em um dispositivo para execução ou em um emulador. O arquivo JAR que contém o aplicativo é acompanhado por um descritor da aplicação, um arquivo JAD (Java Application Descriptor), que é processado pelo Application Manager (gerenciador de aplicativos) do dispositivo, fornecendo informações sobre os requisitos de funcionamento da MIDlet Suíte e permitindo que os usuários decidam pela sua instalação. O desenvolvimento de todos esses passos pode ser executado manualmente, a partir das bibliotecas e ferramentas disponíveis no Sun MIDP Reference Implementation, ou otimizado por alguma ferramenta que execute todos esses passos de forma quase transparente. Referência Bibliográfica: Revista Mundo JAVA Número 05 – Ano I Autor: Leandro Batista de Almeida