Você está na página 1de 13

3 Edio Ricardo R.

Lecheta

Novatec

Copyright 2009, 2010, 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmo parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora. Editor: Rubens Prates Reviso gramatical: Lia Gabriele Regius/Patrizia Zagni Editorao eletrnica: Carolina Kuwabata Capa: Victor Bittow ISBN: 978-85-7522-344-4 Histrico de impresses: Maro/2013 Junho/2010 Maro/2009 Terceira edio (ISBN: 978-85-7522-344-4) Segunda edio (ISBN: 978-85-7522-244-7) Primeira edio (ISBN: 85-7522-186-0)

Novatec Editora Ltda. Rua Lus Antnio dos Santos 110 02460-000 So Paulo, SP Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: novatec@novatec.com.br Site: novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

CAPTULO 1

Introduo ao Android

1.1 Introduo
O mercado de celulares est crescendo cada vez mais. Estudos mostram que hoje em dia mais de 3 bilhes de pessoas possuem um aparelho celular, e isso corresponde a mais ou menos metade da populao mundial. Hoje em dia os usurios comuns esto procurando cada vez mais celulares com diversos recursos como cmeras, msicas, bluetooth, tima interface visual, jogos, GPS, acesso a internet e e-mails, e agora ainda temos a TV digital. O mercado corporativo tambm est crescendo muito, e diversas empresas esto buscando incorporar aplicaes mveis a seu dia-a-dia para agilizar seus negcios e integrar as aplicaes mveis com seus sistemas de back-end. Empresas obviamente visam lucro e mais lucro, e os celulares e smartphones podem ocupar um importante espao em um mundo onde a palavra mobilidade est cada vez mais conhecida. Desta forma aplicaes que executam em um celular podem estar literalmente conectadas e online, sincronizando informaes diretamente de um servidor convel da empresa. Hoje em dia diversos bancos oferecem servios aos seus usurios, onde possvel pagar suas contas e visualizar o extrato de sua conta corrente diretamente de um celular. Pases mais desenvolvidos j permitem que celulares sejam utilizados em mercados para ler os cdigos de barras dos produtos e realizar a compra apenas com o celular, como se fosse um carto de crdito. O que todos precisavam na verdade era uma plataforma poderosa e exvel para tornar tudo isso mais vivel e cada vez mais uma realidade para todos.

21

22

Google Android 3a edio

As empresas e os desenvolvedores buscam uma plataforma moderna e gil para o desenvolvimento de aplicaes coorporativas para auxiliar em seus negcios e lucros. J os usurios comuns buscam um celular com um visual elegante e moderno, de fcil navegao e uma innidade de recursos. Agora, ser que existe algum para atender esses dois mundos completamente diferentes? Para acompanhar essa evoluo da tecnologia e satisfazer os usurios, os fabricantes e operadoras de celulares, as empresas e ns, os desenvolvedores, existe uma grande corrida estrelada pelas maiores empresas do mundo em tecnologia mvel para competir por esse nicho do mercado. O Android a resposta do Google para ocupar esse espao. Consiste em uma nova plataforma de desenvolvimento para aplicativos mveis, baseada em um sistema operacional Linux, com diversas aplicaes j instaladas e, ainda, um ambiente de desenvolvimento bastante poderoso, ousado e exvel. O Android causou um grande impacto quando foi anunciado, atraindo a ateno de muita gente. Podemos dizer que isso aconteceu porque por trs dele est nada mais nada menos do que o Google, a empresa que est revolucionando a internet. Entretanto, no apenas o Google que est na jogada, e sim um grupo formado por empresas lderes do mercado de telefonia como a Motorola, LG, Samsung, Sony Ericsson e muitas outras. Esse grupo, chamado de Open Handset Alliance (OHA) foi criado com a inteno de padronizar uma plataforma de cdigo aberto e livre para celulares, justamente para atender a todas as expectativas e tendncias do mercado atual. Existem diversos vdeos interessantes no YouTube que demonstram alguns recursos do Android, e alguns chegam a impressionar. Os vdeos mostram algumas funcionalidades bsicas como navegao na internet com a tela touch screen, reconhecimento de cdigo de barras, uma demonstrao do famoso jogo Quake executando perfeitamente com uma tima resoluo e muito mais. Um desses vdeos apresenta um dos clssicos recursos da plataforma e, em determinado momento, o apresentador diz algo como: Hum, estou com fome, gosto de comer sushi, ser que existe algum restaurante japons por aqui? E ele acessa o Google Maps para buscar os restaurantes mais prximos, sendo que utilizando GPS possvel saber sua exata localizao e traar a rota para o restaurante mais prximo desejado. isso: os celulares no so mais apenas usados para atender ligaes, sendo agora verdadeiras mquinas repletas de tecnologia para voc usufruir. Este livro foca no desenvolvimento de aplicaes para o Android, utilizando a linguagem Java e a verso 2.2 do SDK. Em cada captulo, novos conceitos e ideias

Captulo 1 Introduo ao Android

23

sero apresentados, para que voc saia na frente e possa estar preparado para quando esse mercado explodir.

1.2 Open Handset Alliance e o Android


A Open Handset Alliance (OHA) um grupo formado por gigantes do mercado de telefonia de celulares liderados pelo Google. Entre alguns integrantes do grupo esto nomes consagrados como a HTC, LG, Motorola, Samsung, Sony Ericsson, Toshiba, HTC, Huawei, Sprint Nextel, China Mobile, T-Mobile, ASUS, Intel, Acer, Dell, Garmin e muito mais. Quando este livro foi escrito, o grupo era formado por 84 integrantes de peso, e voc pode vericar a lista completa em: www.openhandsetalliance.com/oha_members.html. No site da OHA existe uma tima descrio do que seria essa aliana. O texto est em ingls e vou apenas traduzir uma breve citao aqui. Hoje, existem 1,5 bilho de aparelhos de televiso em uso em todo o mundo e 1 bilho de pessoas tm acesso internet. No entanto, quase 3 bilhes de pessoas tm um telefone celular, tornando o aparelho um dos produtos de consumo mais bem-sucedidos do mundo. Dessa forma, construir um aparelho celular superior melhoraria a vida de inmeras pessoas em todo o mundo. A Open Handset Alliance um grupo formado por empresas lderes em tecnologia mvel que compartilham essa viso para mudar a experincia mvel de todos os consumidores [...]. Assim, o objetivo do grupo denir uma plataforma nica e aberta para celulares para deixar os consumidores mais satisfeitos com o produto nal. Outro objetivo principal dessa aliana criar uma plataforma moderna e exvel para o desenvolvimento de aplicaes coorporativas. O resultado dessa unio, como voc j deve saber, foi o nascimento do Android. O Android a nova plataforma de desenvolvimento para aplicativos mveis como smarthphones e contm um sistema operacional baseado em Linux, uma interface visual rica, GPS, diversas aplicaes j instaladas e ainda um ambiente de desenvolvimento bastante poderoso, inovador e exvel. Outra boa notcia que podemos utilizar a consagrada linguagem Java para desenvolver as aplicaes, usufruindo de todos os recursos a que temos direito. Todos acabam se beneciando dessa unio: os fabricantes de celulares, os usurios comuns e, claro, os desenvolvedores de aplicaes. Os usurios de celulares so extremamente favorecidos com tudo isso. Hoje em dia, todos querem um celular com um bom visual, de fcil usabilidade, com tela touch screen, cmera, msicas, jogos, GPS, acesso internet e muito mais, e o

24

Google Android 3a edio

