IGOR LUCIANO DE LIMA MOREIRA ANNA CAROLINA
ANDROID ANDROID
INCONFIDENTES-MG 2013
IGOR LUCIANO DE LIMA MOREIRA
ANDROID
ANDROID ANDROID ANDROID ANDROID PERSISTÊNCIA DE ANDROID DADOS UTILIZANDO OS PADRÕES DAO(DATA ACCESS OBJECT) E ORM(OBJECT RELATION MAPPED)
Trabalho sobre Android apresentado pela disciplina de Linguagem de Programação IV com requisito para obtenção de nota.
Orientador: Bruno A. Couto Rezende
INCONFIDENTES-MG 2013
SUMÁRIO 1. HISTÓRIA ....................................................................................................................................... 1 2. ARQUITETURA ............................................................................................................................. 3 2.1.1 Conceitos e Definições............................................................................................................ 3 2.1.2 Sistema Operacional ............................................................................................................... 3 2.1.3 Versões e Características ......................................................................................................... 4
Versões Beta, 1.0 e 1.1 ....................................................................................................... 4
Versão 1.5 (Cupcake) ......................................................................................................... 4
Versão 1.6 (Donut) ............................................................................................................. 4
Versão 2.2 (FroYo) ............................................................................................................. 5
Versão 2.3 (Gingerbread) .................................................................................................. 5
Versão 3.0/3.1/3.2 (Honeycomb) ....................................................................................... 5
Versão Ice Cream Sandwich .............................................................................................. 6
3. AMBIENTE DE DESENVOLVIMENTO ....................................................................................... 6 4. PREVISÕES FUTURAS ................................................................................................................. 7 5. ESPAÇO NO MERCADO ............................................................................................................... 8 6. VANTAGENS .................................................................................................................................. 9 6. DESVANTAGENS .......................................................................................................................... 9 2.1.4 Guia de Imagens.................................................................................................................... 10 4.REFENRÊNCIAS BIBLIOGRÁFICAS ......................................................................................... 11
I
II
1. HISTÓRIA Em julho de 2005 a Google adquiriu a Android Inc., uma pequena empresa em Palo Alto, California, USA. No tempo da Google conduzido por Andy Rubin, foi desenvolvida uma plataforma de telefone móvel baseado em Linux, com o objetivo de ser uma plataforma flexível, aberta e de fácil migração para os fabricantes. Em Dezembro de 2006, com as notícias da BBC e The Wall Street Journal, surgiram mais especulações que a Google estava entrando no mercado de telefones móveis. A imprensa reportou rumores de um telefone desenvolvido pela Google. Atualmente, é desenvolvido em parceria com a empresa de software Sun Corp. O primeiro telefone comercialmente disponível a rodar no sistema Android foi o HTC Dream, lançado a 22 de outubro de 2008. Em 27 de maio de 2010 Matias Duarte, antigo diretor da interface do WebOS, junta-se à equipa do Android após a compra da Palm pela HP. O primeiro tablet comercialmente disponível a rodar o sistema operativo Android 3.0 foi o Motorola Xoom, lançado a 24 de fevereiro de 2011 nos Estados Unidos. 1.1 Características Com o lançamento do SDK, características e especificações para o Android são facilmente distribuídas. Handset layouts A plataforma é adaptada tanto para dispositivos VGA maiores, gráficos 2D, bibliotecas gráficas 3D baseadas em OpenGL ES especificação 2.0 e os layouts mais tradicionais de smartphones. Armazenamento É utilizado SQLite para armazenamento de dados. Mensagens Tanto SMS como MMS são formas disponíveis de envio de mensagens. Navegador O navegador disponível no sistema é baseado no framework de Código aberto conhecido como WebKit. Máquina virtual Dalvik Aplicações escritas em Java são compiladas em bytecodes Dalvik e executadas usando a Máquina virtual Dalvik, que é uma máquina virtual especializada desenvolvida para uso em dispositivos móveis, o que permite que programas sejam distribuídos em formato binário (bytecode) e possam ser executados em qualquer dispositivo Android, independentemente do processador utilizado. Apesar das aplicações Android serem escritas na linguagem Java, ela não é uma máquina virtual Java, já que não executa bytecode JVM. 1
Multimídia O sistema irá suportar formatos de áudio e vídeo como: MPEG-4, H.264, MP3, e AAC. Suporte Adicional de Hardware O Android é totalmente capaz de fazer uso de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração de gráficos 3D. Ambiente de desenvolvimento (SDK) Inclui um emulador, ferramentas para debugging, memória e análise de performance. O Eclipse (IDE) (atualmente 3.4 ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools (ADT).
2
2. ARQUITETURA
2.1.1 Conceitos e Definições A próxima camada é o framework de aplicação. Isso inclui os programas que gerenciam as funções básicas do telefone, como alocação de recursos, aplicações de telefone, mudança entre processos ou programas e ficar de olho na localização física do aparelho. Os desenvolvedores de aplicações têm acesso total ao framework de aplicações do Android. Isso possibilita que eles tirem vantagem das capacidades de processamento do Android e suportem recursos quando estão construindo uma aplicação Android. Pense no framework de aplicações como um conjunto de ferramentas básicas com o qual um desenvolvedor pode construir ferramentas muito mais complexas. No topo da pilha estão as aplicações em si. É onde você encontra funções básicas do dispositivo, como fazer chamadas telefônicas, acessar o navegador Web ou acessar sua lista de contatos. Se você é um usuário comum, esta é a camada que você mais usará. Você faz isso com a interface de usuário. Apenas os programadores do Google, os desenvolvedores de aplicação e os fabricantes de hardware acessam outras camadas mais baixas da pilha.
2.1.2 Sistema Operacional O Google geralmente se refere ao sistema operacional Android como uma pilha de softwares. Cada camada da pilha agrupa vários programas que suportam funções específicas do sistema operacional. A base da pilha é o kernel. O Google usou a versão 2.6 do Linux para construir o kernel do Android, o que inclui os programas de gerenciamento de memória, as configurações de segurança, o software de gerenciamento de energia e vários drivers de hardware. Drivers são programas que controlam dispositivos de hardware. Por exemplo, o HTC G1 tem uma câmera. O kernel do Android inclui um driver de câmera, que permite ao usuário enviar comando ao hardware da câmera. O próximo nível de software inclui as bibliotecas do Android. Você pode pensar em bibliotecas como um conjunto de instruções que dizem ao dispositivo como lidar com diferentes tipos de dados. Por exemplo, a biblioteca do framework de mídia suporta a reprodução e a gravação de vários formatos de áudio, vídeo e imagem. Outras bibliotecas incluem aceleração tridimensional (para dispositivos com acelerômetros) e um biblioteca de navegadores Web. No mesmo nível da camada de bibliotecas, a camada de tempo de execução do Android inclui um conjunto de bibliotecas do núcleo Java - programadores de aplicações Android construíram suas aplicações em linguagem de programação Java. Ele também inclui a Máquina Virtual Dalvik (DVM). Uma máquina virtual é uma aplicação de software que se comporta como se fosse um dispositivo independente com seu próprio sistema operacional. Você podem rodar uma máquina virtual em um computador que opera com um sistema operacional completamente diferente do 3
sistema operacional da máquina física. Por exemplo: um computador Apple rodando Mac OS X pode ter uma máquina virtual rodando Windows Vista ou Ubuntu. O sistema operacional Android usa máquinas virtuais para rodar cada aplicação como seu próprio processo. Isso é importante por algumas razões. Primeiro, nenhuma aplicação é dependente de outra. Segundo, se uma aplicação para, ela não afeta quaisquer outras aplicações rodando no dispositivo. Terceiro, isso simplifica o gerenciamento de memória.
2.1.3 Versões e Características Versões Beta, 1.0 e 1.1 Essas versões do Android não receberam nomes de doces. Os aparelhos a receber a versão Beta do Android foram apenas aqueles produzidos pelos fabricantes para desenvolver o Android, não havendo nenhum aparelho com Android Beta disponível para o público. O Android 1.0 foi lançado com o T-Mobile G1, que recebeu as atualizações até o Android 1.6. A versão 1.1 foi liberada somente para o G1, que era o único aparelho rodando Android na época.
Versão 1.5 (Cupcake)
A versão 1.5 foi a primeira a estar em vários dispositivos. Os primeiros lançamentos foram o HTC Magic e o Samsung Galaxy. Entre as principais novidades, estão a capacidade de gravar vídeos com a câmera, os widgets, a habilidade de copiar/colar texto e animações nas transições de tela.
Versão 1.6 (Donut) Em setembro de 2009, é lançada a versão Donut. Melhorias na câmera e galeria, pesquisas (incluindo pesquisa por voz), e suporte a telas com resolução de até 480×800 pixels. Alguns modelos lançados originalmente com o Donut são o HTC Tattoo, Samsung Galaxy Lite e SonyEricsson XPeria X10 (o primeiro Android “blockbuster”).
Versões 2.0/2.1 (Eclair) Lançado em outubro de 2009, o Android 2.0 foi a primeira grande atualização do sistema. Em janeiro do ano seguinte, seria lançada a versão 2.1, que manteria o nome da bomba de chocolate. Os aparelhos mais significativos lançados com essa versão são o Motorola Droid (conhecido aqui como Milestone) e o Google Nexus One (o primeiro “Googlephone”, aparelho “sem marca”, com atualizações gerenciadas diretamente pela Google, e “experiência Android pura”, sem customiza-
4
ções de fabricantes). As maiores novidades nessa versão incluem mudanças significativas na câmera, melhor contraste na tela (antes, o sistema só suportava até 65 mil cores, mesmo com hardware melhor), mais resoluções suportadas, wallpapers animados e suporte a multi-touch.
Versão 2.2 (FroYo)
Em maio de 2010, chega a versão 2.2 do Android. O FroYo (abreviação de Frozen Yogurt) talvez seja a atualização mais importante do sistema até agora, com mudanças muito importantes. As principais são: melhoria no desempenho geral do sistema (até 450% no Nexus One, de acordo com o pessoal do Android Police), uso da mesma engine de JavaScript do Google Chrome (v8) no navegador, tethering (por USB ou WiFi), atualizações automáticas de aplicativos baixados pelo Android Market e suporte ao Adobe Flash, algo há muito requisitado pelos usuários. Também foi adicionada a capacidade de usar resoluções ultra-altas (320 pixels/polegada, próxima à do iPhone 4), apesar de praticamente nenhum aparelho usar tais resoluções, ainda.
Versão 2.3 (Gingerbread)
Lançado oficialmente em dezembro de 2010 juntamente com o Nexus S, a versão mais recente do Android disponível inclui novidades como o suporte a NFC, sensores como giroscópio, VOIP, uma interface mais simplificada e minimalista, possibilidade de usar mais de uma câmera (inclusive câmeras frontais), capacidade para videochamadas (em aparelhos com câmera frontal), entre outros. Aparelhos como o Galaxy S, Nexus One e XPeria X10 estão recebendo a atualização para essa versão. Além do Nexus S, o XPeria Arc e o Galaxy SII são smartphones já lançados com esse sistema.
Versão 3.0/3.1/3.2 (Honeycomb) Primeira versão do Android desenvolvida especificamente para tablets, o Honeycomb chegou em fevereiro desse ano. O primeiro aparelho lançado com o sistema foi o Motorola Xoom. Para os próximos meses, são esperados com essa versão também o lançamento dos novos modelos do Galaxy Tab e o Huawei MediaPad. As maiores novidades da versão dizem respeito a funções específicas ou otimizadas para tablets, como o navegador padrão com suporte a abas, duas barras (uma “de sistema”, na parte inferior da tela, com relógio e botões de ação virtuais; e outra “de ações”, no topo da tela, com botões específicos para a o aplicativo aberto no momento), aceleração de vídeo por hardware e suporte a processadores com múltiplos núcleos (essas duas funções devem ser incluídas também em versões futuras do Gingerbread, devido ao avanço do hardware dos smartphones).
5
Versão Ice Cream Sandwich Anunciado em maio desse ano na conferência Google I/O (onde também foi anunciado o Music Beta), o Ice Cream Sandwich (ou ICS) será a próxima grande atualização do Android. Segundo Mike Claren, um dos engenheiros do projeto, é “o lançamento mais ambicioso até agora” do Android. A maior novidade, por ora, é a integração de versões para smartphones e tablets (acabando com a separação criada pelo Honeycomb). Muito pouco é conhecido sobre essa versão, nem mesmo o número se sabe. Até agora, sabe-se que o Android 3.2 ainda será considerado Honeycomb, mas não se sabe se a versão 2.4 será Gingerbread ou Ice Cream Sandwich, mas a primeira opção é a mais provável, pois sabe-se que o 2.4 não terá muitas diferenças em relação ao 2.3. O nome é complicado (porque não Ice Cream somente, em vez de Ice Cream Sandwich?) para diferenciar o “ícone” do FroYo, que, apesar de se tratar de iogurte congelado, também é um pote de sorvete. Não se sabe porque os engenheiros da Google usam nomes de doces para as versões do Android (a suspeita é que se trata de uma piada interna que decidiram tornar pública), mas sabese que seguem a ordem alfabética (como você pode ver acima). A pergunta que fica é: quais seriam, então, as versões começadas com A e B? Há rumores de que sejam “Apple Pie” e “Banana Bread”, mas, convenhamos, ninguém quer “homenagear” o maior concorrente no nome de um de seus produtos.
3. AMBIENTE DE DESENVOLVIMENTO Para construir uma aplicação Android, o desenvolvedor tem de estar familiarizado com a linguagem de programação Java. Assumindo que o desenvolvedor é perito em Java, ele ou ela pode fazer o download do kit do desenvolvedor (SDK) e começar. O SDK dá ao desenvolvedor acesso à interface de programação do Android (API). O SDK inclui várias ferramentas, entre as quaos exemplos de aplicações e um emulador de telefone. Os emuladores são programas que duplicam os recursos e funções de um sistema ou dispositivo específico. O emulador do Android é um programa que duplica as funções de um telefone rodando na plataforma Android. Quando o desenvolvedor termina de construir a aplicação, pode testá-la no emulador e ver como a aplicação vai funcionar no hardware de verdade. O Google fornece um extenso tutorial do Android no seu site para desenvolvedores. A companhia até fornece passos básicos de programação como testar e debugar um software. Desenvolvedores experientes podem pular o tutorial e ir direto para a construção de uma aplicação. O Google fornece instruções passo-a-passo sobre como construir uma aplicação chamada Hello World para dar aos desenvolvedores a chance de se familiarizar com a arquitetura do Android. Isso nos traz outro recurso do Android que o separa do iPhone - os desenvolvedores podem criar aplicações complexas que rodam por trás de outras aplicações. A Apple limita as aplicações do iPhone ao primeiro plano - se você vai para uma aplicação diferente, a primeira aplicação em que você estava para de funcionar até que você retorne a ela. Esse recurso limita os tipos de aplicação que os desenvolvedores podem construir para o iPhone. O Android permite aos desenvolvedores acesso mais extenso aos processos de segundo plano. 6
O Google divide todas as suas aplicações em qautro blocos básicos de construção (nem todas as aplicações terão todos os blocos de construção): Atividades: Sempre que uma aplicação exibe uma tela para o usuário, isso é uma atividade. Por exemplo, uma aplicação de mapa poderia ter uma tela básica de mapa, um planejador de viagem e uma tela de rota sobreposta. São três atividades. Objetivos: Objetivos são os mecanismos para mover de uma atividade para outra. Se você tivesse que planejar uma viagem usando nosso exemplo de aplicação de mapeamento, um objetivo seria interpretar sua entrada e ativar a tela sobreposta de rota. O Android também permite que os receptores de transmissão de objetivos, que são objetivos despertados por eventos externos como mover-se para um novo endereço ou uma chamada telefone entrando. Serviços: Um serviço é um programa que roda por si mesmo sem uma interface de usuário. Por exemplo: vamos dizer que você esteja participando de um evento no Softrace. Na metade da corrida, você decide que quer ouvir música enquanto termina o caminho. Você pode trocar para a aplicação de tocador de música e começar uma canção enquanto Softrace continua a rastrear seu progresso. Se o Softrace fosse uma simples atividade, você teria terminado a aplicação assim que passasse para o tocador de música. Provedor de conteúdo: Um provedor de conteúdo permite que uma aplicação compartilhe informação com outras aplicações. Isso permite que desenvolvedores trabalhem juntos para criar uma suíte de aplicações que são mais robustas e complexas que um componente individual. Há outras considerações que os desenvolvedores devem ter em mente enquanto constroem aplicações. Elas incluem o mecanismo de renderização de gráficos do Android, o processo de gerenciamento de software, o suporte à interface do usuário e outros detalhes técnicos. O Google fornece guias para todos esses elementos no seu site para desenvolvedores Android. A jornada do Google Phone nem sempre foi agradável. Alguns fornecedores aceitaram o sistema operacional rápido, mas outros simplesmente o ignoraram. Vamos ver quem está e quem não está animado com o Android. 4. PREVISÕES FUTURAS Graças a revelações recentes feitas durante o Mobile World Congress, finalmente temse uma perspectiva “do que vêm por aí no mundo “ dos smartphone e android. Atualmente a versão mais recente do Android para smartphones é a Gingerbread, também conhecida como Android 2.3. Ela foi anunciada pela Google no início de dezembro, e até o momento só está disponível em um apareho, o Nexus S. O restante deles aguarda um possível upgrade, decisão que fica a cargo de seus fabricantes. Segundo a Google, 89 por cento dos smartphones Android no mercado rodam o Android 2.2 (Froyo) ou Android 2.1 Há também o Honeycomb, ou Android 3.0 - a nova versão criada especialmente para tablets. Ele foi anunciado no Mobile World Congress,, quando a Google anunciou uma nova versão para sua franquia. O Honeycomb traz grandes mudanças no Android, incluindo uma nova interface, multitarefa aprimorada e um sistema de notificações redesenhado. Também permitirá que os aplicativos sejam divididos em múltiplos painéis que podem ser reorganizados para tirar melhor proveito da tela. Apesar do design focado em tablets, a Google deu várias dicas de que o Honeycomb 7
poderia eventualmente chegar aos smartphones. No evento para a imprensa neste mês, representantes da empresa me disseram que os detalhes ainda não haviam sido definidos, mas que com quase certeza os elementos visuais do Honeycomb chegarão a todos os aparelhos tablets ou smartphones - em algum ponto de um futuro próximo. A incógnita, suspeitei, é quanto aos painéis. Eles foram feitos para tirar vantagem do tamanho da tela dos tablets, e seria difícil duplicá-los na tela de um smartphone. Também durante o MWC a fabricante taiwanesa HTC anunciou um monte de dispositivos Android, incluindo um tablet com tela de 7 polegadas que rodará uma variante do Gingerbread com o número de versão 2.4. Isso significa que veremos pelo menos mais uma versão do sistema focada em smartphones antes que a versão “I” chegue para unificar os dispositivos.
5. ESPAÇO NO MERCADO
Na prática, o que se percebe é que o Android e o iOS (nesta ordem) crescem continuamente, e este crescimento avança cada vez mais nas fatias em que o Symbiam e os sistemas do BlackBerry eram os maiorais – ao passo em que os sistemas da Microsoft ainda não conseguiram avançar muito. As notícias sobre o tamanho da plataforma têm sido muito positivas para os desenvolvedores de aplicativos e conteúdo voltado ao Android, que só precisam encontrar as maneiras de melhor tirar proveito desta expansão contínua da quantidade potencial de clientes. Neste sentido, a mais recente pesquisa da ComScore, referente ao trimestre encerrado em setembro, é bastante ilustrativa. Ela apontou que 37,4% dos usuários de celulares já aderiram a smartphones, o que corresponde a um total de mais de 87 milhões de usuários de smartphones nos EUA. Entre estes 87 milhões, a maior fatia está com o Android, que corresponde a 44,8% do total de smartphones por lá. Em um saudável segundo lugar vem o iOS, com 27,4%. Ambos tiveram crescimento no trimestre. As outras 3 plataformas (BlackBerry, Windows e Symbian) vêm em seguida e à distância, e compartilham algo em comum: as 3 encolheram em relação ao trimestre anterior. Esta variação mensal também é interessante por alguns motivos, a começar pelos tamanhos envolvidos: a fatia do Android deu um pulo de 4,6 pontos percentuais no trimestre – e isso é mais do que o dobro da fatia inteira da Nokia, para colocar em perspectiva. Este tipo de estatística orienta uma série de fatores de mercado: a disponibilidade de ferramentas de desenvolvimento, de canais de distribuição, de documentação, de cursos para desenvolvedores e muito mais. Mas os dados de acompanhamento do mercado também podem e devem servir para orientar as estratégias dos desenvolvedores. Se você ainda não começou a investir em um projeto móvel com Android, ainda é tempo.
8
6. VANTAGENS Sistema Operacional aberto; Funciona de forma leve junto aos aparelhos com mais hardware; Possui touch sensível em análise a outros aparelhos antigos; Aplicativos grátis na Android Market; Conexão à rede sociais; Conexão à internet; Aparelhos mais baratos nas operadoras;
6. DESVANTAGENS Aplicativos pagos mais caros que em outras lojas; Falta de atualização do sistema operacional para o aparelho; Vírus na loja Android Market; Problemas na atualização; Aplicativos funcionam para alguns aparelhos e para outros não funcionam.
9
2.1.4 Guia de Imagens
Ilustração 1: Cada versão do Android ganha uma escultura no Googleplex
Ilustração 2: Site do Android para desenvolvedores
10
4.REFENRÊNCIAS BIBLIOGRÁFICAS MARCOS PERBONI Disponível em http://marcosvperboni.wordpress.com/em-brevenoticias-de-funcoes-do-android-para-leigos/ Acessado em 18/09/2013. NUMCLIQUE. Disponível em http://www.numclique.net/19508/as-versoes-do-android-esuas-diferencas Acessado em 18/09/2013. MESTRANDROID Disponível em http://www.mestreandroid.com.br/versoes-androidconhecendo-cada-uma-delas/ Acessado em 18/09/2013. INFORMÁTICA.HSW Disponível phone2.htm Acessado em 18/09/2013.
em
http://informatica.hsw.uol.com.br/google-
IDGNOW Disponível em http://idgnow.uol.com.br/mobilidade/2011/02/18/o-futuro-doandroid-as-versoes-para-smartphones-e-tablets-irao-convergir/#&panel2-1 Acessado em 18/09/2013. IBM.COM Disponível https://www.ibm.com/developerworks/community/blogs/752a690f-8e93-4948-b7a3c060117e8665/entry/android_chega_a_44_do_mercado_dos_eua?lang=en Acessado 18/09/2013.
em em
WHARTON.UNIVERSIA Disponível em http://www.wharton.universia.net/index.cfm?fa=viewArticle&id=2250&language=portuguese Acessado em 18/09/2013. ECODE10.COM Disponível http://ecode10.com/processartigo.aspx?ch_artigos=1052Acessado em 18/09/2013.
em
11
12