Skip to content

Posts tagged ‘sun’

2
Mar

Como usar Java (SE e ME) no Maemo (N800, N810 e N900)

Nokia N900 e N800 executando, respectivamente, aplicativo Java ME e Java SE

Nokia N900 e N800 executando, respectivamente, aplicativo Java ME e Java SE

Um dos melhores recursos dos smartphones e mesmo de telefones em geral é a capacidade de executar arquivos Java destinados a dispositivos móveis, desenvolvidos para a plataforma Java Micro Edition, popularmente conhecida como Java ME . Há diversos aplicativos desenvolvidos para essa plataforma, que pode ser utilizada por  uma varidade de aparelhos, dos mais simples aos topo de linha. Dentre os exemplos de aplicativos estão o Opera Mini, Google Maps, Gmail Mobile, clientes para Twitter e jogos.

Além da quantidade de aplicativos existentes, o que torna importante ter um aparelho que possa executar estes aplicativos é o desenvolvimento feito para economizar recursos do dispositivo, como uso de memória e o tráfego de dados. Ao invés de acessar aplicativos acessíveis por meio de navegadores, e com isso ter que baixar os dados e a formatação das páginas, é possível transferir apenas os dados que são necessários, já que a apresentação está disponível pelo programa em execução. Com isso é possível ganhar em velocidade de execução e em economia de dados, evitando que se ultrapasse a quantidade prevista de dados em planos para dispositivos móveis.

Para se ter uma noção, ao acessar o Free Bird e depois abrir a página do (P)Review do N900, os valores obtidos com o Firefox e o Opera Mini, ambos no N900, foram:

Download Upload Total
Firefox 4,204 MB 376,797 KB ~4,5 MB
Opera Mini 397,442 KB 19,816 KB ~0,5 MB

Por esses fatores, uma das grandes necessidades existentes para o N800 era a possibilidade de executar aplicativos da plataforma Java ME. A falta dessa possibilidade foi entendida, apesar de certa resistência, pelo fato de o N800 não ser um telefone e não ter acesso a rede GSM. Porém, o uso do aparelho em conjunto com um telefone, especialmente pela qualidade da tela e seu poder de hardware, mantém essa necessidade.

Além do caso do N800 e do N810, o N900, apesar de já ser telefone, ainda não apresenta uma opção nativa para executar aplicativos da plataforma, o que é um problema pelos mesmos aspectos supracitados. A solução para boa parte desses problemas apareceu recentemente em um blog russo, sendo apresentado como uma forma de executar o Opera Mini no N900. Contudo,  a solução apresentada é mais completa do que pode se notar, permitindo a execução de aplicativos JAD, feitos para dispositivos móveis, e arquivos Java feitos para desktop. Mais do que isso, essa solução funciona tão bem no N800 (e por consequência no N810) quanto no N900. A forma de utilizá-los nos aparelhos será mostrada agora.

OperaMini sendo executado no N800 e no N900

OperaMini sendo executado no N800 e no N900

Instalação no Nokia N900 (Maemo 5 – Fremantle)

Requisitos

  • Ser root (instalar o Rootsh):
    apt-get install rootsh
  • Ter um aplicativo para descompactar arquivos zip:
    apt-get install zip unzip
  • Ter um editor de texto (usado o PyGTKEditor):
    apt-get install pygtkeditor 

Instalação

A instalação no N900 foi originalmente postada aqui e pode ser vista em suas versões traduzidas automaticamente para inglês e português. Para esse exemplo a instalação será feita totalmente no N900, incluindo o processo de baixar e descompactar o arquivo. Para ver detalhes de como proceder com o auxílio de um computador, basta olhar os detalhes do processo feito para o N800, que muda apenas com relação ao diretório usado.

  • Baixe o arquivo e o salve no telefone. Para o exemplo o arquivo será salvo na raiz do cartão de memória;
  • Abra o terminal;
  • Acesse a pasta onde o arquivo foi salvo:
    cd /media/mmc1
  • Descompacte o conteúdo do arquivo:
    unzip java_nokia_n900_maemo5_opera_mini.zip
  • Obtenha acesso como root:
    root
  • Copie a pasta JRE (localizada dentro do arquivo descompactado) para o diretório /home/user:
    cp /media/mmc1/jre /home/user/ -r
  • Apague a pasta anterior:
    rm -r /media/mmc1/jre
  • Entre na pasta /home/user/jre/bin:
    cd /home/user/jre/bin
  • Confira permissão de execução para os arquivos java e opera.sh:
    chmod +x java
    chmod +x opera.sh
  • Execute o arquivo opera.sh:
    ./opera.sh

Instalação no N800 e N810 (Maemo 4 – OS2008)

Requisitos

  • Ser root (instalar o Rootsh):
    apt-get install rootsh
  • Ter um aplicativo para descompactar arquivos zip:
    apt-get install zip unzip
  • Ter um editor de texto (foi usado o PyGTKEditor):
    apt-get install pygtkeditor
  • No computador, faça o download do arquivo e o descompacte;
  • Ligue o N800/N810 ao computador e transfira a pasta para o cartão. A partição usada para o exemplo foi a usada pelo Windows, com o sistema de arquivos FAT.
  • Entre no terminal e ganhe acesso como root:
    root
  • Copie a pasta do cartão para o diretório /
    cp -r /media/mmc2/jre /
  • Entre na pasta copiada
    cd /jre/bin
  • Atribua permissões de execução para os aplicativos java e opera.sh
    chmod +x java
    chmod +x opera.sh
  • Execute
    ./opera.sh

Usando o MicroEmulator

Snaptu no N800 - Alternativa para cliente Twitter

Snaptu no N800 - Alternativa para cliente Twitter

O processo de instalação é feito com acesso como superusuário (root). Com o término da configuração não é necessário se manter como superusuário para executar o script. Este, por sua vez,  invoca a execução do MicroEmulator, um emulador de J2ME que permite rodar arquivos destinados a dispositivos móveis. O processo é feito originalmente para que o Opera Mini já esteja pronto para ser executado, mas permite que outros aplicativos sejam executados com facilidade.

Para executar Opera Mini com o MicroEmulator já aberto é preciso:

  • Invocar o aplicativo: Clique duas vezes sobre o opera mini;
  • Na página aberta, role até em baixo e clique em Accept.

Para usar a versão mais recente do Opera Mini, acesse: http://www.opera.com/mini/next/download/ e escolha o arquivo JAD da opção “For Java-enabled phones”. Essa versão, além de ser visualmente melhor trabalhada, permite o uso de abas e dá acesso a um teclado virtual.

Botões de ação do Opera Mini sendo exibidos após redimensionamento

Botões de ação do Opera Mini sendo exibidos após redimensionamento

Algumas observações que podem melhorar o uso do MicroEmulator:

  • Para adicionar um aplicativo no MicroEmulator é preciso especificar a URL de origem do JAD ou copiar para o aparelho os arquivos JAD e JAR, indicando o primeiro ao emulador;
  • Para melhorar a visualização dos programas no MicroEmulator, clique sobre o ícone resize e dê ok para o valor mostrado. Com isso serão exibidos os botões da parte inferior da janela, como no caso do Opera Mini;
  • Os botões de navegação de telefones funcionam com as setas e com o ENTER. Para o caso dos dois botões de acesso às duas opções apresentadas no canto inferior da tela o acesso é configurado para as telas F1 e F2. Caso o aparelho seja usado com o modo USB Host, synergy ou outra forma de acesso com teclado, o uso das teclas melhora a navegação e a resposta dos programas.

Licença de uso

Algo que não pôde deixar de ser notado ao executar o arquivo foi a mensagem informando que o produto poderá ser avaliador por 90 dias:

“Java SE Embedded 90 Evaluation Version
Use command ‘java -version’ to view days remaining in evaluation period”

Essa mensagem é exibida pelo Java SE Embedded, invocado como “java”, dentro do script opera.sh e se destina aos desenvolvedores que utilizam a API. O aplicativo é gratuito para desenvolvedores e só passa a ser paga quando este, ou a empresa que o contrata, deseja passar da fase de desenvolvimento para a de implantação do aplicativo, quando se espera que obtenha lucros.