celular est cada vez mais ocupando um espao importante na vida das pessoas. O Android foi criado justamente pensando em agradar esses usurios, possibilitando que encontrem todos os recursos esperados em apenas um aparelho. O mundo da tecnologia est sempre em evoluo, e a OHA foi criada justamente para manter uma plataforma-padro onde todas as novas tendncias do mercado estejam englobadas em uma nica soluo. Para os fabricantes de celulares, o fato de existir uma plataforma nica e consolidada uma grande vantagem para criar novos aparelhos. A grande vantagem para eles que a plataforma tambm livre e de cdigo aberto. A licena do Android exvel e permite que cada fabricante possa realizar alteraes no cdigo-fonte para customizar seus produtos, e o melhor de tudo, sem necessidade de compartilhar essas alteraes com ningum. O Android tambm free , e os fabricantes podem usar e abusar dele sem precisar pagar por isso. O fato de o Android ser de cdigo aberto contribui muito para seu aperfeioamento, uma vez que desenvolvedores de todos os lugares do mundo podem contribuir para seu cdigo-fonte, adicionando novas funcionalidades ou simplesmente corrigindo falhas. J os desenvolvedores de aplicaes podem desfrutar de uma plataforma de desenvolvimento moderna com diversos recursos incrveis, com tudo o que h de mais moderno. Este o tema deste livro: o desenvolvimento de aplicaes com o Android. E aqui voc vai entender o porqu de toda essa revoluo.

1.3 Conhecendo um pouco mais sobre o Android


Todo celular tem uma tela inicial com alguns cones e um menu, certo? Todo celular tambm tem uma agenda de contatos e uma tela para fazer a ligao, no ? Agora, voc j pensou em trocar algumas dessas telas por uma tela customizada desenvolvida por voc? Com o Android isso possvel. Sua arquitetura muito exvel e voc pode integrar aplicaes nativas com sua aplicao, ou at mesmo substituir qualquer aplicao nativa existente por uma que voc mesmo criou. Creio que as operadoras ou fabricantes de celulares vo gostar dessa funcionalidade, j que dessa forma possvel trocar as telas e funcionalidades do celular para fazer aquele marketing bsico. possvel integrar aplicaes de uma forma simples, sejam elas desenvolvidas por voc, sejam aplicaes nativas. Por exemplo, imagine que sua aplicao precise consultar a agenda de contatos para selecionar determinado amigo, e logo depois visualizar o endereo dele em um mapa. Bom, que existe a agenda de

Captulo 1 Introduo ao Android

25

contatos e o Google Maps no Android todos j sabem, mas ser que possvel utiliz-los e integr-los em nossas aplicaes? A resposta sim. Integrao uma das palavras-chaves em aplicaes coorporativas, e a arquitetura do Android foi criada justamente pensando nisso.

Nota: O Android tem muitos diferenciais interessantes e uma arquitetura

realmente exvel focada na integrao de aplicaes. No existe diferena entre uma aplicao nativa e uma desenvolvida por voc.

Falando em integrao, existe uma classe que o corao do Android, chamada de Intent, e ela ser explicada no captulo 5. Essa classe nada mais do que uma mensagem enviada ao sistema operacional informando nossa inteno de realizar determinada tarefa. Ento, no sistema operacional do Android, mensagens so disparadas para todos os lados, identicadas pela classe Intent. Conforme o contedo da mensagem, ela pode ser interceptada por qualquer aplicao interessada a m de realizar a tarefa que for necessria. Por exemplo, se voc deseja abrir uma aplicao nativa como o browser ou abrir uma nova tela de sua aplicao, a nica coisa que voc precisa fazer criar esse objeto Intent e congurar o contedo de sua mensagem corretamente para ser interpretado pelo sistema operacional. Outro ponto forte do Android que seu sistema operacional baseado no Linux, e ele mesmo se encarrega de gerenciar a memria e os processos. Isso permite que diversas aplicaes possam ser executadas ao mesmo tempo, permitindo que aplicaes em segundo plano consigam executar sem que o usurio perceba, enquanto ele est acessando a internet ou atendendo uma ligao. Esse recurso muito legal e voc pode tranquilamente agendar uma aplicao para executar em determinada data e hora, sem atrapalhar a atividade do usurio. claro que no podemos esquecer os recursos visuais e aquelas funcionalidades que impressionam o usurio comum. Nesse quesito o Android certamente atende as expectativas. A navegao de telas por meio da touch screen permite que o usurio tenha uma tima experincia ao usar o aparelho. Segundo avaliaes sobre o HTC G1, o primeiro celular Android lanado no mercado, a navegao na internet incrvel. O Android tambm tem suporte a grcos 3D baseados na especicao 1.0 da OpenGL ES e, dessa forma, possvel criar jogos com uma qualidade excelente de resoluo. Voc pode conferir vrias demonstraes de jogos nos vdeos do YouTube.

26

Google Android 3a edio

1.4 Sistema operacional Linux


O sistema operacional do Android foi baseado no kernel 2.6 do Linux, e responsvel por gerenciar a memria, os processos, threads e a segurana dos arquivos e pastas, alm de redes e drivers. Cada aplicativo no Android dispara um novo processo no sistema operacional. Alguns deles podem exibir uma tela para o usurio, e outros podem car em execuo em segundo plano por tempo indeterminado. Diversos processos e aplicativos podem ser executados simultaneamente, e o kernel do sistema operacional o responsvel por realizar todo o controle de memria. Caso necessrio, o prprio sistema operacional pode decidir encerrar algum processo para liberar memria e recursos, e talvez at reiniciar o mesmo processo posteriormente quando a situao estiver controlada. Toda a segurana do Android baseada na segurana do Linux. No Android cada aplicao executada em um nico processo e cada processo por sua vez possui uma thread dedicada. Para cada aplicao instalada no celular criado um usurio no sistema operacional para ter acesso a sua estrutura de diretrios. Desta forma nenhum outro usurio pode ter acesso a esta aplicao.

1.5 Mquina virtual Dalvik


Voc j sabe que a linguagem Java utilizada para construir as aplicaes para o Android. O fato que em seu sistema operacional no existe uma mquina virtual Java (JVM). Na verdade, o que temos uma mquina virtual chamada Dalvik que otimizada para execuo em dispositivos mveis. Ao desenvolver as aplicaes para o Android voc vai utilizar a linguagem Java e todos os seus recursos normalmente, mas depois que o bytecode (.class) compilado ele convertido para o formato .dex (Dalvik Executable), que representa a aplicao do Android compilada. Depois disso, os arquivos .dex e outros recursos como imagens so compactados em um nico arquivo com a extenso .apk (Android Package File), que representa a aplicao nal, pronta para ser distribuda e instalada. Ao utilizar o ambiente de desenvolvimento do Eclipse, toda essa compilao e gerao do arquivo .apk ocorre automaticamente, portanto, no preciso se preocupar com isso.

Captulo 1 Introduo ao Android

27

1.6 Cdigo aberto e livre


O Android a primeira plataforma para aplicaes mveis completamente livre e de cdigo aberto (open-source), o que representa uma grande vantagem para sua evoluo, uma vez que diversos programadores do mundo podero contribuir para melhorar a plataforma. Para os fabricantes de celulares, isso tambm uma grande vantagem, uma vez que possvel utilizar o sistema operacional do Android em seus celulares sem ter que pagar por isso. Alm disso, a licena Apache Software Foundation (ASF) permite que alteraes sejam efetuadas no cdigo-fonte para criar produtos customizados sem precisar compartilhar as alteraes com ningum. Voc pode obter mais informaes e at fazer o download do cdigo-fonte do Android no seguinte site: http://source.android.com/.

1.7 Android Developer Challenge


Para promover o Android o Google comeou investindo pesado e, assim que a primeira verso do SDK foi lanada, tambm foi anunciado o famoso concurso Android Developer Challenge (ADC), com mais de U$ 10 milhes em prmios. O prazo para enviar as aplicaes era 14 de abril de 2008, e o concurso foi dividido em duas fases. Na primeira fase, as 50 melhores aplicaes recebiam US$ 25.000 e, na segunda, mais 20 das melhores aplicaes seriam selecionadas para receber US$275.000, e algumas US$ 100.000. Na primeira etapa as aplicaes foram testadas no prprio emulador do Android, porque na poca nenhum celular com o Android tinha sido lanado. Isso foi uma grande sacada do Google para melhorar a plataforma e ajudar a test-la, sendo que desenvolvedores de todo o mundo estavam interessados em desenvolver as aplicaes para talvez faturar a bolada. Esse concurso literalmente agitou o mundo todo, e com isso o Google consegui testar o SDK e consolidar seu produto. A segunda parte foi anunciada para acontecer somente depois que o primeiro celular com o Android fosse lanado, e dessa vez as aplicaes seriam testadas em um aparelho real, e no mais em um emulador. Quando este livro estava sendo escrito, a primeira parte j tinha terminado e todos os vencedores podiam ser vistos no endereo seguinte. Temos at um brasileiro que foi um dos vencedores com a aplicao TeraDesk. Veja em: http://code.google. com/intl/pt-BR/android/adc_gallery/.

28

Google Android 3a edio

1.8 Google Play (Android Market)


Para auxiliar a distribuio das aplicaes do Android, alm da divulgao de sua nova plataforma, foi criado o site Android Market, que recentemente teve seu nome alterado para Google Play: https://play.google.com/. Alm do console de desenvolvedor, onde voc pode fazer o upload e gerenciar seus aplicativos, o qual pode ser acessado neste link: https://play.google.com/apps/publish/. O objetivo do site fornecer aos desenvolvedores de aplicativos um lugar comum para disponibilizar suas aplicaes. Funciona como o site do YouTube: basta cadastrar e enviar seu aplicativo. O site tambm conta com o mesmo esquema de comentrios e classicao que o YouTube contm. Para publicar uma aplicao o desenvolvedor precisa pagar a taxa de US$ 25 e concordar com os termos de uso. Depois disso, o aplicativo j pode ser instalado pelos usurios. Existem aplicativos que so gratuitos, enquanto outros so pagos. Uma boa notcia para os desenvolvedores que 70% dos lucros com os aplicativos vendidos sero repassados para quem os construiu. Para os usurios utilizarem o Google Play muito simples. Basta acessar o site com o celular e fazer o download do aplicativo desejado. Os comentrios e a classicao deixada pelos usurios sero utilizados para criar o ranking com os melhores aplicativos. A gura 1.1 mostra o usurio selecionando alguma aplicao para ser instalada pelo Google Play.

Figura 1.1 Seleo de uma aplicao no Google Play.

Captulo 1 Introduo ao Android

29

A gura 1.2 mostra as aplicaes j instaladas e ainda com o sistema de classicao. Se voc deseja ver na prtica como o Google Play funciona, procure pelos vdeos no YouTube, que contm timas demonstraes.

Figura 1.2 Aplicaes instaladas pelo Google Play.

1.9 T-Mobile G1
O T-Mobile G1 desenvolvido pela HTC foi o primeiro celular lanado com a plataforma do Android e, como esperado, causou um grande agito no mercado. A notcia de seu lanamento causou um grande impacto e superou as expectativas de vendas da HTC, e mesmo antes de seu lanamento j havia sido esgotado todo o estoque para os pedidos de pr-venda. Os primeiros celulares HTC G1 (Figura 1.3) comearam a ser vendidos nos Estados Unidos no dia 22 de outubro de 2008 por US$ 179, disponibilizando uma tela sensvel ao toque, um teclado Qwerty que abre para baixo para facilitar a digitao e todos os outros recursos que o Android tem a oferecer. Para maiores detalhes, acesse o site ocial do HTC G1: www.androidg1.org. Se deseja brincar um pouco com o G1, voc pode acessar um emulador on-line que foi disponibilizado pela HTC em: http://tmobile.modeaondemand.com/htc/g1/. Nesse site, ao clicar no menu Emulator voc pode brincar com o emulador do celular

30

Google Android 3a edio

e acessar todas as suas opes, como browser, mapas, agenda de contatos etc. Se clicar no menu 360 View voc pode literalmente segurar um celular G1 na sua mo e gir-lo para ter uma ideia de sua aparncia. Vale pena brincar um pouco com o emulador e assistir aos vdeos no YouTube sobre o G1, que demonstram as funcionalidades e toda a usabilidade do Android.

Figura 1.3 Emulador do HTC G1.

1.10 Google Nexus


Na poca em que este livro estava sendo escrito, o Google tinha recm-lanado seu smartphone Nexus 4, com Android 4.2 e um processador quad core de 1.5 Ghz e tela super AMOLED de 4.7 polegadas, sendo o mais rpido de todos os smartphones Android j lanados at aquele momento. Este smartphone faz parte da linha Nexus e agora est ainda mais impressionante. Para mais informaes sobre a linha Nexus dos celulares do Google, e uma tima explicao dos recursos do Android, visite: www.google.com.br/nexus/. Recentemente, tambm foi lanado o Nexus 7, do Google, um tablet com as mesmas caractersticas e uma tela de 7 polegadas. No site da linha Nexus, voc pode encontrar sempre os modelos mais atualizados dos smartphones e tablets ociais do Google. Mas o grande triunfo do Android sua plataforma aberta e exvel, a qual permite que o sistema operacional inteiro seja customizado. Desta forma vrios fabricantes de celulares como a Motorola, HTC, Sony Ericsson etc. fazem customizaes nas verses do Android. A customizao varia de fabricante para fabricante. Na HTC a

Captulo 1 Introduo ao Android

31

customizao chamada de HTC Sense e muda totalmente o visual do aparelho, e ainda adiciona diversas aplicaes. A Motorola chama a sua de MotoBlur, e focada em redes sociais. A customizao da Sony Ericsson conhecida como UX "User eXperience". Com a grande popularizao do Android, os usurios podero escolher os modelos que mais lhe agradam e os desenvolvedores podero desfrutar da sua plataforma de desenvolvimento e criar aplicaes mveis incrveis.

1.11 Desenvolvimento de aplicaes com o Eclipse e Java


Para alegria geral da nao possvel desenvolver uma aplicao para o Android utilizando a linguagem Java em seu ambiente de desenvolvimento preferido, como o Eclipse, Netbeans ou IntelliJ IDEA. O Eclipse o ambiente de desenvolvimento preferido pelo Google, e h um plug-in chamado ADT (Android Development Tools) para facilitar o desenvolvimento, os testes e a compilao do projeto e, portanto, adotaremos o Eclipse para nossos exemplos. Utilizando o plug-in ADT possvel executar o emulador do Android diretamente do Eclipse, usufruindo de todos os seus recursos como o debug passo a passo, que funciona perfeitamente. Tambm diretamente do Eclipse possvel controlar o emulador, visualizando logs e simulando o envio de uma mensagem SMS ou uma ligao telefnica, alm da capacidade de visualizar e enviar arquivos para o emulador, executar o garbage collector, visualizar a memria heap etc. Para distribuir uma aplicao Android, necessrio compilar o projeto Java em um arquivo de extenso .apk (Android Package File), que um arquivo binrio compactado com as classes compiladas e os recursos do projeto. A boa notcia que ao compilar o projeto pelo Eclipse esse arquivo criado automaticamente pelo plug-in. Para executar uma aplicao no emulador tambm necessrio instalar esse arquivo .apk, da mesma forma que em um aparelho de celular real. Entretanto, isso tambm feito automaticamente pelo Eclipse quando a aplicao executada. Mas chega de teoria. Vamos partir para o prximo captulo, onde aprenderemos a instalar o SDK e o plug-in ADT para o Eclipse e criaremos nossa primeira aplicao para o Android.