Anda di halaman 1dari 52

Frederico Constantino Raperger 0310014 8 Sem.

ANLISE COMPARATIVA DAS TECNOLOGIAS DE DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS COMPUTACIONAIS MVEIS

Jaguarina 2005

Frederico Constantino Raperger 0310014 8 Sem.

ANLISE COMPARATIVA DAS TECNOLOGIAS DE DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS COMPUTACIONAIS MVEIS

Monografia apresentada disciplina Trabalho de Concluso de Curso, do curso de Cincia da Computao da Faculdade de Jaguarina, sob orientao do Prof. Ms. Peter Jandl Jr, como exigncia parcial para concluso do curso de graduao.

Jaguarina 2005

RAPERGER,

Frederico

Constantino.

Analise

Comparativa

das

Tecnologias

de

Desenvolvimento de Software para Dispositivos Computacionais Mveis. Monografia defendia e aprovada na FAJ em 18 de Dezembro de 2005 pela banca examinadora constituda pelos professores:

Prof. MS Peter Jandl Jr FAJ Orientador

Prof. Roberto Vargas Pacheco FAJ

Prof. Jos Arnaldo Geraldini Nunes FAJ

RAPERGER,

Frederico

Constantino.

Analise

Comparativa

das

Tecnologias

de

Desenvolvimento de Software para Dispositivos Computacionais Mveis. 2005. Monografia (Bacharelado em Cincias da Computao) Curso Cincias da Computao da Faculdade de Jaguarina, Jaguarina.

RESUMO
Segundo grandes empresas da rea de telefonia celular, o comrcio de aparelhos celulares com tecnologias que possibilitem a criao de novos aplicativos, como J2ME, Symbian e BREW. Por ser um mercado novo e existir mais de uma opo, uma pergunta de difcil resposta que se forma sobre como escolher a tecnologia que melhor se adeqe ao desenvolvimento de uma aplicao para tais dispositivos. O BREW, criado pela Qualcomm, vem com a misso de ser o mais simples possvel, permitindo que seja suportado por telefones com baixa performance. A plataforma BREW fica diretamente sobre o software de sistema do chip, permitindo aplicativos nativos em C/C++ rpidos e fcil integrao. O Symbian OS sistema operacional projetado especificamente para o ambiente mvel, preenchendo os requisitos dos aparelhos das geraes 2.5 e 3 de celulares. Segundo pesquisas, ele ocupa dois teros do mercado de smartphones. O Symbian OS formado por um consrcio de empresas como Nokia, Samsung, Panasonic, Motorola entre outras. O J2ME uma plataforma de desenvolvimento para aparelhos celulares desenvolvida pela Sun Microsystem. Hoje, muitas empresas fabricantes de celulares vem grandes vantagens e oportunidades na tecnologia Java, tanto que praticamente todos os modelos de celulares da Nokia fabricados hoje j dispem desta tecnologia. No final estas tecnologias so comparadas em termo de: Recursos e limitaes existentes; Metodologia de implementao; Performance; Suporte existente e produtos disponveis.

Palavras-chave: WIRELESS, MOBILE, J2ME, BREW, SYMBIAN

SUMRIO

LISTA DE FIGURAS..................................................................................................... 6 LISTA DE SIGLAS........................................................................................................ 7 1. 2. INTRODUO ................................................................................................... 9 BREW (BINARY RUNTIME ENVIRONMENT WIRELESS)............................... 10 2.1. Arquitetura do BREW ...................................................................................... 11 2.1.1. Estrutura dos mdulos e interfaces do BREW ........................................... 12 2.2. Vantagens do BREW....................................................................................... 12 2.3. Ambiente de Desenvolvimento ........................................................................ 14 2.3.1. BREW SDK ............................................................................................... 14 2.3.2. Componentes do BREW SDK.................................................................... 14 2.3.3. Editor de Cdigo ........................................................................................ 16 2.4. Metodologia de Implementao....................................................................... 17 2.4.1. Criao de Novos Aplicativos .................................................................... 17 2.4.2. Codificao do Sistema ............................................................................. 17 2.4.3. Classes do BREW e MIFs.......................................................................... 19 2.4.4. Execuo do Aplicativo no Emulador......................................................... 21 2.4.5. Transferncia do Aplicativo para o Celular................................................. 21 3. SYMBIAN ......................................................................................................... 23 3.1. Arquitetura do Symbian OS ............................................................................. 23 3.2. Recursos ......................................................................................................... 24 3.2.1. Principais Funcionalidades ........................................................................ 24 3.2.2. Framework................................................................................................. 25 3.2.3. Infraestrutura de Comunicao.................................................................. 25 3.2.4. Telefonia.................................................................................................... 26 3.3. Conhecimentos Necessrios ........................................................................... 26 3.4. Ambiente de Desenvolvimento ........................................................................ 26 3.5. Metodologia de Implementao....................................................................... 27 3.5.1. Codificao do Sistema ............................................................................. 27 3.5.2. Definio de Componentes........................................................................ 28 3.5.3. Especificao do Projeto ........................................................................... 28 3.5.4. Tipos de Aplicao .................................................................................... 29 3.5.5. Compilao do Projeto............................................................................... 29 3.5.6. Instalao do Aplicativo para o Celular ...................................................... 30

4.

J2ME (JAVA 2 MICRO EDITION) ..................................................................... 32 4.1. Arquitetura do J2ME ........................................................................................ 33 4.1.1. Configurations............................................................................................ 34 4.1.2. Profiles....................................................................................................... 35 4.1.3. APIs Ocionais ............................................................................................ 35 4.2. Recursos e Limitaes Existentes ................................................................... 35 4.2.1. Configuraes (CLDC)............................................................................... 35 4.2.2. CLDC 1.0................................................................................................... 36 4.2.3. CLDC 1.1................................................................................................... 36 4.2.4. Perfis ......................................................................................................... 37 4.3. Conhecimentos Necessrios ........................................................................... 38 4.4. Ambiente de Desenvolvimento ........................................................................ 38 4.4.1. O JDK........................................................................................................ 38 4.4.2. Ferramenta de Desenvolvimento para Celular WTK .................................. 39 4.4.3. Editor de Cdigo ........................................................................................ 39 4.5. Metodologia de Implementao....................................................................... 40 4.5.1. Criao de um Projeto ............................................................................... 40 4.5.2. Codificao do Sistema ............................................................................. 41 4.5.3. Execuo do Aplicativo no Emulador......................................................... 42 4.5.4. Transferncia do Aplicativo para o Celular................................................. 44

5. 6. 7.

PRODUTOS DISPONVEIS NO MERCADO .................................................... 45 5.1. Tecnologias Disponveis no Mercado .............................................................. 47 CONCLUSO................................................................................................... 48 REFERNCIAS BIBLIOGRFICAS.................................................................. 50

LISTA DE FIGURAS
FIGURA 1. FIGURA 2. FIGURA 3. FIGURA 4. FIGURA 5. FIGURA 6. TABELA 1 ARQUITETURA DO BREW .................................................................. 12 CDIGO-FONTE .............................................................................. 19 O MIF NO BREW SDK.......................................................................... 20 BREW MIF EDITOR.............................................................................. 20 BREW EMULATOR .............................................................................. 21 CONTEDO DA PASTA DA APLICAO HELLO WORLD ................. 22 ARQUITETURA DO SYMBIAN OS ....................................................... 23 COMPARAO DOS IDES DISPONVEIS PARA SYMBIAN ............... 27 CONTEDO DO CDIGO-FONTE (HELLOTEXT.CPP)................... 28 CONTEDO DO ARQUIVO BLD.INF ............................................... 28 CONTEDO DO ARQUIVO HELLOTEXT.MMP ............................... 29 LISTAGEM 1.

LISTAGEM 2. LISTAGEM 3. LISTAGEM 4. FIGURA 7. FIGURA 8. FIGURA 9. FIGURA 10. FIGURA 11. LISTAGEM 5. FIGURA 12. LISTAGEM 6. FIGURA 13. FIGURA 14. FIGURA 15. FIGURA 16. FIGURA 17. TABELA 2

HIERARQUIA NA COMPILAO DAS FONTES E RECURSOS ......... 30 PLATAFORMAS DE DESENVOLVIMENTO JAVA ............................... 33 CICLO DE VIDA DO MIDLET ............................................................... 38 TELA DO WTK APS A CRIAO DO PROJETO HELLOWORLD ... 40 ESTRUTURA DE DIRETRIOS CRIADA PELO WTK ........................ 41 CONTEDO DO ARQUIVO FONTE .JAVA ...................................... 42 EMULADOR DEFAULT DO WTK ........................................................ 43 CONTEDO DO ARQUIVO DESCRITIVO .JAD............................... 44 ARQUIVOS QUE DEVEM SER COPIADOS PARA O CELULAR ........ 44 COMPARAO DOS MODELOS DA CLARO .................................... 45 COMPARAO DOS MODELOS DA TIM........................................... 46 COMPARAO DOS MODELOS DA VIVO ........................................ 46 COMPARAO DAS TECNOLOGIAS DISPONVEIS NO MERCADO 47 COMPARAO ENTRE BREW, SYMBIAN E J2ME ............................ 49