Interessado em saber como a Sun (agora a Oracle) vê o uso do aplicativo por usuários comuns, encaminhei um e-mail perguntando sobre licença e custos para uso individual, sem intenção de aplicá-lo para desenvolvimento. Tendo a agradável surpresa de ser respondido em menos de 1 hora, tive como resposta:

“You can continue to use the 90 day evaluation version of Java SE Embedded at no cost. At the end of the 90 days, you can simply download another copy, again at no charge. There are no limits to the number of times that you download and install the JVM to a single device. At this time, we do not sell individual copies of the software – expiration free copies are only available under a volume license agreement.”

Resumindo, o funcionário da Oracle indica que ao fim dos 90 dias de avaliação seja feito um novo download do aplicativo que durará outros 90 dias. Ou seja, exceto pelo trabalho de fazer o download periodicamente, ele é gratuito e pode ser usado sem que se infrinja a lei.

Executando aplicativos Java para Desktop (J2SE)

ArgoUML no N900

ArgoUML no N900

Como dito antes, a forma como o arquivo é oferecido se destina à execução do MicroEmulator já configurado para a execução do Opera Mini. Contudo, o pacote abre a possibilidade de execução de outros arquivos e contém a versão do Java SE for Embedded, uma versão da plataforma Java que oferece recursos mais avançados do que a J2ME e que se destina a dispositivos embarcados, normalmente com maior poder de processamento.

Considerando a instalação já feita do aplicativo, tudo o que se precisa fazer é executar o comando java a partir da pasta jre/bin. Como exemplo foi executado o programa ArgoUML. O processo consistiu em:

  • Baixar o arquivo do ArgoUML no N800 ou no N900 e descompactá-lo;
  • Executar o comando java referenciando o arquivo argouml.jar:
    ./java -jar /media/mmc1/argouml-0.28.1/argouml.jar

O arquivo demora um pouco para ser aberto. Sua abertura leva pouco menos de 3 minutos para o N800 e 1 minuto e 30 segundos para o N900. Após sua conclusão a fluidez da execução é natural e sem travamentos. O único incômodo é ajustar a interface de forma mais apresentável, escondendo menus de propriedades e deixando à mostra a tela de criação dos modelos e diagramas. Após a primeira organização das janelas, a configuração é preservada em utiliações posteriores do programa.

ArgoUML no N800

ArgoUML no N800

Desempenho do Java

Algo importante a ser ressaltado é o desempenho geral do java nos aparelhos. Ao contrário do que ocorre ao executar o EasyDebian, a execução do Java for Embedded limita o uso de RAM à quantidade disponível. Nos testes realizados a quantidade de memória alocada para programas foi de 24MB,  o que é ótimo inclusive para o N800 e o N810, que contam com 128 RAM e não precisam usar memória virtual (em SWAP), deixando o aparelho lento. A carga de processamento chega ao topo em alguns momentos, mas ainda assim dentro de um comportamento aceitável.

Na Figura da subseção anterior é possível notar quanto de memória é utilizado. Mesmo com o programa para desktop, o consumo é baixo.

Considerações Finais

A possibilidade de uso de aplicativos em Java, tanto destinados a dispositivos móveis quanto para desktop,  para aparelhos com Maemo é interessante porque acrescenta uma grande quantidade de aplicativos com potencial de uso no sistema. O fato de executar fora do EasyDebian garante um desempenho melhor e ainda assim consegue suportar a execução de aplicativos feitos para computadores.

A compatibilidade com aplicativos não é total. O processo exige que se use arquivos JAD e ainda assim alguns dos programas não puderam ser utilizados. Para os casos em que eles são aceitos, a experiência de uso foi boa e se mostrou equivalente à execução do Java ME no computador.

Uma outra opção para Java no N900 é o projeto OpenJDK. Um dos resultados já obtidos com isso foi o uso do Apache Tomcat no N900, que serve como servidor Web para a execução de servlets e páginas JSP, além de outras possibilidades, como serviços Web, com o uso de outras bibliotecas.

Referências e Leituras Relacionadas

http://maemos.ru/2009/12/20/java-nokia-n900-maemo-5-opera-mini/

http://java.sun.com/javase/embedded/index.jsp

http://www.microemu.org/maemo/