Multi-core Parallelization in Clojure - a Case Study
Introdução ao J2ME Conexão Java 2004
1. Introdução ao J2ME
Conexão Java 2004
14 e 15 de Agosto de 2004
Douglas Alves
dougzilla@uol.com.br
douglas@dis.epm.br
2. O que é um dispositivo wireless?
PC
PDA’s
Comunicadores
Telefones
Pagers
Carros
Smart Cards, etc
3. Por que usar J2ME ?
Pode ser a única forma de programar em alguns
dispositivos
Compartilha sua lógica entre servidores e
dispositivos
Dinamismo na obtenção dos aplicativos
Programas compactos
Ambiente de desenvolvimento é rápido e seguro
4. Por que usar J2ME ?
Existem aproximadamente 1 bilhão e
500 mil celulares no mundo
Newsweek – 07 de junho de 2004
Entre 40-50% destes aparelhos devem
estar aptos a acessar internet nos
próximos 2 anos
Já é 2 vezes mais numeroso que os
PC’s
5. Como deve parecer uma aplicação em
J2ME ?
SERVIDOR
TCP/IP
TCP/IP
WSP
PC
DISPOSITIVO
Serial
USB
Bluetooth DISPOSITIVO
7. Configurações e perfis
J2ME por si, não faz tudo
Configurações: Bibliotecas básicas e JVM
Perfis (Profiles): Ferramentas para o dispositivo ou
mercado específico
Configurações J2ME:
- CDC
- CLDC
Configurações J2ME:
- MIDP
- Foundation, PDAP, Personal Java, etc...
8. O que é uma configuração ?
A configuração, define a capacidade
das bibliotecas básicas e da JVM
Sujeita a testes de compatibilidade
Configurações do J2ME:
- Connected Device Configuration (CDC)
- Connected Limited Device Coniguration (CLDC)
9. Configurações
CLDC
Equipamentos com baixíssimos níveis de
Processamento
Capacidade de memória
Máximo 512kb de RAM
Ex. Celulares 2G; 2,5G
CDC
Dispositivos com cerca de 2MB de RAM (alguns
PDA’s, telefones 3G, etc.)
10. O que é um perfil (profile) ?
Uma coleção de API’s que
complementam uma configuração
fornecendo ferramentas de interação
para o dispositivo
O perfil ajuda na portabilidade das
aplicações
11. Perfis (Profiles)
Os perfis existentes para o CLDC são
diferentes dos existentes para o CDC
Um perfil pode depender da
funcionalidade de outro perfil, assim
como uma configuração
12. Mobile Information Device Profile
Foi o primeiro perfil do J2ME
É focado em dispositivos
implementados com o CLDC
É responsável por:
- ferramentas de tela (Display)
- interação com o usuário
- persistência de dados
- “Messaging” (SMS, email, etc), segurança e comunicação
através da rede wireless
14. MIDlets
Tem que conter pelo menos uma classe
derivada do pacote
javax.microedition.midlet.MIDlet
Obrigatoriamente, um número de métodos
têm que ser implementados para que sua
execução torne-se possível
Tem que usar somente as API’s do MIDP
para manter sua portabilidade
15. Suite de MIDlet’s
Conjunto de MIDlets que fazem parte
de um único grupo que podem dividir
entre si os recursos utilizados.
Todos MIDlets em uma suite rodam na
mesma VM, dividem as mesmas
instancias de classes e recursos.
16. Execução de um MIDlet
Tem que haver, por padrão, um construtor
público (public).
3 estados: pausado, ativo, destruido
Enquanto o MIDlet estiver ativo, ele está
rodando o método startApp()
O mesmo vale para o método pauseApp()
(para quando estiver pausado) e
destroyApp() para quando o MIDlet for
finalizado.
17. Exemplo de um MIDlet
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class OlaMidlet extends MIDlet implements
CommandListener {
private Display display; //Referencia para o objeto Display
private TextBox tbMain; //TextBox para mostrar a
mensagem
private Command cmSair; //Botão para sair do MIDlet
18. Exemplo de um MIDlet
public OlaMidlet() {
display = Display.getDisplay(this);
cmSair = new Command(quot;Sairquot;, Command.SCREEN, 1);
tbMain = new TextBox(quot;Bem Vindoquot;, quot;Ola Midletquot;, 50, 0);
tbMain.addCommand(cmSair);
tbMain.setCommandListener(this);
}
19. Exemplo de um MIDlet
//Chamada do gerenciador de aplicação para iniciar o Midlet.
public void startApp() {
display.setCurrent(tbMain);
}
//Requisição de método
public void pauseApp() { }
//Outra requisição de método
public void destroyApp(boolean unconditional) { }
// Checa se o comando de saída foi selecionado
public void commandAction(Command c, Displayable s) {
if (c == cmSair) {
destroyApp(false);
notifyDestroyed();
}
}
}
20. Alo Mundo - Compilação
Linha de comando (MS-DOS)
VANTAGENS
Maior capacidade de manipulação de memória e outros
recursos
Conhece-se o processo de compilação em “baixo nível”
DESVANTAGENS
Digitação
Complexo o suficiente para desmotivar iniciantes em
segundos
Depende de configuração bem feita
23. Alo Mundo - Compilação
J2ME Wireless Toolkit (Sun Microsystems)
VANTAGENS
Fácil de usar
Ambiente Windows
Um botão faz tudo
Já dispoõe de emuladores e trabalha com ROMS externos
(PalmOS)
DESVANTAGENS
Não dá muitas opções de customização do MIDlet
“Esconde” o processo de compilação e pré-verificação