LISTA DE SIGLAS
AEE ANSI API ARM ASIC AWT BID CDC CGF CPU DLL DNS EMS FTP GPS GSM GUI Application Execution Environment American National Standards institute Application Programming Interface Advanced RISC Machines Application-specific integrated circuit Abstract Windowing Toolkit BREW Class ID Connected Device Configuration Connection Generic Framework Central Processing Unit Dinamic Link Library Domain Name System Enhanced Messaging Service File Transfer Protocol Global Positioning System Global System for Mobile communication Graphical User Interface

BREW - Binary Runtime Environment Wireless CDMA - Code Division Multiple Access CLDC - Connected, Limited Device Configuration

EDGE - Enhanced Data rates for GSM Evolution

GPRS - General Packet Radio Service

HSCSD High-Speed Circuit-Switched Data HTTP - Hypertext Transfer Protocol HTTPS - Hypertext Transfer Protocol Scheme IDE Integrated Development Environment IMAP4 - Internet Message Access Protocol J2ME - Java 2 Micro Edition J2SE JVM Java 2 Standard Edition Java Virtual Machine

MHTML MIME Hypertext Transfer Protocol MIDP - Mobile Information Device Profile MIF MMS Module Information Files Multimedia Message Service

MSMTM - Mobile Station Modem

MVC OEM OTA OO PDA PPP RTT SDK SMS SSL TCP UDP USB WAP WTK -

Model View Controller Original Equipment Manufacturer Over The Air Orientao a Objeto Personal Digital Assistant Point-to-Point Protocol Round-Trip delay Time Software development kit Short Message Service Secure Socket Layer Transmission Control Protocol User Datagram Protocol Universal Serial Bus Wireless Application Protocol Wireless ToolKit

POP3 - Post Office Protocol version 3

SMTP - Simple Mail Transfer Protocol

TDMA - Time Division Multiple Access

WORA - Write Once, Run Anywhere WTLS - Wireless Transport Layer Security

1. INTRODUO
A escolha da tecnologia que melhor se adeqa ao desenvolvimento de uma aplicao para dispositivos computacionais mveis, considerando as tecnologias disponveis, uma questo muito complexa. O interesse do mercado pela utilizao de softwares em dispositivos computacionais mveis, tais como celulares e PDAs (Personal Digital Assistent) vem crescendo exponencialmente nos ltimos anos. Mrcio Venzi, gerente de Desenvolvimento de Negcio da Nokia (Nokia, 2004) diz que a empresa comercializar, durante todo o ano de 2004, cerca de 100 milhes de aparelhos celulares com suporte a tecnologia Java, sendo que em julho, o Brasil contava com 55,25 milhes de usurios de telefnica celular. Segundo o IDG Brasil (IDGNow, 2004), a plataforma Java opera em mais de 350 milhes de aparelhos, enquanto o Symbiam OS tem dois teros do mercado de smartphones. Com esta anlise comparativa, deseja-se obter informaes sobre as tecnologias disponveis para o desenvolvimento de tais software. De modo a orientar coerentemente a escolha de qual tecnologia utilizar conforme as caractersticas do problema e dos dispositivos a serem usados. BREW (Binary Runtime Enviroment for Wireless) foi criado pela Qualcomm para ser uma completa plataforma de desenvolvimento e distribuio de aplicaes para dispositivos mveis. Tem como principal caracterstica ser extremamente pequeno, o que possibilita ser incluso em aparelhos com pouqussimo poder de processamento. Entretando oferece uma plataforma aberta e expansvel para o desenvolvimento de aplicaes. BREW foi desenvolvida pensando nas limitaes que essas mquinas possuem, por isso foi otimizada ao mximo e pode rodar suas aplicaes nativas ( em C/C++) como engines 3d, mquinas virtuais Java com uma excelente performance. J2me (Java 2 Micro Edition), a verso de Java da Sun destinada a dispositivos com recursos limitados de hardware tais como: PDAs, Telefones celulares entre outros. Atualmente o J2ME consiste de um conjunto de "Profiles" ou perfis. Cada perfil destinado a uma categoria especfica de devices, e consiste num conjunto mnimo de biblioteca de classes que o determinado aparelho deve suportar. Symbian OS um avanado sistema operacional multitarefa licenciado pelas maiores empresas de telefonia mvel do mundo. Foi projetado com as restries dos aparelhos mveis em mente e para suprir os requerimentos especficos dos modernos celulares 2G, 2.5G e 3G. Com isso o Symbian OS foi desenvolvido com: um mnimo de uso de memria, um eficiente gerenciador de energia, suporte em tempo real para telefonia e para transferncia de dados.

10

2. BREW (BINARY RUNTIME ENVIRONMENT WIRELESS)


Os usurios de comunicao mvel atualmente querem mais recursos em seus dispositivos mveis, que podem ser desde avanadssimos PDAs integrados, at aparelhos telefnicos mveis populares, de baixo custo e fceis de usar. Embora tenha havido muito entusiasmo em torno da possibilidade de se promover a tecnologia ASIC (ApplicationSpecific Integrated Circuit) de alta velocidade para incorporar a funcionalidade de novos aplicativos, mesmo em dispositivos de baixo custo, o trabalho executado at aqui tem sido bastante prejudicado por fatores de custo e tamanho relacionados integrao dos sistemas operacionais de alta complexidade que parecem ser necessrios para abrigar tais aplicativos. Os dispositivos populares geralmente se caracterizam por solues proprietrias que suportam conjuntos especficos de servios e interfaces. Embora a maioria desses dispositivos compartilhe basicamente o mesmo ambiente, as camadas proprietrias acima do ASIC desencorajaram o desenvolvimento de aplicativos genricos que possam aproveitar a oferta por parte de vrios fabricantes de dispositivos. A QUALCOMM tem aproveitado sua vasta experincia nas reas de ASIC, dispositivos mveis e aplicativos para microcomputadores para desenvolver o BREW. A misso do BREW oferecer um AEE (Application Execution Environment) eficiente, de baixo custo, expansvel e simples, concentrado especialmente no desenvolvimento de aplicativos que possam ser portados sem dificuldades para praticamente todos os dispositivos portteis. Ao contrrio das opes de alto desempenho oferecidas, desenvolvidas sobre sistemas operacionais que exigem um volume substancial de memria, um processador de alta velocidade e todo o hardware associado a tal, o BREW funciona nos tipos de dispositivos que existem hoje em dia. Com o BREW, os desenvolvedores de aplicativos podem agregar funcionalidade estendida at aos dispositivos de menor custo. BREW no pode ser comparado a Java (at porque possvel criar um ambiente Java rodando nele) nem a um sistema operacional completo como o Symbian. BREW busca ser o mais simples possvel, permitindo assim que seja suportado por telefones que no tem capacidade de rodar um sistema operacional completo. O sistema BREW basicamente uma plataforma de execuo de aplicativos aberta, padronizada e extensvel, que reside no dispositivo de comunicao mvel (QUALCOMM, 2004b). A plataforma BREW fica diretamente sobre o software de sistema do chip, permitindo aplicativos nativos em C/C++ rpidos e fceis integrao de navegadores, mquinas virtuais baseadas em tecnologias Java e extenses como mecanismos de jogos em 3D, analisadores de XML e passadores (players) de vdeo.

11

2.1. Arquitetura do BREW


O BREW oferece aos desenvolvedores de aplicativos um ambiente leve, porm rico, que lhes permitem aproveitar os recursos atuais e futuros oferecidos pelo ASIC MSMTM (Mobile Station Modem) da QUALCOMM. O ambiente de execuo de aplicativos baseado em objetos e totalmente extensvel do BREW permite o desenvolvimento de applets e de mdulos compartilhados em C ou C++. Ao mesmo tempo, o BREW foi criado com o objetivo de melhorar a eficincia e economizar a memria RAM dos dispositivos mveis. O BREW suporta aplicativos (applets) e mdulos compartilhados. Os applets e os mdulos so desenvolvidos como DLLs (Dinamic Link Library) independentes, sendo carregados no Emulator em tempo de execuo. Os mdulos compartilhados incluem funcionalidades como, por exemplo, APIs (Application Programming Interface) de jogos avanadas, que podem ser usadas por diversos applets. Os applets e mdulos do BREW so desenvolvidos em um ambiente emulado, sob o Windows. O BREW expe um conjunto sofisticado de tecnologias de objetos, que proporcionam aos desenvolvedores as seguintes vantagens: Servios de aplicativo que suportam um AEE simples, baseado em eventos. Servios bsicos que suportam o acesso a arquivos, servios de rede, memria e tela. Servios avanados como, por exemplo, recursos grficos melhorados, reproduo de som, GPS (Global Positioning System) e servios de voz. Servios de integrao, que permitem ao desenvolvedor de aplicativos aproveitar servios como aqueles suportados por navegadores da Web. A Figura 1 mostra como o BREW prov uma camada fina que suporta acesso a software ASIC e OEM (Original Equipment Manufacturer) para dar suporte a applets e mdulos.

12

Figura 1. Arquitetura do BREW (QUALCOMM, 2002b)

2.1.1. Estrutura dos mdulos e interfaces do BREW


O AEE do BREW oferece diversas categorias de servios, inclusive diversas interfaces com o AEE, tais como IShell, IDisplay e IMenuCtl. Cada interface encapsula um conjunto de recursos e contm mtodos que permitem que esses recursos sejam gerenciados. Os mdulos do BREW podem conter um ou mais applets ou classes. Classes so expostas pelo mdulo em tempo de execuo, sendo carregadas e descarregadas conforme a necessidade.

2.2. Vantagens do BREW


Algumas vantagens do AEE do BREW so: O BREW mais eficiente. Fica de forma leve por cima do software de sistema do chip do aparelho telefnico, a plataforma BREW tem acesso a recursos em nvel de chip, o que permite que ele faa o download e a execuo de aplicativos diretamente no telefone. Alocando dinamicamente RAM para aplicativos medida que eles so executados e usando armazenamento e processamento locais (cliente e cliente/servidor), a plataforma BREW otimiza a alocao de memria. Isto permite que os recursos de gerenciamento de aplicativos do BREW tratem

13

todas as funes de execuo local, bem como eventos de rede externos (QUALCOMM, 2005). O ambiente de aplicativos do BREW suporta uma arquitetura familiar dirigida por eventos, semelhante do Microsoft Windows, do Macintosh e do X-Windows do UNIX. Os applets do BREW podem ser adaptados para o idioma de diferentes pases. Todo o texto gerenciado como Unicode e armazenado na maneira mais eficiente suportada para o idioma selecionado. O BREW tambm prov suporte a formatos de texto nativos especficos de OEMs. No necessrio se preocupar com drivers de dispositivos e estruturas de dados de plataformas de baixo nvel, pois todas as interaes entre o aplicativo e a plataforma do dispositivo ocorrem atravs de classes bem definidas. Pode-se desenvolver mdulos de maneira independente e em paralelo, reduzindo assim o tempo de desenvolvimento e os problemas de integrao. Mdulos podem ser integrados em nvel de cdigo-objeto, simplificando a tarefa de se acrescentar mdulos plataforma BREW. O BREW suporta o recebimento de mensagens SMS (Short Message Service) direcionadas a aplicativos, bem como cotaes de aes, e-mails resumidos e informaes atualizadas sobre o trnsito. O BREW oferece classes bsicas para interfaceamento com a plataforma do dispositivo. As funes de dispositivo que os applets podem gerenciar e controlar com essas classes incluem: o o Servios de shell Tempo/temporizadores (obteno de data e hora atuais; disparo e interrupo de temporizadores e alarmes) o o o o o o o o Notificaes Gerenciamento de memria Gerenciamento de arquivos Gerenciamento de bancos de dados Rede e soquetes HTTP (Hypertext Transfer Protocol) Download e tarifao Controles de interface com o usurio, incluindo os seguintes: Dilogos Controles de data Controles de menu

14

Controles de texto Controles de horrio Controles de texto esttico Controles de exibio Imagens (exibio, transformao, animao) Grficos o o Reproduo de som (reproduo de arquivos MIDI e MP3) Sons (gerao de sons de campainhas, alertas e reproduo de arquivos de udio) o Funes auxiliares de biblioteca padro Em verses futuras, as classes bsicas sero estendidas de modo a oferecer servios como Bluetooth, GPS e telefonia.

2.3. Ambiente de Desenvolvimento 2.3.1. BREW SDK


O BREW SDK (Software Development Kit) um conjunto de ferramentas e servios que permite aos desenvolvedores de aplicativos desenvolver e implantar de maneira rpida, eficiente e econmica novos aplicativos para uma ampla variedade de dispositivos portteis. Este SDK pode ser baixado pelo site da qualcomm (QUALCOMM, 2004a). Ao fazer o download das ltimas verses do BREW SDK a instalao iniciada automaticamente.

2.3.2. Componentes do BREW SDK 2.3.2.1. BREW AEE


O BREW AEE um ambiente totalmente expansvel de desenvolvimento e execuo de aplicativos baseado em objetos. Ele proporciona uma plataforma na qual pode-se desenvolver applets e mdulos compartilhados em C ou C++. Uma arquitetura familiar, orientada por eventos (semelhante do Microsoft Windows, Macintosh ou X-Windows) melhora ainda mais sua facilidade de uso.

2.3.2.2. Emulator
O BREW Emulator, a GUI (Graphical User Interface) de frontend que ser utilizada para carregar e testar seus applets. Diversas emulaes de dispositivos pr-configuradas

15

so fornecidas. O usurio tambm pode criar suas prprias emulaes de dispositivos usando o Configurator.

2.3.2.3. Device Configurator


Para criar novos dispositivos ou editar configuraes existentes, use o BREW Device Configurator. Ele til para configurar recursos como as teclas do teclado e suas funes, dimenses e resoluo da tela e tamanho da memria.

2.3.2.4. Resource Editor


Para criar recursos para aplicativos, use o BREW Resource Editor. Pode-se usar os mesmos arquivos de recursos no Windows e no dispositivo.

2.3.2.5. MIF Editor


O BREW MIF Editor, gera MIFs (Module Information Files), que contm informaes especficas de applets e mdulos, necessrias para carregar um applet.

2.3.2.6. DLLs do BREW


O BREW contm vrias DLLs que expem as classes bsicas suportadas pelo BREW no ambiente do Microsoft Windows. Como as DLLs usam o mesmo cdigo desenvolvido para o BREW, h pouca diferena entre o comportamento do aplicativo no BREW Emulator, baseado no Windows, e em um dispositivo real.

2.3.2.7. DLLs Win-OEM


As DLLs Win-OEM provem as camadas bsicas necessrias para se emular o comportamento de um dispositivo em uma plataforma Windows.

2.3.2.8. Arquivos de Cabealho do BREW


Os arquivos de cabealho do BREW contm as definies de interfaces do BREW, sendo usados para o desenvolvimento de applets. Cada interface do BREW tem um arquivo de cabealho associado, e cada applet tem de conter o arquivo de cabealho de cada interface utilizada por esse applet.

16

2.3.2.9. Suplementos do Visual Studio


Suplementos (add-ins) gratuitos do Microsoft Visual Studio automatizam algumas das tarefas demoradas que um desenvolvedor precisa executar no Visual Studio para desenvolver aplicativos BREW.

2.3.2.10.

Aplicativos de Exemplo

DLLs de aplicativos de exemplo e seu cdigo-fonte, fornecidos com o SDK, incluem as seguintes: Calculadora Agenda Aplicativos de contagem de tempo (cronmetro, contagem regressiva, despertador) Jogos Bloco de notas Reprodutor de arquivos MIDI-MP3 Aplicativos de uso (destinados a ilustrar como as interfaces do BREW podem ser usadas)

2.3.2.11.

Documentao

Todo o conjunto de documentao do BREW pode ser acessado a partir do prprio ambiente de desenvolvimento do BREW.

2.3.3. Editor de Cdigo


O Microsoft Visual Studio, um requisito de sistema que j precisa estar carregado no Computador antes de instalar o BREW SDK. Se instalar o SDK antes de ter instalado o Visual Studio, ser necessrio recarregar o SDK para que esses suplementos (add-ins) tornem-se efetivamente operacionais. O SDK inclui suplementos gratuitos que automatizam algumas das tarefas que um desenvolvedor precisa executar no Visual Studio para desenvolver aplicativos BREW.

2.3.3.1. Assistente de Aplicativos do BREW


O assistente de aplicativos do BREW (BREW Application Wizard), subsequentemente referido como AppWizard, pode orientar o desenvolvedor pelas tarefas muitas vezes demoradas envolvidas na criao de um projeto de aplicativo BREW, inclusive a criao do espao de trabalho de projeto (project workspace) do Windows.

17

O AppWizard gera automaticamente o espao de trabalho do projeto e todos os arquivos que sero necessrios para criar aplicativos BREW. Alm de economizar tempo e esforo, os arquivos criados pelo AppWizard so altamente mveis. Pode-se mover o projeto de um local para outro do computador sem ter de alterar o arquivo de projeto ou os caminhos informados nas instrues INCLUDE do projeto.

2.3.3.2. Compilao ARM Automtica


Aps testar um aplicativo BREW no Emulator e estiver pronto para port-lo para um dispositivo real, ser necessrio a criao de um arquivo de gerao (makefile, MAK) que gera o aplicativo BREW para o dispositivo real, usando o compilador ARM (Advanced RISC Machines). Geralmente, o arquivo de gerao usado a partir da linha de comando, para realizar operaes de gerao e gerao limpa (build clean). O suplemento de compilao ARM automtica permite realizar essas tarefas demoradas rapidamente, em questo de segundos. Alm disso, o suplemento automatiza a tarefa de localizar e corrigir erros durante a compilao.

2.4. Metodologia de Implementao 2.4.1. Criao de Novos Aplicativos


A maneira mais simples e rpida de criar novos aplicativos com o assistente de aplicativos do BREW (BREW Application Wizard). O AppWizard guia atravs do processo de criao de todos os componentes exigidos para o desenvolvimento bem-sucedido de um aplicativo BREW.

2.4.2. Codificao do Sistema


Para a codificao do sistema, dentro do Visual C++, cria-se um novo arquivo c++ source file, onde ser digitado todo o cdigo-fonte da aplicao, a Listagem 1 possui o cdigo de um programa simples, apenas para exibio do tradicional Hello World.

/*=========================================================== INCLUDES AND VARIABLE DEFINITIONS ==========================================================*/ #include "AEEAppGen.h" // Applet interface definitions #include "helloworld.bid" // applet class ID

18

