Este blog Mudou

Este Blog mudou-se para:
Mostrando postagens com marcador java. Mostrar todas as postagens
Mostrando postagens com marcador java. Mostrar todas as postagens

sábado, 9 de junho de 2007

Acessando o Sistema de arquivos com JavaME e FileConnection


Olá pessoal hoje tem mais Java Micro Edtion com título grande. Aqui segue um exemplo de como acessar os arquivos existentes no celular. Muitos celulares hoje tem capacidade de aramazenamento de vários Megabytes e com os cartões de memória SD chegando aos GigaBytes, então segue um exemplo de como ver o conteúdo do sistema de arquivos do aparelho.


Este exemplo exibe a lista de drives existentes no dispositivo. O comando listar exibe os arquivos e diretórios dentro do drive selecionado, Não tem navegação para voltar ou para entrar em outras pastas, afinal é só um exemplo.

Fiquem a vontade para estudar o exemplo e implementar o seu gerenciador de arquivos no celular.

No emulador da Sun pede autorização para listar os drives, no celular siemens pede autorização apenas na hora de acessar os arquivos.

Pra variar peguem o exemplo em: Exemplo Java File System

Testado no emulador da Sun e no Siemens SL75

Java Micro Edition: Exemplo usando o Record Management System

Eita que o título ficou longo viu? Diga aí se não parece título de monografia? Mas não dava pra colocar "J2ME : Exemplo usando RMS" ninguém entenderia não é?
Bom pessoal, mas esse é um exemplo simples de como se pode gravar dados em uma aplicação JavaME.
Neste exemplo temos duas caixas de texto uma para informar o nome e outra para informar um telefone:
Então você três comandos na tela:
          • Gravar - Adivinha? Grava os dados exibidos na tela para o RMS
          • Limpar - Esse você acerta! Chuta! É evidentemente apaga o banco de dados RMS atual
          • Sair - Cai fora sem fazer nada
Detalhe interessante nessa implementação é que eu estou usando o ByteArrayInputStream e ByteArrayOutputStream para realizar a gravação dos dados no RMS.

Observe que para usar estes dois também uso DataInputStream e DataOutputStream para poder usar métodos mais amigáveis como o writeUTF() ao invés de ter que lidar com o tamanho de cada campo os DataInputStream fazem isso pra mim.

Abaixo tem o trecho de código que faz isso:

ByteArrayOutputStream dados;
//array onde ficará o registro
dados = new ByteArrayOutputStream();
//interface de gravação de dados no array
//ajuda a trabalhar mais facilmente com o byteArray
DataOutputStream gravador = new DataOutputStream(dados);
try {
gravador.writeUTF(nome);
gravador.writeUTF(fone);
gravador.flush();
} catch (IOException ex) {
ex.printStackTrace();
rs.closeRecordStore();
return false;
}
//gravando o registro no RMS
rs.setRecord(id,dados.toByteArray(),0,dados.size());
rs.closeRecordStore();

Para baixar o exemplo clique em Exemplo Java ME Record Management System está compactado em formato zip e é um projeto do Netbeans dê uma olhada na pasta dist/docs para maiores explicações do código.

Obs.: esse código foi testado no emulador da Sun e nos celulares Motorola V360 e Siemens SL75, acredito que deverá funcionar em qualquer dispositivo com suporte a JavaME, mas se você encontrar dificuldades avise aí pelos comentários.

Opa! agradecimento ao meu brother Timeu por liberar o Motorola V360 dele como cobaia hihihih aí vai o link pro blog sobre photoshop dele que ele não atualiza desde janeiro! , e Tércio por liberar o Siemens SL75 dele.

quarta-feira, 13 de dezembro de 2006

Semifinal

É aí está a primeira versão da monografia entitulada "DESENVOLVIMENTO DE APLICAÇÕES PARA SISTEMAS EMBUTIDOS: UM ESTUDO DA PLATAFORMA J2ME. E na verdade é um teste de post através do box.net hhiihih.


Geral.pdf

sexta-feira, 1 de setembro de 2006

Exemplo Java RMI

Aqui você verá uma descrição breve da teoria envolvida no funcionamento das Remote method Invocation do JAVA definidos no pacto java.rmi. No próximo artigo enviarei um exemplo simples Ok? Vamos lá.

Resumo
Este artigo trata do pacote java.rmi da API Java que define classes e métodos para acesso a objetos distribuídos. Aqui estão uma descrição breve da API e os métodos mais comuns, além da descrição dos aspectos teóricos envolvidos no acesso remoto a objetos em JAVA.

1. Introdução
O pacote RMI está disponível no JDK (Java development kit) desde a versão 1.1 o formato como os objetos são acessados a partir de aplicações locais é semelhante ao formato usado pela arquitetura CORBA a Ilustração 1 representa o formato usado pelas requisições RMI.

Para que os objetos possam se comunicar usando o pacote RMI é necessário definir uma interface que estenda a interface Remote, assim o objeto que deseja ser executado e acessado remotamente deve implementar essa interface.

Segue o exemplo de uma definição da interface Remote:

Assim basta que a classe que tem a implementação dos métodos implemente esta interface para que esteja disponível para ser chamada remotamente.

2. Arquitetura RMI
A arquitetura RMI é composta das classes e interfaces de acesso a métodos remotos, o funcionamento interno deste recurso é possível graças a dois mecanismos Stubs e Skeletons. Iremos definir estes mecanismos neste item.

Um Stub fica localizado localmente e para o objeto que acessa métodos remotos age como o
objeto remoto, ele implementa a mesma interface antes publicada e registrada no servidor RMI. A função do Stub é portanto, encapsular uma série de operação necessárias ao acesso a objetos
remotos.

As atividades deste mecanismo estão descritas a seguir:
● Iniciar a conexão com a máquina virtual Java remotamente;
● Serializar e transmitir os objetos para a máquina virtual remota;
● Aguardar o resultado à chamada do método remoto;
● Desserializar os objetos ou exceções recebidos pela requisição;
● Retornar o valor ao objeto que o pediu.

Já no lado do servidor onde os objetos remotos estão sendo armazenados a forma de tratar as
chamadas remotas é utilizando um Skeleton. Este Skeleton assim como no Stub é responsável por encapsular a série de atividades necessárias para a decodificação, execução e o envio dos resultados de uma chamada.

As atividades executadas pelo Skeleton são as seguintes:
● Desserializar os objetos da requisição atual;
● Invocar o método do objeto correspondente;
● Serializar e enviar o resultado do método como resposta.

A partir da versão 2 do Java um novo protocolo de comunicação foi escrito de modo que as
ações executadas pelo Skeleton agora são executadas por um código genérico, assim não é necessário criar uma classe Skeleton.

3. Um Exemplo simples

Aguarde o próximo capítulo... ;)