DESENVOLVIMENTO DE UM JOGO DE DOMINÓ PARA ANDROID

Tamanho: px
Começar a partir da página:

Download "DESENVOLVIMENTO DE UM JOGO DE DOMINÓ PARA ANDROID"

Transcrição

1 UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA ESCOLA SUPERIOR DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO GEORGE DA ROCHA MEDEIROS NUNES DESENVOLVIMENTO DE UM JOGO DE DOMINÓ PARA ANDROID Manaus 2011

2 GEORGE DA ROCHA MEDEIROS NUNES DESENVOLVIMENTO DE UM JOGO DE DOMINÓ PARA ANDROID Trabalho de Conclusão de Curso apresentado à banca avaliadora do Curso de Engenharia de Computação, da Escola Superior de Tecnologia, da Universidade do Estado do Amazonas, como pré-requisito para obtenção do título de Engenheiro de Computação. Orientador: Prof. M. Sc. Jucimar Maia da Silva Júnior Manaus 2011

3 ii Universidade do Estado do Amazonas - UEA Escola Superior de Tecnologia - EST Reitor: José Aldemir de Oliveira Vice-Reitor: Marly Guimarães Fernandes Costa Diretor da Escola Superior de Tecnologia: Mário Augusto Bessa de Figueirêdo Coordenador do Curso de Engenharia de Computação: Danielle Gordiano Valente Coordenador da Disciplina Projeto Final: Raimundo Corrêa de Oliveira Banca Avaliadora composta por: Data da Defesa: 16/12/2011. Prof. M.Sc. Jucimar Maia da Silva Júnior (Orientador) Prof. M.Sc. Tiago Eugênio de Melo Prof. M.Sc. Antenor Ferreira Filho CIP - Catalogação na Publicação N972d NUNES, George Densenvolvimento de um jogo de dominó para Android / George Nunes; [orientado por] Prof. MSc. Jucimar Maia da Silva Júnior - Manaus: UEA, p.: il.; 30cm Inclui Bibliografia Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação). Universidade do Estado do Amazonas, CDU: 004

4 iii GEORGE DA ROCHA MEDEIROS NUNES DESENVOLVIMENTO DE UM JOGO DE DOMINÓ PARA ANDROID Trabalho de Conclusão de Curso apresentado à banca avaliadora do Curso de Engenharia de Computação, da Escola Superior de Tecnologia, da Universidade do Estado do Amazonas, como pré-requisito para obtenção do título de Engenheiro de Computação. BANCA EXAMINADORA Aprovado em: 16/12/2011 Prof. Jucimar Maia da Silva Júnior, Mestre UNIVERSIDADE DO ESTADO DO AMAZONAS Prof. Tiago Eugênio de Melo, Mestre UNIVERSIDADE DO ESTADO DO AMAZONAS Prof. Antenor Ferreira Filho, Mestre UNIVERSIDADE DO ESTADO DO AMAZONAS

5 iv Agradecimentos Agradeço a Deus, por permitir que eu desenvolvesse esse trabalho de conclusão de curso. Ao meus pais, Mário César e Maria Julieta, por terem me dado condições de cursar uma universidade estadual. Ao professor Jucimar Júnior pela compreensão, paciência e aceitar ser orientador desta monografia. Aos meus amigos de Engenharia da Computação, Bruno Mendes, Clarice Souza, Emiliano Firmino, João Guilherme, Victor Kaleb e Yasmine Souza que me acompanharam desde a metade final do curso e sempre me apoiaram e não me deixaram desistir. E ao Igor Jacaúna Martins, designer que fez a arte do jogo.

6 v Resumo Esta monografia descreve o desenvolvimento de um jogo de dominó para Android, um jogo popular no Amazonas onde é jogado com regras específicas que o tornam mais interessante. Palavras Chave: jogo, dominó, Android, Amazonas.

7 vi Abstract This thesis describes the development of a domino game for Android, a popular game on Amazonas where it is played with specific rules that make it more interesting. Key-words: domino, game, Android, Amazonas.

8 vii Sumário Lista de Figuras Lista de Códigos ix ix 1 Introdução Objetivo Geral Específicos Justificativa Metodologia Android História Open Handset Alliance Licença Fragmentação Segurança Características Arquitetura Kernel Runtime e Dalvik Bibliotecas de Sistema Camada de Aplicação O Kit de Desenvolvimento de Software (SDK) Dominó História Modalidade Amazonense

9 viii Início Saída Jogada Bucho Pontuação Passe Galo Batida Jogo fechado Fim do jogo Desenvolvimento Projeto Interface Gráfica Modelagem Codificação Imagens do jogo Conclusão Trabalhos futuros Referências Bibliográficas 49 6 Apêndice 50

10 ix Lista de Figuras 2.1 Arquitetura do Android Peças do jogo de dominó Inicio de uma partida na modalidade Amazonense de dominó Saída em uma partida na modalidade Amazonense de dominó Jogada em uma partida na modalidade Amazonense de dominó Jogada no bucho em uma partida na modalidade Amazonense de dominó Placar da partida após as jogadas da figura 3.4 e da figura Idéia inicial da tela de jogo Printscreen da interface Sony Ericsson Xperia Android 1.6 e Esboço da tela de jogo Diagrama de fluxo de telas do jogo Dominó Manaus Diagrama de Casos de Uso do jogo Dominó Manaus Diagrama de Atividades do jogo Dominó Manaus Diagrama de Classes do jogo Dominó Manaus Tela de menu principal e tela de início de jogo (saída) Vez do jogador humano e jogada inicial da 1a partida Vez do jogador máquina e tela de jogo fechado Recomeço de jogo fechado pela dupla adversária e jogada no bucho Jogada de carroça marcando 5 pontos Tela de garagem e nova partida iniciada pelo jogador que bateu Jogador humano sem jogada (só pode passar) e tela de pause Tela de fim de jogo e paginação do placar Tela de créditos

11 x Lista de Códigos AndroidManifest.xml Classe DominoManausGame.java Classe LoadingScreen.java Classe Assets.java Classe MainMenuScreen.java Atributos e Construtor da Classe GameScreen.java Método de update da Classe GameScreen.java Método present da Classe GameScreen.java Método updatesaida da Classe GameScreen.java Método saida da Classe Jogo.java Método update da Classe Jogo.java Método desenhapartida da Classe GameScreen.java Método updatefechado da Classe GameScreen.java Método updategaragem da Classe GameScreen.java

12 Capítulo 1 Introdução O dominó é um jogo de mesa tradicional no Amazonas, onde é disputado de maneira peculiar, com características e termos próprios. Por exemplo, as peças (ou pedras, como são chamadas) recebem nomes de acordo com a quantidade de pontos: 0 pontos - branco, 1 ponto - ás, 2 pontos - duque, 3 - terno, 4 - quadra, 5 - quina e 6 - sena. Pedras com as duas pontas iguais são chamadas de carroça. Na modalidade Amazonense, as partidas são disputadas por quatro participantes, que formam duas duplas e sentam em posições alternadas. A primeira partida é iniciada com a carroça de sena. É possível jogar nas 4 pontas da pedra inicial. Os pontos devem ser múltiplos de 5. O passe concede 20 pontos aos adversários. Ganha o jogo a dupla que fizer 200 ou mais pontos. Em 2011 foi realizada a 4 a edição da Copa A Critica de Dominó, evento promovido pela Rede Calderaro de Comunicação e que tem por finalidade incentivar a prática do esporte, que estimula o raciocínio lógico e proporciona integração e confraternização entre os participantes, conforme [Crítica2011]. O evento contou com a participação de 216 duplas e tinha como premiação a quantia de R$20.000,00 para a dupla 1 a colocada e de dois freezers cheios de cerveja para os 2 os colocados.

13 Objetivo Objetivo Geral Desenvolver um jogo de dominó para Android Específicos Design da GUI do jogo de dominó. Engine básica do jogo de dominó. Engine completa da modalidade Amazonense do jogo de dominó. Nível de dificuldade iniciante. Nível de dificuldade intermediário. 1.2 Justificativa Com a intenção de padronizar uma plataforma livre e de código aberto para celulares e atender às expectativas e tendências do mercado atual, empresas líderes em tecnologia móvel formaram um grupo chamado Open Handset Alliance (OHA). O grupo, liderado pelo Google, tem como integrantes nomes consagrados como a HTC, LG, Motorola, Samsung, Sony Ericsson, Toshiba, Sprint Nextel, China Mobile, T-Mobile, Asus, Intel, Garmim, entre outros. O resultado dessa união foi o nascimento do Android. De acordo com [Lecheta], o Android é uma nova plataforma de desenvolvimento para aplicativos móveis, baseada no sistema operacional Linux, com interface visual rica e ambiente de desenvolvimento multiplataforma. Segundo [Farago2011], em 2009 os sistemas operacionais móveis ios e Android cresceram em 5% do mercado de games nos Estados Unidos, com um volume total de US$ 500 milhões em vendas. Em 2010, o aumento foi de 8%. Isso representa um aumento de US$ 300 milhões em receita e equivale à metade da participação do mercado de videogames portáteis, uma concorrência para os fabricantes tradicionais.

14 Metodologia 3 Nos dados específicos para os dispositivos móveis, os números são ainda mais expressivos para os sistemas da Apple e da Google. As vendas de jogos para ios e Android saltaram de 10% em 2009 para 32% em 2010, fazendo com que as vendas de jogos do Nintendo DS reduzissem de 70% para 57%, e no caso do PlayStation Portable, a redução foi de 11% para 9%, no mesmo período. Outro dado a ser observado é que, segundo as análises, as vendas de jogos para ios e Android no ano passado foram maiores que as vendas de jogos para PCs, que arrecadou o volume total de US$ 700 milhões nos Estados Unidos. Os resultados dos estudos mostram que os smartphones com sistema Android e ios estão se tornando os preferidos entre os jogadores de videogames portáteis. 1.3 Metodologia Projetar as telas que o jogo irá possuir. Diagramar o fluxo das telas projetadas. Modelar o jogo de dominó utilizando UML. Criar as classes do jogo de dominó em Java. Montar o jogo em cima do framework. Criar as interfaces gráficas usando o framework. Tratar os eventos para cada tela utilizando o framework. Executar e testar o jogo em dispositivos móveis.

15 Capítulo 2 Android O Android é uma plataforma de código aberto para dispositivos móveis que inclui sistema operacional, middleware e aplicativos. 2.1 História A Android, Inc. foi fundada em Palo Alto, Califórnia, Estados Unidos, em outubro de 2003 por Andy Rubin (co-fundador da Danger), Rich Miner (co-fundador da Wildfire Communications, Inc.), Nick Sears (vice-presidente da T-Mobile) e Chris White (líder de projeto e desenvolvimento de interface na WebTV), para desenvolver, nas palavras de Rubin... dispositivos móveis mais inteligentes que conhecem melhor a localização e preferências de seus donos. Apesar das óbvias realizações passadas de seus funcionários iniciais, a Android Inc. operava secretamente, revelando apenas que estava trabalhando em software para celulares. O Google adquiriu a Android, Inc. em agosto de 2005, tornando-a uma subsidiária da Google Inc. Funcionários-chave como Andy Rubin, Rich Miner e Chris White, permaneceram na empresa após a aquisição. Pouco se sabia sobre a Android Inc. quando ela foi adquirida, mas muitos acharam que o Google estava planejando entrar no mercado de celulares com essa aquisição. A equipe liderada por Rubin desenvolveu uma plataforma para dispositivos móveis sobre o kernel do Linux e o Google apresentou a plataforma aos

16 Open Handset Alliance 5 fabricantes de celulares e operadoras com a premissa de ser uma plataforma flexível, aberta e de fácil atualização. Especulações sobre a intenção do Google em entrar no mercado de comunicações móveis continuaram a surgir até dezembro de Houveram rumores de que o Google estaria desenvolvendo um celular com a sua marca. Especulava-se que o Google estaria definindo especificações técnicas e estava mostrando protótipos para os fabricantes de celular e operadores de telefonia móvel. Em setembro de 2007 a InformationWeek 1 cobriu um estudo da Evalueserve reportando que o Google apresentou vários pedidos de patentes na área de telefonia móvel. No dia 5 de novembro de 2007, é revelada a Open Handset Alliance, um consórcio de 34 empresas de hardware, software e telecomunicações lideradas pelo Google com o objetivo de desenvolver padrões abertos para dispositivos móveis e também seu primeiro produto, o Android, uma plataforma para dispositivos móveis construída sobre o kernel 2.6 do Linux. Segundo [Zechner2011], desde o seu lançamento em 2008, o Android recebeu várias atualizações de versão, todas com nomes de sobremesa. Cada versão adicionou novas funcionalidades a plataforma Android, que são relevantes aos desenvolvedores de jogos de um jeito ou de outro. A versão 1.5 (Cupcake) adicionou suporte a bibliotecas nativas as aplicações Android, que antes eram restritas a serem escritas em Java puro. Código nativo pode ter muitos benefícios em sintuações onde o desempenho é o mais importante. versão 1.6 (Donut) introduziu support para diferentes resoluções de tela. Na versão 2.0 (Éclair) foi adicionado suporte a telas multi-toques, e na versão 2.2 (Froyo) adicionaram a compilação just-in-time (JIT) à máquina virtual Dalvik. O JIT acelera a execução de aplicações Android, dependendo do cenário, em até 5 vezes. A versão mais atual é a 2.3, chamada de Gingerbread, que adicionou um garbage collector concorrente ao da máquina virtual Dalvik. A 2.2 Open Handset Alliance Conforme [Pereira and Silva], a Open Handset Alliance consiste em todas as estruturas envolvidas no processo de telefonia móvel: 1

17 Licença 6 Operadoras de telefonia móvel: responsável pela conexão. Fornecem o serviço para o usuário final; Fabricantes de aparelhos: responsáveis pela criação do hardware; Empresas de semicondutores: fazem os chips dos aparelhos celulares; Empresas de software: desenvolvem os softwares que serão executados no Android; Empresa de comercialização: responsáveis pela divulgação, marketing e comercialização dos produtos para o usuário; Como refere [Zechner2011], muitos membros da OHA desenvolvem versões personalizadas do Android para seus dispositivos, com interface gráfica modificada - por exemplo a HTC Sense da HTC e a MOTOBLUR da Motorola. A natureza de código aberto do Android também permite que entusiastas criem e distribuam suas próprias versões do Android, chamadas de mods, firmwares ou ROMs. A mais conhecida ROM alternativa é desenvolvida por um colaborador conhecido como Cyanogen e tem como objetivo trazer as mais novas e melhores mudanças a todos os tipos de dispositivos com Android. 2.3 Licença O Android está disponível sob licenças livres e de código aberto, desde 21 de outubro de 2008 até março de O Google publicou o código fonte das modificações ao kernel do Linux sob a licença GNU General Public License versão 2, e o resto do código (incluindo a pilha de rede e telefonia) sob a licença Apache versão 2. E também mantem uma lista de correções revisadas aberta publicamente para qualquer um ver e comentar. A Open Handset Alliance desenvolve a parte sob licença GPL do Android, que são as modificações ao kernel do Linux, com código fonte disponível publicamente a qualquer momento. O resto do Android é desenvolvimento em particular, com código fonte liberado publicamente quando uma nova versão principal é lançada. Tipicamente o Google faz parceria com um fabricante de hardware para produzir um dispositivo carro-chefe figurando a nova versão do Android, tornando o código fonte disponível depois de o dispositivo ter sido lançado.

18 Fragmentação 7 No começo de 2011, o Google decidiu não publicar o código fonte da versão somente para tablets Honeycomb, criando dúvidas sobre seu compromisso com o código aberto do Android. A razão, segundo Andy Rubin (executivo responsável pelo Android e atual vice presidente senior do Google) em sua postagem no blog oficial do Android, foi porquê a Honeycomb foi apressada para a produção do Motorola Xoom, e eles não queriam terceiros criando uma experiência ruim para o usuário, tentando colocar em celulares uma versão que é destinada a tablets. O Google confirmou depois que o código fonte da Honeycomb não será liberado até que ela seja mesclada com a Gingerbread e lançada como Ice Cream Sandwich. Apesar de ser um software de código aberto, os fabricantes não podem usar a marca Google Android a menos que o Google certifique que o dispositivo é compatível com seu Documento de Definição de Compatibilidade. Dispositivos também devem obedecer a essa definição para poderem licenciar aplicações de código fechado do Google, como o Android Market. 2.4 Fragmentação De acordo com [Zechner2011], a grande flexibilidade do Android tem um preço: empresas que optam por desenvolver suas próprias interfaces gráficas tem que acompanhar o passo do lançamento de novas versões do Android. Isso pode levar celulares lançados a alguns meses a ficarem rapidamente desatualizados já que as operadoras e fabricantes de celulares se recusam a criar atualizações que incorporem as melhorias das novas versões do Android. A fragmentação tem várias caras. Para o usuário final, significa não poder instalar e usar certas aplicações e funcionalidades por estarem encalhados em uma versão antiga do Android. Para desenvolvedores, significa que alguns cuidados tem de ser tomados na criação de aplicações que devem rodar em todas as versões do Android. Enquanto aplicações escritas para as primeiras versões do Android rodarão normal em versões novas, o inverso não é verdadeiro. Algumas funcionalidades adicionadas em versões novas do Android não estão disponíveis em versões antigas, como o suporte ao multi-toque. Isso faz com que os desenvolvedores tenham que criar caminhos separados de código para diferentes versões do

19 Segurança 8 Android. No caso dos desenvolvedores de jogos, a preocupação maior é com a capacidade do hardware do que com a diferença entre as APIs. 2.5 Segurança Segundo [Pereira and Silva], como é executado em um kernel Linux, toda vez que um aplicativo for instalado em um dispositivo com Android, é criado um novo usuário Linux para aquele programa, com diretórios que serão usados pelo aplicativo, mas somente para aquele usuário Linux. Como os aplicativos ficam completamente isolados uns dos outros, qualquer tentativa de acessar informações de outro aplicativo precisa ser explicitamente autorizada pelo usuário, podendo ser negada a instalação do aplicativo, ou autorizada a instalação, mas controlando as permissões que este aplicativo poderá ter através de um mecanismo de permissão. Cada processo da aplicação no Android é considerado uma sandbox, um mecanismo de segurança que separa os programas em execução em um ambiente isolado, com acesso limitado aos recursos do sistema. Só é possível acessar outras aplicações caso tenha as permissões explicitamente declaradas, para que elas possam ser conhecidas desde o momento da instalação, e nada irá fazer com que sejam alteradas após isto. 2.6 Características O Android não é só mais uma distribuição Linux para dispositivos móveis. Muitas vezes o programador nem chega a ter contato direto com o kernel do Linux. A face do Android vista pelo programador é uma plataforma que abstrai a camada do kernel do Linux e é programada via linguagem Java. Em uma visão de alto nível, o Android possui algumas características: Uma camada de aplicação que fornece um conjunto de APIs para criar vários tipos de aplicação. Também permite a reutilização e substituição de componentes fornecidos pela plataforma e aplicativos de terceiros.

20 Arquitetura 9 A máquina virtual Dalvik, que é responsável por executar aplicações no Android e é otimizada para dispositivos portáteis. Navegador de internet baseado no motor de código aberto WebKit. Um conjunto de bibliotecas gráficas para programação 2D e 3D. Suporte multimídia para áudio comum, vídeo e formatos de imagem como Ogg Vorbis, MP3, AAC, AMR, MPEG-4, H.264, PNG, GIF e JPEG. Possui inclusive uma API especializada para tocar efeitos sonoros, útil no desenvolvimento de jogos. APIs para acessar periféricos como a camera, sistema de posicionamento global (GPS), bússola, acelerometro, tela sensível ao toque, dispositivos apontadores e teclado. Nem todos os dispositivos Android possuem todos esses periféricos, resultando na fragmentação de hardware. Ambiente de desenvolvimento rico, incluindo emulador de dispotivos, ferramentas de depuração, profiling de memória e desempenho e plugin para a IDE Eclipse. 2.7 Arquitetura A arquitetura do Android é composta de uma pilha de componentes e cada componente é construído sobre os componentes da camada inferior. A figura 2.1 mostra uma visão dos principais componentes do Android:

21 Arquitetura 10 Figura 2.1: Arquitetura do Android Kernel O Android baseia-se na versão 2.6 do Linux para os serviços centrais do sistema como segurança, gerenciamento de memória e de processos e rede. O kernel age com uma camada de abstração entre o hardware e o restante da pilha de software e fornece os drivers básicos para os componentes de hardware Runtime e Dalvik O runtime do Android é construido em cima do kernel do Linux e é responsável por criar e executar aplicações Android. Cada aplicação executa em seu próprio processo e com sua própria máquina virtual Dalvik. A Dalvik executa programas no formato de bytecode DEX. O arquivo comum.class do Java é transformado para o formato DEX através de uma ferramenta chamada dx que é fornecida no kit de desenvolvimento de software. O formato DEX foi projetado para ter

22 Arquitetura 11 menos utilização de memória se comparado com o arquivo.class clássico do Java. Isso é alcançado através de compressão pesada, tabelas e fusão de múltiplos arquivos.class. A máquina virtual Dalvik utiliza as bibliotecas de núcleo, que fornecem as funcionalidades básicas disponíveis para os programas Java. As bibliotecas de núcleo fornecem algumas, mas não todas, as classes disponíveis no Java SE por meio do uso de um subconjunto da implementação Java Apache Harmony. Isso quer dizer que não há Swing ou Abstract Window Toolkit (AWT) disponível, nem classes que podem ser encontradas no Java ME. Entretanto, com algum cuidado, ainda é possível utilizar muitas bibliotecas de terceiros disponíveis para Java SE na Dalvik. Antes do Android 2.2 (Froyo), todo bytecode era interpretado. O Froyo introduziu um compilador JIT rastreável, que compila partes do bytecode para código de máquina no momento do uso. O compilador JIT pode usar funcionalidades da CPU espeficiamente adaptados para processamentos especiais como a unidade de processamento de ponto flutuante (FPU) dedicada. A Dalvik também possui um garbage collector (GC) integrado. A versão 2.3 do Android (Gingerbread) tem um aperfeiçoado GC concorrente. Cada aplicação executando em uma instância da máquina virtual Dalvik tem um total de 16MB a 24MB de memória heap disponível Bibliotecas de Sistema Além das bibliotecas de núcleo, existe um conjunto de bibliotecas nativas em C/C++ que constroem a base para a camada de aplicação. Essas bibliotecas de sistemas são as principais responsáveis por tarefas computacionamente pesadas como renderização gráfica, reprodução de audio e acesso à banco de dados, que não seria adequado para a máquina virtual Dalvik. As APIs estão embrulhadas por meio das classes Java na camada de aplicação. Abaixo a relação das principais bibliotecas e suas características: System C library: uma implementação da biblioteca de sistema padrão C (libc) derivada do BSD, ajustada para dispositivos embarcados baseados em Linux. Surface Manager: gerencia o acesso ao subsistema de exibição e combina camadas 2D e 3D de multiplas aplicações.

23 Arquitetura 12 Skia Graphics Library (SGL): renderizador de gráficos 2D, é responsável por rederizar a interface gráfica das aplicações Android. 3D Libraries: uma implementação baseada no OpenGL for Embedded Systems (OpenGL ES), o padrão da indústria para renderizaçãp de gráficos acelerado por hardware. A versão 1.0 e 1.1 está disponível no Java em todas as versões do Android. A versão 2.0 que possui sombreadores (shaders) só está disponível no Android 2.2 (Froyo) em diante. Media Libraries: baseada na OpenCORE da PacketVideo, as bibliotecas permitem reprodução e gravação de audio, video e imagens em vários formatos populares como Ogg Vorbis, MP3, AAC, AMR, MPEG4, H.264, JPG e PNG. FreeType: é uma biblioteca para carregar e renderizar fonts bitmaps e vetoriais, mais especificamente o formato TrueType. SQLite: um leve e poderoso motor de banco de dados relacional disponível para todas as aplicações Camada de Aplicação A camada de aplicação reune as bibliotecas de sistema e o runtime, criando o lado do usuário do Android. A camada gerencia as aplicações e fornece um framework elaborado no qual as aplicações funcionam. Os desenvolvedores criam aplicações para essa camada através do conjunto de APIs Java que cobrem tais areas como programação da interface gráfica, serviços em segundo plano, notificações, gerenciamento de recursos, acesso a periféricos e assim por diante. Todas as aplicações de núcleo fornecidas juntamente com o Android, como o cliente de , são escritas usando essas APIs. Aplicações, sejam gráficas ou serviços de segundo plano, podem comunicar suas capacidades com outras aplicações. Um exemplo simples é uma aplicação que precisa tirar uma foto e então realizar alguma operação com ela. A aplicação requisita do sistema um componente de outra aplicação que fornece esse serviço. A primeira aplicação pode reusar o componente (por exemplo a aplicação nativa da câmera ou galeria de fotos). Isso re-

24 O Kit de Desenvolvimento de Software (SDK) 13 duz significativamente o fardo dos programadores e permite a personalização de diversos aspectos do comportamento do Android. Os desenvolvedores de jogos criam aplicações com interface gráfica nessa camada. Por isso é importante conhecer a arquitetura e o ciclo de vida da aplicação, e também como ela interage com o usuário. Por baixo de todas as aplicações estão uma serie de serviços e sistemas, incluindo: Um rico e extenso conjunto de Views que podem ser usados para construir aplicações, incluindo listas, grids, caixas de texto, botões e até mesmo um navegador que pode ser embutido. Content Providers que permitem aplicações acessar dados de outras aplicações (como o aplicativo nativo Contatos), ou compartilhar seus próprios dados. Um Resource Manager, fornecendo acesso a recursos que não são código fonte como cadeias de caracteres, desenhos e arquivos de disposição (layout). Um Notification Manager que permite a todas as aplicações exibirem alertas personalizados na barra de status. Um Activity Manager que gerencia o ciclo de vida das aplicações e fornece uma pilha de volta para navegação 2.8 O Kit de Desenvolvimento de Software (SDK) Para desenvolver aplicações para Android, utiliza-se o Kit de Desenvolvimento de Software (SDK) do Android. O SDK é composto por um conjunto de ferramentas, documentação, tutoriais e amostras que ajudaram o desenvolvedor a começar a qualquer momento. Também estão inclusas as bibliotecas Java necessárias para criar aplicações para Android. Essas contem as APIs da camada de aplicação. A maioria dos sistemas operacionais para desktop são suportados como ambiente de desenvolvimento. As características principais do SDK são: O depurador, capaz de depurar aplicações executando em um dispositivo ou emulador

25 O Kit de Desenvolvimento de Software (SDK) 14 O profile de memória e desempenho que ajudam a encontrar vazamentos de memória e identificar trechos de código lento O emulador de dispositivos, baseado no QEMU (uma máquina virtual de código aberto para simular diferentes plataformas de hardware), que, apesar de preciso, pode ser um pouco lento algumas vezes Utilitários de linha de comando para comunicar com os dispositivos Scripts prontos e ferramentas para empacotamento e instalação de aplicações O SDK pode ser integrado ao Eclipse, um completo e popular ambiente de desenvolvimento integrado (IDE) Java de código aberto. A integração é feita atraves do plugin Android Development Tools (ADT), que adiciona uma série de novas funcionalidades ao Eclipse para criar projetos, executar, depurar e analizar (profiling) aplicações no emulador ou em um dispositivo, além de empacotar e implantar aplicações no Android Market. É possível integrar o SDK a outras IDEs, como o NetBeans, mas não há suporte oficial pra isso.

26 Capítulo 3 Dominó Dominó é um tipo de jogo de mesa jogado com peças retangulares, dotadas de uma espessura que lhes dá a forma de paralelepípedo, em que uma das faces está marcada por pontos indicando valores numéricos. A figura 3.1 mostra as peças de dominó. O conjunto tradicional de dominós, conhecido como sino-europeu, é formado por 28 peças, ou pedras. O termo dominó também é usado para designar individualmente as peças que compõem este jogo. Uma das faces retangular de um dominó é divida em duas partes quadradas, ou pontas, que são marcadas por um número de pontos de 1 a 6, ou deixadas em branco. Figura 3.1: Peças do jogo de dominó 3.1 História De acordo com [Kelley1999], o dominó não tem sua origem esclarecida. É conhecido por inúmeros povos e, portanto, tem inúmeras variações. A primeira menção ao jogo de

27 Modalidade Amazonense 16 dominó vem da China. Segundo lendas daquele país, o jogo teria sido inventado por um funcionário do imperador Hui Tsung. Outra remete a invenção do jogo aos anos de 234 a 181 a.c, quando teria vivido Huang Ming, um soldado-herói. No Brasil, o jogo teria chegado com os portugueses no sec. XVI, virando passatempo para os escravos. 3.2 Modalidade Amazonense O dominó jogado no Amazonas tem regras bastante peculiares, tornando o jogo mais interessante. Além disso, é usada a seguinte nomeclatura para as pedras, conforme a quantidade de pontos em cada ponta: 0 pontos - branco, 1 ponto - ás, 2 pontos - duque, 3 - terno, 4 - quadra, 5 - quina e 6 - sena. A pedra [2 4] por exemplo é chamada de duque e quadra ou quadra e duque. Pedras com as duas pontas iguais são chamadas de carroça. A seguir são explicadas detalhadamente cada uma das características dessa modalidade Início Os jogadores de cada dupla sentam-se à mesa, de frente um para o outro, e colocam as pedras na mesa com a face marcada voltada para baixo para que possam ser misturadas, ilustrado na figura 3.2. Após a mistura cada jogador deve pegar 7 pedras. Caso algum jogador possua 5 carroças, ele deve mostrá-las aos outros jogadores que devem devolver suas pedras para que todas possam ser misturadas novamente.

28 Modalidade Amazonense 17 Figura 3.2: Inicio de uma partida na modalidade Amazonense de dominó Saída A saída é a jogada que inicia uma partida. Na primeira partida do jogo é realizada pelo jogador que possui a carroça de sena [6 6]. O jogador saído posiciona a carroça no centro da mesa voltada horizontalmente para sí, para que seja possível identificar a dupla que saiu. Um exemplo de saída feito pelo jogador 3 pode ser visto na figura 3.3. Figura 3.3: Saída em uma partida na modalidade Amazonense de dominó

29 Modalidade Amazonense Jogada Após a saída, o jogador à esquerda do jogador que iniciou a partida deve escolher uma pedra, entre as 7 que possui (chamada de mão ), cuja ponta corresponda a uma das pontas do jogo na mesa. Então deve encaixá-la na ponta da mesa com a ponta correspondente. Inicialmente as jogadas são feitas nos lados da pedra saída (e não nas pontas). As carroças são jogadas na perpedicular em relação as demais pedras. Na figura 3.4 é possível ver a jogada feita pelo jogador 4. Figura 3.4: Jogada em uma partida na modalidade Amazonense de dominó Bucho Após os dois lados da saída estarem ocupados, é possível jogar nas duas pontas da pedra saída, chamado de bucho. A jogada no bucho também recebe o nome de furar o bucho ou correr para o bucho em alusão a uma possível falta de pedra para jogar nas outras pontas. A figura 3.5 ilustra uma jogada feita no bucho pelo jogador 1.

30 Modalidade Amazonense 19 Figura 3.5: Jogada no bucho em uma partida na modalidade Amazonense de dominó Pontuação A pontuação é contada com múltiplos de 5. Caso o jogador anuncie que irá pontuar (chamado de cantar ) antes de efetuar sua jogada, e ao realizá-la, a soma das pontas da mesa corresponda a pontuação cantada por ele, essa pontuação é adicionada ao placar da dupla. Em pontas que houverem carroças, as duas pontas da carroça seram contabilizadas. Normalmente, os pontos são marcados usando papel e caneta, onde são anotadas as iniciais de cada jogador da dupla e para cada 5 pontos da dupla é marcado um traço, sendo o próximo traço marcado perpendicular ao primeiro, formando uma cruz, que equivale a 10 pontos (2 traços). A primeira cruz é desenhada grande e as 4 próximas são desenhadas menores nos quadrantes determinados pela primeira, fechando 50 pontos. Daí então é feito uma nova cruz grande para os próximos 10 pontos e assim por diante. Na figura 3.6 é possível observar o placar da partida após as jogadas da figura 3.4 e da figura 3.5, se os respectivos pontos tiverem sido contados.

31 Modalidade Amazonense 20 Figura 3.6: Placar da partida após as jogadas da figura 3.4 e da figura 3.5 Outra forma de marcar a pontuação é utilizando fichas pontuadas ou coloridas. São usadas 2 fichas de 5 pontos, 8 fichas de 10 pontos e 6 fichas de 50 pontos. Conforme os pontos são marcados pelas duplas, as fichas são trocadas por fichas de maior valor, até que uma dupla complete 200 pontos e devolva suas fichas para o marcador, chamado de pagar a casa. Novos pontos marcados pela dupla que pagou a casa são novamente contabilizados com as fichas correspondentes, lembrando sempre que esta dupla possui 200 pontos além daqueles representados pelas fichas que possui Passe Quando um jogador não possui nenhuma pedra que possa jogar, ele passa a vez ao próximo jogador a sua esquerda e são marcados 20 pontos para os adversários. Se o próximo jogador também não tiver pedra jogável, somente passa a vez, sem dar 20 pontos aos adversários, chamado de passe nas costas Galo Dá-se o nome de galo a jogada previamente cantada pelo jogador, na qual ele faz a sua jogada e nenhum outro jogador consegue jogar, sendo a vez novamente do jogador que deu o galo. Essa jogada por sí só vale 50 pontos (além dos pontos na mesa, se forem

32 Modalidade Amazonense 21 cantados). Caso um jogador cante galo e após a sua jogada algum outro jogador consiga jogar, chamado de galo gay, os 50 pontos são marcados para os adversários e a partida segue Batida É chamado de batida a jogada da última pedra de um jogador. Quando a batida é feita de carroça, se for cantada, dá direito a 20 pontos a dupla que bateu, chamado de dominó de 20. A batida encerra a partida e calcula-se a garagem, a soma das pedras dos adversários, que arredondada para baixo de um múltiplo de 5, é adicionada a pontuação da dupla que bateu. A partida seguinte, caso haja, é iniciada pelo jogador que bateu, que pode sair com qualquer carroça. Caso não tenha carroça, passa a vez (regra do passe), até que o próximo jogador que possua uma carroça possa começar a nova partida Jogo fechado O chamado jogo fechado ocorre quando nenhum jogador possui pedra possível de jogar. Nesse caso, a partida é encerrada e são somadas as mãos de cada dupla, sendo as somas diferentes, a maior soma arredondada para baixo de um múltiplo de 5, é computada ao placar da dupla de menor soma. A partida seguinte, caso haja, é iniciada pelo jogador que pegar a carroça de sena Fim do jogo O jogo termina quando, ao final de uma partida, uma dupla tenha somado 200 ou mais pontos. Em caso de empate, é jogado uma nova partida de desempate até que haja uma dupla vencedora.

33 Capítulo 4 Desenvolvimento Este capítulo descreve o desenvolvimento do jogo Dominó Manaus, uma versão eletrônica do jogo de dominó de mesa do mundo real. Por ser uma implementação da modalidade jogada no Amazonas, o jogo recebeu o nome da capital do estado, Manaus. 4.1 Projeto Nesta fase foram tomadas as decisões de projeto do jogo, como: Android 1.6 ou superior - para ser compatível com a maioria dos dispositivos com Android. Resolução de 240x320 - menor resolução de tela de um dispositivo com Android, por motivos de compatibilidade. Controles na tela (Touchscreen) - tecnologia disponível em todos os dispositivos com Android e de fácil uso. Modalidade Amazonense - o jogo deve conter todos os elementos da modalidade Amazonense de dominó. Na modalidade Amazonense de dominó, o jogador pode fazer 4 ações na sua vez: Cantar ponto - é preciso cantar ponto para que a pontuação seja computada.

34 Projeto 23 Cantar galo - é preciso cantar galo para ganhar os 50 pontos e poder jogar novamente. Jogar - ação de escolher uma pedra e uma ponta válida e realizar a jogada na mesa. Passar - ação realizada quando não se tem pedra possível de jogar. Para tornar o jogo eletrônico fiel à sua versão de mesa, definiu-se que o placar seguiría o modelo de marcação com papel e caneta, em que cada traço representa 5 pontos Interface Gráfica Definidos os requisitos, partiu-se para o design da tela do jogo. Nela o jogador deve poder visualizar as suas pedras, a mesa de jogo, a quantidade de pedras do seu parceiro e adversários, o placar e também poder realizar as ações descritas anteriormente quando for a sua vez. Uma idéia inicial de como seria a tela de jogo pode ser visto na figura 4.1. Figura 4.1: Idéia inicial da tela de jogo Devido a resolução limitada, optou-se por utilizar o artifício adotado pela Sony Ericsson em sua interface personalizada do Android em sua linha de celulares Xperia, na qual as principais funcionalidades podem ser realizadas por meio de ícones posicionados nos cantos da tela, conforme é possível observar na figura 4.2.

35 Projeto 24 Figura 4.2: Printscreen da interface Sony Ericsson Xperia Android 1.6 e 2.1 A figura 4.3 mostra um esboço da tela do jogo, com o espaço reservado aos ícones das ações e a forma como é realizada a jogada pelo jogador humano, na qual uma pedra fantasma aparece no lugar onde é possível se jogar a pedra escolhida. Para facilitar a escolha de uma pedra pelo jogador, foram adicionadas setas ao lado das suas pedras. Figura 4.3: Esboço da tela de jogo Nesta fase também foi elaborado o diagrama de fluxo de telas, que pode ser visto na figura 4.4. Ele é importante para se ter uma visão global de como será o jogo, descrevendo a sequência de transição das telas.

36 Modelagem 25 Figura 4.4: Diagrama de fluxo de telas do jogo Dominó Manaus Com o jogo projetado, passou-se para a fase de modelagem. 4.2 Modelagem A modelagem permite avaliar o projeto como um todo antes que se inicie a fase de codificação. Isso possibilita identificar e solucionar problemas antecipadamente, evitando retrabalho durante programação. É importante ressaltar que os diagramas apresentados a seguir representam a versão final do jogo, pois foram alterados durante a fase de codificação para atender às necessidades que não foram previstas. O primeiro diagrama produzido foi o de Casos de Uso, que identifica os atores e suas interações com o sistema. No jogo Dominó Manaus o único ator é o jogador humano, pois é ele quem interage com o sistema realizando as ações de pegar suas pedras, jogar, cantar ponto, cantar galo e passar a vez, conforme é possível ver na figura 4.5.

37 Modelagem 26 Figura 4.5: Diagrama de Casos de Uso do jogo Dominó Manaus Em seguida, produziu-se o diagrama de sequência, pois a partir dele seria possível analisar o passo a passo do programa e determinar se estava correto. A figura 4.6 mostra a versão final do diagrama de atividades do jogo Dominó Manaus.

38 Modelagem 27 Figura 4.6: Diagrama de Atividades do jogo Dominó Manaus

39 Modelagem 28 Conhecendo os atores, suas ações e o passo a passo do jogo, foi possível elaborar o diagrama de Classes, que pode ser visto na figura 4.7. Nele são especificadas as classes, seus atributos e métodos e como elas interagem entre si. As classes JogadorHumano e JogadorMaquina são especificações da classe Jogador e implementam seu método abstrato joga de maneiras diferentes.

40 Modelagem 29 Figura 4.7: Diagrama de Classes do jogo Dominó Manaus

41 Codicação 30 Com o projeto modelado, partiu-se a codificação do jogo. 4.3 Codificação A arquitetura do jogo estava definida, mas ainda não se sabia como implementá-lo para o Android. O que se sabia era que para programar para Android utilizava-se a linguagem Java, e por isso o primeiro passo foi criar as classes do jogo com seus atributos e métodos, uma vez que para isso não é necessário conhecimento das APIs do Android. Segundo [Zechner2011], todo jogo necessita de um pequeno framework para facilitar a comunicação com a camada do sistema operacional, podendo ser dividido em módulos como: Window management: responsável por criar uma janela e gerenciar o fechamento, pausa ou resumo da aplicação no Android. Input: relativo ao módulo Window management, monitora os Inputs do usuário (como eventos de toque na tela, pressionar de teclas e leitura do acelerometro). File I/O: permite acessar o disco para obter os recursos utilizados no jogo. Graphics: módulo responsável por carregar e desenhar na tela a parte gráfica do jogo. Audio: módulo responsável por carregar e tocar sons. Game framework: junta todos os anteriores e fornece uma base de fácil uso para codificar jogos. Cada módulo desse é composto de uma ou mais interfaces. Cada interface tem pelo menos uma implementação concreta que implementa a semântica da interface baseada no que a plataforma abaixo dela fornece, no caso o Android. Isso permite focar na semântica e não em detalhes de implementação. Além disso, mudanças na implementação da interface são transparentes à camada superior. Um exemplo seria trocar a renderização 2D feita pela CPU por OpenGL ES.

42 Codicação 31 O processo de criação e implementação do framework utilizado neste trabalho pode ser acompanhado em [Zechner2011] e por este motivo não será detalhado neste capítulo. No framework define-se uma resolução de tela nativa para a aplicação e a imagem da aplicação é ampliada ou reduzida conforme a resolução de tela do dispositivo onde ela será executada. O mesmo acontece com o sistema de coordenadas para os eventos de toque na tela. Isso faz com que o desenvolvedor somente precise se preocupar com uma única resolução de tela, a resolução nativa da aplicação. No caso do jogo Dominó Manaus, em que é preciso que todas a pedras da mesa possam ser vistas, as pedras precisam ter uma resolução pequena para que seja possível mostrar um maior número de pedras na mesa. Caso se optasse por uma resolução nativa alta, quando um dispositivo de baixa resolução executasse o jogo, talvez não fosse possível identificar a pedra por ela ter sido reduzida, por isso optou-se pela resolução nativa de 320x240 (menor resolução de tela de um dispositivo com Android). O primeiro passo foi editar o arquivo AndroidManifest.xml para definir a orientação da tela para paisagem e esconder o teclado virtual, adicionando os atributos screenorientation= landscape e configchanges= keyboard keyboardhidden orientation ao elemento <activity>, conforme é possível observar no Código <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="br.domino.manaus" 4 android:versioncode="1" 5 android:versionname="1.0"> 6 <application android:label="domino Manaus"> 7 <activity android:name=".dominomanausgame" 8 android:label="domino Manaus" 9 android:configchanges="keyboard keyboardhidden orientation" 10 android:screenorientation="landscape"> 11 <intent-filter> 12 <action android:name="android.intent.action.main" /> 13 <category android:name="android.intent.category.launcher" /> 14 </intent-filter> 15 </activity> </application> 18 <uses-permission android:name="android.permission.wake_lock" /> 19 <uses-permission android:name="android.permission.write_external_storage"/> 20 <uses-sdk android:minsdkversion="3" android:targetsdkversion="3"/> 21 </manifest> Código 4.3.1: AndroidManifest.xml Para permitir que a aplicação não deixe a tela desligar após um período de inatividade e possa escrever em arquivos externos (salvar configurações, por ex-

43 Codicação 32 emplo), foram adicionados dois elementos <uses-permission> ao elemento <manifest>, cujos atributos são respectivamente android.permission.wake LOCK e android.permission.write EXTERNAL STORAGE. No elemento <activity> está definida a classe da activity que será chamada ao iniciar a aplicação, que nesse caso é a classe DominoManausGame.java vista no Código package br.domino.manaus; 2 3 import br.domino.manaus.framework.screen; 4 import br.domino.manaus.framework.impl.androidgame; 5 6 public class DominoManausGame extends AndroidGame { 8 public Screen getstartscreen() { 9 return new LoadingScreen(this); 10 } 11 } Código 4.3.2: Classe DominoManausGame.java A classe DominoManausGame herda da classe AndroidGame que é definida no framework como uma classe que herda da classe Activity e implementa a classe Game do framework. Ela cria uma instância da classe LoadingScreen (Código 4.3.3), que é a classe responsável por carregar para a classe Assets (Código 4.3.4) os recursos que serão utilizados pelo jogo e setar a tela de Menu como tela inicial do jogo.

44 Codicação 33 1 package br.domino.manaus; 2 3 import br.domino.manaus.framework.game; 4 import br.domino.manaus.framework.graphics; 5 import br.domino.manaus.framework.screen; 6 import br.domino.manaus.framework.graphics.pixmapformat; 7 8 public class LoadingScreen extends Screen { 9 public LoadingScreen(Game game) { 10 super(game); 11 } public void update(float deltatime) { 15 Graphics g = game.getgraphics(); Assets.cantar = g.newpixmap("cantar.png", PixmapFormat.ARGB4444); 18 Assets.galo = g.newpixmap("galo.png", PixmapFormat.ARGB4444); 19 Assets.passar = g.newpixmap("passar.png", PixmapFormat.ARGB4444); 20 Assets.placar = g.newpixmap("placar.png", PixmapFormat.ARGB4444); 21 Assets.pontuacao = g.newpixmap("pontuacao.png", PixmapFormat.ARGB4444); 22 Assets.pxxV = g.newpixmap("pxxv.png", PixmapFormat.ARGB4444); 23 Assets.pppV = g.newpixmap("pppv.png", PixmapFormat.ARGB4444); 24 Assets.pxxH = g.newpixmap("pxxh.png", PixmapFormat.ARGB4444); 25 Assets.pppH = g.newpixmap("ppph.png", PixmapFormat.ARGB4444); 26 Assets.direita = g.newpixmap("direita.png", PixmapFormat.ARGB4444); 27 Assets.esquerda = g.newpixmap("esquerda.png", PixmapFormat.ARGB4444); 28 Assets.dominoV = g.newpixmap("dominov.png", PixmapFormat.ARGB4444); 29 Assets.dominoH = g.newpixmap("dominoh.png", PixmapFormat.ARGB4444); 30 Assets.logo = g.newpixmap("logo.png", PixmapFormat.ARGB4444); 31 Assets.confirm = g.newpixmap("confirm.png", PixmapFormat.ARGB4444); 32 Assets.home = g.newpixmap("home.png", PixmapFormat.ARGB4444); 33 Assets.help = g.newpixmap("help.png", PixmapFormat.ARGB4444); 34 Assets.info = g.newpixmap("info.png", PixmapFormat.ARGB4444); 35 Assets.play = g.newpixmap("play.png", PixmapFormat.ARGB4444); 36 Assets.config = g.newpixmap("config.png", PixmapFormat.ARGB4444); 37 Assets.fundo = g.newpixmap("fundo.png", PixmapFormat.RGB565); game.setscreen(new MainMenuScreen(game)); 40 } public void present(float deltatime) { } public void pause() { } public void resume() { } public void dispose() { } 61 } Código 4.3.3: Classe LoadingScreen.java

45 Codicação 34 1 package br.domino.manaus; 2 3 import br.domino.manaus.framework.pixmap; 4 5 public class Assets { 6 public static Pixmap cantar; 7 public static Pixmap galo; 8 public static Pixmap passar; 9 public static Pixmap placar; 10 public static Pixmap pontuacao; 11 public static Pixmap pxxv; 12 public static Pixmap pxxh; 13 public static Pixmap pppv; 14 public static Pixmap ppph; 15 public static Pixmap direita; 16 public static Pixmap esquerda; 17 public static Pixmap dominov; 18 public static Pixmap dominoh; 19 public static Pixmap fundo; 20 public static Pixmap logo; 21 public static Pixmap confirm; 22 public static Pixmap home; 23 public static Pixmap help; 24 public static Pixmap info; 25 public static Pixmap play; 26 public static Pixmap config; 27 } Código 4.3.4: Classe Assets.java A tela de menu é descrita pela classe MainMenuScreen (Código 4.3.5) e, assim como todas as telas do jogo, possui dois métodos principais, o método update, que verifica eventos de toque na tela e o método present que desenha a tela. Ambos os métodos são chamados automaticamente pelo framework, repetidas vezes, enquanto a tela estiver sendo mostrada.

46 Codicação 35 1 package br.domino.manaus; 2 3 import java.util.list; 4 5 import android.graphics.color; 6 import br.domino.manaus.framework.game; 7 import br.domino.manaus.framework.graphics; 8 import br.domino.manaus.framework.input.touchevent; 9 import br.domino.manaus.framework.screen; public class MainMenuScreen extends Screen { 12 public MainMenuScreen(Game game) { 13 super(game); 14 } public void update(float deltatime) { 18 List<TouchEvent> touchevents = game.getinput().gettouchevents(); 19 game.getinput().getkeyevents(); int len = touchevents.size(); 22 for (int i = 0; i < len; i++) { 23 TouchEvent event = touchevents.get(i); 24 if (event.type == TouchEvent.TOUCH_UP) { 25 if (inbounds(event, 272, 0, 48, 48)) { // play 26 game.setscreen(new GameScreen(game)); 27 return; 28 } 29 if (inbounds(event, 272, 192, 48, 48)) { // config 30 game.setscreen(new ConfigScreen(game)); 31 return; 32 } 33 if (inbounds(event, 0, 192, 48, 48)) { // help 34 game.setscreen(new HelpScreen(game)); 35 return; 36 } 37 if (inbounds(event, 0, 0, 48, 48)) { // info 38 game.setscreen(new InfoScreen(game)); 39 return; 40 } 41 } 42 } 43 } private boolean inbounds(touchevent event, int x, int y, int width, 46 int height) { 47 if (event.x > x && event.x < x + width - 1 && event.y > y 48 && event.y < y + height - 1) 49 return true; 50 else 51 return false; 52 } public void present(float deltatime) { 56 Graphics g = game.getgraphics(); // pinta o fundo 59 g.clear(color.rgb(35, 175, 75)); // desenha o logo 62 g.drawpixmap(assets.logo, (g.getwidth() - Assets.logo.getWidth()) / 2, 63 (g.getheight() - Assets.logo.getHeight()) / 2); // desenha os icones 66 g.drawpixmap(assets.info, 0, 0, 0, 0, 48, 48); 67 g.drawpixmap(assets.play, g.getwidth() - Assets.play.getHeight(), 0, 0, 68 0, 48, 48); 69 g.drawpixmap(assets.help, 0, g.getheight() - Assets.help.getHeight(), 70 0, 0, 48, 48); 71 g.drawpixmap(assets.config, g.getwidth() - Assets.config.getHeight(), 72 g.getheight() - Assets.config.getHeight(), 0, 0, 48, 48); } 75 Código 4.3.5: Classe MainMenuScreen.java

47 Codicação 36 A partir da tela de menu é possível iniciar um novo jogo ou abrir as telas de Ajuda, Configurações ou Informações. Essas telas seguem o mesmo padrão da tela de menu, e seus respectivos códigos podem ser encontrados no Apêndice. A classe GameScreen é responsável pela a tela de jogo, fazendo a interface com o usuário e controlando o jogo. Por isso seu código é bastante extenso e somente as partes mais importantes dele serão mostradas e comentadas no decorrer deste capítulo. O código na íntegra pode ser visto no Apêndice.

48 Codicação 37 1 package br.domino.manaus; 2 3 import java.util.arraylist; 4 import java.util.list; 5 6 import android.graphics.color; 7 import android.graphics.paint; 8 import android.graphics.rect; 9 import android.graphics.typeface; import br.domino.manaus.framework.game; 12 import br.domino.manaus.framework.graphics; 13 import br.domino.manaus.framework.input.touchevent; 14 import br.domino.manaus.framework.pixmap; 15 import br.domino.manaus.framework.screen; public class GameScreen extends Screen { 18 enum GameState { 19 Saida, 20 Partida, 21 Fechado, 22 Garagem, 23 Fim, 24 Pausa 25 } static int espaco = 2; // pixels 28 static int margem = 3; // pixels 29 static int pedraverth = Assets.pxxV.getHeight(); 30 static int pedravertw = Assets.pxxV.getWidth(); 31 static int pedrahorzh = pedravertw; 32 static int pedrahorzw = pedraverth; 33 static int maow = 7*pedraVertW + 6*espaco;; 34 static int maoh = pedraverth; 35 static int maox = 48 + (((320 - ( )) / 2) - (maow / 2));; 36 static int maoy = (margem + pedraverth);; 37 static int direitah = Assets.direita.getHeight(); 38 static int direitaw = Assets.direita.getWidth(); 39 static int direitax = (maox + maow); 40 static int direitay = (margem + direitah); 41 static int esquerdah = Assets.esquerda.getHeight(); 42 static int esquerdaw = Assets.esquerda.getWidth(); 43 static int esquerdax = maox - esquerdaw; 44 static int esquerday = direitay; 45 GameState state = GameState.Saida; 46 Jogo jogo; 47 public ArrayList<Jogada> jogadas = new ArrayList<Jogada>(4); 48 Paint paint = new Paint(); 49 Typeface font = Typeface.SANS_SERIF; 50 Rect bounds = new Rect(); 51 int ipedraescolhida = -1; 52 int iplacar = 0; 53 int iplacarmax = 0; public GameScreen(Game game) { 56 super(game); 57 jogo = new Jogo(); 58 } 59 Código 4.3.6: Atributos e Construtor da Classe GameScreen.java No trecho de Código é possível ver os atributos e o construtor da classe, onde é criado uma instância da classe Jogo, responsável pelo jogo em si. O construtor da classe

49 Codicação 38 Jogo cria três jogadores máquina e um jogador humano. Para controlar os estados do jogo, utilizou-se um atributo do tipo GameState, que é uma enumeração de estados possíveis do jogo. Ele é utilizado no método update (Código 4.3.7) para determinar os eventos de toque na tela esperados em cada estado. 61 public void update(float deltatime) { 62 List<TouchEvent> touchevents = game.getinput().gettouchevents(); 63 game.getinput().getkeyevents(); switch (state) { 66 case Saida: 67 updatesaida(touchevents); 68 break; 69 case Partida: 70 updatepartida(touchevents, deltatime); 71 break; 72 case Pausa: 73 updatepausa(touchevents); 74 break; 75 case Fechado: 76 updatefechado(touchevents); 77 break; 78 case Garagem: 79 updategaragem(touchevents); 80 break; 81 case Fim: 82 updatefim(touchevents); 83 break; 84 } 85 } Código 4.3.7: Método de update da Classe GameScreen.java No método present (Código 4.3.8), a tela do jogo é desenhada conforme o estado. 323 public void present(float deltatime) { if(state == GameState.Saida) 326 desenhasaida(); 327 if(state == GameState.Partida) 328 desenhapartida(); 329 if(state == GameState.Pausa) 330 desenhapausa(); 331 if(state == GameState.Fechado) 332 desenhafechado(); 333 if(state == GameState.Garagem) 334 desenhagaragem(); 335 if(state == GameState.Fim) 336 desenhafim(); } 339 Código 4.3.8: Método present da Classe GameScreen.java

50 Codicação 39 O jogo inicia no estado Saida e aguarda que o usuário toque na tela. Ao tocar na tela o estado do jogo é alterado para Partida e é chamado o método iniciapartida da classe Jogo, como pode ser visto no Código private void updatesaida(list<touchevent> touchevents) { 88 if(touchevents.size() > 0) { 89 state = GameState.Partida; 90 jogo.iniciapartida(); 91 } 92 } 93 Código 4.3.9: Método updatesaida da Classe GameScreen.java O método iniciapartida da classe Jogo cria a mesa e mistura as pedras evitando que os jogadores possam pegar cinco carroças (na versão de mesa as pedras são misturadas novamente). Cada jogador puxa suas 7 pedras para formar a sua mão e é chamado o método saida. 117 public void saida() { 118 if ((numpartida == 1) (jogofechado)) { // encontra jogador com a sena 119 while (!jogadorvez.tempedra(6,6)) 120 proximojogador(); 121 jogadorvez.jogaveis.add(new Pedra(6,6)); 122 } 123 else 124 setajogaveis(); 125 novajogada = true; 126 } Código : Método saida da Classe Jogo.java No método saida (Código ) é verificado se é a primeira partida ou a partida anterior terminou com jogo fechado. Nesse caso o jogador que possui a carroça de sena é localizado para iniciar a partida. Perceba que o atributo novajogada é setado como verdadeiro. Na próxima chamada do método update da classe GameScreen, o estado do jogo será Partida e será chamado o método updatepartida, que verifica analiza os eventos de toque na tela para esse estado e atualiza o jogo chamando o método update da classe Jogo.

51 Codicação public void update(float deltatime) { 129 int idupla, iduplaadv; if (fimpartida) 132 return; // desenha a partida e depois desenha a jogada 135 if (novajogada) { // diferenca perceptivel na saida do jogador maquina devido ao delay 136 novajogada = false; 137 jogadorvez.joga(mesa); 138 } if (jogadorvez.confirmapasse) { // confirma passe 141 if (!jogadorantpassou) { // nao eh passe na costa 142 iduplaadv = (getivez()+1) % 2; 143 pontuacao[iduplaadv] += 20; 144 } 145 jogadorantpassou = true; 146 jogadorvez.confirmapasse = false; proximojogador(); 149 setajogaveis(); 150 novajogada = true; 151 } 152 else { // nao passou 153 if (jogadorvez.confirmajogada) { // confirma jogada 154 // se for saida, as pontas da mesa estao vazias, seta o jogador saido 155 if ((mesa.pontas.get(0).isempty()) && (mesa.pontas.get(1).isempty()) && 156 (mesa.pontas.get(2).isempty()) && (mesa.pontas.get(3).isempty())) 157 mesa.ijogadorsaido = getivez(); 158 jogadorvez.confirmajogada = false; 159 jogadorantpassou = false; 160 idupla = getivez() % 2; 161 if (jogadorvez.cantouponto) { 162 pontuacao[idupla] += mesa.contapontos(); 163 if ((jogadorvez.bateu()) && (mesa.ultimapedra.ehcarroca())) 164 pontuacao[idupla] += 20; 165 jogadorvez.cantouponto = false; 166 } 167 if (jogadorvez.bateu()) { 168 fimpartida = true; 169 numpartida++; 170 jogofechado = false; 171 contagaragem(); 172 } 173 else { 174 if (fechado()) { 175 fimpartida = true; 176 numpartida++; 177 jogofechado = true; 178 contamaos(); 179 } 180 } 181 if (jogadorvez.cantougalo) { 182 jogadorvez.cantougalo = false; // desmarca botao de galo 183 if ((!fimpartida) && (ehgalo())) { 184 pontuacao[idupla] += 50; 185 ehgalo = true; 186 } 187 else { // galo gay 188 iduplaadv = (getivez()+1) % 2; 189 pontuacao[iduplaadv] += 50; 190 ehgalo = false; 191 } 192 } 193 if (!fimpartida) { 194 if (!ehgalo) // se nao for galo a vez eh do proximo 195 proximojogador(); 196 ehgalo = false; 197 setajogaveis(); 198 novajogada = true; 199 } 200 } 201 } 202 Código : Método update da Classe Jogo.java

52 Codicação 41 O método update da classe Jogo (Código ) é o laço principal do jogo. Nele é verificado se é a novajogada e em caso afirmativo é chamado o método joga do jogadorvez. Caso o jogador da vez confirme seu passe, a vez é passada ao próximo jogador, conforme a regra do passe, caso contrário, é verificado se o jogador da vez confirmou a jogada. Nesse caso, é checado se é a primeira jogada da mesa, para identificar o jogador saído. É também tratado se o jogador cantou ponto. Em caso de batida, é contada a garagem, caso contrário, é verificado se o jogo fechou, e se for o caso é somada as mãos. Os dois últimos setam a fimpartida como verdadeiro, se forem verdadeiros. Por último, é checado se o jogador cantou galo e se é um galo válido. Ao retornar ao método update da classe GameScreen, é verificado se é fim de partida e se for o caso o estado é alterado para Garagem em caso de batida ou para Fechado em caso de jogo fechado. Na próxima chamada ao método present da classe GameScreen a tela será desenhada de acordo com o estado do jogo. Se o estado for Partida é chamado o método desenhapartida. 356 private void desenhapartida() { 357 Graphics g = game.getgraphics(); 358 desenhafundo(g); 359 desenhabotoes(g); 360 desenhaplacar(g); 361 desenhamaooutros(g); 362 desenhamaojogador(g); 363 desenhamesacentralizada(g); 364 // vez do jogador humano 365 if (jogo.getivez() == 2) { 366 desenhasetas(g); 367 desenhajogadas(g); 368 } 369 } Código : Método desenhapartida da Classe GameScreen.java Nesse método (Código ) são desenhados o fundo, os botões (habilitados quando é a vez do jogador e desabilitados quando não), o placar, as mãos dos outros jogadores (pedra com a face virada para baixo), a mão do jogador, a mesa, e se for a vez do jogador as setas para facilitar a escolha das pedras e as jogadas caso seja possível jogar com a pedra selecionada. Caso o estado do jogo seja Garagem, é chamado o método desenhagaragem, que desenha as pedras e o valor da garagem, além do placar e o icone de continuar o jogo no canto superior direito. No caso do estado ser Fechado, o método desenhafechado é chamado e

53 Codicação 42 desenha as pedras restantes de ambas as duplas e o valor da soma das mãos da dupla, além do ícone de continuar o jogo no canto superior direito. Se na próxima chamada ao método update da classe GameScreen o estado do jogo for Fechado ou Garagem, serão chamados os métodos updatefechado (Código ) e updategaragem (Código ) respectivamente para tratar dos eventos de toque na tela para esses estados. 231 private void updatefechado(list<touchevent> touchevents) { 232 if(touchevents.size() > 0) { 233 int len = touchevents.size(); 234 for(int i = 0; i < len; i++) { 235 TouchEvent event = touchevents.get(i); 236 if(event.type == TouchEvent.TOUCH_UP) { 237 if ((event.x > ) && (event.y < 48)) { 238 jogo.processajogofechado(); 239 if (jogo.terminou()) 240 state = GameState.Fim; 241 else { // comeca nova partida 242 state = GameState.Partida; 243 jogo.iniciapartida(); 244 } 245 } 246 // avanca placar 247 if ((event.x > (320 - (112 / 2))) && (event.y > (240-48))) { 248 iplacar++; 249 if (iplacar > iplacarmax) 250 iplacar = iplacarmax; 251 } 252 // retrocede placar 253 if ((event.x > ( )) && (event.x < (320 - (112 / 2))) && (event.y > 254 iplacar--; 255 if (iplacar < 0) 256 iplacar = 0; 257 } 258 } 259 } 260 } 261 } Código : Método updatefechado da Classe GameScreen.java

54 Codicação private void updategaragem(list<touchevent> touchevents) { 264 if(touchevents.size() > 0) { 265 int len = touchevents.size(); 266 for(int i = 0; i < len; i++) { 267 TouchEvent event = touchevents.get(i); 268 if(event.type == TouchEvent.TOUCH_UP) { 269 if ((event.x > ) && (event.y < 48)) { 270 jogo.processagaragem(); 271 if (jogo.terminou()) 272 state = GameState.Fim; 273 else { // comeca nova partida 274 state = GameState.Partida; 275 jogo.iniciapartida(); 276 } 277 } 278 // avanca placar 279 if ((event.x > (320 - (112 / 2))) && (event.y > (240-48))) { 280 iplacar++; 281 if (iplacar > iplacarmax) 282 iplacar = iplacarmax; 283 } 284 // retrocede placar 285 if ((event.x > ( )) && (event.x < (320 - (112 / 2))) && (event.y > 286 iplacar--; 287 if (iplacar < 0) 288 iplacar = 0; 289 } 290 } 291 } 292 } 293 } Código : Método updategaragem da Classe GameScreen.java Em ambos os métodos, é possível paginar o placar, pois este somente exibe no máximo 200 pontos de cada vez. Após clicar no ícone no canto superior direito para seguir o jogo, é processada a garagem ou a contagem de mãos e verificado se o jogo terminou, em caso afirmativo é mudado o estado para Fim, e em caso negativo o estado é mudado para Partida e o método iniciapartida da classe Jogo é chamado novamente. Quando o estado do jogo é Fim, o método present da classe GameScreen chama o método desenhafim que desenha a dupla vencedora, a pontuação final, o placar do jogo e o icone de voltar a tela inicial do jogo no canto superior esquerdo.

55 Imagens do jogo Imagens do jogo Figura 4.8: Tela de menu principal e tela de início de jogo (saída) Figura 4.9: Vez do jogador humano e jogada inicial da 1a partida

56 Imagens do jogo 45 Figura 4.10: Vez do jogador máquina e tela de jogo fechado Figura 4.11: Recomeço de jogo fechado pela dupla adversária e jogada no bucho Figura 4.12: Jogada de carroça marcando 5 pontos

57 Imagens do jogo 46 Figura 4.13: Tela de garagem e nova partida iniciada pelo jogador que bateu Figura 4.14: Jogador humano sem jogada (só pode passar) e tela de pause

58 Imagens do jogo 47 Figura 4.15: Tela de fim de jogo e paginação do placar Figura 4.16: Tela de créditos

A plataforma Android: Uma Introdução

A plataforma Android: Uma Introdução A plataforma Android: Uma Introdução Android Iniciativa da Google de prover uma plataforma aberta para Web móvel Open Handset Alliance Associação de um grupo bastante heterogêneo de empresas (operadoras,

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 02 História do desenvolvimento de software para dispositivos móveis Dalton Martins dmartins@gmail.com São

Leia mais

O que é o Android? O que é o Android

O que é o Android? O que é o Android O que é o Android? O Android é um sistema operacional para dispositivos móveis, baseado em uma plataforma de código aberta sob a licença apache, permitindo que os fabricantes possam modificar seu código

Leia mais

Android. Marcelo Quinta @mrquinta

Android. Marcelo Quinta @mrquinta Android Marcelo Quinta @mrquinta Oi, eu sou o Marcelo Quinta Pública Público-privada Privada Próprio negócio Voluntariado Parabéns à organização do GO-GTUG Tablets 160% de aumento em 2011 Smartphones

Leia mais

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PROFª. M.Sc. JULIANA H Q BENACCHIO Objetivos Desenvolver software baseados na plataforma de dispositivos móveis com ênfase na Android SDK, abrangendo desde princípios

Leia mais

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

Leia mais

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008 Android José João Junior Universidade Federal de Santa Catarina 17 de dezembro de 2008 Agenda 1 Visão geral 2 Estrutura do sistema 3 Ferramentas de desenvolvimento 4 Uma aplicação Visão geral Histórico

Leia mais

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega Android Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega Universidade Federal de Santa Catarina November 18, 2008 Agenda 1 Introdução 2 Dalvik 3 Linux 2.6 Introdução

Leia mais

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO UM PADRÃO ABERTO DE SOFTWARE PARA COMPUTAÇÃO MÓVEL: UM ESTUDO SOBRE GOOGLE ANDROID 1. INTRODUÇÃO O aumento do número usuários de dispositivos móveis atrai cada vez os desenvolvedores a produzir aplicações

Leia mais

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura Dispositivos móveis e o mercado Mercado cresce a cada ano Muitos recursos Múltiplas plataforma Symbian

Leia mais

Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião

Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião Windows Mobile O Windows Mobile é um sistema operacional compacto, desenvolvido para rodar em dispositivos móveis como Pocket

Leia mais

Sistemas Embarcados Android

Sistemas Embarcados Android Engenharia Elétrica UFPR 13 de novembro de 2014 Desenvolvido para sistemas móveis pelo Google: Android Open Source Project (AOSP) Grande sucesso, devido a combinação de: open source licensing aggressive

Leia mais

PLATAFORMA ANDROID. Ariel Soares Teles arielsoaresteles@gmail.com

PLATAFORMA ANDROID. Ariel Soares Teles arielsoaresteles@gmail.com Universidade Federal do Maranhão UFMA Programa de Pós-graduação em Engenharia de Eletricidade PPGEE Área de Concentração: Ciência da Computação Disciplina: Introdução a Computação Móvel Professor: Dr.

Leia mais

Introdução a Computação Móvel

Introdução a Computação Móvel Introdução a Computação Móvel Computação Móvel Prof. Me. Adauto Mendes adauto.inatel@gmail.com Histórico Em 1947 alguns engenheiros resolveram mudar o rumo da história da telefonia. Pensando em uma maneira

Leia mais

MONOGRAFIA: PLATAFORMAS DE DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS

MONOGRAFIA: PLATAFORMAS DE DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO PUC-RIO DEPARTAMENTO DE INFORMÁTICA - DI PROGRAMA DE PÓS GRADUAÇÃO EM INFORMÁTICA INF2541 INTRODUÇÃO À COMPUTAÇÃO MÓVEL PROF. MARKUS ENDLER MONOGRAFIA:

Leia mais

Sistemas Embarcados Android

Sistemas Embarcados Android Engenharia Elétrica UFPR 7 de março de 2013 Outline Desenvolvido para sistemas móveis pelo Google: Android Open Source Project (AOSP) Grande sucesso, devido a combinação de: open source licensing aggressive

Leia mais

2ª Edição Ricardo R. Lecheta

2ª Edição Ricardo R. Lecheta Google Aprenda a criar aplicações para dispositivos móveis com o Android SDK 2ª Edição Ricardo R. Lecheta Novatec capítulo 1 Introdução ao Android 1.1 Introdução O mercado de celulares está crescendo cada

Leia mais

Android e Facebook. Felipe Silveira

Android e Facebook. Felipe Silveira Android e Facebook Felipe Silveira Android? Sistema Operacional + Plataforma de desenvolvimento + Aplicações Padrão (SMS, Maps, Calendar...) Código aberto (AOSP - Android Open Source Project) Desenvolvido

Leia mais

Programação para Android

Programação para Android Programação para Android Aula 01: Visão geral do android, instalação e configuração do ambiente de desenvolvimento, estrutura básica de uma aplicação para Android Objetivos Configurar o ambiente de trabalho

Leia mais

O SISTEMA ANDROID NO UNIVERSO DOS DISPOSITIVOS MÓVEIS

O SISTEMA ANDROID NO UNIVERSO DOS DISPOSITIVOS MÓVEIS O SISTEMA ANDROID NO UNIVERSO DOS DISPOSITIVOS MÓVEIS Gilberto Sadao OTSUKA 1 Ana Paula Ambrósio ZANELATO 2 RESUMO: Com o advento da popularização e maior uso da internet por meio da utilização de dispositivos

Leia mais

Seminário de S.O - Google Android

Seminário de S.O - Google Android Seminário de S.O - Google Android Diogo de Campos João Paulo Pizani Flor Maurício Oliveira Haensch Pedro Covolan Bachiega 19 de novembro de 2008 1 Introdução O presente trabalho foi apresentado como seminário

Leia mais

Sobre o Colméia: Grupo de pesquisa em Software e Hardware Livre. Software Livre não é só Linux!

Sobre o Colméia: Grupo de pesquisa em Software e Hardware Livre. Software Livre não é só Linux! Sobre o Colméia: Grupo de pesquisa em Software e Hardware Livre. Software Livre não é só Linux! Assuntos que serão abordados Android é Software Livre? Arquitetura Android Maquina Virtual Dalvik Evolução

Leia mais

Desenvolvimento Android. http://www.larback.com.br

Desenvolvimento Android. http://www.larback.com.br Desenvolvimento Android http://www.larback.com.br Introdução ao Android O Android é a resposta da Google ao mercado crescente de dispositivos móveis. É uma nova plataforma de desenvolvimento baseado no

Leia mais

OFICINA ANDROID COMO COMEÇAR A DESENVOLVER!

OFICINA ANDROID COMO COMEÇAR A DESENVOLVER! OFICINA ANDROID COMO COMEÇAR A DESENVOLVER! QUEM SOU EU? REGILAN MEIRA SILVA Professor de Informática do Campus Ilhéus Formação em Ciência da Computação com Especialização em Sistemas de Informação e Mestrado

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Introdução Professor: Danilo Giacobo UM POUCO DE HISTÓRIA 1888: Transmissão de códigos sonoros pelo ar pelo físico alemão Heinrich. 1914: Primeira ligação telefônica

Leia mais

Desenvolvimento de um aplicativo básico usando o Google Android

Desenvolvimento de um aplicativo básico usando o Google Android Desenvolvimento de um aplicativo básico usando o Google Android (Organização do Ambiente) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus

Leia mais

C3SL - Centro de Computação Científica e Software Livre. Estudo sobre Android

C3SL - Centro de Computação Científica e Software Livre. Estudo sobre Android C3SL - Centro de Computação Científica e Software Livre Estudo sobre Android Relatório que apraaesenta o estudo realizado pelo C3SL analisando os aspectos gerais do Android e de outros sistemas similares

Leia mais

Minicurso - Android Fábio Silva / João Paulo Ribeiro

Minicurso - Android Fábio Silva / João Paulo Ribeiro Minicurso - Android Fábio Silva / João Paulo Ribeiro Quem somos? :D Graduando em Ciência da Computação na Universidade Federal de Campina Grande @ffosilva www.fabiosilva.org Quem somos? :D Graduando em

Leia mais

SISTEMAS OPERACIONAIS MÓVEIS - ANDROID X IOS

SISTEMAS OPERACIONAIS MÓVEIS - ANDROID X IOS SISTEMAS OPERACIONAIS MÓVEIS - ANDROID X IOS Danielle Dias Simões¹, Júlio César Pereira². Universidade Paranaense - Unipar Paranavaí PR - Brasil dannesimoes@hotmail.com juliocesarp@unipar.br Resumo. O

Leia mais

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android COMPUTAÇÃO MÓVEL Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android O que é computação Móvel Acesso à informação a qualquer lugar, a qualquer momento. O que é computação Móvel Tecnicamente: Processamento

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 03 Introdução ao ambiente de desenvolvimento: Eclipse e Android SDK Dalton Martins dmartins@gmail.com São

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Android Android é um sistema operacional para dispositivos móveis Kernel Linux, drivers e bibliotecas do

Leia mais

Fundamentos da Computação Móvel

Fundamentos da Computação Móvel Fundamentos da Computação Móvel (Plataformas Sistemas Operacionais e Desenvolvimento) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus

Leia mais

IV SEMANA DE INFORMÁTICA. Prof. Rafael Hens Ribas (rafael.r@ienh.com.br)

IV SEMANA DE INFORMÁTICA. Prof. Rafael Hens Ribas (rafael.r@ienh.com.br) IV SEMANA DE INFORMÁTICA Prof. Rafael Hens Ribas (rafael.r@ienh.com.br) O que é; ROTEIRO Quais versões existem e suas principais funcionalidades; O que preciso para começar a desenvolver; Como é o ambiente

Leia mais

Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO

Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO CLASS-REMINDER PARA ESTUDANTES DO DECM AUTOR: Arilson Jorge Santos Rocha

Leia mais

01/04/2012. Voltar. Voltar

01/04/2012. Voltar. Voltar Introdução à Informática Capítulo 3 Sistemas Operacionais: Software em Segundo Plano Objetivos Descrever as funções de um sistema operacional. Explicar os fundamentos do sistema operacional de um computador.

Leia mais

EA998/MC933 Guido Araujo e Sandro Rigo

EA998/MC933 Guido Araujo e Sandro Rigo EA998/MC933 Guido Araujo e Sandro Rigo 1 Introdução Livros adotados (e-books) Learning Android, Marco Gargenta, O Reilly Media (livro texto) Professional Android Application, Reto Meier, Wrox Abordagem

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 5 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM DEZEMBRO / 2014 2 de 5 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Manual de instalação e configuração da Ferramenta Android SDK

Manual de instalação e configuração da Ferramenta Android SDK Trabalho de Programação para Dispositivos Móveis Turma: 1011 Camila Botelho camilacunhabotelho@gmail.com Manual de instalação e configuração da Ferramenta Android SDK Introdução O Android é uma ferramenta

Leia mais

INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS COM LIBGDX. Vinícius Barreto de Sousa Neto

INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS COM LIBGDX. Vinícius Barreto de Sousa Neto INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS COM LIBGDX Vinícius Barreto de Sousa Neto Libgdx é um framework multi plataforma de visualização e desenvolvimento de jogos. Atualmente ele suporta Windows, Linux,

Leia mais

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS Leandro Guilherme Gouvea 1, João Paulo Rodrigues 1, Wyllian Fressatti 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil leandrog.gouvea@gmail.com,

Leia mais

Introdução ao Desenvolvimento para Sistema Operacional Android

Introdução ao Desenvolvimento para Sistema Operacional Android Dr. prof.sylvio@fatecriopreto.edu.br Conteúdo: 1) Introdução ao Android e Mercado de Dispositivos Móveis; 2) Plataforma: 2.1) Arquitetura; 2.2) Framework; 2.3) Bibliotecas; 2.4) Android Runtime; 2.5) Linux

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Manual do Usuário Android Neocontrol

Manual do Usuário Android Neocontrol Manual do Usuário Android Neocontrol Sumário 1.Licença e Direitos Autorais...3 2.Sobre o produto...4 3. Instalando, Atualizando e executando o Android Neocontrol em seu aparelho...5 3.1. Instalando o aplicativo...5

Leia mais

Descrição geral do Android

Descrição geral do Android Descrição geral do Android (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Versões & API A versão 1.0 foi lançada em Fevereiro de 2009

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

Conceitos Básicos e Práticos do Android

Conceitos Básicos e Práticos do Android Pílula de Conhecimento Android Página: 1 Pílula 1 Conceitos Básicos e Práticos do Android I OBJETIVOS! Conhecer o Sistema Operacional Móvel Android.! Entender a composição do Android diferenciando suas

Leia mais

Desenvolvimento para Android Prá9ca 1. Prof. Markus Endler

Desenvolvimento para Android Prá9ca 1. Prof. Markus Endler Desenvolvimento para Android Prá9ca 1 Prof. Markus Endler Pré- requisitos Para desenvolver para plataforma Android, é necessário fazer o download e instalar: Android SDK Tools: necessário para gerenciamento

Leia mais

DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION

DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION Robison Cris Brito Centro Federal de Educação Tecnológica do Paraná Unidade de Pato Branco robison@pb.cefetpr.br RESUMO Engana-se quem acha

Leia mais

Desenvolvimento de aplicações na plataforma Google Android

Desenvolvimento de aplicações na plataforma Google Android Desenvolvimento de aplicações na plataforma Google Android Rafael M. Lins Manoel Taenan Prof. Dr. Fábio Gomes Design by Rafael M. Lins Autores Rafael Madureira Lins de Araújo Bla bla bla Manoel Taenan

Leia mais

UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO

UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO RELATÓRIO DE ESTÁGIO SUPERVISIONADO APLICAÇÕES MOBILE COM LAYOUT ADAPTÁVEIS UTILIZANDO ANDROID FRAGMENTS

Leia mais

4 a Edição. Ricardo R. Lecheta. Novatec

4 a Edição. Ricardo R. Lecheta. Novatec 4 a Edição Ricardo R. Lecheta Novatec Copyright 2009, 2010, 2013, 2015 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,

Leia mais

Desenvolvimento de uma aplicação embarcada em celular visando controle de robô via Wi-Fi

Desenvolvimento de uma aplicação embarcada em celular visando controle de robô via Wi-Fi Desenvolvimento de uma aplicação embarcada em celular visando controle de robô via Wi-Fi Bruno Henrique Andrade Cruz 1 Josué Fernandes Dall Agnese 1 Bruno José Fagundes 1 Marcelo Teixeira Bastos 1 Rolf

Leia mais

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS CERVA TOISS. por

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS CERVA TOISS. por UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS CERVA TOISS por Daniel Teixeira Braga Trabalho de Conclusão de curso II Prof. Marcos Echevarria

Leia mais

MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS

MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS Aluna: Eleonora Cominato Weiner Orientador: Markus Endler Introdução A palavra mobilidade ganha mais importância a cada instante,

Leia mais

Android. 10 vantagens do sistema Android em relação ao iphone

Android. 10 vantagens do sistema Android em relação ao iphone Android Android é um sistema operacional do Google para smartphones, TVs e tablets. Baseado em Linux e de código aberto, o sistema móvel é utilizado em aparelhos da Samsung, LG, Sony, HTC, Motorola, Positivo,

Leia mais

Manual do Aplicativo - Rastreamento Veicular

Manual do Aplicativo - Rastreamento Veicular Manual do Aplicativo - Rastreamento Veicular Sumário Apresentação... 2 Instalação do Aplicativo... 2 Localizando o aplicativo no smartphone... 5 Inserindo o link da aplicação... 6 Acessando o sistema...

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ Introdução ao Android SECAP 2014 Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode baixar e modificar Máquina

Leia mais

Introdução ao Android. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Introdução ao Android. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Introdução ao Android Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Conteúdo Introdução Mercado Versões Ambiente de Desenvolvimento Configuração das Máquinas Virtuais Referências Introdução Android

Leia mais

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos Programação em Java para a Plataforma Android AULA 1 Primeiros Passos O que é Android Como é o desenvolvimento de aplicações para esse ambiente O que é preciso para começar a programar ABvidades, o início

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

Capitulo 11 Multimídias

Capitulo 11 Multimídias Capitulo 11 Multimídias Neste capítulo são exploradas as ferramentas multimídias presentes no SO Android customizadas para o Smartphone utilizado neste manual. É inegável o massivo uso destas ferramentas,

Leia mais

DESENVOLVIMENTO DE UM JOGO MULTIUSUÁRIO UTILIZANDO ANDROID

DESENVOLVIMENTO DE UM JOGO MULTIUSUÁRIO UTILIZANDO ANDROID UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA ESCOLA SUPERIOR DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO VICTOR MATHEUS DE SOUZA PEREIRA DESENVOLVIMENTO DE UM JOGO MULTIUSUÁRIO UTILIZANDO ANDROID Manaus 2012 VICTOR

Leia mais

Desenvolvimento de Aplicações. Android. Rick Rogers, John Lombardo, Zigurd Mednieks e Blake Meike. Novatec

Desenvolvimento de Aplicações. Android. Rick Rogers, John Lombardo, Zigurd Mednieks e Blake Meike. Novatec Desenvolvimento de Aplicações Android Rick Rogers, John Lombardo, Zigurd Mednieks e Blake Meike Novatec Sumário Prefácio... xi Público-alvo...xi Organização do livro...xii Convenções adotadas neste livro...xiii

Leia mais

Índice de ilustrações

Índice de ilustrações Sumário 1Dez novos recursos do windows 8...2 1.1Interface Metro...2 1.2Internet Explorer 10...4 1.3Gerenciador de Tarefas...5 1.4Painel de Controle...5 1.5Interface Ribbon...6 1.6Menu Iniciar...7 1.7Windows

Leia mais

Minicurso introdutório de desenvolvimento para dispositivos Android. Cristiano Costa

Minicurso introdutório de desenvolvimento para dispositivos Android. Cristiano Costa Minicurso introdutório de desenvolvimento para dispositivos Android Cristiano Costa Desenvolvimento da interface estática Sobre mim Graduando em Engenharia Eletrônica - UNIFEI Trabalhou em desenvolvimento

Leia mais

Conheça o seu telefone

Conheça o seu telefone Conheça o seu telefone O nome MOTOROLA e sua logomarca estilizada M estão registrados no Escritório de Marcas e Patentes dos EUA. Motorola, Inc. 2008 Algumas funções do telefone celular dependem da capacidade

Leia mais

Sistema de partículas para dispositivos móveis na plataforma Android. Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos

Sistema de partículas para dispositivos móveis na plataforma Android. Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos Sistema de partículas para dispositivos móveis na plataforma Android Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos Roteiro Introdução Identificação do problema Objetivos Fundamentação teórica

Leia mais

RELATÓRIO FINAL Sistema para monitoramento de serviços com o Android OS

RELATÓRIO FINAL Sistema para monitoramento de serviços com o Android OS UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS DEPARTAMENTO DE INFORMÁTICA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO INF 655 COMPUTAÇÃO MÓVEL RELATÓRIO FINAL Sistema para monitoramento de serviços com

Leia mais

PÓS GRADUAÇÃO LATO SENSU. Desenvolvimento de Aplicações Em Dispositivos Móveis Com Android, Java, IOs (Iphone).

PÓS GRADUAÇÃO LATO SENSU. Desenvolvimento de Aplicações Em Dispositivos Móveis Com Android, Java, IOs (Iphone). 1 Desenvolvimento de Aplicações Em Dispositivos Móveis Com Android, Java, IOs (Iphone). Requisitos e Especificação de Software Tópicos sobre análise requisitos; Requisitos Funcionais e não funcionais;

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Busca Certa Combustíveis

Busca Certa Combustíveis UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Busca Certa Combustíveis por Luma Melo Borges Documento de conclusão da disciplina de Trabalho

Leia mais

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa Adobe Flex Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa O que é Flex? Estrutura de Código aberto para a criação de aplicativos Web Utiliza o runtime do Adobe

Leia mais

Introdução ao Android SDK. Prof. Me. Hélio Esperidião

Introdução ao Android SDK. Prof. Me. Hélio Esperidião Introdução ao Android SDK Prof. Me. Hélio Esperidião Android SDK O Android SDK permite que os desenvolvedores elaborem as aplicações a partir de um dispositivo virtual para os aparelhos de celular e tablet,

Leia mais

Figura 3.1: Arquitetura do ios.

Figura 3.1: Arquitetura do ios. 3 SDK Hoje temos diversas plataformas de dispositivos móveis disponíveis no mercado, entre elas, as mais populares são Android e ios. Cada uma destas plataformas possui um SDK próprio com sua linguagen

Leia mais

Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE

Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE 1 Sumário Sumário... 2 1 INTRODUÇÃO... 3 1.1 Propósito... 3 1.2 Escopo... 3 1.3 Referências... 3 2 DIRETRIZES...

Leia mais

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL Francisco Tiago Avelar, Vitor Conrado F. Gomes, Cesar Tadeu Pozzer Universidade Federal de Santa Maria UFSM Curso de Ciência da Computação

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

O conjunto é composto por duas seções: o App Inventor Designer e o App Inventor Blocks Editor, cada uma com uma função específica.

O conjunto é composto por duas seções: o App Inventor Designer e o App Inventor Blocks Editor, cada uma com uma função específica. Google App Inventor: o criador de apps para Android para quem não sabe programar Por Alexandre Guiss Fonte: www.tecmundo.com.br/11458-google-app-inventor-o-criador-de-apps-para-android-para-quem-naosabe-programar.htm

Leia mais

Programa de Dispositivos Móveis

Programa de Dispositivos Móveis Aula 02 Programa de Dispositivos Móveis A Classe Activity A classe Actvity é similar a classe JFrame do Swing representa basicamente uma tela. Quase todas as atividades interagem com o usuário, então ela

Leia mais

GuiBi: Um aplicativo para plataforma Android com um guia comercial da cidade de Bambuí MG

GuiBi: Um aplicativo para plataforma Android com um guia comercial da cidade de Bambuí MG GuiBi: Um aplicativo para plataforma Android com um guia comercial da cidade de Bambuí MG Bruno Alberto Soares Oliveira 1,3 ; Lucas Vieira Murilo 1,3 ; Maik Olher Chaves 2,3 1 Estudante de Engenharia de

Leia mais

Universidade Federal do Rio de Janeiro NCE/PGTIAE. Tutorial SweetHome3D

Universidade Federal do Rio de Janeiro NCE/PGTIAE. Tutorial SweetHome3D Universidade Federal do Rio de Janeiro NCE/PGTIAE Tutorial SweetHome3D Trabalho apresentado ao Prof. Carlo na Disciplina de Software Livre no curso Pós Graduação em Tecnologia da Informação Aplicada a

Leia mais

CAPÍTULO IV Sistema Operacional Microsoft Windows XP

CAPÍTULO IV Sistema Operacional Microsoft Windows XP CAPÍTULO IV Sistema Operacional Microsoft Windows XP Sistemas Operacionais Sistemas Operacionais são programas que como o próprio nome diz tem a função de colocar o computador em operação. O sistema Operacional

Leia mais

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares SENAI São Lourenço do Oeste Introdução à Informática Adinan Southier Soares Informações Gerais Objetivos: Introduzir os conceitos básicos da Informática e instruir os alunos com ferramentas computacionais

Leia mais

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Introdução ao Android Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode

Leia mais

Relatório final de INF2607 - Animação por Computador e Jogos

Relatório final de INF2607 - Animação por Computador e Jogos Relatório final de INF2607 - Animação por Computador e Jogos Rafael Diniz Lab. Telemídia, PUC-Rio rafaeldiniz@telemidia.puc-rio.br 3 de fevereiro de 2014 Resumo Este é o relatório final do trabalho desenvolvido

Leia mais

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1 Sistema Operacional Slide 1 Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos do computador (CPU, dispositivos periféricos). Estabelece

Leia mais

Android Básico Hello World!

Android Básico Hello World! Android Básico Hello World! Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas

Tecnólogo em Análise e Desenvolvimento de Sistemas Tecnólogo em Análise e Desenvolvimento de Sistemas O conteúdo deste documento tem como objetivos geral introduzir conceitos mínimos sobre sistemas operacionais e máquinas virtuais para posteriormente utilizar

Leia mais

Técnicas para Animação de Imagens em Jogos 2D Utilizando Java

Técnicas para Animação de Imagens em Jogos 2D Utilizando Java Técnicas para Animação de Imagens em Jogos 2D Utilizando Java Silvano Maneck Malfatti 1 1 Faculdade Católica do Tocantins (FACTO) Palmas TO Brasil Malfatti@catolica-to.edu.br Resumo. Um dos recursos que

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Anderson Pereira, Emerson Demetrio, Fernando Mateus, Lucas Bergmann

Anderson Pereira, Emerson Demetrio, Fernando Mateus, Lucas Bergmann Anderson Pereira, Emerson Demetrio, Fernando Mateus, Lucas Bergmann Sistema Operacional E no inicio... Windows CE: - Sistema Operacional criado pela Microsoft para dispositivos sistemas embarcados (Tablet

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Depurando aplicações Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender dicas e técnicas para encontrar erros em aplicações Android. Conhecer os recursos que auxiliam

Leia mais

Introdução a Computação

Introdução a Computação Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel

Leia mais

PROGRAMAÇÃO. Seu primeiro aplicativo para Android Programe seu andróide

PROGRAMAÇÃO. Seu primeiro aplicativo para Android Programe seu andróide Seu primeiro aplicativo para Android Programe seu andróide A plataforma Android, do Google, vai equipar com tecnologia de ponta diversos aparelhos celulares. Veja como é fácil começar a programar aplicativos

Leia mais

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais