Beruflich Dokumente
Kultur Dokumente
Abstract: This report presents a description and analysis of the study on Bluetooth
technology and its application in daily life through a programming language. Explore the
potencial of Java Micro Edition regarding the development of applications on mobile
devices exploiting this new type of wireless communication.
Resumo: Este relatrio apresenta a descrio e a anlise do estudo sobre a tecnologia
Bluetooth e sua aplicao no cotidiano atravs de uma linguagem de programao.
Explora o potencial Java Micro Edition no que se refere ao desenvolvimento de aplicaes
em dispositivos mveis explorando este novo tipo de comunicao sem fio.
1. Introduo
Com o avano da tecnologia em diversas reas da informtica nos ltimos anos, a
demanda por comunicao sem fio cresceu consideravelmente. Essas comunicaes sem
fio, mais conhecidas como Wireless, surgiram para facilitar a implementao de redes,
comunicao entre quaisquer dispositivos, dispensando o uso de fios em determinadas
circunstncias, provendo maior conforto ao usurio final. Projetos que anteriormente eram
viveis, mas que acabavam se tornando o oposto devido ao potencial restrito das outras
comunicaes, estas, exigiam um enorme esforo para grandes e audaciosas
implementaes. Agora com esta inovao, as redes Wireless favorecem a maioria dos
projetos devido a sua praticidade.
Criado pela Ericsson por volta de 1994, o Bluetooth inicialmente buscava resolver
os problemas de comunicao de um fone de ouvido sem fio para celulares, fone
popularmente conhecido como HeadSet. Foi desenvolvido pela prpria empresa e tinha
como objetivo facilitar o uso de seus celulares no dia-a-dia de seus clientes e at mesmo no
trnsito. Falhou em todos os aspectos justamente por utilizar muitos fios, contradizendo a
idia inicial do projeto. Portanto, dois engenheiros encarregados pela rea de pesquisa e
inovao da empresa, reavaliaram e com investimentos da empresa, desenvolveram ento a
famosa tecnologia Bluetooth, que uma das comunicaes sem fios atuais, que dispensa o
uso de qualquer fio.
Perceberam tambm, que seria importante abrir a tecnologia, unindo outros grandes
fabricantes (Nokia, Ericsson, Motorola, etc.) em torno de um padro, caso contrrio a
tecnologia estaria patenteada e sua utilizao no seria em grande escala. Em 1998 ocorreu,
ento, a documentao e o licenciamento gratuito da tecnologia, fazendo com que outras
empresas adotassem o Bluetooth, estimulando o desenvolvimento da mesma.
Figura 1 Piconets
Como este nmero extremamente pequeno comparado com a enorme demanda de
atividades que podem ser realizadas, existe o Scatternet que a tcnica que permite
sobrepor vrios Piconets, aumentando os pontos de comunicao. O limite mximo de
sobreposies dez (ver Figura 2). Neste caso, as sobreposies fazem com que a rede
estabelecida possua mais do que um Master. Sendo assim, as instrues e comandos de
todos os Masters, sero executadas de maneira sincronizada atravs de algoritmos
implementados na prpria descrio da comunicao.
Figura 2 - Scatternets
3. Anlise comparativa: Wireless x Bluetooth
Em funo de sua arquitetura, o Bluetooth possui alguns aspectos vantajosos em
relao ao seu desempenho quando comparado a outros modelos de rede Wireless. Sua
limitao em relao a grandes LANs se reduz devido ao fato de no poder sustentar tantos
dispositivos. Outro aspecto diz respeito a velocidade que pode atingir no mximo 721
Kbps. Seu alcance extremamente limitado, segundo trs classificaes: 100m, 10m, 1m
definidas por um nmero de 48 bits.
Em contra partida, seu uso se justifica pelo seu baixo custo e grande capacidade de
adaptao. Caso o usurio necessitar de um desempenho maior, o Bluetooth quando
java.io
java.util
javax.microedition.io
javax.microedition.lcdui
javax.microedition.lcdui.game (somente na verso 2.0)
javax.microedition.media (somente na verso 2.0)
javax.microedition.media.control (somente na verso 2.0)
javax.microedtition.midlet
javax.microedition.rms
javax.microedition.pki (somente na verso 2.0)
4.2. Segurana
Normalmente surgem dvidas quando o assunto a segurana dos dispositivos. J
que programas estaro rodando no dispositivo, porque os desenvolvedores no tero
problemas com vrus, ou programas maliciosos? A resposta no, pois o J2ME no tem
acesso a API do celular em si, ou seja, no possvel acessar funes especficas do celular
como, por exemplo, a agenda telefnica, sendo assim, no podero ser apagados ou
modificados qualquer tipo de dados do usurio, a no ser que o fabricante disponibilize
uma API especfica, como o caso dos jogos nos celulares, onde cada fabricante
disponibiliza uma API que possa aproveitar melhor o mximo desempenho do aparelho. A
mquina virtual tem um espao independente de memria, e no pode acessar a memria
correspondente s aplicaes nativas do celular.
Outro ponto importante que no permitida a carga de classes definidas pelo
usurio, ou seja, o usurio no tem acesso a outras funes que no seja as da KVM,o que
aumenta a segurana, porm restringe um pouco o desenvolvimento.
5. Criando projetos, Compilando e Executando
O programador possui uma sria de opes quanto escolha da ferramenta que
servir de auxlio no desenvolvimento do projeto(s). Dentre as divesas e as mais conhecidas
IDEs, foi escolhido para este projeto, o Eclipse. Nesse, a programao se torna mais fcil
e rpida, evitando erros de sintaxe que origina erros na compilao.
Para usufruir destas funcionalidades, o usurio necessita fazer algumas atualizaes,
como o plugin EclipseME, disponibilizado de maneira gratuita no site da Sun.Aps o
download, basta descompactar todos os ficheiros para o folder Eclipse/plugins. Alm disso,
o Wireless Toolkit deve ser instalado para a aplicao ser emulada e testada, bastando
realizar alguns ajustes (ver Figura 3). As diversas verses deste kit trazem algumas
atualizaes, como acrscimo de bibliotecas grficas, verses aprimoradas dos termos
CLDC e at mesmo outros skins de dispositivos. Portanto, para o desenvolvimento de uma
pequena aplicao, no necessrio a ltima ou a melhor verso. Uma verso que exija
menos desempenho do computador usado ser to eficiente na hora da simulao quanto
uma verso mais aprimorada.
8.1. Commands
Figura 6 setCommandListener
- Mtodo CommandAction
Como o ciclo bsico de uma aplicao se limita as quatro etapas declaradas
anteriormente, necessitamos que a nossa classe principal implemente a interface
CommandListener, explicada anteriormente. O nico mtodo que esta interface possui o
declarado a seguir:
8.2. TextBox
Como foi descrito anteriormente, existem vrios tipos de itens (ver Figura 7), e cada
um com sua determinada funo. Esses diversos tipos de itens estendem da classe Item.
Esses itens so inseridos em forms, opcional a insero de um Label assim como, no
necessitam ser mostrados em um display, eles tambm podem ter commands associados a
eles. Segue abaixo o construtor:
Figura 7 - Itens
8.5.1. StringItem
O StringItem apenas uma string simples que ser mostrada na tela. Para este objeto
Item, existem os mtodos de manipulao: getLabel(), setLabel(), getText(), setText().
Segue abaixo o construtor seguido de um exemplo.
8.5.2. TextField
Textfield uma string editvel onde o usurio tem acesso a um campo para
preencher. Para este item existem os mtodos de manipulao: getString(); setString(). O
terceiro parmetro (constraints) possui os mesmos tipos que o TextBox. Segue abaixo o
constructor:
8.5.3 Imagens
A especificao de MIDP determina que a implementao dever ser capaz de
manipular imagens .png, o que no ocorre em todos os celulares. Alguns trabalham com
.jpg, outros com .gif, .bmp, e at mesmo .png sem compactao, porm muito raro
conseguir encontrar a especificao de cada aparelho para isso, o que torna muito difcil a
programao com imagens, quando no usado o padro.
public static Image createImage(String nome);
public static Image createImage(byte[] dados, int offset, int tamanho);
O primeiro construtor busca o arquivo indicado pelo nome na pasta /res, de sua
aplicao. No caso de uso do emulador, quando ele compilado e empacotado, a imagem
empacotada junto com o programa. O segundo construtor obtm a imagem de um Arrray de
Bytes, partindo da posio offset, at o tamanho indicado. Essas imagens podem ser
Mutveis ou Imutveis. As Mutveis podem ser modificadas pelo objeto Graphics, obtido
pelo mtodo getGraphics(). Porm, esses dois construtores citados acima geram imagens
Imutveis
8.5.4. ImageItem
Este item mostra a instncia de uma Imagem (Imutvel) dentro de um Form, ou seja,
voc precisa j de um objeto Image. Este item possui um Label, um texto alternativo,
texto_alt, e pode ser posicionado segundo um layout. Antes de mostrar a instanciao de
um ImageItem, iremos adicionar ao cdigo um bloco Try/Catch para assim, criarmos um
objeto Image. Precisamos deste bloco para tratar possveis erros ao carregar a imagem do
diretrio fonte (Image source).
Observe a seguir o bloco descrito.
uma interface usada para datas, horas ou ambos. Como ir aparecer por conta
do dispositivo e o programador no tem controle sobre isso. No construtor deve ser
especificado a Label e o tipo de dado, entre eles:
DateField.DATE
DateField.TIME
DateField.DATE_TIME
A seguir, o construtor de DateField:
public DateField(String Label, int modo);
Exemplo utilizando o Label DateField.DATE:
8.5.6. Gauges
uma representao grfica de um valor inteiro, e como ele ser mostrado depende
da implementao de cada aparelho. Esta forma grfica similar as barras de progresso
de downloads ou afins. Existem dois tipos de Gauges, o interativo, que permite a ao do
usurio sobre seu valor, e o no interativo, controlado somente pelo programa. Os valores
podem ser alterados em tempo de execuo pelos comandos getMaxValue(),
setMaxValue(), setValue(), getValue().
Construtor de Gauge:
Exemplo:
8.5.7. ChoiceGroup
8.6. Lists
Como o prprio nome diz so listas, as quais permitem ao usurio selecionar itens
(elements) de uma lista. Esses elementos podem ser representados tanto por Strings quanto
por Imagens. Existem trs tipos de listas, Implicit, Exclusive e Multiple (ver Figura 8). A
seguir o construtor de List:
A Implicit deixa voc escolher uma opo e clicar no boto padro de seleo ou em
um command que voc adicionar, a Exclusive, permite somente a seleo de uma opo e
para selecion-la deve-se usar um boto com um command setado. E ainda tem a Multiple,
que funciona como uma CheckList j conhecida de outras linguagens de programao, que
nos permite selecionar vrias opes.
8.7. Alerts
Um Alert nada mais que uma mensagem informativa ao usurio, tendo a mesma
funo de um alert de Javascript, ou VB, ou qualquer outra linguagem, ou seja, ele
basicamente uma telinha que mostra uma mensagem e logo depois sai da tela. Esses
alerts podem ser tanto Timed Alerts, ou Modal Alert. Assumem tambm um critrio em
relao a mensagem mostrada tais como: alerta, informao ou erro. Estes so setados pelo
desenvolvedor. No Timed Alert, voc pode setar um tempo ou no o qual receber o tempo
padro do aparelho.
apenas Forms, que adicionados a eles, objetos grficos como o StringItem, que serve
apenas para informar algo ao usurio.
A classe Data, uma classe que utlizada a biblioteca java.util.Calendar; para
exibir no display inicial, a data atual segundo o sistema do celular.
Figura 11 Alert
References: