Agosto 28, 2007
Existem N tutoriais gratuitos na internet e livros bom como o livro Core J2ME que ensinam o básico e o avançado do J2ME. Porém, não existe ainda nenhum que fale a fundo sobre as JSRs que são implementadas a parte. Hoje eu vou introduzir um pouco sobre a JSR-135, a Mobile Media API. Essa API introduziu a capacidade de reproduzir vídeo, aúdio, capturar som e imagens utilizando a J2ME. Um ótimo tutorial introdutório e no qual eu me baseei está no site da Sun em Mobile Media API Overview. A primeira coisa que vem a cabeça do desenvolvedor é: “Agora vou poder fazer meu Winamp no celular”. Acontece que mesmo que o celular toque vídeo ou um determinado tipo de aúdio e mesmo que exista a JSR-135 implementada em seu celular, não necessariamente ele vai tocar todo e qualquer tipo de aúdio ou vídeo. Não há garantia de que ele implemente isso em J2ME. Todo e qualquer fabricante pode capar suas implementações de J2ME e isso torna um inferno para o programador. Um código que funciona em uma JSR-135 de um celular não funcionará necessariamente em outro. Tome por exemplo o V3. O V3 da Motorola possui uma variedade de versões desde CLDC 1.0 a 1.1 e com diferentes JSRs. Todos com a marca V3. Acontece porém que o celular é capaz de tocar vídeos 3GP mas o J2ME não! Isso decorre do fato que todo celular possui um hardware específico e os fabricantes tem que conjugar esse fato na hora de implementar suas KVMs. A única maneira do desenvolvedor manter seu código robusto é capturar as exceções que são lançadas quando um celular não suporta determinada função. Para verificar se o celular que o software rodará basta verificar os developers sheets nos sites dos desenvolvedores. Nos fóruns em específico existem questões relacionadas ao suporte específico de cada celular para as mídias como 3gp, Mp4, MP3, etc.
A Mobile Media API é baseada em quatro conceitos chaves:
- Um player sabe tocar um determinado tipo de mídia. Um tipo de player consegue tocar som em MP3, outro em 3GP. Todos os objetos Players são representados pela interface
javax.microedition.media.Player.
- Cada player possui diferentes controles (ToneControl, VolumeControl, VideoControl, RateControl) que podem ou não serem implementados. Você pode utilizar esses controles para mudar o comportamento do seu Player, por exemplo aumentado o volume do som. Controles são representados pela implementação das interfaces da
javax.microedition.media.Control; existem ainda controles específicos que estão no pacote javax.microedition.media.control.
- Um player adquire a mídia através de um data source. A mídia pode ser armazenada no JAR, no RMS do celular, obtida através da API FileConnection ou até mesmo de conexão HTTP, streaming através de RTP. A interface que representa um data source está em
javax.microedition.media.protocol.DataSource.
- Finalmente, um manager serve de ponte entre essas interfaces e permite a obtenção de data sources e players.
Essa foi uma pequena introdução de MMAPI. No próximo post posto uma explicação das principais interfaces e posteriormente mostro uma “VideoCanvas”. Até!
4 Comentários |
J2ME |
Link Permanente
Escrito por danielaugusto
Agosto 27, 2007
Bom, hoje vou falar um pouco sobre desenvolvimento móvel. Para quem está iniciando o livro “Core J2ME – Tecnologia e MIDP” é um excelente início. Segundo o blog www.mobilidadeetudo.com esses são os dados de número de celular no mundo e no Brasil:
Celulares no Mundo: 2,9 bilhões (Wireless Intelligence);
Celulares com Java no Mundo: 600 milhões (Sun Microsystens – JEDI – Revista Mundo Java);
Celulares no Brasil: 107 milhões (Wireless Intelligence);
Celulares com Java no Brasil: 22 milhões (estimativa Regis Media Intelligence);
Na prática dos celulares que trabalhei, só vi celulares com J2ME, apesar de existir diferentes tecnologias como BREW e até C++ para desenvolvimento nos mesmos. J2ME tem suas vantangens e desvantagens. A famosa portabilidade, tem hora que se torna “porcabilidade”. Tem APIs como a MMAPI que não são implementadas corretamente, e você acaba recorrendo a remendos para adaptar o código aos mais diversos aparelhos. Mas no geral se você seguir as MIDP e as CLDC o código consegue rodar em quase todos os celulares. Caso necessário utilizar alguma API a parte, você deve consultar o site de desenvolvimento do aparelho e saber que JSRs ele implementa. Para quem não conhece fica ai a dica dos sites dos fabricantes de celulares. Esses sites são para desenvolvimento e não para apresentar o produto. Eles contém emuladores que permitem a você testar seu código antes de enviar para o celular. Confira agora a lista de sites:
Fórum Nokia
Sony Ericsson Developer World
MOTODEV
:: SAMSUNG mobile ::
Esses são as marcas mais importantes, é claro que não podemos esquecer da Benq-Siemens, LG, Alcatel, HTC e Palm. Mas não achei nenhum site relacionados a eles que tenham claramente informações como quais JSRs, Heap Size ou Max Jar Size esses celulares suportam. Considero essas informações primordiais para o desenvolvimento móvel em J2ME. Fica ai a dica. No próximo post vou fazer um pequeno tutorial da MMAPI. Até mais.
Deixar um comentário » |
J2ME |
Link Permanente
Escrito por danielaugusto
Agosto 25, 2007
Para quem é da área de informática na educação e está desenvolvendo alguma ferramenta para melhoria do ensino na engenharia, irá acontecer um congresso o Cobenge 2007, nos dias 10 a 13 de setembro em Curitiba, aonde irão acontecer palestras e sessões dirigidas sobre o tema educação na engenharia. Para mais detalhes acesse o site http://cobenge2007.unicenp.edu.br. Esse congresso terá uma sessão sobre softwares educativos na área de engenharia. Eu publiquei um artigo nessa sessão que foi aprovado e minha orientadora irá apresentar.
Outro congresso que irá acontecer é o SBIE 2007, esse é o congresso da SBC sobre informática na educação. Este será realizado de 28 a 30 de novembro em São Paulo. Vale a pena dar uma conferida em http://www.sbie.org.br/. Um congresso na América Latina sobre o tema é o RIBIE, esse é um congresso internacional que acontecerá na Venezuela de 6 a 8 de março de 2008. Ainda estão abertas a submissões para esse congresso. Mais informações no site http://lsm.dei.uc.pt/ribie/
1 Comentário |
Educação |
Link Permanente
Escrito por danielaugusto