/*----------------------------------------------------------Function Prototypes ----------------------------------------------------------*/ static boolean HelloWorld_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam); /*=========================================================== FUNCTION DEFINITIONS ==========================================================*/ int AEEClsCreateInstance(AEECLSID ClsId, IShell * pIShell, IModule * po, void ** ppObj) { *ppObj = NULL; if(ClsId == AEECLSID_HELLOWORLD){ if(AEEApplet_New(sizeof(AEEApplet), ClsId, pIShell,po,(IApplet**) ppObj, (AEEHANDLER)HelloWorld_HandleEvent,NULL) == TRUE) { return (AEE_SUCCESS); } } return (EFAILED); } static boolean HelloWorld_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam) { AECHAR szBuf[] = {'H','e','l','l','o',' ', 'W','o', 'r', 'l', 'd', '\0'}; AEEApplet * pMe = (AEEApplet*)pi; switch (eCode) { case EVT_APP_START: // Display string on screen IDISPLAY_DrawText(pMe->m_pIDisplay, AEE_FONT_BOLD, szBuf, -1, 0, 0, 0, IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE); IDISPLAY_Update (pMe->m_pIDisplay); return(TRUE); case EVT_APP_STOP: return TRUE; default: break;

19

} return FALSE; } Listagem 1. Cdigo-fonte

Aps a codificao do programa, resta fazer a compilao, que pode ser utilizada a do prprio Visual C++. Com a compilao, ser gerado a DLL do applet helloworld. Agora, necessrio criar o arquivo MIF para que seja possvel executar o aplicativo no emulador.

2.4.3. Classes do BREW e MIFs


Cada mdulo do BREW contm uma ou mais classes do BREW. Essas classes podem ser applet ou no-applet, sendo identificadas por IDs de classe (ClassIDs). As classes de applet podem ser executadas pelo usurio do dispositivo, ao passo que as classes no-applet podem implementar servios usados pelas classes de applet do mdulo. Esses servios tambm so disponibilizados para classes de outros mdulos. O MIF contm IDs de classe exclusivas para cada uma das classes do mdulo e especifica quais classes so exportadas, para uso por outros mdulos. Para cada classe de applet, o MIF contm uma string de texto e um ou mais cones grficos que so usados para exibir o applet no menu de applets disponveis para execuo. O MIF contm outras informaes que determinam o nvel de privilgios do mdulo (as funes da API do BREW que podem ser chamadas pelas classes do mdulo) e as notificaes que o mdulo pode receber de outras classes do BREW. Em um dispositivo habilitado para o BREW, os MIFs so armazenados em uma pasta que contm um diretrio para cada mdulo. O nome do diretrio do mdulo corresponde ao prefixo do nome do MIF. Por exemplo, os arquivos de um mdulo cujo MIF se chame app.mif seriam armazenados em um diretrio de nome app. Quando o applet executado no Emulator, cada mdulo pode ter diversos MIFs, um para cada profundidade de cores do dispositivo sendo emulada. Como os MIFs contm elementos grficos, possvel selecionar imagens feitas sob medida para as capacidades da tela de cada tipo de dispositivo e armazen-las em MIFs separados. O Emulator permite que o diretrio de MIFs seja selecionado de forma independente em relao ao diretrio que contm os mdulos executveis, o que facilita emular a execuo de um applet em diversos dispositivos.

20

Figura 2. O MIF no BREW SDK A Figura 2 mostra o relacionamento entre o MIF Editor e as outras ferramentas do BREW SDK. Ela ilustra como um mdulo do BREW, de nome app, emulado em um dispositivo definido pelo arquivo de configurao dev.qsc. Para criar um MIF para o mdulo BREW, necessrio em primeiro lugar obter um arquivo BID (BREW Class ID) para cada classe e applet que o mdulo contm. Pode-se obter IDs de classes no site da Web do BREW. Cada arquivo BID contm uma ID de classe de 32 bits nica e atribui a ela um nome (por exemplo, AEECLSID_APP). As IDs de classe so armazenadas no MIF e os arquivos BID so includos no arquivo-fonte do mdulo (por exemplo, app.c). Isto permite que o mdulo crie uma instncia de qualquer uma de suas classes, dada uma ID de classe fornecida pelo AEE do BREW (Figura 3). possvel criar mltiplos MIFs, com imagens para telas de dispositivos diferentes. O cdigo-fonte do mdulo compilado e ligado para produzir o executvel do mdulo, isto , app.dll para o Emulator e app.mod para o dispositivo de destino.

Figura 3. BREW MIF Editor

21

2.4.4. Execuo do Aplicativo no Emulador


Quando o Emulator executado, ele abre a imagem do dispositivo definido no arquivo de configuraes do dispositivo (.qsc). O Emulator pesquisa o diretrio de MIFs especificado e mostra uma lista de todos os applets com MIFs desse diretrio. Os MIFs contm cones para cada applet. Quando seleciona-se um applet da lista, o Emulator carrega o DLL do applet e o executa, mostrando sua tela inicial na tela do dispositivo (Figura 4). possvel clicar nas teclas do dispositivo para fornecer entrada ao applet e observar seu comportamento, inclusive sua sada na tela do dispositivo.

Figura 4. BREW Emulator

2.4.5. Transferncia do Aplicativo para o Celular


Quando o aplicativo estiver pronto para ser portado para um dispositivo real, necessrio criar um arquivo de gerao (makefile) que gera o aplicativo BREW para o dispositivo real, usando o compilador ARM. Geralmente, o arquivo de gerao usado a partir da linha de comando, para realizar operaes de gerao e gerao limpa (build clean). O suplemento de compilao ARM automtica permite realizar essas tarefas demoradas rapidamente, em questo de segundos. Para criar um arquivo de gerao (makefile) para o aplicativo

22

1. Carregar o aplicativo no espao de trabalho do Visual Studio. 2. Clicar no boto Generate ARM Makefile da barra de ferramentas para criar o arquivo de gerao. Abre-se uma caixa de mensagem, que informa que o arquivo de gerao foi criado. Para compilar um aplicativo usando o arquivo de gerao Selecionar Tools > ARM make. A janela de sada aberta e mostra os arquivos criados pela compilao.

Figura 5. Contedo da pasta da aplicao Hello World A Figura 5, demonstra os arquivos que so criados aps todo o processo de gerao da aplicao.

23

3. SYMBIAN
O Symbian OS um sistema operacional projetado especificamente para o ambiente mvel, preenchendo os requisitos dos aparelhos das geraes 2.5 e 3 de celulares. Ele composto por uma kernel multi-tarefa, suporte integrado telefonia, protocolos de comunicao, gerenciamento de dados, suporte a grficos avanados, interface com o usurio de baixo nvel e uma variedade de algoritmos para aplicaes. Esse sistema operacional muito utilizado em aparelhos mais poderosos, os chamados smartphones e communicators (IIDA, 2005). Para o desenvolvedor o Symbian OS fornece um completo e aberto framework de desenvolvimento, utilizando a linguagem C++, que possibilita o desenvolvimento de aplicativos utilizando-se de recursos do aparelho como cmera, telefonia, etc. O Symbian OS, formado por um consrcio de empresas, desenvolvida a partir da Psion Software, a princpio pelas empresas Nokia, Motorola, Psion, Ericsson, Panasonic e Siemens.

3.1. Arquitetura do Symbian OS


A Figura 6, demonstra como formada a arquitetura do Symbian.

Figura 6. Arquitetura do Symbian OS (BORGES, 2005) Base (ncleo do sistema operacional) User library, File server, Kernel, Device driver

24

Telefonia GSM, GPRS (General Packet Radio Service), HSCSD (High-Speed CircuitSwitched Data), EDGE (Enhanced Data rates for GSM Evolution) e CDMA (Code Division Multiple Access) Segurana Criptografia, gerenciador de certificado, instalao de software TCP (Transmission Control Protocol), dual Ipv4 e v4, UDP(User Datagram Protocol), HTTP, FTP(File Transfer Protocol), WAP Multimdia Imagens, sons e graficos (3D e 2D) Bluetooth, infravermelho, USB (Universal Serial Bus) Framework de interface grfica com o usurio e utilitrios de textos e grficos SMS, EMS (Enhanced Messaging Service), MMS (Multimedia Message Service), email e fax Application engines Contatos, agenda, office, syncML, gerenciamento de dados e browsing Personal rea Network Application Framework Mensagem Comunicao

3.2. Recursos 3.2.1. Principais Funcionalidades


O Symbian OS a base da prxima gerao de celulares. Ele possui um conjunto de APIs e tecnologia que so compartilhados por todos os telefones que possuem o Symbian OS. As principais funcionalidades do Symbian OS, so: Rico conjunto de application engines: Contatos, calendrio, mensagem, navegao entre outros utilitrios; Navegao Web; Mensagem: Mensagem multimdia, mensagem com figuras, mensagem de texto, email usando POP3 (Post Office Protocol version 3), IMAP4 (Internet Message Access Protocol), SMTP (Simple Mail Transfer Protocol), MHTML(MIME Hypertext Transfer Protocol) e fax;

25

Multimdia: Fontes, imagens, gravao e reproduo de udio (suporte para todos os formatos padres de som e imagem); Protocolos de Comunicao: TCP, IPv4, IPv6, WAP incluindo infravermelho, Bluetooth e USB; Suporte a localidade internacional: caracteres unicode nativo, framework de entrada de texto flexvel; Sincronizao de dados: pelo ar (OTA over the air) suporta sincronizao usando SyncML DataSync. O PC connectivity toolkit, suporta link serial, infravermelho, Bluetooth e USB; Segurana: HTTPS (Hypertext Transfer Protocol Scheme), WTLS(Wireless Transport Layer Security) e SSL(Secure Socket Layer);

3.2.2. Framework
Este framework possibilita o desenvolvimento de aplicaes genricas, que funcionem em diferentes tipos de telefones, independente das diferentes implementaes da interface com o usurio utilizada pelos fabricantes licenciados. Suas principais caractersticas so: Executar aplicaes com processos separados (multi-tarefas); Associar um documento de uma aplicao com o cone da aplicao; Reconhecimento de tipos de arquivos (MIME-TYPE); Plug-in que podem ser adicionados ou removidos pelo usurio; Prov um mecanismo genrico de tratamento de erro; Agendamento de tarefa.

3.2.3. Infraestrutura de Comunicao


TCP; UDP; PPP (Point to Point Protocol); DNS (Domain Name System); FTP; HTTP 1.1; Bluetooth; Infravermelho; USB.

26

3.2.4. Telefonia
O Symbian suporta alguns tipos de rede de telefonia incluindo GSM, GPRS, EDGE, CDMA (IS-95) e 3GPP2 cdma2000 1x. A API responsvel pelo tratamento destas redes de telefonia prov algumas funcionalidades comuns para todas as redes, como por exemplo: Informaes do Celular e da Rede: recuperar a fora do sinal e o nvel de carga da bateria, acesso ao nome e outras informa da rede detectada pelo telefone; Existem tambm, vrias funcionalidades que esto disponveis para cada tipo de rede em particular.

3.3. Conhecimentos Necessrios


Para se desenvolver aplicativos para celular utilizando a tecnologia Symbian, necessrio possuir alguns conhecimentos prvios, conforme segue: Conhecer e possuir experincia com C++; o o o o o OO (Orientao a Objeto) Templates Namespaces Macros (ANSI C) Sobrecarga de operadores (new)

Multithreading/ClientServer programming Design Patterns, principalmente o MVC (Model View Controller) e o Adapter (GoF) Memory Management e Optimization Techniques

3.4. Ambiente de Desenvolvimento


Geralmente os prprios fabricantes fornecem kits de desenvolvimento. A utilizao de um IDE (Integrated Development Environment) facilita o desenvolvimento principalmente em fase de debug. Os principais IDEs que se integram aos kits de desenvolvimento do Serie 60 juntamente com suas vantagens e desvantagens esto detalhadas na tabela 1. IDE Microsoft Visual C++ 6 Vantagens Rpida; compilao e debug eficiente; algumas ferramentas para symbian os disponveis Rpida; moderna e boa IDE Desvantagens Antiga; sem suporte real para o desenvolvimento de cdigo Symbian OS Sem suporte direto pelo Symbian OS SDK; No muito barata; IDE

Microsoft Visual Studio .net Metrowerks Code Warrior Symbian OS est

27

Borland C++ BuilderX Mbile Edition

Eclipse Tabela 1

parcialmente integrado Suporte visual para desenho dos menus e dialogos; Associa algumas funcionalidados do Symbian OS; atualmente free IDE muito boa; free

complicada Lenta; desajeitada

Sem suporte a debug; no completamente integrada ao Symbian OS Comparao dos IDEs disponveis para Symbian

Alm da IDE, necessrio a instalao do SDK, no frum nokia (NOKIA, 2004a) pode ser feito o download do Series 60 SDK 1.2 for Symbian OS, juntamente com este SDK, so instalados: Java 2 Runtime Enviroment (JRE) Ambiente Perl (Perl Environment)

3.5. Metodologia de Implementao


Um projeto de desenvolvimento em Symbian composto por vrios arquivos, alm dos arquivos com o cdigo fonte. Os principais arquivos so bld.inf e .mmp. Resumidamente, eles so usados para direcionar a compilao, de forma similar ao makefile encontrado nos sistemas operacionais UNIX. Existem outros arquivos que so muito importantes para o desenvolvimento de interfaces grficas.

3.5.1. Codificao do Sistema


Para a codificao do sistema, dentro do Visual C++, cria-se um novo arquivo c++ source file, onde ser digitado todo o cdigo-fonte da aplicao, a Listagem 2 possui o cdigo de um programa simples, apenas para exibio do tradicional Hello World.

//hellotext.cpp #include <e32base.h> #include <e32cons.h> LOCAL_D CconsoleBase* gConsole //Funo Main Arqui se encontra a lgica do programa. void MainL() { gConsole->Printf(_LIT(Hello World\n)); } //Controle do Console void ConsoleMainL() { //cria um console

28

gConsole = Console::New(_LIT(Hello Text), Tsize(KconsFullScreen, KconsFullScreen)); CleanupStack::PushL(gConsole); //Chama a funo Main MainL(); //Pausa a aplicao User::After(5000000); //Tira o console da Cleanup Stack e destri CleanupStack::PopAndDestroy(gConsole); } //Controle da Cleanup stack GLDEF_C Tint E32Main() { __UHEAP_MARK; CtrapCleanup* cleanupStack = CtrapCleanup::New(); TRAPD(error, ConsoleMainL()); __ASSERT_ALWAYS(error, User::Panic(_L(SCMP), error)); delete cleanupStack; __UHEAP_MARKEND; return 0; } Listagem 2. Contedo do cdigo-fonte (hellotext.cpp)

3.5.2. Definio de Componentes


O bld.inf um descritor de componentes (Listagem 3). Basicamente, ele indica para o ambiente de desenvolvimento como criar o script de compilao (por exemplo, quais especificaes de projeto devem ser usadas para criar os arquivos na construo da aplicao desejada).

//BLD.inf PROJ_MMPFILES Hellotext.mmp Listagem 3. Contedo do arquivo bld.inf

3.5.3. Especificao do Projeto


O arquivo de especificaes de projeto (.mmp) define as propriedades dos componentes de projeto de uma forma independente de plataforma e compilador (Listagem 4). Junto com o bld.inf, usado pelo ambiente de desenvolvimento para criar o script de compilao da sua aplicao.

//hellotext.mmp

29

TARGET HelloText.exe TARGETTYPE exe UID 0 // O codigo fonte SOURCEPATH . SOURCE helloptext.cpp USERINCLUDE . SYSTEMINCLUDE /epoc32/include // As bibliotecas LIBRARY euser.lib Listagem 4. Contedo do arquivo hellotext.mmp

3.5.4. Tipos de Aplicao


O Symbian OS define algumas formas diferentes de compilao dos cdigos-fontes. Estes so ligeiramente diferentes dos encontrados no C++ para aplicaes desktop. Os mais usados so: EXE (.exe): um programa com um nico ponto de entrada E32Main(). A interface com o usurio limitada a uma janela de console (algo similar ao DOS). Um detalhe deste tipo de aplicao que no aparece no menu do celular, sendo necessria outra aplicao para inicia-la. Dinamic Link Library (.dll): uma biblioteca de cdigos com vrios pontos de entrada. DLLs so carregadas por outros programas. Application (.app): programas com uma interface grfica com o usurio. Esta aplicao instala um cone no menu do celular, podendo ser iniciada diretamente. Este tipo aplicao definido no arquivo de Especificao do projeto no item TARGETTYPE.

3.5.5. Compilao do Projeto


Para compilar e gerar um executvel sero necessrios os trs arquivos mostrados anteriormente, situados no mesmo diretrio (Figura 7). Todos os comandos mostrados abaixo devem ser executados numa janela do DOS. 1. Gerar o arquivo abld.bat: Este arquivo contm as diretrizes para a compilao. Bldmake bldfiles 2. Construir o executvel: Este comando gerar o arquivo Hellotext.exe dentro da pasta do symbian, para utilizao pelo emulador (c:\symbian\series60_1_2_b/ epoc32/release/winsb/udeb/hellotext.exe). Abld build winsb udeb

30

3. Gerar arquivo de instalao: Este comando gera cria o arquivo hellotext.sis no mesmo diretrio do cdigo-fonte e que pode ser transferido para o celular e instalado. Makesis hellotext.pkg

Figura 7. Hierarquia na compilao das fontes e recursos

3.5.6. Instalao do Aplicativo para o Celular


Para instalar o aplicativo no celular necessrio primeiro gerar um executvel compatvel com o dispositivo real. Para isso, siga os seguintes passos: 1. Gerar o arquivo abld.bat: Este arquivo contm as diretrizes para a compilao. Bldmake bldfiles 2. Construir o executvel: Este comando gerar o arquivo Hellotext.exe dentro da pasta do Symbian OS, para futura cpia no dispositivo real Abld build armib urel

3. Gerar arquivo de instalao: Este comando gera cria o arquivo hellotext.sis no mesmo diretrio do cdigo-fonte e que pode ser transferido para o celular e instalado.

31

Makesis hellotext.pkg

32

4. J2ME (JAVA 2 MICRO EDITION)


A miniaturizao dos dispositivos eletrnicos, o aumento do poder de processamento destes dispositivos aliado a necessidade do ser humano permanecer informado a qualquer hora e em qualquer lugar foi um dos motivos da grande popularizao dos aparelhos celulares, hoje so mais de um bilho de telefones celulares no mundo e esse nmero cresce a cada dia. Os aparelhos celulares mais modernos podem rodar aplicativos at ento existente apenas em computadores e com certeza os usurios vo querer estes aplicativos, a questo : quem ir desenvolv-los? Vista esta grande oportunidade, gigantes da informtica esto investindo cada vez mais nesta rea, um exemplo a Sun Microsystem que desenvolveu uma verso de sua plataforma de desenvolvimento, Java, exclusivamente para dispositivos mveis como celular, o nome dado foi J2ME. O Java se destaca de outras linguagens de programao, pois dispe de recursos de Orientao a Objetos, permitindo desenvolver cdigos portveis, reusveis e robusto. A plataforma de desenvolvimento Java possibilita desenvolver aplicativos para qualquer dispositivo, desde SmartCards, passando por celulares e computadores at grande servidores, desde que o mesmo disponha uma mquina virtual Java (JVM), este recurso possibilita que o mesmo programa rode em vrias plataformas, garantindo com isso o que o Java considera sua principal vantagem, a WORA (Write Once, Run Anywhere) (SUN, 2002). Tambm no existem limitaes em relao operadora de telefonia celular ou tecnologia adotada por ela. Existem telefones celulares com mquina virtual Java para quaisquer das tecnologias mais utilizadas atualmente (GSM/GPRS, CDMA/1.xRTT, TDMA etc). Para que o aplicativo possa ser executado no celular, no necessria qualquer licena especial da operadora ou sequer a sua cincia. Hoje muitas empresas fabricantes de celulares vem grandes vantagens e oportunidades na tecnologia Java, tanto que praticamente todos os modelos de celulares da Nokia fabricado hoje j dispe da Maquina Virtual Java, para que possam ser instalados aplicativos desenvolvidos nesta plataforma.

33

4.1. Arquitetura do J2ME

Figura 8. Plataformas de desenvolvimento Java (SUN, 2002) O J2ME dividido entre Configurations, Profiles e APIs Opcionais (Figura 8). Essa diviso permite ao desenvolvedor conhecer informaes especficas sobre as diferentes famlias de dispositivos e as APIs disponveis para cada uma delas.

34

4.1.1. Configurations
A Configuration define o mnimo que um desenvolvedor pode esperar do dispositivo, classificando-os por capacidade de memria e processamento. Especifica uma JVM que pode ser portada entre dispositivos e tambm determina um subconjunto das APIs da J2SE a serem utilizadas, alm de outras APIs adicionais necessrias. Entre as configuraes disponveis destacam-se a CDC (Connected Device Configuration) e a CLDC (Connected, Limited Device Configuration). A especificao CDC baseada na mquina virtual Java convencional, definindo um ambiente com um conjunto rico de recursos, semelhantes aos encontrados em um sistema desktop. Destina-se a dispositivos wireless de alta capacidade, set-top boxes de TVs a cabo, sistemas automotivos e outras plataformas que possuam pelo menos alguns megabytes de memria disponvel. Principais caractersticas e restries: Implementao completa da JVM tradicional. 512 KB (mnimo) de memria (ROM) para rodar Java. 256 KB (mnimo) de memria (RAM). Conectividade de rede, possivelmente persistente e de alta velocidade. Processadores de 32 bits; Mais de 2MB de memria total para o armazenamento da mquina virtual e bibliotecas de classe. Interface com usurio com variado grau de sofisticao. A CLDC, por outro lado, consiste em uma mquina virtual reduzida (KVM) e um conjunto de classes mais apropriado para dispositivos pequenos e com limitaes de desempenho e memria. Esta configurao destinada para dispositivos wireless menores, possuindo geralmente entre 160Kb e 512 Kb disponveis para Java. Principais caractersticas e restries: 128 KB (mnimo) de memria (ROM) para rodar Java. 32 KB (mnimo) de memria (RAM). Interface do usurio limitada. Baixa potncia de bateria. Conectividade de rede, tipicamente sem fio, com baixas velocidades (9600bps ou menos) e acesso no-contnuo. Processador de no mnimo 16 bits com baixo consumo (adequado a baterias tpicas de um celular).

35

4.1.2. Profiles
Os perfis so conjuntos de APIs que suplementam as Configurations, fornecendo funcionalidades para um determinado tipo de dispositivo ou mercado vertical. So mais especficos que as configuraes, apesar de serem baseados nelas. Adicionam APIs para interface com o usurio, armazenamento persistente e outras auxiliares. O profile utilizado em celulares a MIDP (Mobile Information Device Profile), com o Foundation Profile sendo utilizado em dispositivos de rede sem interface grfica. As principais exigncias da MIDP 1.0 so: 128Kb de memria no-voltil para a implementao MIDP; 32Kb de memria voltil para o heap de runtime; 8Kb de memria no-voltil para persistncia de dados; Tela com pelo menos 96 x 54 pixels; Algum tipo de entrada de dados.

No quesito de segurana, o MIDP 1.0 semelhante s applets, com o conceito de uma sandbox, onde o programa Java mantido seguro, sem acesso ao ambiente externo. No MIDP 2.0, as aplicaes possuem um tratamento de segurana baseado em permisses semelhantes J2SE.

4.1.3. APIs Ocionais


As APIs opcionais so funcionalidades adicionais especficas que no sero encontradas em todos os dispositivos de uma determinada configurao ou perfil, mas importantes o suficiente para serem padronizadas. Segue abaixo alguns exemplos de apis opcionais: Mobile Media API (JSR-135) Personal Profile (JSR-46) FileConnection and PIM API (JSR-75) Bluetooth API (JSR-82 No OBEX) Wireless Messaging API (WMA); JSR 120, JSR 205 Mobile Media API (MMAPI); JSR 135

4.2. Recursos e Limitaes Existentes 4.2.1. Configuraes (CLDC)


O CLDC possui atualmente duas verses, sendo elas: CLDC 1.0 e CLDC1.1

36

4.2.2. CLDC 1.0


Restries de Hardware: 128 KB para executar a JVM e as bibliotecas CLDC (memria no-voltil). 32 KB para executar a aplicao Java (memria voltil).

Restries de Software: Sistema Operacional deve ser capaz de executar a JVM e gerenciar a aplicao Java (load and remove). A linguagem Java utilizada nos dispositivos CLDC difere em alguns aspectos da especificao oficial. Sem suporte a finalizao (Object.finalize()); Suporte limitado a erros. Apenas trs classes de erros so utilizadas: o o o java.lang.Error java.lang.OutOfMemoryError java.lang.VirtualMachineError.

No h suporte a JNI (Java Native Interface), por questes de segurana e performance; No h suporte para ClassLoaders personalizados. O ClassLoader da

implementao final, no havendo sobrecarga para especializaes; No h suporte para reflexo (reflection) por questes de performance. E por conseqncia no h suporte para serializao de Objetos; No h suporte para Daemon Thread e ThreadLocal. Apesar de suportar multithreading (limitado), os sistemas devem simular estas funcionalidades no suportadas; No h suporte para referncias fracas (Weak References).

4.2.3. CLDC 1.1


Melhorias Suporte a dados do tipo real (float); Implementao das classes Float e Double; Melhorias no tratamento de erros; Maior compatibilidade nas classes Date, TimeZone e Calendar;

37

4.2.4.

Perfis

O MIDP tambm possui atualmente duas verses, sendo elas: MIDP 1.0 e MIDP 2.0. Caractersticas Disponibiliza um conjunto de classes e interfaces para representar os elementos grficos; Armazenamento de dados persistentes; Conexo de rede baseado no HTTP 1.1 utilizando-se o CLDC CGF (Connection Generic Framework). Recursos aprimorados para implementao de jogos (somente na verso 2.0) Controle de Imagem e Som (somente na verso 2.0)

Restries de hardware A tela deve suportar a resoluo mnima de 96 x 54 pixels; Deve existir pelo menos um tipo de entrada disponvel; 128 KB para executar os componentes MID (memria no-voltil); 32 KB para executar a aplicao Java (memria voltil); Pelo menos 8 KB para armazenar dados persistentes da aplicao Java; Conectividade com redes sem fio. Restries de software Sistema Operacional (S.O) deve rodar a JVM com suporte a tratamento de exceo, escalonamento e interrupo de processos; S.O. deve oferecer suporte a escrita de grficos bitmap na tela; S.O. deve aceitar a entrada de dados e redirecion-la para a JVM. Ciclo de vida O Application Manager (AM) de cada dispositivo quem vai controlar os aplicativos a serem instalados, onde e como sero armazenados e como sero executados. Assim que a MIDlet invocada, o AM invoca o mtodo startApp(), o qual coloca a MIDlet no estado Active. Enquanto ela estiver executando o AM pode pausar ela invocando o mtodo pauseApp() no caso de uma chamada sendo recebida, ou SMS chegando. A aplicao pode pausar a si mesma, bastando invocar notifyPaused(). Assim como a AM pode pausar a aplicao e esta a si mesma, ocorre o mesmo com o DestroyApp() que invocado pela AM para fechar a aplicao ou at mesmo pode ser fechada atravs da prpria aplicao invocando o notifyDestroyed().

38

Paused Inicializado e esperando Active Possui recursos e est executando Destroyed Liberou todos os recursos Destruiu todas as threads Finalizou as atividades

Figura 9. Ciclo de Vida do MIDlet A Figura 9, ilustra a comunicao entre trs estados do ciclo de vida do MIDlet.

4.3. Conhecimentos Necessrios


Para se desenvolver aplicativos para celular utilizando a tecnologia J2ME, necessrio conhecimento prvio da tecnologia Java, ter um conhecimento bom da Orientao a Objetos dentro da plataforma e um conhecimento prvio das principais classes existentes no Java. Conhecimentos sobre a interface grfica do Java (principalmente AWT) podem ajudar bastante no momento de desenvolver o layout do programa.

4.4. Ambiente de Desenvolvimento 4.4.1. O JDK


O JDK o Kit de Desenvolvimento Java do J2SE (Standard Edition), utilizada na maioria das vezes para o desenvolvimento desktop, porm para todo o desenvolvimento de aplicaes Java necessrio instalar essa ferramenta. possvel baixar a ultima verso do JDK no site da sun (SUN, 2005b), embora para desenvolver programas para celular exista o

39

J2ME que possu a API MIDlet e uma grande quantidade de classes utilizadas neste tipo desenvolvimento, necessrio instalar tambm o JDK que disponibiliza classes e recursos essenciais da prpria tecnologia Java, como tratamento de datas, classes de I/O entre outros recursos bsicos para qualquer desenvolvimento. Tambm aconselhvel baixar a documentao do J2SE, pois pode ser muito til para posteriores consultas. A documentao tem aproximadamente 33 MB e est disponvel para download no mesmo link do SDK, mostrado anteriormente. A documentao est num arquivo compactado, necessrio descompactar preferencialmente na pasta onde ser instalado o SDK. O SDK possui aproximadamente 50 MB, necessrio baixar o arquivo executvel e em seguida se faz o processo de instalao padro do Windows, a instalao muito fcil, segue passo a passo a instalao sem precisar nenhuma configurao adicional.

4.4.2. Ferramenta de Desenvolvimento para Celular WTK


O WTK (Wireless ToolKit) fornecida pela Sun para o desenvolvimento de aplicativos para celular J2ME. Ele dispe de compilador e emulador do aparelho celular, nele possvel configurar a velocidade da CPU do aparelho e o fluxo de rede, para que a emulao seja a mais prxima possvel do real, j que computadores possuem muito mais memria e Processador e nem sempre o desenvolvedor dispe do aparelho celular para instalar e testar o aplicativo. Para conseguir a instalao do WTK basta acessar o site da Sun (SUN, 2005c) e fazer o download da ferramenta. Essa ferramenta no ocupa mais que 10MB. A instalao do WTK tambm instala a documentao do J2ME, muito til para aprender ou consultar classes disponveis no Micro Edition. Ele padro Javadoc, ou seja, no mesmo formato da documentao J2SE, instalado anteriormente. O processo de instalao do WTK tambm muito simples, sem a necessidade de configuraes adicionais.

4.4.3. Editor de Cdigo


A escolha de um bom editor de cdigo pode facilitar muito o trabalho de codificao, um dos editores mais difundidos entre usurios que esto aprendendo a tecnologia Java a o Gel, pela sua facilidade de trabalho e alguns recursos um pouco mais avanados, que facilita muito a codificao. O Gel uma IDE de desenvolvimento feito para Windows, logo se for necessrio utilizar uma plataforma livre para o desenvolvimento, como o Linux, ser necessrio optar por editores como o Eclipse ou NetBeans.

40

O processo de instalao do Gel simples, porm aps a instalao necessrio fazer a configurao da IDE, para que ela possa trabalhar com o SDK.

4.5. Metodologia de Implementao 4.5.1. Criao de um Projeto


Para acessar o programa WTK utiliza-se o atalho chamado KToolBar que se encontra no menu de programas. Em seguida, para criar o projeto, clica-se no boto New Project... e preenche-se os campos com o nome do seu projeto e o nome da classe principal do projeto. Para efetivar a criao do projeto, necessrio clicar em Create Project. A tela que aparece em seguida utilizada para informar informaes detalhadas do projeto, estas informaes ficam disponveis no arquivo.JAD (frisando que um programa para celular se divide em dois arquivos, o .JAR que possui o programa e o arquivo .JAD que possui diversas informaes sobre o projeto), no interessante alterar essas propriedades, a no ser que seja realmente necessrio, como colocar um cone personalizado ou trocar a verso da MIDP. Aps a confirmao no OK, o projeto ser criado. Automaticamente includo um diretrio dentro da pasta app, que se encontra no diretrio do WTK, nesta pasta com o nome do projeto ficar localizado todos os recursos do aplicativo, conforme Figura 10 e Figura 11:

Figura 10. Tela do WTK aps a criao do projeto HelloWorld

41

Figura 11. Estrutura de diretrios criada pelo WTK

4.5.2. Codificao do Sistema


Para a codificao do sistema, dentro do editor de cdigo Gel, cria-se um novo arquivo Java File, gravando no diretrio src do projeto. neste arquivo que ser digitado todo o cdigo-fonte da aplicao, a Listagem 5 possui o cdigo de um programa simples, apenas para exibio do tradicional Hello World.

import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class private private private HelloWorld extends MIDlet implements CommandListener { Display tela; TextBox areatexto; Command comando;

public HelloWorld () { tela = Display.getDisplay(this); comando = new Command("Sair", Command.SCREEN, 1); areatexto = new TextBox("Alo Mundo","J2ME",50,0); areatexto.addCommand(comando); areatexto.setCommandListener(this); } public void startApp() { tela.setCurrent(areatexto); } public void pauseApp() { } public void destroyApp(boolean condicional) { } public void commandAction(Command c, Displayable d) { if (c == comando) {

42

destroyApp(false); notifyDestroyed(); } } } Listagem 5. Contedo do arquivo fonte .Java

Aps a codificao do programa, resta fazer a compilao, apesar de existir o recurso de compilao no Gel os arquivos .class sero gerados na pasta src junto com o cdigo fonte, porm eles devem ser gerados na pasta classes. Para agilizar este processo a melhor alternativa compilar o programa pelo WTK, clicando no boto Build, se existir erros de compilao, ser apresentado na prpria console do WTK, ento s voltar para o Gel, corrigir o erro, salvar, voltar para o WTK e voltar a pressionar o boto Build, at que a mensagem Build Complete aparea.

4.5.3. Execuo do Aplicativo no Emulador


O WTK dispe do recurso para emular o aplicativo desenvolvido na tela do celular, porm existem poucos modelos de aparelhos, modelos adicionais podem ser conseguidos no site da empresa fabricante dos celulares, mesmo assim com os modelos bsicos que vem junto com o WTK j possvel ter uma idia de como o software ir se comportar. Para rodar o aplicativo clica no boto Run. Aparecer a tela de menu do celular para escolher o aplicativo, escolha a opo Launch e pronto, seu aplicativo j aparece no emulador, como na Figuras 12. Como o poder de processamento do celular bem como sua conexo com a rede bem menor de que qualquer computador, a reduo destas velocidades pode ser feita atravs da opo Edit Preferences...

43

Figura 12. Emulador default do WTK

44

4.5.4. Transferncia do Aplicativo para o Celular


Esse processo depende muito do aparelho onde o software vai ser instalado, tem aparelhos em que possvel passar o aplicativo apenas atravs de Web, para fazer isso necessrio disponibilizar os arquivos .jad e .jar (Figura 13) em um servidor Web, e digita o endereo no celular junto com o nome do arquivo .jad (Listagem 6), outra forma passar o programa via cabo, quando o aparelho dispe deste recurso a grande vantagem que no se paga nada para fazer a transmisso, a desvantagem que o cabo costuma ser vendido separadamente, alm de ter um custo relativamente elevado e no fcil encontrar estes cabos a pronta entrega. MIDlet-1: HelloWorld, , HelloWorld MIDlet-Jar-Size: 1174 MIDlet-Jar-URL: HelloWorld.jar MIDlet-Name: HelloWorld MIDlet-Vendor: Arthon MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 Listagem 6. Contedo do arquivo descritivo .JAD

Figura 13. Arquivos que devem ser copiados para o celular

45

5. PRODUTOS DISPONVEIS NO MERCADO


Em estudo de mercado realizado em cada uma das operadoras de telefonia celular que atuam no estado de So Paulo, sendo elas a Claro (CLARO, 2005), Vivo (VIVO, 2005) e TIM (TIM, 2005), foi possvel constatar que as operadoras Claro ( Figura 14) e TIM (Figura 15), que utilizam a mesma tecnologia (GSM) em mdia, 60% de todos os modelos comercializados, possuem a tecnologia J2ME, todos os modelos lanados no ano de 2005, possuem esta tecnologia. Quanto tecnologia Symbian, nestas duas operadoras, no existem muitos modelos, alcanando um pequeno percentual de 5%, nestas duas operadoras, no existe nenhum aparelho com a tecnologia Brew Na operadora Vivo (VIVO, 2005), que utiliza a tecnologia CDMA, o cenrio bem diferente, com exceo dos modelos da Nokia, todos os outros modelos possuem apenas a tecnologia Brew, marcando uma pontuao de 42%, no possuindo nenhum modelo com a tecnologia Symbian (Figura 16).

16 14 12 10 8 6 4 2 0 Gradiente LG Motorola Nokia Samsung Siemens Sony Ericsson

Modelos Disponveis Modelos com Symbian

Modelos com J2ME Modelos com Brew

Figura 14. Comparao dos Modelos da Claro

46

35 30 25 20 15 10 5 0 Gradiente LG Motorola Nokia Samsung Siemens Sony Ericsson

Modelos Disponveis

Modelos com J2ME

Modelos com Symbian

Modelos com Brew

Figura 15. Comparao dos Modelos da Tim

16 14 12 10 8 6 4 2 0 Kyocera Modelos Disponveis LG Motorola Nokia Samsung Modelos com Brew

Modelos com J2ME

Modelos com Symbian

Figura 16. Comparao dos Modelos da Vivo

47

5.1. Tecnologias Disponveis no Mercado


Considerando todas as operadoras do estado de So Paulo, separando as tecnologias que cada modelo comercializado possui, obtemos o grfico da Figura 17, onde a tecnologia predominante o J2ME com 43%, seguida pelo Brew com 12% e por ltimo com apenas 4% a tecnologia Symbian.

41%

43%

12%

4%

Modelos com J2ME Modelos com Symbian Modelos com Brew Modelos sem Nenhuma Tecnologia
Figura 17. Comparao das Tecnologias Disponveis no Mercado

48

6. CONCLUSO
Todas as concluses referente a implementao, aprendizagem destas tecnologias podem ser retiradas da Figura 17, que demonstra a atuao delas no mercado. A tecnologia J2ME a mais encontrada nos modelos comercializados e que apresentam os melhores custos-benefcios. Como conseqncia desta aceitao do mercado, muito mais fcil encontrar documentao, inclusive em portugus, algo que nas outras tecnologias praticamente impossvel, outros quesitos deixaram o J2ME na frente so: Facilidade de implementao, principalmente porque idntica linguagem Java, e por possibilitar a gerao dos binrios de forma prtica e integrada no Kit de desenvolvimento wireless (WTK), que tambm o principal responsvel pela emulao dos aplicativos em celulares virtuais. Ainda no WTK, possvel gerar os arquivos necessrios para upload da aplicao para o celular, que pode ser feita via cabo, WAP ou infra-vermelho. Devido ao grande nmero de documentao e livros em portugus, muito mais fcil encarar o desafio de conhecer a tecnologia. Embora o J2ME possua vrios pontos fortes, ele possui alguns pontos negativos, o principal deles uma quantidade de recursos nativos levemente inferior s demais tecnologias, sendo necessrio que cada fabricante de telefones celulares implementem seus prprios recursos. Quanto ao Brew, segunda tecnologia mais comercializada ele possui alguns recursos a mais que o J2ME, difcil encontrar documentao na internet, porm a fornecida juntamente no SDK bem completa, detalhada e dependendo da verso disponibilizada em portugus, para o usurio as aplicaes Brew so mais seguras pois todas so autenticadas pela Qualcomm. Quanto aos problemas do Brew, o primeiro que podemos citar a necessidade do desenvolvedor ser obrigado a pagar licenas para obter maiores detalhes da tecnologia e tambm para fazer o upload da aplicao para o Celular, mesmo que isto seja feito apenas para teste. Para implementar, seu SDK possui vrios aplicativos que facilitam a gerao do cdigo, alm das vrias aplicaes de exemplo que so fornecidas para melhorar o entendimento dos recursos da tecnologia. Quanto ao Symbian que a tecnologia menos comercializada, no pode ter seus recursos comparados, pois ele um sistema operacional completo e todas as aplicaes rodam de forma nativa, permitindo compartilhamento total de todos estes recursos. O Symbian aparenta ser a tecnologia que o mercado necessita, porm ainda necessrio melhorar alguns pontos, principalmente no quesito facilidade de implementao, pois esta

49

extremamente complicada, sendo necessria a criao de vrios arquivos de controle dificultando a codificao das aplicaes. Outro detalhe que desfavorece o Symbian o emulador que parece que parou no tempo, pois ele um pouco chato para se configurar, nunca se sabe o que ele realmente est emulando. Porm, embora existam todos estas complicaes, a Nokia, principalmente empresa que mantm o Symbian, possui o site Forum Nokia (NOKIA, 2004a) onde se encontra um arsenal de documentos sobre a tecnologia, porm em portugus praticamente impossvel, os documentos encontrados em portugus, so geralmente introdutrios e no resolvem uma dvida um pouco mais complexa. A Tabela 2 resume as principais diferenas entre as tecnologias estudadas. Caractersticas Linguagem de programao IDE integrada Complexidade de Implementao Facilidade de Emulao Facilidade de Download no Celular Quantidade de Documentao Disponvel Quantidade de Documentao Disponvel em Portugus Necessidade de Licena para Distribuir a Aplicao Execuo nativa Suportado por vrias Fabricantes Suporta Tecnologia GSM Suporta Tecnologia TDMA Suporta Tecnologia CDMA Mensagem (SMS, EMS e MMS) BREW C++ Sim Mdia Mdia Alta Mdia Baixa Sim No Sim No No Sim Sim, nativo Symbian C++ Sim Baixa Mdia Mdia Mdia Baixa No Sim Sim Sim Sim Sim Sim, nativo J2ME Java Sim Alta Alta Mdia Alta Alta No

No Sim Sim Sim Sim Sim, depende do aparelho Email (POP3 e IMAP) Sim, nativo Sim, nativo No Bluetooth, Infravermelho e USB Sim, nativo Sim, nativo Sim, depende do aparelho TCP-IP No Sim No FTP No Sim No HTTP Sim Sim Sim HTTPS Sim Sim Sim Criptografia Sim Sim Sim Imagem Sim Sim Sim Grficos 2d Sim Sim Sim Grficos 3d Sim Sim Sim, depende do aparelho Som Sim Sim Sim Banco de dados (persistncia) Sim Sim Sim Acesso ao Calendrio Sim Sim Sim, depende do aparelho Acesso Agenda Sim Sim No Tabela 2 Comparao entre Brew, Symbian e J2ME

50

7. REFERNCIAS BIBLIOGRFICAS
IDGNow IDGNow. Online http://idgnow.uol.com.br, 06/Nov/2004 SYMBIAN Symbian OS the mobile operation system. Online www.symbian.com, 24/No/2004 MOTOROLA MOTOCODER Home. Online http://www.motocoder.com/motorola/pcsHome.jsp, 24/Nov/2004 NOKIA Forum Nokia - Developer Resources. Online http://www.forum.nokia.com/main.html, 24/Nov/2004a NOKIA. Java MIDP Application Developers Guide for Nokia Devices. [S.I.], 2002 NOKIA. Symbian OS: Getting Started with C++ Application Development. [S.I.], 2003 QUALCOMM. Manual do BREW MIF Editor. San Diego, CA, 2002a QUALCOMM. Manual do Usurio do BREW SDK. San Diego, CA, 2002b QUALCOMM. QUALCOMM BREW Home. Online http://qualcomm/brew, 24/Nov/2004a. QUALCOMM. Starting with BREW. San Diego, CA, 2004b QUALCOMM. QUALCOMM | Manufacturer. Online http://brew.qualcomm.com/brew/en/manufacturer/oem.html, 13/Dez/2005. SUN Java 2 Platform, Micro Edition (J2ME). Online http://java.sun.com/j2me, 24/Nov/2004. SUN Introduction to Mobility Java Technology. Online http://developers.sun.com/techtopics/mobility/getstart, 20/Jun/2003 SUN Whats New in MIDP 2.0. Online http://developers.sun.com/techtopics/mobility/midp/articles/midp20, 20/Jun/2005a SUN J2SE Downloads. Online http://java.sun.com/j2se/downloads/index.html, 20/Jun/2005b

51

SUN J2ME Wireless Toolkit Download 2.2 Release. Online http://java.sun.com/products/sjwtoolkit/download-2_2.html, 20/Jun/2005c SUN. The Java platform for consumer and embedded devices. Santa Clara, CA, 2002 CHRISTIANO PINHEIRO iMasters Java. Online http://www.imasters.com.br/artigo.php?cn=1539&cc=19, 20/Jun/2005 MUCHOW, John W. Core J2ME Tecnologia e MIDP. So Paulo, SP: Makron Books, 2004 DEITEL, H.m; DEITEL, P. J. Java Como Programar. Porto Alegre, RS: Bookman, 2002 RUMBAUGH, James. UML Guia do Usurio. Rio de Janeiro, RJ: Campus, 2000 DEITEL, H. M. C++ Como Programar. Porto Alegre, RS: Bookman, 2001 BRITO, Robison Cris. Desenvolvimento de Aplicativos para celular - Java 2 Micro Edition. Centro Federal de Educao Tecnologia do Paran, 2004 ? CLARO Claro. Online http://lojaonline.claro.com.br/, 30/Out/2005. TIM Loja TIM. Online http://www.lojatim.com.br/TIM/default.asp,

30/Out/2005. VIVO Os melhores celulares e as principais marcas esto na Vivo. Online http://www.vivo.com.br/portal/celulares.php, 30/Out/2005. IIDA, Renato Faria. Desenvolvimento C++ para Symbian OS. Web Mbile, Graja, RJ, n. 4, p. 16-24, ago. 2005. BORGES, Rosfran. Introduo ao Desenvolvimento em Symbian. Instituto Nokia de Tecnologia, 2005 MERY, David. Symbian OS Version 7.0 Functional description. Symbian, 2003 SYMBIAN Symbian: Symbian OS phones. Online http://www.symbian.com/phones/index.html, 01/Nov/2005

Anda mungkin juga menyukai