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

March 2nd, 2010 vegetando 4 comments
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/

N800 + BlueMaemo + USB Host = acessórios bluetooth para N900, Playstation 3, computadores e gadgets

February 23rd, 2010 vegetando No comments
BlueMaemo para o Maemo 4 (0S2008)

BlueMaemo para o Maemo 4 (0S2008)

O BlueMaemo é um aplicativo disponível para o Maemo (OS2008 e Fremantle) que permite que o tablet (N800, N810 ou N900) controle outros equipamentos  que aceitem o perfil HID (celulares, computadores, video games, etc.). Em sua interface são oferecidas opções para controlar outros dispositivos: mouse, teclado, controlador de apresentações, controle remoto de mídia ou controle de video game. O controle é feito com o toque na tela do N800/N810/N900 ou, no caso do Fremantle, pode ser com o uso de acelerômetro.

O que alguns usuários do BlueMaemo talvez não saibam é que uma vez que o programa tenha estabelecido a conexão com outro dispositivo/máquina os periféricos de entrada (restritos aos que inserem caracteres ou indicam movimento) também podem ser usados para controlá-lo. Ou seja, se você utiliza o N800 para digitar em um computador e o tablet estiver usando o modo USB Host, com um teclado USB ligado, ao digitar no teclado o texto aparecerá também na máquina controlada.

Funcionalidades do BlueMaemo em suas versões para N800/N810 e N900

Funcionalidades do BlueMaemo em suas versões para N800/N810 e N900

Isso te interessou? Tomado pela súbita empolgação de descobrir algo novo, foram testadas com sucesso: Ligar o N800 no Synergy, conectá-lo ao N900 com o BlueMaemo e fazer o mouse e o teclado do computador controlarem o N900! Mais inútil uma opção testada? Se o N900 não aceitar um dispotivo que o N800 aceita, basta usar o BlueMaemo. Sem ter o wiimote configurado ou pareado no N900, o controle do Wii foi ligado ao N800 e passou a funcionar para o N900, permitindo usar direcionais e botões. O Playstation 3 foi pelo mesmo caminho, sendo controlado pelo N800, que estava ligado ao wiimote. Por “silogismo hipotético”, o wiimote acabou controlando o PS3.

O interessante disso é que o N800 vira uma ponte de acesso de entre os acessórios que aceita e os dispositivos que controla. Para fechar a lista de desculpas para manter o N800 mesmo tendo um N900 cenários de uso para o N800 como adaptador bluetooth de acessórios: o N800 é um mobile companion ótimo: possui duas entradas para cartão SD (com adaptadores a mini e micro também), potencialmente aceita diversos dispositivos bluetooth e USB, tem boa autonomia de bateria e uma tela grande e com boa resolução. Se ele não for usado para visualizar sites ou outros conteúdos, pode ser usado para fornecer acesso cartões e pendrives ou servir para adaptar periférios.

Para exemplificar esse uso do BlueMaemo criamos um vídeo no qual o N800, conectado a um teclado USB, controla o N900. O processo envolve conectar os aparelhos pelo BlueMaemo e então ativar o modo USB host, ligando o teclado USB posteriormente.

Terminada a já longa e insistente fase de motivação, vamos à parte do “como fazer”. O primeiro passo é configurar o modo USB Host do N800/N810 e aumentar o número de acessórios que podem ser usados pelo aparelho. Esse modo é útil porque permite que se use um teclado ou mouse USB, o que pode ser útil para digitar textos longos ou passar longas horas de diversão trabalho no aparelho. O N900, infelizmente, não possui essa função suportada pelo hardware. Com isso, para os donos do N800 e do N810 o aparelho pode servir como uma interface para vários acessórios que não são suportados pelo equipamento controlado, como:

Para a possibilidade de usar mouse e teclado USB (além de pendrives e até modem 3G, com uma alimentação externa e um pouco de trabalho de configuração) é preciso:

  • Instalar o programa USB Control;
  • Abrir o programa e selecionar a opção “Host”;
  • Logo após, basta ligar um adaptador miniUSB a um adaptador USB fêmea fêmea e  este ao periférico desejado;
  • Apesar de aparecerem algumas mensagens de erro informando que o dispostivo não foi aceito, ele estará funcionando.

O próximo passo é configurar o BlueMaemo.  Os passos resumidos são (mais detalhes podem ser vistos no blog do autor o Valério Valério):

  • Ligue o bluetooth do equipamento a ser controlado e deixe-o em modo visível;
  • Abra o BlueMaemo (o bluetooth é ligado automaticamente) e escolha a opção conectar;
  • Escolha a equpamento a ser controlado e faça o pareamento;
  • Use algumas das opções de controle para verificar o correto funcionamento do BlueMaemo.

Para o N800/N810 algumas opções de controle são usar o modo usb host, synergy, teclado bluetooth (HID e SPP) e wiimote.

O uso do BlueMaemo e do modo USB Host (ou outro acessório Bluetooth) é feito pela utilização dos dois ao mesmo tempo. O processo de configuração se resume a conectar o BlueMaemo e configurar algum dispositivo (teclado USB ou Bluetooth, mouse, controle, etc.).

Os passos para utilização do BlueMaemo e do modo  USB Host foram bem superficiais, por exigirem um post à parte para cobrir seus detalhes e testes de compatibilidade. Fica a promessa de que faremos um guia de configuração desses aplicativos e do uso das opções que não foram citadas dentro do próprio Free Bird. Além disso, logo serão coloadas as formas de se configurar o synergy e os teclados bluetooth para o N900. Estamos saindo da inércia (: .

N800 usando mouse e teclado USB com o USBControl e BlueMaemo

N800 usando mouse e teclado USB com o USBControl e BlueMaemo

O estranho caso do NokiaBR

January 10th, 2010 panaggio 5 comments

Era um Domingo de Janeiro como outro qualquer. Chuva lá fora. Pernilongos por toda parte. Calor. Muito calor. Twitter parado. Tudo o que um Domingo qualquer precisava para ser chamado de normal. Mas o Domingo não podia ser tão normal assim.

Suicídio? (foto de Oldmaison, compartilhada via Creative Commons no Flickr)

Suicídio? (foto de Oldmaison, compartilhada via Creative Commons no Flickr)

Algo de estranho aconteceu durante a semana: no dia 05 de Janeiro de 2010, o NokiaBR sumiu. Muita gente não percebeu. (Eu, por exemplo, que só acompanho o blog pelo feed. Logo, achei que, por causa do início de ano, os posts estavam saindo com menor frequência). Muita gente não entendeu, mas a coisa tinha ficado por aí. Até que, no fim desse Domingo, o motivo do sumiço do NokiaBR apareceu. Nosso amigo José Antônio “javsmo” Oliveira, do (agora não mais existente) NokiaBR e do ZEletron, recebeu uma notificação extrajudicial nada normal no dia 05: (entre outras coisas) tire o domínio nokiabr.com.br do ar.

Em tempos de mídias sociais, onde muito valor passa a ser atribuído às pessoas, valorizar comunidades de fãs é o mínimo esperado de grandes empresas como a Nokia. E aparentemente eles faziam isso muito bem. Vi o Zé no Nokia Camp, e acompanhamos o lançamento de um satélite em outro país por meio dele. Vi o Marcelo Barros, também do NokiaBR e de outros tantos lugares, receber prêmio do Fórum Nokia. Esforço e dedicação dos dois foram devidamente avaliados e recompensados. Ou tinham sido.

Durante 3 anos os dois mantiveram o blog no ar. Três anos. Construiram uma comunidade em torno do blog. Agregaram os fãs da marca, o que a própria Nokia[bb] não tinha conseguido de maneira tão eficaz até então. Produziram conteúdo de qualidade sobre aparelhos e sobre a marca. Pode-se dizer que são referência nacional em conteúdo relevante sobre a marca finlandesa, sem sombra de dúvida. E foram dissipados, com uma notificação de advogados.

Não se constrói uma comunidade grande da noite para o dia. Não se cria um blog com 3000 visitas/dia sem esforço. Um sonho não vira realidade rapidamente e sem esforço. Mas com pouco esforço e muito rapidamente, o sonho se vai.

Mas uma atitude grave como essa tem um preço. Fãs que acompanhavam a marca pelo blog (e são muitos!) vão pensar duas vezes em qualquer assunto a ela relacionado. Membros da comunidade que queriam participar mais, talvez serão desencorajados. A própria marca será ferida, ou até pior. E isso, nesse mundo, é qualificado como suicídio.

Mas errar é humano. E eu, na maior esperança do Universo, acredito que isso seja um engano. Como a Bia já disse, é possível, pelo tamanho da empresa, que uma área tenha agido “proativamente” e tratado dos “malfeitores”, enquanto a outra ainda não sabia. Se não sabia,agora sabe“, ela disse. E eu completo. Do pior jeito.

Eu sinceramente espero acordar amanhã num dia normal, como hoje parecia ser. Calor. Chuva. Mosquitos. #musicmonday no Twitter. Mas espero também que essa Segunda-feira não seja uma Segunda-feira normal. Espero ser surpreendido em algum momento com uma nota dizendo que tudo isso foi um engano. Um grande e grotesco engano. E aí sim o mundo estará normal, de verdade.


[EDIT] Parece que meu pedido foi aceito! \o/ http://www.blognokia.com.br/blognokia/2010/01/11/nota-de-esclarecimento/[/EDIT]


[EDIT] Mais um comunicado sobre o andamento http://www.blognokia.com.br/blognokia/2010/01/12/comunicado/ [/EDIT]

Categories: News Tags: