Apostila de Android - Programação Básica 7 Edição (FREE)

Embed Size (px)

DESCRIPTION

Ensina como Desenvolver Aplicações para Android PASSO A PASSO (Versão de Amostra).ADQUIRA A VERSÃO COMPLETA :http://www.apostilaandroid.net

Citation preview

  • 2

    Aviso sobre esta apostila Antes de iniciar a leitura deste material, veja esse aviso: Este material usa a licensa Creative Commons isto significa que ELE PODE SER DISTRIBUDO LIVREMENTE, porm, SOBRE AS SEGUINTES REGRAS :

    Esse material NO PODER SER COMERCIALIZADO Essa material NO PODER SER DEVIRADO E todos os crditos do autor DEVERO SER MANTIDOS

  • 3

    O Sucesso da Apostila de Android A Apostila de Android Programando Passo a Passo hoje referncia didtica de material sobre desenvolvimento de aplicaes e sistemas para a plataforma Google Android, conhecido tanto aqui no Brasil quanto em outros pases (somando-se mais de 65 pases). Hoje a Apostila de Android j chegou a aproximadamente 200.000 acessos (feito pelos mais diversos usurios como estudantes e profissionais da rea de programao) Hoje ela usada por universidades e professores que ministram cursos sobre desenvolvimento Android (Tanto na rea de criao de aplicaes e jogos).

    Sobre o Autor da Apostila

    Luciano Alves da Silva Bacharelado em Cincia da Computao pela UNISUAM (Rio de Janeiro RJ) e Ps-Graduado em Docncia do Ensino Superior pelo Instituto A Vez do Mestre (Universidade Cndido Mendes UCAM, no Rio de Janeiro). Possui conhecimento e domnio das linguagens de programao Pascal, Java, C/C++, C#, Visual Basic, Delphi, PHP e HTML. J criou Ambientes de Desenvolvimento Integrado (conhecidos como IDE) como o MakeWare (que trabalha com as linguagens Pascal, C++ e Java) e o AlgoWare (interpretador de algoritmos).

    autor tambm dos seguintes livros, pela editora AGBOOK

    - Aprenda Passo a Passo a Programar em Android Guia Essencial para Desenvolvedores

    - Desenvolvendo Jogos com a Plataforma XNA 2 Edio Guia para Desenvolvedores.

    - Desenvolvendo Jogos com o Framework MONOGAME Guia para Desenvolvedores.

    - Desenvolvendo Jogos 2D com Plataforma Java Guia para Desenvolvedores.

  • 4

    Apresentao

    Android uma plataforma aberta voltada para dispositivos mveis desenvolvida pela Google e atualmente mantida pela Open Handset Alliance (OHA). Todas as aplicaes desenvolvidas para essa

    plataforma foram criadas com a linguagem Java, o que facilita muitos programadores com conhecimentos em Java (ou de outras linguagens prximas de Java como C++ e C#) a desenvolver aplicaes para o Android. Esta apostila tem por objetivo mostrar de modo fcil e claro como desenvolver aplicaes para dispositivos mveis da Google (Android) usando a IDE Android Developer Tools (Eclipse + Android SDK). Para quem dedico este material? Este material dedicado aos usurios experientes ou iniciantes em programao (tanto para Desktop, Mbile e etc.), que j tenha algum contato com a linguagem Java ou com uma de suas derivadas (como C/C++ ou C#).

    O

  • 5

    ndice analtico

    Capitulo 1 Viso geral sobre o Google Android ........................................... 7

    1.1) Introduo ............................................................................................... 7

    1.2) Estrutura Geral da plataforma Google Android ....................................... 9

    1.2.1) A arquitetura do Android .................................................................... 10

    1.2.2) Aplicaes .......................................................................................... 10

    1.2.3) Android Runtime ................................................................................ 11

    1.2.4) Linux Kernel ....................................................................................... 11

    1.3) Para qual verso do Android devemos desenvolver as aplicaes ? ... 12

    Capitulo 2 Instalando e Configurando a Ferramenta de Desenvolvimento para Android ................................................................................................... 14

    Capitulo 3 Comeando a programar no Google Android .......................... 23

    Conhecendo a estrutura geral de um projeto Android .................................. 30

    .............................................................................. 32

    ......................................................................... 33

    - - - - .......................................................................................................... 33

    ....................................................................................... 34

    ....................................................................................... 34

    Viso geral da ferramenta de desenvolvimento ........................................... 35

    Executando a nossa aplicao..................................................................... 36

    Capitulo 4 Conhecendo as widgets do Android ......................................... 52

    4.1) A paleta de componentes e suas widgets ............................................. 52

    .................................................................... 53

    ......................................................................... 55

    .............................................................................. 57

    ................................................................. 58

    ....................................................................... 59

    ......................................................................... 60

    ........................................................................... 60

    .................................................... 61

  • 6

    Capitulo 5 Construindo nossas aplicaes no Android ............................ 62

    5.1) Desenvolvendo uma Calculadora Bsica ............................................. 62

    Aplicao da calculadora em execuo ....................................................... 82

    5.2) Desenvolvendo uma aplicao simples de compras ............................ 82

    5.3) Desenvolvendo uma aplicao de clculo de salrio ............................ 88

    5.4) Desenvolvendo uma aplicao de lista de contatos ............................. 97

    5.5) Desenvolvendo uma aplicao que visualiza imagens ....................... 101

    Capitulo 6 Trabalhando com mais de uma tela em uma aplicao ......... 111

    6.1) Desenvolvendo um Sistema de Cadastro ........................................... 119

    Capitulo 7 Trabalhando com menus em uma aplicao .......................... 143

    Capitulo 8 Propriedades e eventos dos componentes trabalhados ....... 154

    Widget TextView ........................................................................................ 154

    Widget EditText .......................................................................................... 155

    Widget Button ............................................................................................. 157

    Widget CheckBox/RadioButton .................................................................. 158

    Widget ListView ......................................................................................... 159

    Widget ImageView ..................................................................................... 160

    Concluso a respeito do material ............................................................... 162

  • 7

    Capitulo 1 Viso geral sobre o Google Android

    1.1) Introduo

    onforme mencionado na apresentao deste material, o Android uma plataforma desenvolvida pela Google voltada para dispositivos mveis, totalmente aberta livre (Open Source), que foi divulgada em 5 de

    novembro de 2007. Inicialmente o sistema Android foi desenvolvido pelo Google e atualmente essa plataforma mantida pela OHA (Open Handset Alliance. Visite o link : http://www.openhandsetalliance.com), um grupo constitudo por aproximadamente 84 empresas as quais se uniram para inovar e acelerar o desenvolvimento de aplicaes e servios, com o objetivo e trazer aos consumidores uma experincia mais rica em termos de recursos, menos dispendiosa em ternos financeiros para o mercado mvel. Um dos primeiros SmartPhones que ofereceu suporte a esse sistema operacional foi o G1 da empresa T-Mobile. Confira na imagem seguinte:

    G1 - T-Mobile

    C

  • 8

    Atualmente o sistema Android se encontra hoje disponvel tanto em SmartPhones quanto nos Tablets. Confira abaixo alguns dos dispositivos encontramos hoje no mercado com o sistema operacional Android:

    SmartPhone Samsung Galaxy S3

    Tablet Samgung Galaxy Note

  • 9

    1.2) Estrutura Geral da plataforma Google Android O Android SDK uma ferramenta de desenvolvimento que disponibiliza um conjunto de APIs necessrias para desenvolver aplicaes para a plataforma Android, utilizando a linguagem Java. Vamos conhecer os recursos encontrados nessa plataforma:

    - Application framework: Permite a reutilizao e substituio de componentes ; - Dalvik virtual machine: uma Mquina Virtual Java (JVM) voltada para dispositivos mveis ; - Browser Integrado baseado no webkit engine ; - Grficos Otimizados O Android constitudo por bibliotecas 2D e 3D baseada na especificao OpenGL ES 1.0 ; - SQLite: Sistema Gerenciador de Banco de Dados (SGBD) j embutido no Android para guardar dados ; - Suporte multimdia: A plataforma j oferece para udio, vdeo e formatos de imagem (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ; - Telefonia GSM (dependente de hardware) ; - Bluetooth, EDGE, 3G, e WiFi (dependente de hardware) ; - Cmera, GPS, compasso, e acelermetro (dependente de hardware) ; - Rico ambiente de desenvolvimento , incluindo um emulador de dispositivo, ferramentas de depurao, memria, performance e um plugin para o Eclipse (ADT) ;

  • 10

    1.2.1) A arquitetura do Android

    Arquitetura geral da plataforma

    1.2.2) Aplicaes O Android nos fornece um conjunto de aplicaes fundamentais, so elas: - um cliente de e-mail; - programa de SMS; - agenda; - mapas; - navegador; - contatos entre outros. Todos os aplicativos acima presentes no Android foram desenvolvidos na linguagem de programao Java.

    O Android nos fornece um conjunto de bibliotecas C/C++ utilizadas por vrios componentes do sistema. Veja algumas das bibliotecas abaixo:

  • 11

    - System C library: Consiste em uma implementao derivada da biblioteca C padro baseado no sistema (libc) do BSD sintonizada para dispositivos rodando Linux. - Media Libraries: Baseado no Packet so as bibliotecas que suportam os mais diversos formatos de udio e vdeo, incluindo tambm imagens. - Surface Manager: Responsvel pelo acesso ao subsistema de exibio bem como as mltiplas camadas de aplicaes 2D e 3D; - LibWebCore: Consiste em um web browser engine utilizado tanto no Android Browser quanto para exibies web. - SGL o engine de grficos 2D - 3D libraries: Uma implementao baseada no OpenGL ES 1.0 APIs; As bibliotecas utilizam acelerao 3D via hardware (quando disponvel) ou o software de renderizao 3D altamente otimizado includo no Android. - FreeType Biblioteca responsvel pela renderizao de fontes bitmap e vector; - SQLite Conforme j mencionado, consiste no sistema gerenciador de banco de dados (SGBD) relacional disponvel para todas as aplicaes.

    1.2.3) Android Runtime O Android constitudo por um conjunto de bibliotecas que fornece a maioria das funcionalidades disponveis nas principais bibliotecas da linguagem Java. Toda aplicao Android roda em seu prprio processo, com sua prpria instncia da mquina virtual Dalvik. O Dalvik foi escrito de forma a executar vrias VMs eficientemente. Ele executa arquivos .dex, que otimizado para consumo mnimo de memria. A VM baseada em registros e roda classes compiladas pela linguagem Java que foram transformadas em arquivos .dex,

    O Dalvik VM foi baseado no kernel do Linux para funcionalidades subjacentes como o encadeamento e a gesto de baixo nvel de memria. 1.2.4) Linux Kernel O Android foi projetado em cima da verso 2.6 do kernel do Linux para os servios centrais do sistema, tais como segurana, gesto de memria, gesto de processos, etc. O kernel tambm atua como uma camada de abstrao entre o hardware e o resto do software.

  • 12

    1.3) Para qual verso do Android devemos desenvolver as aplicaes ? Quando desenvolvemos uma aplicao para um determinado sistema operacional, normalmente, precisamos fazer a seguinte pergunta : Para qual verso do S.O devemos desenvolver ? Considero esse um dos pontos mais importantes que devemos refletir antes de desenvolvermos uma aplicao. Como neste material iremos desenvolver aplicaes voltados para a plataforma Android, devemos pensar para qual verso da plataforma precisamos desenvolver. 1.3.1) Qual verso da plataforma Android a mais utilizada no momento ? Para falar a respeito dessa situao, irei mostrar aqui um grfico que mostra quais verses do Android so as mais usadas no mundo todo :

    Grfico de Estatstica a respeito do S.O Android mais usado

    O grfico da esttica acima foi feito em dezembro de 2014, onde nele podemos observar que as verses do Android mais utilizadas so o Jelly Bean (verso 4.1 4.3) e KitKat (4.4), praticamente as duas esto no empate. As verses mais antigas do Android como Eclair (verso 2.1) e Donut (verso 1.6) j nem so mais citadas e faladas hoje em dia. A verso 5.x do Android recentemente lanada, o Lollipop, ainda est comeando a se popularizar.

  • 13

    Hoje em dia, se fomos em alguma loja para comprar um aparelho (Smartphone ou Tablet Android) iremos adquiri-lo com o S.O Android verso 4.0 para cima. Se olharmos por esse ponto de vista, devemos pensar em desenvolvermos nossa aplicao utilizando, como base, a verso 4.0. 1.3.2) O Publico Um outro fator muito importante , e que destaco aqui , a questo O PUBLICO. Nesse fator lado, visto que muitos usurios ainda possuem aparelhos Android com uma verso mais antiga (como a verso 2.3 e 2.2), logo, devemos pensar tambm

    esenvolvidas. 1.3.3) Qual prioridade devemos dar : Publico ou Verso do S.O ? Agora a questo : Como combinar a questo PUBLICO e VERSO do S.O para desenvolvermos a aplicao ? Se voc pretende desenvolver uma aplicao Android simples (como um pequeno sistema de cadastro), podemos, se quisermos, dar prioridade a questo PUBLICO, procurando desenvolver sua aplicao Android para uma verso mais antiga, porm, ainda NO OBSOLETA . Agora se voc desenvolver uma aplicao Android cheia de muitos recursos, cujos componentes s existem em verses mais atuais do sistema, devemos dar prioridade a questo VERSO do S.O.

  • 14

    Capitulo 2 Instalando e Configurando a Ferramenta de Desenvolvimento para Android

    ara a elaborao dessa nova verso do material, fiz o uso da ferramenta Android Developer Tools (que consiste no ambiente Eclipse para configurado com o Android SDK). Para que a ferramenta de

    desenvolvimento funcione necessrio que voc tenha instalado, antes de tudo, a Mquina Virtual Java (de preferncia a verso 7 ou posterior). Bom, mos a obra. Baixando o Android Developer Tools Atualmente no site developer.android.com encontra-se disponvel agora a nova ferramenta de desenvolvimento para Android chamada Android Studio, porm, neste material vamos utilizar o Android Developer Tools (Eclipse configurado com o Android SDK). Embora no site no esteja mais disponibilizando os links para o download do Android Developer Tools, eles ainda existem. Eu deixei guardado o link de uma verso Android Developer Tools praticamente funcional (e tudo j configurado). A verso que ser utilizado em nosso material ser essa, FAA O DOWNLOAD AGORA : https://dl.google.com/android/adt/adt-bundle-windows-x86-20130729.zip Feito isso ser aberta a seguinte caixa de dilogo :

    P

  • 15

    Caixa de dilogo Download do Android Developer Tools

    Realize o download da ferramenta acima e descompacte todo o seu contedo

    \ Aps a descompactao do arquivo acima, NO EXECUTE AINDA. Leia o tpico a seguir : Instalando a mquina Virtual Java Todas das ferramentas de desenvolvimento voltadas para a linguagem Java, precisam do que chamamos de Mquina Virtual Java (ou Java Virtual Machine - JVM), que ser responsvel por executar todas as aplicaes desenvolvidas em linguagem Java (independente se o foco pra PC/Mobile e etc.). Para saber se voc possui uma Maquina virtual Java instalada em seu computador entre no prompt de comando e em seguida digitar a seguinte linha de cdigo abaixo:

    java version

    Se mostrar algo parecido como demonstra a figura seguinte:

  • 16

    Maquina Virtual Java instalada no computador

    Significa que voc possui uma mquina virtual Java instalada no seu computador.

    (JRE), que pode ser adquirida no seguinte link abaixo: http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html

    2.1) Configurando o Android Developer Tools

    Aps o download e instalao da Mquina Virtual Java em seu computador, vamos realizar agora as configuraes de nosso ambiente de desenvolvimento

    \adt-bundle-windows-x86-20130729

    pasta. Vejamos o resultado na figura a seguir :

  • 17

    -bundle-windows-x86-20130729

    contedo:

    eclipse

    Para executarmos o Android Developer Tools basta clicar no cone (de cor

    ser solicitado um dno qual o Eclipse vai gerar os projetos, conforme voc confere na figura seguinte:

  • 18

    Diretrio do Workspace

    ela seja

    Feito isso, o ambiente de programao Eclipse ser carregado, conforme demonstra a figura seguinte:

    Ambiente de programao Eclipse (ADT)

    Agora vam

  • 19

    executar as nossas aplicaes (jogos). Para definimos um AVD basta irmos no

    abaixo:

    Android Virtual Device Manager

    Feito isso, ser aberta a seguinte tela abaixo:

    Caixa de dilogo Android Virtual Device Manager

    Para criarmoaberta uma tela conforme mostra a figura seguinte:

  • 20

    Caixa de dilogo - Create new AVD

    No Android Developer Tools j existe uma plataforma que j acompanha a ferramenta (que neste caso o Jelly Bean, verso 4.3), logo, vamos utilizar ela. Inicialmente, vamos configurar o bsico pra executarmos a nossa aplicao.

    AVD -

    esoluo. Atualmente encontramos diversos dispositivos Android com os mais diversos tamanhos (resolues) diferentes. A resoluo que ser utilizada para a construo dos

    3.2 Hresoluo padro de Smartphone). Para o dispositivo vamos escolher a opo 3.12 HVGA slider (ADP1) (320 x 480 : mdpi).

    Automaticamente quando selecionamos o tipo de dispositivo (Device),

    essa verso acompanha a plataforma Jelly Bean 4.2, logo, a plataforma escolhida ser a Jelly Bean (Androd 4.2 API Level 17). Veja como ficou as configuraes na figura abaixo:

  • 21

    Caixa de dilogo - Create new AVD

    confere na figura seguinte:

  • 22

    Caixa de dilogo Android Virtual Device Manager

    Bom, nosso ambiente de desenvolvimento est devidamente configurado. No prximo captulo vamos aprender passo a passo como criar um projeto Android para desenvolvimento de nossas aplicaes.

  • 23

    Capitulo 3 Comeando a programar no Google Android

    epois de tudo configurado e instalado, conforme foi mostrado no captulo anterior, vamos a partir de agora comear a desenvolver nossas aplicaes para a plataforma Android.

    Android , basta irmos

    (ou simplesmente pressione Ctrl+N), conforme demonstra a figura abaixo:

    Criando um novo projeto

    Feito isso ser aberta a seguinte caixa de dilogo , conforme mostra a prxima figura:

    D

  • 24

    Criando um novo projeto Android no Eclipse

    Na caixa de dilogo acima informarmos o nome da nossa aplicao (Application Name), o nome do projeto (Project Name) e o nome do pacote (Package name). No cam

    preenchido o campo, os campos restantes so preenchidos automaticamente, a medida que a gente digita o nome da aplicao. E para finalizar, em Minimum Required SDK (onde definimos a partir de qual sistema operacional a aplicao

    Veja o resultado.

  • 25

    Criando um novo projeto Android no Eclipse

    Embora os preenchidos automaticamente, nada impede que voc altere o contedo delas. A ferramenta realiza essa operao para facilitar o seu trabalho. Observao: Quando digitamos um nome de pacote (Package Name),

    (como delimitador). Veja alguns exemplos de nome de pacote abaixo: - - Depois de preencher as informaes acima necessrias, clique para continuarmos. Feito isso ser exibida a seguinte tela abaixo:

  • 26

    Configurao de projeto

    Na tela acima realizamos as configuraes gerais do projeto (que por padro j esto pr-definidas). No iremos alterar nenhuma configurao acima,

    Na prxima tela temos uma seo onde podemos definir um cone que vai representar a nossa aplicao, conforme demonstra a figura abaixo:

  • 27

    Definindo um cone para aplicao

    Nesta seo definimos qual cone vai representar a nossa aplicao. Podemos escolher entre imagens, clipart e texto. Escolha o cone desejado para a sua

    Feito isso ser aberta a seguinte tela abaixo:

    Criando uma nova Activity

  • 28

    , que representa uma aplicao, definir uma atividade que vai representar a nossa aplicao Android. Para isso vamos criar uma nova atividade Activity), conforme demonstrado na figura acima, exibida a seguinte seo seguinte:

    Informaes da Activity

    Na seo acima definimos o nome da nossa atividade (Activity) assim como o nome do arquivo XML que vai representar a tela da nossa aplicao (Layout

    , e o nome do i

  • 29

    Informaes da Activity

    Por padro, como na primeira seo, quando mudamos o contedo do campo alterado automaticamente. Caso

    deseje voc poder escolher outros nomes para o campo alterado

    Finish nosso projeto possa ser gerado. O

    resultado voc confere na figura seguinte: