J2ME – PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS Ana Paula Carrion1, Késsia Rita da Costa Marchi1, Jaime Willian Dias1 1 Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], {kessia, jaime}@unipar.br Resumo. Com o crescimento do uso de dispositivos móveis como celulares e PDAs (personal digital assistant), houve a necessidade de adequação da produção de softwares de forma que atendesse a este grupo específico de dispositivos. Java é a linguagem de programação mais utilizada pelos desenvolvedores de software e também a que mais cresceu desde o seu surgimento e, a partir dela foi possível criar uma plataforma de desenvolvimento reduzida, porém completa, com todas as características que atendem as necessidades específicas deste tipo de aplicação, a plataforma J2ME. 1. Introdução Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90 por uma equipe de programadores da empresa Sun Microsystems. Desde seu lançamento em maio de 1995, esta foi a plataforma adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação. Em constante crescimento, esta linguagem tornou-se referência no mercado de desenvolvimento de software, tornando-se popular pelo seu uso na internet. Hoje possui ambiente de execução presente em navegadores, sistemas operacionais, celulares, entre outros. Em 2007 a Sun Microsystems tornou a linguagem de programação Java um software livre, disponibilizando praticamente todo código Java, menos uma pequena porção da qual a Sun não possui copyright. Segundo Nunes [2002], das tecnologias no campo dos computadores, a linguagem Java foi das que teve maior efeito no mercado. Desde páginas web usando applets Java, até aplicações desenvolvidas completamente nesta linguagem, a linguagem Java tem honrado seu slogan “Write Once, Run Anywhere” [Depiné 2002]. Desde então, o aumento da utilização de dispositivos móveis que fazem uso de tecnologia sem fio, agregado à necessidade da qualificação do poder computacional, bem como das suas tecnologias, culminaram na valorização dos aplicativos para dispositivos móveis, e o aumento da demanda de seu desenvolvimento. Para isso, tornou-se necessário adequar a tecnologia Java de forma a atender os requisitos específicos destes dispositivos, consequentemente nos deparamos com a tecnologia Java 2 Micro Edition (J2ME), que é uma versão reduzida da linguagem Java, utilizada especificamente para a programação destinada à dispositivos móveis. A J2ME disponibiliza para o desenvolvimento de aplicações destinada a dispositivos móveis uma Máquina Virtual Java, chamada de KVM, pequena devido as restrições de memória destes dispositivos, e ainda a Connected Limited Device Configuration (CLDC) ou Connected Device Configuration (CDC), onde encontram-se as aplicações Java sem fio, responsáveis pela entrada, saída de dados e conexão e a Mobile Information Device Profile (MIDP), que possui a biblioteca da interface gráfica, e as classes de persistência Neste artigo, após uma breve descrição dos conceitos da linguagem de programação Java, será abordada a J2ME, a versão reduzida de Java destinada ao desenvolvimento para dispositivos móveis. 2. Java Segundo Depiné [2002], Java é uma linguagem computacional completa e adequada para o desenvolvimento de aplicações baseadas na internet, redes fechadas ou ainda programas executáveis. Diferente das outras linguagens mais estruturadas e de baixo nível, é orientada a objetos. Devido sua portabilidade, permite que seu código seja executado em diferentes ambientes operacionais, tornando-se uma linguagem ainda mais eficiente. Possui tratamento de erros que não permite falha quando o código é executado em condições normais, e ainda possui bibliotecas que permitem aplicações padrão para os desenvolvedores a partir da plataforma de desenvolvimento. A versão Java está dividida em: • Java 2 Standard Edition (J2SE): tecnologia projetada para computadores pessoais e ambientes de trabalho; • Java 2 Enterprise Edition (J2EE): tecnologia direcionada para aplicações baseadas no servidor, contendo suporte interno para JavaServer Pages (JSP), sXtensible Markup Language (XML) e servlets; • Java 2 Micro Edition (J2ME): plataforma direcionada para dispositivos com poucos recursos computacionais, como palms e celulares; • Java Card: plataforma que uniu o smart card com algumas funcionalidades de segurança (figura 1). Figure 1: Edições da Linguagem Java e Seus Respectivos Alvos de Aplicação (Fonte: http://www.devmedia.com.br/conceitos-­‐basicos-­‐das-­‐plataformas-­‐java-­‐e-­‐j2me/6484 Acesso em: 31/05/2013) 3. J2ME A linguagem de desenvolvimento J2ME possui uma coleção de tecnologias e características específicas para o desenvolvimento de aplicações para dispositivos portáteis. Essa plataforma é capaz de atender diversos dispositivos que apresentam muitos pontos em comum, mais diferenciam-se em suas características e funcionalidades, processamento, memória e interação com o usuário. Desta forma, foram estabelecidos conceitos essenciais que diferem na utilização da plataforma para dispositivos de uma mesma “família”, ou seja, com características similares. A arquitetura J2ME é modular e escalável, definidas em um modelo de 3 camadas embutidas sobre o sistema operacional de cada dispositivo: camada de perfil, camada de configuração e camada do interpretador (figura 2). Figure 2: Arquitetura da Plataforma J2ME (Fonte: http://www.devmedia.com.br/j2me-­‐midp-­‐os-­‐primeiros-­‐passos-­‐ para-­‐o-­‐desenvolvimento-­‐de-­‐aplicativos-­‐para-­‐celulares/120 Acesso em: 31/05/2013) A camada de perfil é a mais visível para usuário e desenvolvedor, define as bibliotecas específicas para a interface gráfica e as classes de persistência de dispositivos. Existem três perfis que auxiliam a configuração CDC: FP (Foudantion Profile), P (PersonalProfile) e o PBP (Personal Basis Profile). Há ainda, mais dois perfis definidos que ajudam a complementar as configurações CLDC: o MIDP e o IMP (Information Module Profile). A combinação do CLDC e do MIDP garantem uma plataforma completa de desenvolvimento para a criação de aplicações para dispositivos portáteis. Uma aplicação Java baseada na configuração CLDC e no perfil MIDP é conhecida como Midlet. A camada de configuração define uma plataforma mínima de desenvolvimento para um grupo de dispositivos com características parecidas, tanto na memória como no processamento, caracterizando a linguagem utilizada, máquina virtual, bibliotecas e aplicações. Existem duas configurações definidas: o CLDC, utilizado em dispositivos com capacidade limitada (celulares, etc.), e o CDC, utilizado em dispositivos com mais capacidade de memória e processamento (televisores, etc.). A camada do interpretador é uma implementação da máquina virtual Java específica para os dispositivos móveis, o Kilobyte Virtual Machine (KVM) é o interpretador Java otimizado para estes dispositivos com recursos limitados, utilizado pela configuração CLDC. 4. Midlets Uma Midlet é um aplicativo em Java pra dispositivos móveis, mais especificamente da plataforma J2ME, utilizando CLDC e MIDP. É gerenciada por um software chamado AMS (Application Management Software), presente em cada dispositivo. Em geral são aplicações para serem executadas em celulares, como jogos entre outros. A classe principal de uma Midlet deve estender a classe javax.microedition.midlet.MIDlet, nessa classe devem ser definidos três métodos: startApp(), pauseApp() e destroyApp(), que definem os estados do ciclo de vida de uma Midlet (figura 3). Ele também deve ser empacotado em um arquivo.jar, e este deve ser pré-verificado. Figure 3: Ciclo de Vida de uma Midlet (Fonte: http://www.devmedia.com.br/j2me-­‐midp-­‐os-­‐primeiros-­‐passos-­‐ para-­‐o-­‐desenvolvimento-­‐de-­‐aplicativos-­‐para-­‐celulares/120 Acesso em: 31/05/2013) O estado inicial de uma Midlet é pausado, assumido assim que ele começa a ser construído, ou ainda, ele pode retornar a este estado quando necessário, como por exemplo, para atender a uma ligação, é acionado o método pauseApp(). Para acionar o método startApp() e mudar o estado da Midlet de pausado para ativo é preciso somente inicializar o aplicativo. E para terminar a sua execução e liberar os recursos é necessário acionar o método destroyApp(), a partir de qualquer estado que o aplicativo se encontrar. 4. Metodologia Este artigo procurou através de revisão bibliográfica elaborar um trabalho sobre a linguagem de programação Java, e aprofundar-se na plataforma de desenvolvimento para dispositivos móveis J2ME, com o objetivo de descrever seus principais conceitos. 5. Conclusão Com o conteúdo apresentado pode-se concluir que o crescimento acelerado do uso de dispositivos móveis, principalmente celulares, fez evoluir também as características da linguagem de programação Java, no qual foi necessário adaptar a plataforma de forma que atenda as características especificas deste grupo. Existem várias linguagens de desenvolvimento para aplicações móveis além de Java, como por exemplo Pascal, C, C++, Objective C, entre outros, por isso, é necessário que o desenvolvedor analise cuidadosamente antes de decidir qual plataforma utilizar para maximizar o alcance de suas aplicações. Existem também muitas plataformas de desenvolvimento que podem atender este tipo de aplicação, no entanto muitas apresentam características incompatíveis, o que não permite que um aplicativo seja executado em uma plataforma diferente da utilizada para seu desenvolvimento. Este é um dos principais motivos que levam ao crescente uso da plataforma J2ME, permitir que a aplicação seja executada independente do ambiente computacional, além do fato que é uma linguagem estruturada, que oferece suporte, bibliotecas padrões e APIs personalizadas, bem como é a linguagem que mais se ajusta às necessidades dos dispositivos móveis (mémoria, armazenamento e processamento limitado). Referências Artigo Protótipo de Software para Dispositivos Móveis Utilizando Java ME para Cálculo de Regularidade em Rally. Fabio Marcelo Depiné. http://campeche.inf.furb.br/tccs/2002-II/2002-2fabiomarcelodepinevf.pdf. Acesso em: 01/06/2013. Conceitos Básicos das Plataformas Java e J2ME. Cristiano Fioresi. http://www.devmedia.com.br/conceitos-basicos-das-plataformas-java-e-j2me/6484. Acesso em: 31/05/2013. Desenvolvimento de Aplicativos para Dispositivos Móveis na Plataforma J2ME. Bruna Georgina Bunzen de Albuquerque Romeiro. http://tcc.ecomp.poli.br/BrunaRomeiro.pdf. Acesso em: 01/06/1013. J2ME MIDP – Os Primeiros Passos Para o Desenvolvimento de Aplicativos para Celulares. Gabriel Fernando Andriolli. http://www.devmedia.com.br/j2me-midp-osprimeiros-passos-para-o-desenvolvimento-de-aplicativos-para-celulares/120. Acesso em: 31/05/2013. J2ME – Plataforma Java para Dispositivos Móveis. Leonardo da Silva Sousa. http://www.ebah.com.br/content/ABAAAelI4AJ/j2me-plataforma-java-dispositivosmoveis. Acesso em: 31/05/2013. Lemay, Laura; Perkins, Charles L. Aprenda em 21 dias java, 4. Ed. Rio de Janeiro, Campus, 1997. Plataformas J2ME, J2EE e J2SE: Onde Utilizá-las. Adriano Andreo Jandre. http://web.unipar.br/~seinpar/artigos/Adriano-Andreo-Jandre.pdf. Acesso em: 31/05/2013. Sierra, Kate. SCJP: Certificação Sun para Programador Java 6; 1. Ed. Nacional, Alta Books, 2009.