Coordena¸ao do Curso de Ciˆncia da Computa¸ao
          c˜                e                c˜
   Universidade Estadual de ...
Desenvolvendo um Estudo de Caso
Utilizando a Plataforma Java ME


        Lais Claudia Zanfolim
       Rodolfo Chaves Fern...
Coordena¸ao do Curso de Ciˆncia da Computa¸ao
                        c˜                e                c˜
              ...
Resumo

    A plataforma Java Micro Edition ´ o conjunto de tecnologias que permitem o de-
                               ...
Abstract

    The platform Java Micro Edition is the set of technologies that enable the develop-
ment of Java application...
Agradecimentos

   Agradecemos primeiramente a Deus, por ter nos aben¸oado durante toda nossa vida
                       ...
Sum´rio
   a

Resumo                                                                                                      ...
4 Perfil MIDP                                                                                                              ...
Lista de Figuras

 3.1    Elementos da plataforma Java ME. . . . . . . . . . . . . . . . . . . . . . . 12
 3.2    Arquitet...
Lista de Siglas

AM - Application Manager
API - Application Programming Interface
CDC - Connected Device Configuration
CGI ...
2



PBP - Personal Basis Profile
PC - Personal Computer
PDA - Personal Digital Assistants
PDAP - PDA Profile
PP - Personal ...
Cap´
   ıtulo 1

Introdu¸˜o
       ca

    Com a expans˜o da Internet e da utiliza¸˜o de aplica¸˜es, surgiram diversas lin...
1.1. Objetivos                                                                         4



a codifica¸˜o desse tipo de dis...
1.3. Metodologia                                                                       5



que o n´mero de usu´rios de ap...
Cap´
   ıtulo 2

Sistemas operacionais para
dispositivos m´veis
              o

    A tecnologia da informa¸˜o atinge a m...
2.2. Sistemas Operacionais e suas tecnologias                                           7



a Microsoft usa para a catego...
2.2. Sistemas Operacionais e suas tecnologias                                             8



  o     ´
m´vel. E a primei...
2.2. Sistemas Operacionais e suas tecnologias                                            9



Motorola. A desvantagem ´ qu...
2.3. An´lise do Mercado
       a                                                                              10



linha ...
Cap´
   ıtulo 3

Java Micro Edition

   Neste cap´
            ıtulo s˜o apresentadas as caracter´
                   a   ...
3.1. Vis˜o geral
        a                                                                             12




            ...
3.2. Configura¸oes
             c˜                                                                           13




       ...
3.2. Configura¸oes
             c˜                                                                         14



e abrange ...
3.3. Perfis                                                                                  15



   • RMI (Remote Method ...
3.5. Pacotes Opcionais                                                                  16



   • CLDC HotSpot Implementa...
Cap´
   ıtulo 4

Perfil MIDP

    Neste cap´ıtulo s˜o apresentadas as caracter´
                     a                     ...
4.1. Vis˜o Geral do MIDP
        a                                                                              18



    ...
4.1. Vis˜o Geral do MIDP
        a                                                                             19



agora...
4.2. MIDlets                                                                          20



alguma tecla ´ pressionada ou ...
4.3. MIDlets Suite                                                                    21



   notifyDestroy(): Avisa ao g...
4.4. Interface                                                                        22



   MIDlet-Icon: Especifica o ´
...
4.4. Interface                                                                         23



Display e Displayable
    Par...
4.4. Interface                                                                       24



   Esses componentes que podem ...
4.4. Interface                                                                             25



   • Gauge
     ´
     E ...
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Desenvolvendo um estudo de caso utilizando a plataforma Java ME
Upcoming SlideShare
Loading in...5
×

Desenvolvendo um estudo de caso utilizando a plataforma Java ME

5,137

Published on

Trabalho de Conclusão de Curso

Published in: Education
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
5,137
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
275
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Desenvolvendo um estudo de caso utilizando a plataforma Java ME

  1. 1. Coordena¸ao do Curso de Ciˆncia da Computa¸ao c˜ e c˜ Universidade Estadual de Mato Grosso do Sul Desenvolvendo um Estudo de Caso Utilizando a Plataforma Java ME Lais Claudia Zanfolim Rodolfo Chaves Fernandes Andr´ Chastel Lima (Orientador) e Celso G. Camilo Jr (Co-orientador) Dezembro de 2009
  2. 2. Desenvolvendo um Estudo de Caso Utilizando a Plataforma Java ME Lais Claudia Zanfolim Rodolfo Chaves Fernandes Este exemplar corresponde a reda¸ao final ` c˜ da monografia da disciplina Projeto Final de Curso devidamente corrigida e defendida por Lais Claudia Zanfolim Rodolfo Chaves Fernandes e aprovada pela Banca Examinadora, como parte dos requisi- tos para a obten¸ao do t´ c˜ ıtulo de Bacharel em Ciˆncia da Computa¸ao. e c˜ Dourados, 11 de dezembro de 2009. Andr´ Chastel Lima (Orientador) e Celso G. Camilo Jr (Co-orientador) ii
  3. 3. Coordena¸ao do Curso de Ciˆncia da Computa¸ao c˜ e c˜ Universidade Estadual de Mato Grosso do Sul Desenvolvendo um Estudo de Caso Utilizando a Plataforma Java ME Lais Claudia Zanfolim Rodolfo Chaves Fernandes Dezembro de 2009 Banca Examinadora: • Andr´ Chastel Lima (Orientador) e • Celso G. Camilo Jr (Co-orientador) • Raquel Marcia M¨ller u • Nielsen Cassiano Sim˜es o iii
  4. 4. Resumo A plataforma Java Micro Edition ´ o conjunto de tecnologias que permitem o de- e senvolvimento de aplica¸oes Java para dispositivos com processamento, mem´ria e v´ c˜ o ıdeo limitados, como celulares e smartphones. Assim como as outras edi¸oes Java, essa pla- c˜ taforma foi desenvolvida com o mesmo intuito, a portabilidade, al´m de possuir diversas e APIs para o desenvolvimento, o Java ME tamb´m fornece compatibilidade entre as edi- e ¸oes Java, possibilitando a comunica¸˜o com aplica¸oes constru´ c˜ ca c˜ ıdas em Java SE e Java EE. Mantendo o foco em Java Micro Edition, este trabalho prop˜e o desenvolvimento de o uma aplica¸ao m´vel que una as tecnologias Java ME e Java EE. Como o Java Enterprise c˜ o Edition possui v´rias funcionalidades de redes e Internet e cont´m classes especialmente a e desenvolvidas para acesso a servidores e banco de dados, parte da aplica¸˜o foi constru´ ca ıda usando esta tecnologia, possibilitando a comunica¸ao entre dispositivos m´veis e um servi- c˜ o dor disposto na rede local ou Internet. Portanto, neste trabalho foi abordado, juntamente com a plataforma Java ME, o uso de Servlets dentro da arquitetura Java EE, interagindo com um cliente m´vel atrav´s do protocolo HTTP para estabelecer a comunica¸˜o com o e ca celulares e smartphones. Visto que um Servlet pode efetuar qualquer processamento ine- rente a uma classe Java e enviar respostas na forma de documentos XML, para efetuarmos a troca de dados entre um dispositivo m´vel e o servidor remoto de dados, que alimenta o o sistema m´vel, utilizamos os recursos que a linguagem XML nos oferece. Para auxiliar o o desenvolvimento do estudo de caso, a metodologia agil extreme programming foi utilizada ´ juntamente com diagramas da UML com o intuito de organizar o processo de desenvolvi- mento. A aplica¸ao desenvolvida durante o trabalho ´ respons´vel por agilizar o processo c˜ e a de vendas de uma distibuidora de bebidas, a fim de automatizar a for¸a de vendas e foi c testada em celulares e smartphones com o sistema operacional m´vel Symbian e Windows o Mobile, interagindo com o servidor via requisi¸oes HTTP. c˜ Palavras Chave: Java ME, mobilidade, celulares e smartphones. iv
  5. 5. Abstract The platform Java Micro Edition is the set of technologies that enable the develop- ment of Java applications for devices with limited processing, memory and video, such as cell phones and smartphones. As with other Java editions, this platform was develo- ped with the same intention, portability, and have different APIs for the development, Java ME also provides compatibility between Java editions, enabling communication with applications built on Java SE and Java EE. Keeping the focus on Java Micro Edition, this paper proposes the development of a mobile application that gather the technologies Java ME and Java EE. As the Java Enterprise Edition has several networks and Internet features and contains classes designed specially to access servers and databases, part of the application was built using this technology, enabling communication between mobile devices and server requirements of a local network or Internet. Therefore, in this study was discussed, along with the Java ME platform, the use of Servlets in the Java EE archi- tecture, interacting with a mobile client via the HTTP protocol to communicate with cell phones and smartphones. Since a servlet can perform any processing associated with a Java class and submit answers in the form of XML documents, to effectuate the exchange of data between a mobile device and the remote database, which feeds the mobile system, we use the resources that XML language offers. To assist the development of case study, the agile eXtreme Programming was used together with UML diagrams in order to orga- nize the development process. The application developed during the work is responsible for streamlining the sales process of a beverage distributor, to automate the sales force and has been tested on mobile phones and smartphones with mobile operating system Symbian and Windows Mobile, interacting with the server via HTTP requests. Keywords: Java ME, mobile, cell phones and smartphones. v
  6. 6. Agradecimentos Agradecemos primeiramente a Deus, por ter nos aben¸oado durante toda nossa vida c e principalmente por ter nos dado for¸as durante todo o decorrer do trabalho. c Aos nossos familiares, pela confian¸a, apoio e educa¸ao durante toda nossa caminhada. c c˜ Ao nosso orientador Andr´ Chastel Lima, pelo apoio e compreens˜o. e a Ao nosso co-orientador Celso Camilo, pelo incentivo e paciˆncia. e A toda academia, que nos proporcionou as condi¸oes necess´rias para o desenvolvi- c˜ a mento deste trabalho, em especial os professores Odival Faccenda e Glaucia Gabriel Sass. Aos funcion´rios da eXclaim, por nos dar a oportunidade de estagiar na empresa e a desenvolver projetos com a tecnologia Java ME. Aos leitores e colaboradores do javamovel.com, pela lealdade e por nos incentivar a estudar o tema do projeto. Enfim, agradecemos todos aqueles que contribu´ ıram para o sucesso desta caminhada e que de forma injusta n˜o tiveram seus nomes inclu´ a ıdos aqui. vi
  7. 7. Sum´rio a Resumo iv Abstract v Agradecimentos vi 1 Introdu¸˜o ca 3 1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Sistemas operacionais para dispositivos m´veis o 6 2.1 Dispositivos M´veis . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . 6 2.2 Sistemas Operacionais e suas tecnologias . . . . . . . . . . . . . . . . . . . 7 2.2.1 Symbian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3 Windows Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.4 Palm OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.5 BlackBerry OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.6 Iphone OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 An´lise do Mercado . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . 10 3 Java Micro Edition 11 3.1 Vis˜o geral . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Configura¸˜es . . . co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Perfis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4 M´quinas Virtuais a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5 Pacotes Opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 vii
  8. 8. 4 Perfil MIDP 17 4.1 Vis˜o Geral do MIDP . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 MIDlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3 MIDlets Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3.1 JAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3.2 JAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.4 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5 Armazenamento Persistente . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.5.1 RMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5 APIs e Frameworks para Java ME 28 5.1 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.2 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2.1 Floggy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.2.2 KXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.2.3 LWUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6 Comunica¸˜o com o Servidor ca 35 6.1 A Plataforma Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.1.1 Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.2 XML - Linguaguem de marca¸˜o extens´ ca ıvel . . . . . . . . . . . . . . . . . . 38 6.2.1 An´lise de documentos XML . . . . a . . . . . . . . . . . . . . . . . . 39 7 Estudo de Caso 41 7.1 Extreme programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.2 Arquitetura do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.3 Vis˜o geral do sistema . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.4 Diagrama de Caso de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.5 Est´rias . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.6 Release 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.6.1 Itera¸ao A . . . . . c˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.6.2 Itera¸ao B . . . . . c˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.7 Release 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.7.1 Itera¸ao A . . . . . c˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.7.2 Itera¸ao B . . . . . c˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.8 A Aplica¸˜o . . . . . . . . ca . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8 Considera¸˜es Finais co 57 viii
  9. 9. Lista de Figuras 3.1 Elementos da plataforma Java ME. . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Arquitetura da plataforma Java. . . . . . . . . . . . . . . . . . . . . . . . . 13 4.1 Ciclo de vida do MIDlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2 Hierarquia de classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3 Record Management System. . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.1 Arquitetura da plataforma Java EE. . . . . . . . . . . . . . . . . . . . . . . 36 6.2 Servlet container. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.3 Ciclo de vida do servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.4 Estrutura do XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.1 Esquema de comunica¸˜o. . . . . . . . . . . . . . ca . . . . . . . . . . . . . . 42 7.2 Diagrama de Caso de Uso. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.3 Est´ria 1-A: Consulta de produtos. . . . . . . . . o . . . . . . . . . . . . . . 44 7.4 Est´ria 1-B: Consulta e cadastro de clientes. . . . o . . . . . . . . . . . . . . 44 7.5 Est´ria 2-A: Cadastro de pedidos. . . . . . . . . . o . . . . . . . . . . . . . . 45 7.6 Est´ria 2-B: Altera¸˜o de pedidos. . . . . . . . . . o ca . . . . . . . . . . . . . . 45 7.7 Est´ria 2-C: Envio dos dados para o banco central o da empresa. . . . . . . . 46 7.8 Diagrama de classe de projeto - Produto. . . . . . . . . . . . . . . . . . . . 47 7.9 Diagrama de classe de projeto - Cliente. . . . . . . . . . . . . . . . . . . . 47 7.10 Diagrama de classes de projeto. . . . . . . . . . . . . . . . . . . . . . . . . 48 7.11 Autentica¸ao do usu´rio. . . . . . . . . . . . . . . c˜ a . . . . . . . . . . . . . . 50 7.12 Menu principal da aplica¸˜o m´vel. . . . . . . . . ca o . . . . . . . . . . . . . . 51 7.13 Cadastro de Clientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.14 Busca de Produtos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.15 Detalhamento de produto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.16 Cadastro de pedidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7.17 Lista de pedidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 ix
  10. 10. Lista de Siglas AM - Application Manager API - Application Programming Interface CDC - Connected Device Configuration CGI - Common Gateway Interface CLDC - Connected Limited Device Configuration CVM - Compact Virtual Machine DTD - Document Type Declaration FP - Foundation Profile GP - Game Profile GPS - Global Positioning System (Sistema de Posicionamento Global) HTTP - HyperText Markup Language HTTP - Hypertext Transfer Protocol J2SE - Java 2 Standard Edition JAD - Java Decompiler JAR - Java Archive Java EE - Java Enterprise Edition Java ME - Java Micro Edition JCP - Java Community Process JNI - Java Native Interface JSP - Java ServerPages JVM - Java Virtual Machine KVM - K Virtual Machine LWUIT - LightWeight User Interface Toolkit MIDP - Mobile Information Device Profile MMAPI - Mobile Media API MMS - Multimedia Messaging Service (Servi¸o de Mensagem Multim´dia) c ı MSA - Mobile Service Architecture OpenCL - Open Computing Language OpenGL - Open Graphics Library 1
  11. 11. 2 PBP - Personal Basis Profile PC - Personal Computer PDA - Personal Digital Assistants PDAP - PDA Profile PP - Personal Profile RAD - Rapid Application Development RAM - Random Access Memory RIM - Research in Motion RMI - Remote Method Invocation RMIP - Remote Method Invocation Profile RMS - Record Management System SDK - Software Development Kit SMS - Short Message Service SO - Sistema Operacional UML - Unified Modeling Language VM - Virtual Machine W3C - World Wide Web Consortium WAV - WAVEform audio format WTK - Wireless ToolKit XML - eXtensible Markup Language
  12. 12. Cap´ ıtulo 1 Introdu¸˜o ca Com a expans˜o da Internet e da utiliza¸˜o de aplica¸˜es, surgiram diversas linguagens a ca co de programa¸˜o, tendo destaque as de multiplataforma, como ´ o caso do Java, que pode ca e ser aplicado em diversos setores, como aparelhos eletrˆnicos, telefones celulares, aplica¸oes o c˜ para Web e desktop, entre outros. Levando em considera¸ao os diferentes setores, tornou- c˜ se necess´rio a cria¸˜o de kits de desenvolvimento diferenciados. a ca A proposta inicial parte do interesse pela linguagem de programa¸ao Java, em espe- c˜ c´ ´ ıfico Java Micro Edition - Java ME. E uma plataforma que permite o desenvolvimento de aplica¸˜es Java para dispositivos com processamento, mem´ria e v´ co o ıdeo limitados, tais como celulares e smartphones. Assim como as outras edi¸oes Java, essa tecnologia foi c˜ desenvolvida com o mesmo intuito, a portabilidade, al´m de possuir diversas APIs (Ap- e plication Programming Interface) para o desenvolvimento. O Java ME tamb´m fornecee compatibilidade entre as edi¸˜es Java, possibilitando a comunica¸ao com aplica¸oes Java co c˜ c˜ SE (Java Standard Edition) e Java EE (Java Enterprise Edition). A Java Community Process - JCP, especifica o Java ME em dois grupos: • CDC - Connected Device Configuration: para dispositivos com maior capacidade computacional. • CLDC - Connected Limited Device Configuration: para dispositivos com menor capacidade computacional e normalmente usado em aplica¸oes embarcadas. c˜ Dentro desta ultima configura¸ao existe uma outra classifica¸ao que define os perfis dos ´ c˜ c˜ dispositivos. No caso de celulares e smartphones a classifica¸ao usada ´ o MIDP, Mobile c˜ e Information Device Profile. Dentro desta classifica¸˜o, se ocorrer a migra¸ao de aplica¸oes ca c˜ c˜ para outros celulares com a mesma configura¸˜o elas n˜o perdem sua funcionalidade ca a (TOPLEY, 2002). Para otimizar o funcionamento de aplica¸oes em celulares a Sun desenvolveu m´quinas c˜ a virtuais Java espec´ ıficas para cada configura¸ao, que manipulam de maneira mais eficiente c˜ 3
  13. 13. 1.1. Objetivos 4 a codifica¸˜o desse tipo de dispositivos. ca Com a cria¸ao deste ambiente de desenvolvimento torna-se vi´vel a constru¸˜o de c˜ a ca aplica¸˜es para dispositivos m´veis com maior produtividade e portabilidade (MUCHOW, co o 2001). 1.1 Objetivos O objetivo principal deste trabalho ´ desenvolver um estudo de caso aplicando os prin- e cipais conceitos da plataforma Java ME e utilizar a plataforma Java EE para constru¸˜o ca de um servidor que ser´ respons´vel pela troca de dados com a aplica¸ao m´vel. a a c˜ o Para alcan¸ar o objetivo principal, as seguintes etapas foram efetuadas: c • Fazer um breve estudo sobre as plataformas de dispositivos m´veis; o • Estudar a plataforma Java ME, voltada para dispositivos m´veis; o • Estudar a plataforma Java EE para a constru¸˜o de um servidor remoto; ca • Estudar a comunica¸ao entre o servidor e a aplica¸˜o m´vel; c˜ ca o • Estudar alguns frameworks Java ME e definir quais ser˜o utilizados no estudo de a caso; • Definir os padr˜es da Engenharia de Software que ser˜o utilizados na aplica¸ao; o a c˜ • Definir o estudo de caso; • Desenvolver e testar o estudo de caso. 1.2 Justificativa Segundo dados divulgados pela Agˆncia Nacional de Telecomunica¸oes (Anatel), o e c˜ n´mero de linhas de telefones m´veis no pa´ chegou a aproximadamente 152,4 milh˜es, u o ıs o ˆ em fevereiro de 2009, o que corresponde a 79,94% da popula¸ao (AGENCIAESTADO, c˜ 2009). Em n´ mundial, o n´mero de usu´rios de telefones m´veis chegou perto de 3 bilh˜es ıvel u a o o em 2007, atingindo 48% da popula¸ao e a estimativa para o final de 2008 era de 4 bilh˜es, c˜ o o que corresponde a 61%, segundo a Uni˜o Internacional de Telecomunica¸oes (UIT) a c˜ (REUTERS, 2008). Segundo Eric Klein, vice-presidente de marketing do Java, em entrevista a Reuters, o ` Java est´ instalado em 2,6 bilh˜es de telefones em todo o mundo (VIRKI, 2009). Visto a o
  14. 14. 1.3. Metodologia 5 que o n´mero de usu´rios de aparelhos celulares ´ significativo, que est´ em crescimento e u a e a que a plataforma Java ME ´ bem aceita pelo mercado de software para dispositivos m´veis e o e tamb´m est´ em ascendˆncia no mercado, o desenvolvimento para esta plataforma se e a e torna bastante atraente. 1.3 Metodologia Mantendo o foco em Java Micro Edition, propomos fazer uma revis˜o bibliogr´fica dos a a conceitos chaves desta plataforma e desenvolver uma aplica¸ao para celular ou smartphone c˜ que una as plataformas Java ME e Java EE. Como o Java Enterprise Edition possui v´riasa funcionalidades de redes e Internet e cont´m bibliotecas especialmente desenvolvidas para e acesso a servidores e banco de dados, parte da aplica¸˜o ser´ constru´ usando esta ca a ıda plataforma, possibilitando a comunica¸ao entre dispositivos m´veis e um servidor disposto c˜ o na rede ou Internet. A plataforma Java EE cont´m uma s´rie de especifica¸oes, cada uma com funciona- e e c˜ lidades distintas, entre elas, utilizamos servlets, utilizados para o desenvolvimento Web com conte´do dinˆmico e cont´m uma API que simplifica os recursos do servidor Web u a e para o programador (HALL, 1998). Foi realizado um levantamento de diferentes frameworks Java ME e os que se apresen- taram mais vi´veis para o desenvolvimento da aplica¸ao foram utilizados. a c˜ Os dados foram padronizados em documentos XML (Extensible Markup Language), padronizada pela W3C (World Wide Web Consortium), a fim de serem transferidos do servidor para a aplica¸˜o m´vel. ca o O estudo de caso foi desenvolvido com base na metodologia agil extreme programming ´ - (XP), e diagramas da UML ser˜o apresentados para o melhor entendimento da aplica¸ao. a c˜ Os testes foram realizados em celulares e smartphones com o sistema operacional Symbian e Windows Mobile com a configura¸ao CLDC 1.1 e perfil MIDP 2.1, por´m a c˜ e aplica¸˜o poder´ ser executada em outros sistemas operacionais m´veis que possuam uma ca a o m´quina virtual Java compat´ com estas caracter´ a ıvel ısticas.
  15. 15. Cap´ ıtulo 2 Sistemas operacionais para dispositivos m´veis o A tecnologia da informa¸˜o atinge a maior parte das empresas e institui¸˜es de forma ca co que fiquem dependentes de sistemas que ajudam ou otimizam o trabalho e a comunica¸ao c˜ dentro das mesmas. Com a massifica¸ao de computadores e Internet surge um outro c˜ conceito: Mobilidade. O poder de carregar as informa¸oes para qualquer ambiente ´ c˜ e evidentemente util para empresas que trabalham com base de dados e um fator essencial ´ para se destacar no mercado ´ ter acesso as informa¸oes em tempo real. e c˜ Sendo evidente o impacto que solu¸˜es de softwares m´veis tˆm e ter˜o nos pr´ximos co o e a o anos, ´ de extrema importˆncia conhecer os sistemas operacionais m´veis do mercado e a o e quais tipos de aplica¸oes cada um deles suporta. Assim, ´ apresentada uma breve c˜ e an´lise dos principais sistemas operacionais para dispositivos m´veis mais importantes da a o atualidade. Neste cap´ ıtulo tamb´m s˜o explanados os principais tipos de dispositivos m´veis e suas e a o tecnologias, visando uma abordagem completa dos requisitos necess´rios para construir a aplicativos de sucesso. 2.1 Dispositivos M´veis o Primeiramente ´ importante esclarecer que o termo Palm ´ utilizado para PDAs (As- e e sistente Pessoal Digital) ou Handhelds, que s˜o computadores de m˜o que fornecem as a a fun¸˜es b´sicas de um computador pessoal, como acesso a Internet, programas de cadas- co a tros, agenda, controle financeiro, controle de vendas, planilhas, documentos entre outras aplica¸˜es da categoria (PALMBRASIL, 2009a). co O smartphone ´ uma categoria de telefone celular com caracter´ e ısticas que antes eram encontradas somente em Palms e PCs (Personal Computers). PoketPC ´ o nome que e 6
  16. 16. 2.2. Sistemas Operacionais e suas tecnologias 7 a Microsoft usa para a categoria de PDAs, que difere dos smartphones por agregar ca- racter´ ısticas como uma tela maior e sens´ a toque, suporte wi-fi, bluetooh, integra¸ao ıvel c˜ com GPS (Global Positioning System), enfim, tecnologias que o tornam mais robusto (MICROSOFT, 2009b). 2.2 Sistemas Operacionais e suas tecnologias Nesta se¸ao abordaremos as principais caracter´ c˜ ısticas dos sistemas operacionais m´veis o mais utilizados no mercado, bem como suas tecnologias. 2.2.1 Symbian Come¸aremos ent˜o com o sistema operacional para telefones m´veis que desde 1998 c a o lidera o mercado mundial, o Symbian OS, ou simplesmente Symbian. Ele possui suporte MMS (Multimedia Messaging Service), bluetooh, wireless, infra-vermelho, entre outras fun¸˜es que tornam-se extremamente importantes quando o assunto ´ mobilidade. Este co e SO possui um sistema gr´fico bem simples e atualmente ´ o sistema mais usado pelos a e maiores fabricantes de telefones m´veis do mundo, por´m com o surgimento de novas o e tecnologias e plataformas, vem apresentando queda. Por ser um sistema operacional que controla muito bem o consumo de mem´ria, o consumo de energia, o processamento, o entre outros fatores essenciais, as empresas mais poderosas da telecomunica¸˜o investiram ca bastante para que este fosse um sistema promissor para o mercado. Empresas como Nokia, Samsung, Panasonic, Ericsson e Sony Ericsson, foram as res- pons´veis pela ascendˆncia desse modelo de sistema operacional m´vel. Segundo a INFO a e o (2008), atualmente a Nokia possui a totalidade das a¸˜es da empresa britˆnica de software co a (Symbian), liderando o mercado mundial com 38,9% de participa¸ao e promete concorrer c˜ com o mais novo sistema operacional para dispositivos m´veis - Android. o O Symbian suporta sistemas divididos em m´dulos, desta forma cada empresa pode o criar sua pr´pria interface. Permite o uso de v´rias linguagens de programa¸ao, entre o a c˜ as mais importantes est˜o: Symbian C/C++, Java ME, FlashLite, Perl, Python, Ruby, a entre outras. Assim se o aparelho n˜o possui certa funcionalidade, fica f´cil de integrar a a a mesma (SYMBIANBRASIL, 2009). 2.2.2 Android O Android ´ um sistema operacional baseado em Linux voltado para smartphones, e criado pela Google em cons´rcio com mais de 40 empresas. Utiliza uma m´quina virtual o a que foi projetada para otimizar a mem´ria e os recursos de hardware em um ambiente o
  17. 17. 2.2. Sistemas Operacionais e suas tecnologias 8 o ´ m´vel. E a primeira plataforma open source para desenvolvimento de aplica¸˜es m´veis, co o portanto ´ livre para incorporar novas tecnologias. Por ser um SO mais novo no mercado e est´ em aceita¸˜o, positiva por sinal, pelos usu´rios e desenvolvedores, pois agrega todas a ca a ´ as funcionalidades que os aparelhos m´veis mais atuais fornecem. E importante ressaltar o que os servi¸os da Google passam a ser facilmente acoplados com as tecnologias m´veis c o ap´s o surgimento do Android, j´ que o interesse e os investimentos atuais da empresa o a visam a mobilidade. Entre os servi¸os oferecidos est˜o: Cliente de e-mail, programa para SMS (Short Mes- c a sage Service), calend´rio, mapas, navegador e gerenciador de contatos. Tudo constru´ a ıdo em Java, desta forma os desenvolvedores Java podem construir aplicativos e disponibiliz´- a los. Os desenvolvedores tem acesso a mesma API utilizada nos aplicativos centrais, po- dendo aproveit´-las livremente. a Al´m dos aplicativos feitos em Java, o Android possui um conjunto de bibliotecas e C/C++ usadas por diversos componentes que permitem trabalhar com arquivos de m´ ıdia, exibi¸ao de conte´do em 2D e 3D, inclusive bibliotecas implementadas utilizando OpenGL c˜ u (Open Graphics Library) e um poderoso banco de dados relacional, o SQLite (Developers, 2009). 2.2.3 Windows Mobile Windows Mobile ´ um sistema operacional para dispositivos m´veis, projetado para e o realizar boa parte das fun¸˜es existentes no Windows para PC. Ele pode ser instalado co em PDAs, PocketPC, smartphones e aparelhos de multim´ ıdia em geral. (MICROSOFT, 2009b). Possui uma interface intuitiva, ´ seguro, permite acesso a Internet, inclusive envio e e recebimento de e-mails, possui conectividade bluetooth e wi-fi, al´m de vers˜es m´veis e o o dos aplicativos da Microsoft Office, como: Word, Excel e Power Point. O SO suporta aplicativos desenvolvidos em linguagens como C, C#, VB.Net, Java ME, Visual Basic, Python, FlashLite, entre outras, al´m de possuir um interpretador para PHP (MICRO- e SOFT, 2009a). 2.2.4 Palm OS Palm OS ´ um sistema operacional desenvolvido pela PalmSource para rodar em PDAs. e Entre as vers˜es da linha temos: O Palm OS Garnet e, o atualmente mais usado, Palm o OS Cobalt. No Palm OS Cobalt o sistema roda em 32 bits, possibilitando que os aplicativos fiquem muito mais r´pidos e com recursos extras. No Palm OS Garnet (5.x) apenas algumas a partes dos aplicativos s˜o em 32 bits, j´ que maior parte simula processadores antigos da a a
  18. 18. 2.2. Sistemas Operacionais e suas tecnologias 9 Motorola. A desvantagem ´ que as aplica¸oes criadas utilizando os novos recursos n˜o e c˜ a ir˜o funcionar em equipamentos com vers˜es anteriores do sistema. a o As linguagens mais utilizadas para o desenvolvimento de aplica¸oes no Palm OS ´ c˜ e o Pascal e o C/C++. Vale ressaltar que a ultima possui uma grande quantidade de ´ frameworks e ´ mais usada no desenvolvimento de jogos. Importante dizer que existem e aplicativos que convertem aplica¸˜es em Java para que possam ser utilizadas em Palm co OS, uma otima sa´ para escapar do padr˜o de desenvolvimento em palms. Existem ´ ıda a ainda outras linguagens para Palm OS, mas que n˜o possuem tantos recursos, tais como: a Satellite Forms, Codewarrior, AppForge, NSBasic, CASL e PDAToolBox. Existem ferramentas RAD (Rapid Application Development) muito bem documenta- das para auxiliar no desenvolvimento em Palm OS, ´ o caso da Handheld Basic (HB++), e que ´ muito bem aceita pela comunidade de desenvolvedores . O PocketStudio ´ outra e e ferramenta de desenvolvimento do tipo RAD, semelhante ao Delphi, que ajuda muitos desenvolvedores a construir aplica¸oes com maior facilidade para o Palm OS. Atualmente c˜ essas s˜o as mais usadas no desenvolvimento de aplica¸˜es comerciais para palms. a co Ap´s a PalmSource ser comprada pela Access as pr´ximas vers˜es devem ser baseadas o o o no sistema operacional Linux. Atualmente os dispositivos palms est˜o sendo comerciali- a zados tamb´m com Windows Mobile justamente pelas restri¸˜es para o desenvolvimento e co no sistema operacional Palm OS (PALMBRASIL, 2009b). 2.2.5 BlackBerry OS O BlackBerry OS ´ o sistema operacional para smartphones BlackBerry da empresa e Canadense RIM (Research in Motion). O SO possui como ponto sobressalente a sua consagrada ferramenta de sincroniza¸ao de e-mails. Assim que o servidor recebe o e-mail c˜ este ´ enviado para o dispositivo. Inicialmente deixava a desejar no quesito design, por´m e e passa por constantes aprimoramentos neste quesito e em outros recursos. Suas vers˜es o mais atuais apresentam recursos como menus recolh´ ıveis, navega¸ao por fotos, gerenciador c˜ de arquivos dedicado e oferece suporte para aplicativos desenvolvidos em Java ME (RIM, 2009). ´ E o terceiro sistema operacional para dispositivos m´veis mais vendido do mundo e o o segundo dos Estados Unidos. Teve um crescimento muito r´pido, chegando a ser o mais a vendido nos Estados Unidos no primeiro trimestre de 2009 (ADMOB, 2009). 2.2.6 Iphone OS O Iphone OS ´ o sistema operacional propriet´rio do Iphone, desenvolvido pela Apple. e a Atualmente conhecido como Mac OS X Snow Leopard, semelhante ao sistema OS X que roda nos computadores Macintosh. Este SO introduziu diversas tecnologias de primeira
  19. 19. 2.3. An´lise do Mercado a 10 linha com uso de 64 bits, proporcionando a mais r´pida implementa¸˜o de javascript e a ca acesso a Web, chegando a ser 53 vezes mais r´pido quando usa o mini navegador Safari. a Outra poderosa tecnologia implementada ´ o OpenCL(Open Computing Language) que e possibilita aos desenvolvedores maior otimiza¸ao em aplica¸˜es que usam recursos gr´fi- c˜ co a cos. Possui uma tecnologia de multicondutores que agiliza a distribui¸˜o de tarefas em ca multiplos processadores (APPLE, 2009a). Em compara¸˜o ao Android por exemplo, ´ not´vel que o sistema operacional do ca e a Iphone ´ muito superior em qualidade e eficiˆncia, ainda mais se compararmos o acesso a e e Web, pois o Iphone j´ conquista e domina o mercado e n˜o deixa a desejar em nenhum a a aspecto, com exce¸ao do custo. A linguagem de desenvolvimento para o iPhone ´ o c˜ e Objective-C, que ´ muito utilizada na plataforma MAC. Ela ´ orientada a objetos e e e difere do C no acr´scimo de transmiss˜o de mensagens, ao estilo da linguagem Smalltalk. e a Tamb´m existem iniciativas Open Source para converter c´digos em Python para C ou e o tamb´m de Java para Objective-C. e Para desenvolver aplicativos para o Iphone OS ´ necess´rio utilizar o Cocoa, um con- e a junto de frameworks orientado a objetos que disponibiliza um ambiente de execu¸ao para c˜ as aplica¸oes serem executadas em MAC OSX e Iphone OS. E ´ c˜ ´ o unico ambiente de apli- ca¸ao para Iphone OS. As aplica¸˜es existentes no MAC OSX e no Iphone OS s˜o Cocoa, c˜ co a portanto para desenvolver aplica¸oes Java para o sistema operacional do Iphone ´ neces- c˜ e s´rio usar ferramentas que convertem o c´digo Java para a implementa¸ao da biblioteca a o c˜ Cocoa. Tamb´m existem frameworks para converter Python, Ruby, Perl, C# e Objective- e Basic em Objective-C, utilizando o Cocoa (APPLE, 2009b). 2.3 An´lise do Mercado a As plataformas da Apple, Google e Palm s˜o, hoje, as que mais se destacam no mer- a cado mundial. Segundo JONES (2009), analista de mobilidade e tecnologias sem fio do Gatener, a Microsoft est´ lutando para sobreviver no celular, pois se voltou demais para a o mercado corporativo e deixou de lado o mercado dom´stico, ficando fraca diante do e iPhone, Symbian e Android. Apenas trˆs plataformas devem sobreviver, mas ´ dif´ dizer hoje exatamente quais e e ıcil ´ s˜o. ”E uma batalha de ecossistemas que dependem de fatores como recursos do equi- a pamento, estilo, pre¸o e oferta de aplicativos e n˜o s´ da plataforma em si.” (JONES, c a o 2009).
  20. 20. Cap´ ıtulo 3 Java Micro Edition Neste cap´ ıtulo s˜o apresentadas as caracter´ a ısticas da plataforma Java Micro Edition (Java ME), bem como suas tecnologias e arquitetura. 3.1 Vis˜o geral a Segundo a SUN (2009b), o Java ME ´ uma cole¸˜o de tecnologias e especifica¸oes que criam e ca c˜ uma plataforma que se ajusta aos requisitos de dispositivos m´veis tais como produtos de o consumo, dispositivos embarcados e dispositivos m´veis avan¸ados. o c O Java ME ´ a plataforma Java voltada para dispositivos que possuam capacidade de e mem´ria, tela e processamento restritos. Foi constru´ com o objetivo de fornecer um o ıda ambiente de execu¸˜o Java capaz de lidar com as caracter´ ca ısticas particulares de pequenos dispositivos. Para utilizar a mesma plataforma em dispositivos diferentes o Java ME foi baseado em trˆs elementos, especificados pela comunidade JCP, que define todos requisitos da e plataforma Java, incluindo a especifica¸˜o de APIs. Os trˆs elementos citados s˜o: Con- ca e a figura¸oes, perfis e pacotes opcionais, os quais funcionam sobre uma m´quina virtual c˜ a Java, por sua vez ligada a um sistema operacional. Dessa forma podemos representar a hierarquia dos elementos nas camadas apresentadas na Figura 3.1. 11
  21. 21. 3.1. Vis˜o geral a 12 Figura 3.1: Elementos da plataforma Java ME. Na camada de configura¸ao s˜o definidas as bibliotecas necess´rias para o funciona- c˜ a a mento da m´quina virtual. A JCP especificou o Java ME em duas configura¸oes de acordo a c˜ com as necessidades dos dispositivos: CLDC (Connected, Limited Device Configuration) e CDC (Connected Device Configuration), de forma que: • CLDC especifica o ambiente Java para dispositivos com capacidades mais restritas, como telefones celulares, PDAs e smartphones. • CDC ´ destinada a dispositivos com maior capacidade de mem´ria e processamento, e o como TV digital, dispositivos sem fio de alto n´ e sistemas automotivos. ıvel Dentro da configura¸ao existe uma outra classifica¸˜o, os perfis. Estes formam um c˜ ca conjunto de aplica¸oes que complementa uma configura¸ao e fornece funcionalidades para c˜ c˜ desenvolver um aplicativo para determinado dispositivo. O perfil associado a CLDC ´ o MIDP (Mobile Information Device Profile). E os asso- e ciados a CDC s˜o: FP (Foundation Profile), PP (Personal Profile), PBP (Personal Basis a Profile), RMIP (Remote Method Invocation Profile) e GP (Game Profile) (JOHNSON, 2007). Os principais pacotes opcionais est˜o inseridos em um conjunto de APIs utilizadas com a as configura¸oes e perfis para estender funcionalidades n˜o encontradas nos respectivos c˜ a pacotes, como APIs para bluetooh e wireless. Quanto a m´quina virtual, a JCP especifica a CDC HotSpot Implementaion e a CLDC a HotSpot Implementation, que substitu´ ıram respectivamente a CVM (Compact Virtual Machine), vinculada a configura¸˜o CDC e a KVM (Kilo Virtual Machine), vinculada a ca CLDC. A Figura 3.2 mostra a arquitetura da plataforma Java.
  22. 22. 3.2. Configura¸oes c˜ 13 Figura 3.2: Arquitetura da plataforma Java. 3.2 Configura¸oes c˜ A configura¸˜o define uma especifica¸ao padr˜o para uma mesma classe de dispositivos, ca c˜ a definidos por caracter´ ısticas individuais de hardware, como interface, processamento, me- m´ria, v´ o ıdeo, tipo de conex˜o de rede, entre outras (TOPLEY, 2002). Esta camada possui a as bibliotecas b´sicas da linguagem, representando a plataforma m´ a ınima de desenvolvi- mento para cada tipo de dispositivo. Tais configura¸oes s˜o definidas pelos fabricantes a c˜ a fim de proporcionar um ambiente de desenvolvimento para funcionar em um determinado dispositivo. Cada configura¸ao consiste de uma m´quina virtual Java (Java Virtual Machine - c˜ a JVM), seja da Sun, do pr´prio fabricante, ou de terceiros e de uma cole¸ao de classes o c˜ Java. Devido as restri¸oes de hardware dos dispositivos m´veis, as m´quinas virtuais c˜ o a utilizadas na plataforma Java ME n˜o suportam todas as caracter´ a ısticas da linguagem Java, instru¸oes bytecodes e softwares de otimiza¸ao providenciados pela plataforma Java c˜ c˜ SE n˜o s˜o suportados, sendo assim diferentes das demais JVMs (TOPLEY, 2002). a a A JCP especificou duas configura¸oes para Java ME, CLDC e CDC. Dentre elas abor- c˜ daremos a configura¸ao CLDC, visto que esta aborda celulares e smartphones, cujo ´ o c˜ e objetivo deste trabalho. A Connected, Limited Device Configuration - CLDC ´ a configura¸˜o m´ e ca ınima do Java ME, formada por um subconjunto de pacotes dispon´ ıveis na plataforma Java para desktop
  23. 23. 3.2. Configura¸oes c˜ 14 e abrange os dispositivos com grandes restri¸˜es de processamento, mem´ria e v´ co o ıdeo, como celulares, smartphones, pagers e PDAs. Os dispositivos desta configura¸ao tˆm pelo menos 16 ou 32 bits, 160k de mem´ria c˜ e o n˜o vol´til (onde s˜o armazenadas as bibliotecas e a m´quina virtual), fonte limitada de a a a a energia e pelo menos 16 Mhz de velocidade. Al´m disso ´ necess´rio 192k de mem´ria e e a o para a plataforma Java e suportar conex˜o com rede sem fio, por´m com capacidade de a e transmiss˜o limitada (JOHNSON, 2007). a A CLDC est´ dispon´ nas vers˜es 1.0 (JSR 30) e 1.1 (JSR 139) (SUN, 2006e). A a ıvel o principal caracter´ıstica da vers˜o 1.0 ´ a ausˆncia de opera¸oes que use ponto flutuante, a e e c˜ por´m j´ existem classes que simulam esta propriedade para dada configura¸˜o (CLAU- e a ca SEN, 2003). Segundo a SUN (2007), as classes desta configura¸˜o est˜o restritas a apenas quatro ca a pacotes: • java.io - Tratamento de entrada e sa´ de dados usando streams (abstra¸ao). ıda c˜ • java.lang - Classes b´sicas da linguagem Java. a • java.util - Classes de utilidades gen´ricas (estruturas de dados e manipula¸ao de e c˜ dados). • java.microedition.io - Exclusivamente da plataforma Java ME, incluindo as classes de conex˜o. a A CLDC 1.1 ´ uma configura¸˜o que engloba os pacotes da vers˜o 1.0 e suporta as e ca a seguintes caracter´ ısticas: • Ponto flutuante - Possibilita opera¸oes com vari´veis do tipo float/double. c˜ a • ClassLoading - Classe abstrata respons´vel por carregar outras classes. a • Garbage Collector - Coletor de lixo dos objetos. • Finalize() - Com esse m´todo ´ poss´ liberar recursos e executar outras opera¸˜es e e ıvel co de limpeza antes que o objeto seja recuperado por coleta de lixo (garbage collector ). • JNI (Java Native Interface) - Classe de interface nativa que possibilita a m´quina a virtual acessar bibliotecas acessadas com o c´digo nativo de um sistema. o • ThreadGroups - Possibilita que os processos sejam executados simultaneamente, possibilitando a organiza¸ao das threads em grupos. A multiThreading suporta c˜ m´ltiplas linhas de execu¸ao atrav´s das fun¸oes start(), interrupt(), pause(), re- u c˜ e c˜ sume() e stop() para o controle das threads.
  24. 24. 3.3. Perfis 15 • RMI (Remote Method Invocation) - Permite o acesso a objetos remotos que podem ser invocados de diferentes m´quinas Java. a 3.3 Perfis Perfil ´ definido como um conjunto de APIs que especificam o n´ de interface de e ıvel aplica¸˜es para um classe de dispositivos (JCP, 2009c). Assim um perfil pode especificar co v´rios tipos de servi¸os e funcionalidades de alto n´ a c ıvel, como o ciclo de vida da aplica¸ao, c˜ elementos de interface gr´fica, persistˆncia de dados e meios de comunica¸˜o. Um perfil ´ a e ca e implementado no topo de uma configura¸ao, sendo assim intimamente ligado a esta, po- c˜ r´m compreende bibliotecas mais espec´ e ıficas que as disponibilizadas pelas configura¸oes, c˜ ou seja, o perfil complementa a configura¸ao adicionando classes que fornecem caracte- c˜ r´ ısticas apropriadas para um tipo particular de dispositivos. Tanto os perfis quanto as configura¸oes s˜o especifica¸˜es de baixo n´ c˜ a co ıvel. As aplica¸oes m´veis s˜o portanto constru´ c˜ o a ıdas sobre configura¸˜es e perfis e podem co apenas usar bibliotecas especificadas por estas. Uma configura¸ao pode conter v´rios c˜ a perfis, por´m um perfil ´ ligado somente a uma configura¸ao. E um perfil ainda pode ter e e c˜ outros perfis ligados a ele (TOPLEY, 2002). Para a configura¸˜o CLDC temos o perfil MIDP (Mobile Information Device Profile ca - JSR 37 ), que ´ amplamente utilizado e providencia o desenvolvimento para pequenos e dispositivos, de recursos limitados e com capacidade de conex˜o sem fio, como os celulares, a smartphones e alguns PDAs. No pr´ximo cap´ o ıtulo ser˜o abordados mais detalhes sobre o a perfil MIDP. 3.4 M´quinas Virtuais a A Sun especifica duas m´quinas virtuais para a configura¸ao CLDC: KVM e CLDC a c˜ HotSpot Implementation. • KVM ´ E uma m´quina virtual com fun¸oes reduzidas, com uma pequena mem´ria e com a c˜ o um coletor de lixo (garbage collector ) incorporado para a otimiza¸ao da mem´ria c˜ o (TOPLEY, 2002). Esta ´ uma VM (Virtual Machine) especificada pela SUN, que e implementa as necessidades e restri¸oes impostas pela configura¸˜o CLDC. O K do c˜ ca termo KVM surgiu para fazer alus˜o aos poucos kilobytes necess´rios para que a a a VM execute uma aplica¸ao. Ela n˜o compila o c´digo e sim o interpreta para o c˜ a o sistema operacional.
  25. 25. 3.5. Pacotes Opcionais 16 • CLDC HotSpot Implementation ´ E uma VM de alto desempenho e robustez da SUN, para celulares e dispositivos de caracter´ısticas restritas. Foi implementada para ter um desempenho melhor que a KVM, utilizando a mesma quantidade de mem´ria restrita que os pequenos o dispositivos oferecem. Esta m´quina virtual suporta CLDC 1.0 e 1.1, por´m agora a e exige do processador pelo menos 32 bits com uma velocidade de clock de 60 MHz, 600KB de mem´ria RAM e 2 MB de mem´ria flash e ROM. Aplica tecnologias o o utilizadas na plataforma Java SE e Java EE, incorpora diversos designs inovadores, diminui o tempo de in´ ıcio das aplica¸oes, oferece vida longa a bateria e possui c˜ compila¸˜o dinˆmica das instru¸oes de bytecode em instru¸oes nativas, chamada de ca a c˜ c˜ compila¸˜o Just-in-time (SUN, 2008a). ca Segundo LUZ (2009), a compila¸˜o Just-in-time ´ uma das mudan¸as mais impor- ca e c tantes, pois a compila¸˜o dinˆmica pode ser cinquenta vezes mais r´pida que uma ca a a instru¸ao interpretada. c˜ 3.5 Pacotes Opcionais Pacotes opcionais s˜o componentes muito importantes da plataforma Java ME. Po- a demos enxergar como extens˜es de perfis, al´m de oferecerem apoio em ´reas com fun- o e a cionalidades restritas que alguns dispositivos e aplica¸oes precisam, tais como troca de c˜ mensagens, multim´ ıdia, servi¸os e localiza¸ao geogr´fica. c c˜ a Os perfis podem concentrar-se em apoiar apenas as capacidades que a maioria ou todos os dispositivos em uma classe necessitam, enquanto pacotes opcionais fornecem tipos espec´ ıficos de funcionalidades. Todos os pacotes opcionais do Java ME s˜o definidos a pela JCP, estes pacotes tamb´m s˜o chamados de APIs. Podendo ser obrigat´rios ou e a o n˜o, tal decis˜o cabe aos desenvolvedores ou fabricantes inclu´ a a ı-los em um determinado produto. Os pacotes opcionais passam por um processo de aprova¸ao atrav´s da MSA (Mobile c˜ e Service Architecture) ap´s serem constru´ o ıdos pelos desenvolvedores. Depois de aprovados s˜o disponibilizados seguindo as especifica¸oes da JCP. Alguns exemplos de pacotes opcio- a c˜ nais s˜o: API para suporte bluetooth (JSR 82), API para acesso as funcionalidades nativas a do aparelho como agenda, calend´rio e acesso a arquivos (JSR 75 - File Connection API ), a API de seguran¸a e servi¸os confi´veis (JSR 177), entre outras (SUN, 2009a). c c a
  26. 26. Cap´ ıtulo 4 Perfil MIDP Neste cap´ıtulo s˜o apresentadas as caracter´ a ısticas do perfil MIDP, bem como o fun- cionamento de uma aplica¸ao. Ser˜o apresentados os principais conceitos relacionados ` c˜ a a interface e armazenamento persistente. 4.1 Vis˜o Geral do MIDP a O MIDP - Mobile Information Device Profile ´ um perfil suportado pela configura¸˜o e ca CDLC, onde juntos providenciam um ambiente padr˜o de execu¸ao Java para os mais a c˜ populares dispositivos m´veis, como os celulares e PDAs. Este perfil provˆ um conjunto de o e bibliotecas e classes que fornecem suporte ao desenvolvimento de aplica¸˜es que referem- co se a diferentes aspectos, como sistema de armazenamento persistente, interface com o usu´rio, transa¸oes seguras, gerˆncia de sons, entre outros. a c˜ e De acordo com JOHNSON (2007), o MIDP apresenta diversas funcionalidades, entre elas est˜o a reprodu¸ao de multim´ a c˜ ıdia, suporte a protocolos dos tipos HTTP e sockets, suporte ao sistema de cores RGB, defini¸˜o de formul´rios e itens, APIs para jogos e ca a valida¸ao de permiss˜es de seguran¸a e assinaturas digitais. c˜ o c Segundo a SUN (2006e), os recursos m´ ınimos de hardware do perfil MIDP s˜o: a • 130KB de mem´ria n˜o vol´til para persistˆncia de dados e bibliotecas da CLDC o a a e • 32KB de mem´ria vol´til para a execu¸˜o do Java o a ca • Conectividade com algum tipo de rede sem fio • Interface gr´fica a • Uma tela de pelo menos 96 pixels de largura por 54 de altura 17
  27. 27. 4.1. Vis˜o Geral do MIDP a 18 Alguns recursos m´ ınimos de software tamb´m s˜o requeridos, tais como: possuir re- e a cursos suficientes para executar a m´quina virtual Java, tratamento de exce¸oes, pro- a c˜ cessamento de interrup¸˜es, acesso de leitura e escrita ` rede sem fio, mecanismos para co a capturar a entrada de dispositivos de entrada, recursos para ler e gravar em mem´ria n˜o o a vol´til, oferecendo suporte persistente aos dados e escrita de elementos gr´ficos na tela a a (JOHNSON, 2007). As especifica¸˜es deste perfil s˜o definidas pela JCP, definindo uma plataforma para co a desenvolvimento seguro e dinˆmico. Atualmente o MIDP possui as vers˜es 1.0 (JSR a o 37), 2.0 (JSR 118), 2.1 (JSR 118) e 3.0 (JSR 271). Por´m esta ultima ainda n˜o est´ e ´ a a dispon´ ıvel para utiliza¸ao. A vers˜o 1.0 trabalha integrada com a configura¸˜o CLDC c˜ a ca 1.0 ou 1.1. N˜o tem nenhuma API ativa para renderiza¸˜o, n˜o oferece suporte para a ca a acesso direto aos pixels de imagens, n˜o tem suporte para full screen/full canvas sem a uma API propriet´ria e tamb´m n˜o possui suporte direto para audio. Inclui APIs para a e a ´ o ciclo de vida de aplica¸˜es, conectividade de redes HTTP, interface com o usu´rio e co a armazenamento persistente. O unico protocolo de rede que o MIDP 1.0 suporta ´ o ´ e HTTP (SUN, 2002). Segundo a SUN (2006c), os pacotes suportados pela vers˜o 1.0 s˜o: a a • javax.microedition.io - Fornece suporte ao framework GenericConnection da confi- gura¸ao CLDC. c˜ • javax.microedition.lcdui - API que providencia um conjunto de caracter´ ısticas para a implementa¸˜o de interfaces com o usu´rio. ca a • javax.microedition.rms - Providencia um mecanismo de persistˆncia de dados para e MIDlets. • javax.microedition.midlet - O pacote MIDlet define aplica¸oes MIDP e intera¸oes c˜ c˜ entre as aplica¸˜es e o ambiente no qual a aplica¸ao ´ executada. co c˜ e A vers˜o 2.0 ´ compat´ com a vers˜o 1.0 e adiciona novas melhorias como suporte a e ıvel a a conex˜o segura (HTTPS), biblioteca de multim´ ` a ıdia, formul´rio de entrada de dados a aprimorada, sens´ melhoria na API de suporte a games, conceito de aplica¸˜es confi´veis ıvel co a (trusted ) e n˜o confi´veis (untrusted ). Al´m de HTTPS, o MIDP 2.0 suporta HTTP, a a e datagramas, sockets e SMS (Short Message Service). Quanto a multim´ ıdia, um conjunto de APIs foram introduzidas, que s˜o na verdade um subconjunto da Mobile Media API a (MMAPI). Com estas APIs podem ser gerados simples toques, sequˆncias mais completas e ou at´ mesmo m´sicas completas no formato WAV, al´m de poderem ser implementados e u e em outros formatos. Dentre as mudan¸as nos formul´rios de entrada destacam-se a nova aparˆncia do Form c a e que ´ consideravelmente mais sofisticada do que era no MIDP 1.0 e a classe Item, onde e
  28. 28. 4.1. Vis˜o Geral do MIDP a 19 agora podem ser especificados layouts horizontais, verticais, novas linhas antes ou depois de itens, entre outros. Um novo item tamb´m foi criado, o Spacer, que serve pra colocar e espa¸amentos entre os demais itens dispon´ c ıveis. Tamb´m foi introduzido o tipo pop up ao e item choiceGroup, que ser´ estudado a frente. a ` No MIDP 2.0 tamb´m foram estendidos os comandos de manuseio. Adicionar co- e mandos aos itens agora ´ permitido. Tamb´m foi introduzida a classe CustomItem, que e e permite ao programador criar seus pr´prios itens. Nesta vers˜o o suporte a jogos ganha o a uma melhoria com o suporte a camadas na tela. Uma camada pode conter um fundo, ou- tra mostrar objetos, uma terceira camada poderia mostrar esfeitos especias ou qualquer outra coisa. Outra mudan¸a ´ o surgimento da classe GameCanvas, uma subclasse de c e Canvas - classe de baixo n´ que proporciona o desenvolvimento de jogos. Nesta vers˜o ıvel a as imagens podem ser representadas em arrays de inteiros e tamb´m suporta imagens em e RGB (SUN, 2002). Segundo a SUN (2006d), os pacotes que foram adicionados a esta vers˜o s˜o: a a • javax.microedition.lcdui.game - Providencia classes para o desenvolvimento de con- te´do rico para jogos em dispositivos wireless. u • javax.microedition.media - Compat´ com as especifica¸oes da API Mobile Media ıvel c˜ (JSR 135). • javax.microedition.media.control - Define o tipo espec´ ıfico, control, que pode ser usado como um player. • javax.microedition.pki - Autentica informa¸˜es para conex˜es seguras, atrav´s de co o e certificados. A vers˜o 2.1 do MIDP refor¸a a especifica¸˜o MIDP 2.0 tornando a diretiva layout LC- a c ca DUI obrigat´ria, os pacotes javax.microedition.io.SocketConnection e javax.microedition- o .io.HTTPConnection n˜o s˜o mais opcionais, entre outros requisitos para aprimorar a a a vers˜o 2.0. a A vers˜o 3.0 traz melhor suporte para dispositivos com telas maiores, suporte a MI- a Dlets para desenhar em telas secund´rias, armazenamento RMS seguro e acesso remoto a a bancos RMS (JCP, 2009a). Esta vers˜o requer no m´ a ınimo 1MB de mem´ria vol´til e tela o a de pelo menos 176x220 pixels. Ela ´ compat´ com o CLDC 1.0, mas o recomendado ´ e ıvel e o 1.1 e possui compatibilidade com as outras vers˜es do MIDP. No MIDP 3.0 a tela de o splash pode ser carregada sem a necessidade de ser criada uma classe em canvas com uma imagem e tempo controlado manualmente. Isto pode ser feito atrav´s de um atributo no e arquivo JAD, um arquivo de descri¸ao da aplica¸ao, que ser´ explicado posteriormente. c˜ c˜ a Os protetores de tela agora s˜o aplica¸˜es que s˜o destru´ a co a ıdas pelo gerenciador quando
  29. 29. 4.2. MIDlets 20 alguma tecla ´ pressionada ou algum evento ´ disparado. Al´m destas funcionalidades, e e e o MIDP 3.0 apresenta suporte a IP vers˜o 6, o que possibilita fazer parse de um ende- a re¸o IPv6 e a possibilidade de compartilhar bibliotecas entre os MIDlets em tempo de c execu¸˜o, conhecido como LIBlets (LUZ, 2009). ca 4.2 MIDlets ´ E uma aplica¸ao Java destinada para dispositivos m´veis desenvolvida com a utiliza¸ao c˜ o c˜ do perfil MIDP, que est´ vinculado a configura¸˜o CLDC (MUCHOW, 2001). a ca Todo dispositivo m´vel tem um gerenciador de aplicativos (AM - Application Mana- o ger ) que controla os aplicativos a serem instalados, onde e como ser˜o armazenados e a como ser˜o executados. A comunica¸ao do gerenciador com o MIDlet acontece pela classe a c˜ MIDlet do pacote javax.microedition.midlet.MIDlet. Os MIDlets devem herdar esta classe MIDlet que cont´m m´todos que inicializam, resumem, interrompem a execu¸˜o e des- e e ca troem MIDlets. Uma aplica¸ao ´ iniciada quando o AM invoca o m´todo startApp(), colocando a c˜ e e aplica¸˜o no modo ativo. Enquanto estiver executando ela pode ser pausada pela AM ca atrav´s do m´todo pauseApp(), isto pode ocorrer quando uma chamada for recebida por e e exemplo ou o pr´prio usu´rio pode pausar a aplica¸ao. E quando a aplica¸ao ´ encerrada o a c˜ c˜ e ela passa para o estado destru´ ıdo, atrav´s do m´todo destroyApp(), que limpa todos os e e recursos para fechar a aplica¸˜o (JOHNSON, 2007). ca O ciclo de vida do MIDlet ´ apresentado na Figura 4.1. e Figura 4.1: Ciclo de vida do MIDlet. Estes trˆs m´todos, segundo MUCHOW (2001), trata-se da comunica¸˜o que parte e e ca do gerenciador de aplicativos para o MIDlet. Al´m destes m´todos, tamb´m existem e e e outros trˆs onde a comunica¸ao parte do MIDlet para o gerenciador de aplicativos. Estes e c˜ m´todos s˜o: e a
  30. 30. 4.3. MIDlets Suite 21 notifyDestroy(): Avisa ao gerenciador que pode desligar a MIDlet. notifyPaused(): Envia o pedido de pausa para o gerenciador caso a MIDlet queira pausar. resumeRequest(): Avisa ao gerenciador que a MIDlet pode tornar-se ativa novamente. 4.3 MIDlets Suite MIDlet Suite consiste em um ou mais MIDlets que s˜o juntados em um Java Ar- a chive (JAR). E´ composto por classes Java, recursos e um arquivo de manifesto, que est˜o a situados dentro do arquivo JAR e um arquivo de descri¸ao, chamado Java Application c˜ Descriptor (JAD). Dentre os recursos est˜o imagens, dados da aplica¸˜o, entre outros. a ca No arquivo de manifesto, cuja extens˜o ´ .mf, est´ a descri¸ao do JAR. E o arquivo JAD a e a c˜ descreve os detalhes da aplica¸˜o, repetindo muitos do dados que est˜o no arquivo de ca a manifesto, por´m este arquivo est´ fora do JAR e pode ser acessado antes de se insta- e a lar o arquivo JAR no aplicativo (JOHNSON, 2007). As pr´ximas subse¸oes descrevem o c˜ detalhadamente cada um desses arquivos. 4.3.1 JAR Todas as MIDlets s˜o empacotadas antes de serem transferidas a um dispositivo, isso a ´ feito atrav´s de um m´todo de compress˜o onde s˜o colocadas todas as informa¸oes em e e e a a c˜ um unico arquivo cuja extens˜o ´ .JAR. Este arquivo engloba classes Java, recursos e ´ a e informa¸˜es do empacotamento, com citado anteriormente (MUCHOW, 2001). co O arquivo JAR providencia muitos benef´ ıcios, como: seguran¸a, atrav´s de assinaturas c e digitais; compress˜o; empacotamento de extens˜es, juntando v´rios tipos de extens˜es a o a o diferentes em uma unica: o .JAR; portabilidade e o fato de quando ´ necess´rio fazer o ´ e a download de uma aplica¸˜o apenas um arquivo deve ser baixado (SUN, 2008b). ca 4.3.2 JAD Conforme estudado, al´m do JAR ´ criado um arquivo em separado de extens˜o .JAD e e a que cont´m informa¸oes sobre o MIDlet. Este arquivo ´ usado muitas vezes para preparar e c˜ e o JAR para ser instalado, otimizando a instala¸ao do aplicativo, por´m nem todos os c˜ e aparelhos precisam ler o .JAD para realizar a instala¸˜o. O arquivo JAD possui a seguinte ca estrutura: MIDlet-Name: Nome da Suite MIDlet. MIDlet-Version: Vers˜o da MIDlet. a MIDlet-Vendor : Desenvolvedor da MIDlet.
  31. 31. 4.4. Interface 22 MIDlet-Icon: Especifica o ´ ıcone da tela inicial da aplica¸ao. c˜ MIDlet-Description: Descri¸˜o da aplica¸˜o. ca ca MIDlet-info-URL: Endere¸o para um arquivo de informa¸oes (JAR). c c˜ MIDlet-DATA-Size: Tamanho dos dados. 4.4 Interface Os dispositivos m´veis que implementam o perfil MIDP possuem diversas restri¸oes o c˜ quando se trata de interface, podendo variar em tamanho de tela, n´mero de cores apresen- u tadas na tela, disposi¸˜o dos bot˜es, etc. E estas informa¸oes s˜o acessadas pela MIDlet ca o c˜ a somente em tempo de execu¸ao. Sendo assim, o MIDP s´ permite a utiliza¸˜o de objetos c˜ o ca visuais simples, n˜o sendo permitida a implementa¸˜o de objetos comuns na vers˜o Java a ca a para desktop (JOHNSON, 2007). O Java ME tem como padr˜o para constru¸ao de interfaces a biblioteca LCDUI, que a c˜ ` ´ respons´vel pelos componentes que formam a interface de aplica¸oes MIDP. Nesta se- e a c˜ ¸ao estudaremos algumas classes desta biblioteca, que est˜o dispostas de acordo com a c˜ a hierarquia mostrada na Figura 4.2. Figura 4.2: Hierarquia de classes.
  32. 32. 4.4. Interface 23 Display e Displayable Para desenvolver interfaces que se encaixem em dispositivos m´veis com diferentes o caracter´ısticas de tela, as aplica¸˜es s˜o desenvolvidas com uma certa abstra¸ao. Para co a c˜ acessar as informa¸oes de um determinado aparelho existe a classe Display e cada MIDlet c˜ possui sua pr´pria instˆncia desta classe que pode ser acessada pelo m´todo getDisplay(), o a e que geralmente est´ contido no m´todo startApp(), pois o Display s´ pode ser acessado a e o depois que aplica¸˜o tenha sido iniciada. ca Portanto, a tela do dispositivo ´ representada por uma instˆncia da classe Display, e a que representa o hardware, e para que seja mostrado algo na tela devemos passar um objeto Displayable para o objeto da classe Display. Displayable ´ uma classe abstrata e que controla o que ´ mostrado na tela e os comandos enviados pelos usu´rios. Eles e a representam conte´dos de uma tela na qual h´ intera¸ao com o usu´rio (JOHNSON, u a c˜ a 2007). Cada aplica¸ao possui apenas uma instˆncia da classe Display, sendo assim podem c˜ a existir v´rios objetos Displayable mas apenas um ´ mostrado por vez (MUCHOW, 2001). a e Os objetos Displayable que est˜o na mem´ria, mas n˜o est˜o sendo mostrados est˜o no a o a a a chamado background e o objeto que est´ sendo mostrado est´ no foreground. Portanto os a a objetos que est˜o no background n˜o tem acesso ao Display. Para mostrar um Displayable a a na tela usamos o m´todo setCurrent() e para obter qual objeto est´ sendo mostrado no e a Display usamos o m´todo getCurrent() (JOHNSON, 2007). e A classe Displayable da origem a duas outras classes: Screen e Canvas. Ambas s˜o a classes para representar interfaces, por´m a primeira classe, juntamente com suas subclas- e ses formam componentes de interface de alto n´ e a segunda de baixo n´ (MUCHOW, ıvel ıvel 2001). Screen Screen ´ uma classe que cont´m objetos gr´ficos prontos, onde cada uma pode ter uma e e a aparˆncia, variando de acordo com o dispositivo em que esta sendo executada a aplica¸ao e c˜ (JOHNSON, 2007). Screen e suas heran¸as s˜o classificadas como objetos de interface de c a alto n´ (High-Level APIs) e as heran¸as desta classe s˜o as classes Form, List, Alert e ıvel c a Textbox (MUCHOW, 2001). Form Form ´ um formul´rio o qual pode conter textos, imagens e outros componentes para e a serem exibidos no visor. V´rios componentes podem ser colocados em um Form e se a houver necessidade ele apresenta barra de rolagem autom´tica para mostrar todos estes a componentes visuais. Por´m nada muito extenso ´ vi´vel para aplica¸oes m´veis. e e a c˜ o
  33. 33. 4.4. Interface 24 Esses componentes que podem ser adicionados em um Form s˜o subclasses da classe a Item e ser˜o estudados posteriormente. Um Form possui m´todos para adicionar, inserir, a e apagar e substituir componentes. Estes componentes da classe Item s´ pode ser inseri- o dos em um Form e n˜o em outras telas da classe Screen, como List, Alert ou Textbox a (MUCHOW, 2001). Item Conforme mostrado um Item ´ um componente que pode ser inserido em um Form e e suas subclasses s˜o: a • StringItem ´ E um simples texto est´tico, ou seja, n˜o pode ser editado. a a • TextField ´ E um campo para entrada e/ou edi¸ao de texto. Podendo ser associadas regras a c˜ este. Por exemplo: aceitar somente n´meros, qualquer caracter, ser um campo de u senha, entre outros. • ImageItem Permite inserir uma imagem. • ChoiceGroup ´ E uma lista de escolhas, dentro de um Form. Possui os tipos: m´ltiplo, exclusivo u ou pop up. 1. M´ltiplo: Podem ser selecionadas v´rias op¸˜es, marcando uma caixa de che- u a co cagem que acompanha os elementos da lista; 2. Exclusivo: Pode ser selecionado apenas uma op¸ao e esta ´ marcada com um c˜ e radioButton. 3. Pop up: Pode ser selecionada apenas uma op¸ao. A lista ´ exibida como c˜ e uma comboBox, ou seja, os elementos ficam escondidos e quando clicada esta lista toda ´ exibida. Ap´s a sele¸ao de um elementos os outros elementos s˜o e o c˜ a escondidos novamente. • DataField Campo utilizado para exibir e/ou entrar com data e/ou hora.
  34. 34. 4.4. Interface 25 • Gauge ´ E uma representa¸ao gr´fica de um n´mero inteiro. Ele permite que o usu´rio c˜ a u a defina um n´ ıvel, como o volume por exemplo, se for um Gauge interativo. Se for n˜o interativo ´ somente o programa que o controla (MUCHOW, 2001). a e • Spacer Determina um espa¸amento vertical e/ou horizontal m´ c ınimo entre os componentes de um Form. Ele ´ utilizado por quest˜es de design de layout. e o • CustomItem Utilizado para criar itens espec´ ıficos, atrav´s de desenhos, utilizando a classe Graphics e da API de baixo n´ (MATTOS, 2005). ıvel List ´ E uma lista que permite ao usu´rio selecionar op¸oes. Estas podem ser tanto uma a c˜ String quanto uma imagem. O List pode ser exclusivo, m´ltiplo ou impl´ u ıcito. Impl´ ıcito ´ e quanto a lista ´ exibida sem nenhum marcador e somente uma op¸˜o pode ser escolhida, e ca gerando um evento quando ´ selecionada uma das op¸oes. Os outros dois tipos funcionam e c˜ igualmente ao ChoiceGroup (MATTOS, 2005). Alert ´ E uma tela de informa¸˜o ao usu´rio. Pode conter uma mensagem de erro, de sucesso, ca a de informa¸ao, entre outras. Ele pode ser programado para ser exibido durante um tempo c˜ pr´ determinado, pode ser composto de um texto e uma imagem e sua aparˆncia varia de e e acordo com o dispositivo m´vel usado (MATTOS, 2005). o TextBox e c˜ ´ Basicamente ´ uma tela que serve para entrada e edi¸ao de texto. E como se fosse um Item textField, por´m s´ existe ele na tela. Em um textBox tamb´m podem ser usadas e o e regras, assim como em um textField (SUN, 2006b). Canvas Canvas ´ uma classe de baixo n´ e ıvel, que proporciona maior liberdade na implementa¸˜o ca a ´ destinada a aplica¸oes que necessitam de posicionamento preciso dos gr´ficos e eventos. E c˜ dos elementos gr´ficos, sendo portanto muito utilizada para a cria¸ao de jogos. a c˜

×