Plataforma Java, Micro Edition - Java Platform, Micro Edition
Edições da plataforma Java |
---|
|
Java Platform, Micro Edition ou Java ME é uma plataforma de computação para desenvolvimento e implantação de código portátil para dispositivos embarcados e móveis (microcontroladores, sensores, gateways, telefones celulares, assistentes pessoais digitais, decodificadores de TV, impressoras). Java ME era conhecido anteriormente como Java 2 Platform, Micro Edition ou J2ME .
A plataforma usa a linguagem de programação Java orientada a objetos. Faz parte da família da plataforma de software Java . Java ME foi desenvolvido pela Sun Microsystems , adquirida pela Oracle Corporation em 2010; a plataforma substituiu uma tecnologia semelhante, PersonalJava . Originalmente desenvolvido sob o Java Community Process como JSR 68, os diferentes sabores de Java ME evoluíram em JSRs separados. A Oracle fornece uma implementação de referência da especificação, mas tende a não fornecer implementações binárias gratuitas de seu ambiente de tempo de execução Java ME para dispositivos móveis, em vez de depender de terceiros para fornecer seus próprios.
Em 22 de dezembro de 2006, o código-fonte Java ME foi licenciado sob a GNU General Public License e foi lançado sob o nome de projeto phoneME .
A partir de 2008, todas as plataformas Java ME estão atualmente restritas aos recursos do JRE 1.3 e usam essa versão do formato de arquivo de classe (conhecido internamente como versão 47.0). Se a Oracle algum dia declarar uma nova rodada de versões de configuração do Java ME que suportam os formatos de arquivo de classe e recursos de linguagem posteriores, como aqueles correspondentes ao JRE 1.5 ou 1.6 (principalmente, genéricos ), isso implicará em trabalho extra por parte de todos os fornecedores de plataforma para atualizar seus JREs.
Os dispositivos Java ME implementam um perfil . Os mais comuns são o Perfil de dispositivo de informação móvel voltado para dispositivos móveis, como telefones celulares, e o Perfil pessoal, voltado para produtos de consumo e dispositivos incorporados, como decodificadores e PDAs. Perfis são subconjuntos de configurações , das quais atualmente existem duas: a Configuração de dispositivo limitado conectado (CLDC) e a Configuração de dispositivo conectado (CDC).
Existem mais de 2,1 bilhões de telefones celulares e PDAs habilitados para Java ME. Era popular em aparelhos abaixo de $ 200, como o Nokia Series 40 . Também foi usado no sistema operacional Bada e no sistema operacional Symbian, juntamente com o software nativo. Usuários de Windows CE , Windows Mobile , Maemo , MeeGo e Android podem baixar Java ME para seus respectivos ambientes ("prova de conceito" para Android).
Configuração de dispositivo limitado conectado
O Connected Limited Device Configuration (CLDC) contém um subconjunto estrito de bibliotecas de classe Java e é a quantidade mínima necessária para a operação de uma máquina virtual Java . CLDC é basicamente usado para classificar uma miríade de dispositivos em uma configuração fixa.
Uma configuração fornece o conjunto mais básico de bibliotecas e recursos de máquina virtual que devem estar presentes em cada implementação de um ambiente J2ME. Quando acoplado a um ou mais perfis, o Connected Limited Device Configuration oferece aos desenvolvedores uma plataforma Java sólida para a criação de aplicativos para consumidores e dispositivos incorporados. A configuração é projetada para dispositivos com 160 KB a 512 KB de memória total, que tem um mínimo de 160 KB de ROM e 32 KB de RAM disponíveis para a plataforma Java.
Perfil de dispositivo de informação móvel
Projetado para telefones celulares, o Mobile Information Device Profile inclui uma GUI e uma API de armazenamento de dados, e o MIDP 2.0 inclui uma API de jogos 2D básica . Os aplicativos escritos para este perfil são chamados de MIDlets . Quase todos os novos telefones celulares vêm com uma aplicação MIDP, e é agora o de facto padrão para jogos de telefone celular para download. No entanto, muitos telefones celulares podem executar apenas os MIDlets que foram aprovados pela operadora, especialmente na América do Norte.
JSR 271: Mobile Information Device Profile 3 (versão final em 9 de dezembro de 2009) especificou a 3ª geração do Mobile Information Device Profile (MIDP3), expandindo a funcionalidade em todas as áreas, bem como melhorando a interoperabilidade entre os dispositivos. Um dos principais objetivos do design do MIDP3 é a compatibilidade com versões anteriores do conteúdo MIDP2.
Perfil do Módulo de Informação
O Perfil do Módulo de Informação (IMP) é um perfil para dispositivos "sem cabeça" incorporados, como máquinas de venda, aplicações industriais incorporadas, sistemas de segurança e dispositivos semelhantes com tela simples ou sem tela e com alguma conectividade de rede limitada.
Originalmente apresentado pela Siemens Mobile e Nokia como JSR -195, IMP 1.0 é um subconjunto estrito do MIDP 1.0, exceto que não inclui APIs de interface do usuário - em outras palavras, não inclui suporte para o pacote Java javax.microedition.lcdui
. JSR-228, também conhecido como IMP-NG, é a próxima geração do IMP que se baseia no MIDP 2.0, aproveitando os novos tipos de segurança e rede e APIs do MIDP 2.0 e outras APIs como PushRegistry
e platformRequest()
, mas novamente não inclui a IU APIs, nem a API do jogo.
Configuração do dispositivo conectado
A configuração do dispositivo conectado é um subconjunto do Java SE , contendo quase todas as bibliotecas que não estão relacionadas à GUI. É mais rico do que CLDC.
Perfil da Fundação
O Perfil de base é um perfil de configuração de dispositivo conectado (CDC) do Java ME. Este perfil deve ser usado por dispositivos que requerem uma implementação completa da máquina virtual Java até e incluindo toda a plataforma Java, API Standard Edition. Implementações típicas usarão algum subconjunto desse conjunto de APIs, dependendo dos perfis adicionais suportados. Esta especificação foi desenvolvida sob o Java Community Process.
Perfil de Base Pessoal
O Perfil de base pessoal estende o Perfil de base para incluir suporte de GUI leve na forma de um subconjunto AWT . Esta é a plataforma na qual o BD-J foi construído.
Implementações
A Sun fornece uma implementação de referência dessas configurações e perfis para MIDP e CDC. Começando com o JavaME 3.0 SDK, um IDE baseado no NetBeans irá suportá-los em um único IDE.
Em contraste com as inúmeras implementações binárias da plataforma Java construída pela Sun para servidores e estações de trabalho, a Sun não fornece nenhum binário para as plataformas de destinos Java ME, com exceção de um MIDP 1.0 JRE (JVM) para Palm OS. A Sun não fornece J2ME JRE para os dispositivos baseados no Microsoft Windows Mobile (Pocket PC), apesar de uma campanha de carta aberta à Sun para lançar uma implementação interna de rumores do PersonalJava conhecido pelo codinome "Capitão América". Implementações de terceiros são amplamente utilizadas por fornecedores do Windows Mobile.
Os sistemas operacionais que visam o Java ME foram implementados pela DoCoMo na forma de DoJa e pela SavaJe como SavaJe OS. Esta última empresa foi comprada pela Sun em abril de 2007 e agora forma a base da Sun JavaFX Mobile .
O Mika VM de código aberto visa implementar JavaME CDC / FP, mas não é certificado como tal (implementações certificadas são necessárias para cobrar royalties, o que é impraticável para um projeto de código aberto). Conseqüentemente, os dispositivos que usam essa implementação não têm permissão para reivindicar compatibilidade com JavaME CDC.
O sistema operacional Android baseado em Linux usa uma versão proprietária do Java que é semelhante em intenção, mas muito diferente em muitos aspectos do Java Me.
JSRs (solicitações de especificação Java)
Fundação
JSR # | Nome | Descrição |
---|---|---|
68 | Especificação da plataforma J2ME | |
30 | CLDC 1.x | |
37 | MIDP 1.0 | |
118 | MIDP 2.x | |
139 | CLDC 1.1 | |
271 | MIDP 3.0 | Java ME 3.4 e anterior apenas, última especificação para telefones celulares, recursos de linguagem Java como Java SE 1.3 |
360 | CLDC 8 | Novo em Java ME 8 |
361 | MEEP 8 | Novo no Java ME 8, recurso de linguagem como Java SE 8, para dispositivos da Internet de todas as coisas |
Extensões principais
JSR # | Nome | Descrição | MSA |
---|---|---|---|
75 | Conexão de arquivo e API PIM | Sistema de arquivos, contatos, calendário, tarefas | |
82 | Bluetooth | Comunicações de porta serial Bluetooth e troca de arquivos (OBEX) | |
120 | API de mensagens sem fio (WMA) | ||
135 | API de mídia móvel (MMAPI) | Áudio, vídeo, multimídia | |
172 | API de serviços da web | Analisadores XML e RPC | |
177 | API de serviços de segurança e confiança (SATSA) | APDU, Java Card RMI (JCRMI), Public Key Infrastructure (PKI) e criptografia | |
179 | API de localização | Coordenadas de GPS, endereços, sensores de orientação, lojas de pontos de referência | |
180 | API SIP | ||
184 | Gráficos 3D para celular (M3G) | Gráficos 3D de alto nível | |
185 | Tecnologia Java para a indústria sem fio (JTWI) | Em geral | |
205 | Wireless Messaging API (WMA) 2.0 | Envio e recebimento de SMS e MMS | |
211 | API Content Handler (CHAPI) | ||
226 | API de gráficos vetoriais 2D escaláveis para J2ME (M2G) | Tratamento de SVG Tiny | |
228 | Perfil do Módulo de Informação - Próxima Geração (IMP NG) | ||
229 | API de pagamento | ||
234 | Suplementos multimídia avançados (AMMS) | Extensões MMAPI | |
238 | API de internacionalização móvel | Recursos localizados, data local e formatação de número, comparação local de strings | |
239 | Java Bindings para a API OpenGL ES | ||
248 | Arquitetura de serviço móvel (MSA) | ||
253 | API de telefonia móvel | ||
256 | API Mobile Sensor | Leitura de valores de acelerômetros, giroscópios, bússolas, termômetros, barômetros e alguns mais | |
257 | API de comunicação sem contato | ||
258 | API de personalização da interface do usuário móvel | ||
272 | API de serviço de transmissão móvel para terminais portáteis | ||
280 | API XML para Java ME | ||
281 | API de serviços IMS | ||
287 | Escalável 2D Vector Graphics API 2.0 para Java ME | ||
293 | API de localização 2.0 | ||
298 | API de telemática para Java ME | ||
300 | API DRM para Java ME | ||
325 | Ativadores de comunicação IMS |
Futuro
JSR # | Nome | Descrição |
---|---|---|
297 | API de gráficos 3D para celular (M3G) 2.0 |
ESR
O consórcio ESR é dedicado a padrões para Java integrado. Padrões especialmente econômicos. Domínios de aplicações típicos são controle industrial, máquina para máquina, médico, e-metering, automação residencial , consumidor, interface homem-máquina, ...
ESR # | Nome | Descrição |
---|---|---|
001 | B-ON (além de CLDC) | O B-ON serve como uma base muito robusta para a implementação de software Java integrado. Ele especifica uma fase de inicialização confiável do dispositivo Java e 3 tipos de objetos: objetos imutáveis, imortais e regulares (mortais). |
002 | MicroUI | MicroUI define uma arquitetura aprimorada para permitir um ambiente de desenvolvimento de aplicativo aberto de terceiros para dispositivos IHM incorporados. Esses dispositivos normalmente têm alguma forma de exibição, alguns sensores de entrada e, potencialmente, alguns recursos de renderização de som. Esta especificação abrange um conjunto potencialmente amplo de dispositivos. |
011 | MWT | O MWT define três funções distintas: Designers de widget, Designers de aparência e comportamento e Designers de aplicativos. MWT permite que um aplicativo IHM binário execute o mesmo em todos os dispositivos que fornecem uma estrutura MWT compatível (dispositivos incorporados, telefones celulares, set-top box de TV, PC, etc ...) permitindo a verdadeira consistência e onipresença de aplicativos em todas as linhas de produtos ( ME, SE, EE). |
015 | ECLASSPATH | ECLASSPATH unifica os ambientes de execução CLDC, CDC, Foundation, SE e EE com um conjunto de cerca de 300 classes API. Compilar em CLDC1.1 / ECLASSPATH torna o código binário portátil em todos os ambientes de execução Java. |
Veja também
- Android (sistema operacional)
- iOS
- BlackBerry OS
- Danger Hiptop
- Java embutido
- JavaFX Mobile
- Desenvolvimento móvel
- Jogos para celular
- Aprendizagem móvel
- Qualcomm Brew
- Smartphone
Referências
- Notas
- JSR 232: Mobile Operational Management - uma plataforma avançada baseada na tecnologia OSGi para computação móvel
- JSR 291: Suporte de componente dinâmico para Java SE - modelo de programação simétrica para Java SE para Java ME JSR 232
Bibliografia
- Ben Hayun, Roy (30 de março de 2009). Java ME em Symbian OS: Inside the Smartphone Model (1ª ed.). Wiley . p. 482. ISBN 0-470-74318-2 .
- Knudsen, Jonathan (8 de janeiro de 2008). Kicking Butt with MIDP and MSA: Criando ótimos aplicativos móveis (1ª ed.). Prentice Hall . p. 432 . ISBN 0-321-46342-0 .
- Li, Sing; Knudsen, Jonathan (25 de abril de 2005). Iniciando J2ME: From Novice to Professional (3rd ed.). Apress . p. 480 . ISBN 1-59059-479-7 .
links externos
- Sun Developer Network, Java ME
- Páginas Java do hub do desenvolvedor da Nokia
- Blogs do Nokia S60 Java Runtime
- Sony Ericsson Developer World
- Motorola Developer Network
- J2ME Authoring Tool Rede de usuários LMA
- Site do Samsung Mobile Developer
- Site do desenvolvedor de aplicativos Sprint
- Banco de dados de desempenho de dispositivos compatíveis com Java ME
- Plataformas MicroEJ para sistemas embarcados
- Livro - Programação para celular usando Java ME (J2ME)
- Tutorial Master ng, J2ME