Archive

Author Archive

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

March 2nd, 2010 vegetando 6 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

Como inicializar aplicativos automaticamente ao iniciar o N800/N810

November 10th, 2009 vegetando 2 comments

Uma dúvida que pude acompanhar no post-770/N800/N810-sem-fim (a dúvida aqui) foi como fazer algum programa (ou vários) ser automaticamente aberto assim que o aparelho for ligado. É possível entender que alguém  deseje iniciar automaticamente algum programa que sempre usa, mas antes de partir para essa abordagem é preciso ver se ela é realmente é necessária, dadas as seguintes considerações:

  • Desligar o aparelho não é algo realmente necessário, principalmente se o objetivo for economizar bateria. A energia consumida ao dar boot no N800/N810[bb] é maior do que deixar o N800 ligado por várias horas, mas em modo offline (Wi-Fi[bb] e bluetooth[bb] desligados), com programas fechados e tela apagada ou com pouco brilho. Dessa forma, ligar o aparelho e abrir o programa é algo que raramente deve ocorrer;
  • Se o objetivo é lembrar de usar o programa assim que o aparelho for ligado ou começar a ser utilizado, ícones na tela podem ser uma boa alternativa. Para isso o Personal Launcher pode ser usado. Um tamanho grande de ícones pode garantir a visibilidade necessária para que um programa não seja esquecido de ser aberto;
  • É possível que exista um widget que faça aquilo que o programa a ser aberto faria. Por exemplo, ler feeds. Se o objetivo for esse, o applet na tela inicial pode ser uma alternativa melhor, caso atenda ao gosto do usuário. Mas isso ainda cai no problema de aumentar o consumo de bateria.

Diferentes tamanhos de ícones no desktop: praticidade e visibilidade

Diferentes tamanhos de ícones no desktop: praticidade e visibilidade (para os esquecidos)

Terminado o momento de “eu avisei” (algo que teve que ser prometido que apareceria no post para terminar com o mimimi ter a aprovação Panaggio), vamos ao processo em si. A forma de resolver o problema foi detalhada e possui algumas discussões relacionadas no fórum da comunidade Maemo. O que é apresentado nesse post é apenas uma variação do que foi discutido lá.

Como fazer com que programas sejam abertos automaticamente ao inicializar o N800/N810[bb]:

  • Tenha instalado o rootsh e o PyGTKEditor (ou seu editor de texto preferido);
  • Obtenha acesso como super usuário. Para isso, abra o terminal digite:
    root
  • Abra o arquivo real-af-base-apps em um editor de texto. Uma forma de se fazer isso é:
     pygtkeditor /etc/osso-af-init/real-af-base-apps 
  • O editor irá abrir o arquivo para edição. Vá ao final dele e adicione a linha:

    /usr/bin/fring &

  • Salve, feche tudo e reinicie o aparelho para testar.
Edição do arquivo de configuração

Edição do arquivo de configuração no PyGTKEditor

No exemplo foi usado o Fring, mas outros programas podem ser utilizados. Caso a intenção seja que vários aplicativos sejam abertos, basta colocar uma linha para cada um deles. Fique atento ao uso de & após cada programa que deverá ser aberto. O caracter indica que o programa poderá ser executado em background, permitindo ao sistema executar outros aplicativos e fazer outras operações enquanto o mesmo está aberto. Essa parte foi especialmente destacada pelo fato de eu mesmo ter cometido o erro. #fail

Para saber qual o nome do programa uma boa opção é ir até o Gerenciador de Aplicativos e ver aqueles que estão instalados. Na maior parte dos casos, quando o nome do programa está na forma “nome-do-programa” e não “O Nome do Programa”, provavelmente esse será o nome utilizado. Para confirmar, basta ir no terminal e digitar apenas o nome dele. Se abrir, ok, é esse. Caso contrário, digite no terminal

ls /usr/bin

e veja se encontra o aplicativo desejado. Outra possibilidade é filtrar os nomes a partir do que você espera que seja. Para o Pidgin, por exemplo, basta fazer:

 ls /usr/bin/pid*

Com isso, tudo que começar com “pid” será listado. Uma terceira alternativa é escrever ‘/usr/bin/pid’ e apertar TAB. Se o nome já for completado, é a única possibilidade. Se não aparecer nada, basta apertar duas vezes e tab e todas as possibilidades que comecem com /usr/bin/pid serão listadas.

Esse foi um modo encontrado de atender à necessidade encontrada, mas podem existir outros. No caso de processos que podem ser executados sem o modo gráfico há a possibilidade de se executar o aplicativo como daemon, que deve ser um assunto tratado em post futuro.

Se souberem de outras formas de se obter o mesmo resultado, sintam-se à vontade para apresentá-las. Recomendações e ajustes ao método apresentado são igualmente bem-vindos. :)

Referência: http://talk.maemo.org/showthread.php?p=163808#post163808

Categories: Tutoriais Tags: , , ,