Desenvolvendo aplicativos para Android I
Desenvolvimento de Aplicativos Móveis
1 Introdução
O Android é uma plataforma aberta para dispositivos móveis desenvolvida pelo Google. Todas as aplicações desenvolvidas para esta plataforma foi criada com a linguagem Java, o que facilita muitos programadores com conhecimento de Java (ou outras línguas) perto de Java como C ++ e C #) para desenvolver aplicativos Android.
O Android é uma plataforma desenvolvida pelo Google para dispositivos móveis, totalmente aberta e gratuita (Open Source), lançada em 5 de novembro de 2007. Inicialmente, o sistema Android foi desenvolvido pelo Google e atualmente esta plataforma é mantida pela OHA
Um dos primeiros SmartPhones a oferecer suporte para esse sistema operacional foi o G1 da empresa T-Mobile. Atualmente, o sistema Android está disponível atualmente em smartphones e tablets.
Estrutura Geral da plataforma Android
O Android SDK é uma ferramenta de desenvolvimento que fornece um conjunto de APIs necessárias para desenvolver aplicativos para a plataforma Android, usando a linguagem Java.
Abaixo iremos conhecer os recursos que são encontrados na plataforma
- Application framework: Permite a reutilização e substituição de componentes ;
- Dalvik virtual machine: É uma Máquina Virtual Java (JVM) voltada para dispositivos móveis ;
- Browser Integrado baseado no webkit engine ;
- Gráficos Otimizados O Android é constituído por bibliotecas 2D e 3D baseada na especificação OpenGL ES 1.0 ;
- SQLite: Sistema Gerenciador de Banco de Dados (SGBD) já embutido no Android para guardar dados ;
- Suporte multimídia: A plataforma já oferece para áudio, vídeo 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) ;
- Câmera, GPS, compasso, e acelerômetro (dependente de hardware) ;
- Rico ambiente de desenvolvimento , incluindo um emulador de dispositivo, ferramentas de depuração, memória, performance e um plugin para o Eclipse(ADT) ;
Arquitetura do Android
Aplicações
O Android nos fornece um conjunto de aplicações fundamentais, são 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 programação Java.O Android nos fornece um conjunto de bibliotecas C/C++ utilizadas por vários componentes do sistema. Veja uma das bibliotecas abaixo:
- System C library: Consiste em uma implementação derivada da biblioteca C padrão baseado no sistema (libc) do BSD sintonizada para dispositivos rodando Linux.
- Media Libraries: Baseado no PacketVideo’s OpenCORE; são as bibliotecas que suportam os mais diversos formatos de áudio e vídeo, incluindo também imagens.
- Surface Manager: Responsável pelo acesso ao subsistema de exibição bem como as múltiplas camadas de aplicações 2D e 3D;
- LibWebCore: Consiste em um web browser engine utilizado tanto no Android Browser quanto para exibições web.
- SGL – o engine de gráficos 2D
- 3D libraries: Uma implementação baseada no OpenGL ES 1.0 APIs; As bibliotecas utilizam aceleração 3D via hardware (quando disponível) ou o software de renderização 3D altamente otimizado incluído no Android.
- FreeType – Biblioteca responsável pela renderização de fontes bitmap e vector;
- SQLite – Conforme já mencionado, consiste no sistema gerenciador de bancode dados (SGBD) relacional disponível para todas as aplicações.
Android Runtime
O Android é constituído por um conjunto de bibliotecas que fornece a maioria das funcionalidades disponíveis nas principais bibliotecas da linguagem Java.
Toda aplicação Android roda em seu próprio processo, com sua própria instância da máquina virtual Dalvik. O Dalvik foi escrito de forma a executar várias VMs eficientemente. Ele executa arquivos .dex, que é otimizado para consumo mínimo de memória. A VM é baseada em registros e roda classes compiladas pela linguagem Java que foram transformadas em arquivos .dex, através da ferramenta “dx” incluída no SDK.
O Dalvik VM foi baseado no kernel do Linux para funcionalidades subjacentes como o encadeamento e a gestão de baixo nível de memória.
Linux Kernel
O Android foi projetado em cima da versão 2.6 do kernel do Linux para os serviços centrais do sistema, tais como segurança, gestão de memória, gestão de processos, etc. O kernel também atua como uma camada de abstração entre o hardware e o resto do software.
Quando desenvolvemos um aplicativo para um determinado sistema operacional, geralmente temos que fazer a seguinte pergunta: para qual versão do SO devemos desenvolver?
Esse é um dos pontos mais importantes que devemos pensar antes de desenvolvermos um aplicativo.
Como iremos produzir um aplicativo para a plataforma Android,devemos pensar para qual versão da plataforma precisamos desenvolver.
Um fator que é de grande importância é a questão do público.Nesse fator, a questão do S.O deveria ser deixada teoricamente de lado,visto que muitos usuários ainda possuem aparelhos Android com uma versão mais antiga que a atual, também devemos pensar nesses usuários para utilizar essas aplicações desenvolvidas.
A grande questão que fica é: Como conciliar a versão público e versão do S.O para desenvolvermos a aplicação? Se você pretende desenvolver uma aplicação Android simples (como um sistema de cadastro),podemos dar prioridade para a questão do Público,procurando desenvolver o aplicativo Android para uma versão mais antiga, mas ainda não obsoleta.Porém,se a sua ideia for desenvolver uma aplicação Android cheia de recursos,devemos dar prioridade a versão do S.O.
2 Instalação e Configuração do Android Developer Tools
Primeiramente,para que o aplicativo funcione,é preciso que você tenha instalado,a Máquina Virtual Java .
Para saber se você já possui uma Maquina Virtual Java entre no prompt de comando e digite a seguinte linha:
java –version
Se mostrar algo parecido como demonstra a figura seguinte:
Significa que já você possui uma máquina virtual Java instalada no seu computador, caso contrário, instale o JRE.
Fazendo o Download e Configurando o ADT
A ferramenta que iremos utilizar aqui para a construção das nossas aplicações é o ADT (Android Developer Tools), que consiste no Eclipse configurado com o Android SDK. A linguagem que utilizaremos para criar as aplicações será a linguagem Java, na qual a ferramenta dá suporte. Para realizarmos do download desta ferramenta basta visitarmos o seguinte link abaixo:
http://developer.android.com/sdk/index.html
Clicando nesse link você será carrega a página de download,conforme mostra a figura a seguir:
Para efetuarmos do download do Android Developer Tools basta clicarmos no botão “Download the SDK”. Feito isso será aberta uma tela de contrato de “termos e condições”, onde nela você vai confirmar os termos de contrato e selecionar a versão sistema operacional (32 bits ou 64 bits). Depois de escolher o sistema operacional, basta clicar no botão “Download the SDK ADT Bundle for Windows” para efetuar o download da ferramenta.
A instalação da ferramenta é bastante simples (como no Eclipse), bastando descompactar o arquivo em um diretório desejado. O diretório de instalação do ADT para esse caso será o diretório “raiz” “C:”. Ao descompactar o arquivo da aplicação, certifique-se de que foi gerado o diretório “C: adt-bundle-windows-x86” (ou “C: adt-bundle-windows-x86_64”, caso o sistema escolhido seja de 64 bits) e que o mesmo apresenta o conteúdo demonstrado na figura abaixo:
A ferramenta de desenvolvimento se encontra dentro do diretório “eclipse”, basta isso basta acessar o diretório “eclipse”. Feito isso, você verá o seguinte conteúdo:
Para executarmos o Android Developer Tools basta clicar no ícone (de cor “roxa”) escrito “eclipse”. Quando a ferramenta é executada pela primeira vez, será solicitado um diretório de “Workspace” (diretório de trabalho), que é o local no qual o Eclipse vai gerar os projetos, conforme você confere na figura seguinte:
Diretório do Workspace
Escolha o diretório desejado para seu “Workspace” e , caso você deseje que ela seja definitivo, marque a opção “Use this as the default and do not ask again”. Depois disso clique em “OK”. Feito isso, o ambiente de programação Eclipse será carregado, conforme demonstra a figura seguinte:
Agora vamos fechar a guia “Android IDE” para encerrarmos a tela de “Welcome!” e em seguida vamos configurar um dispositivo virtual (conhecido no Android como AVD ou “Android Virtual Device”) que usaremos para testar e executar as nossas aplicações (jogos). Para definimos um AVD basta irmos no menu “Windows” / “Android Virtual Device Manager”, como mostra a figura abaixo:
Android Virtual Device Manager
Feito isso, será aberta a seguinte tela abaixo:
Para criarmos um dispositivo virtual clique no botão “New”, e em seguida será aberta uma tela conforme mostra a figura seguinte:
Caixa de diálogo - Create new AVD
No Android Developer Tools já existe uma plataforma que já acompanha a ferramenta (nesse caso é a Jelly Bean) logo, vamos utilizar ela.Inicialmente, vamos configurar o básico pra executarmos a nossa aplicação. Em “AVD Name” você define o nome do AVD, vamos chamá-lo de “Emulador”.
Em “Device” escolhemos o tipo de dispositivo e a sua resolução. Atualmente encontramos diversos dispositivos Android com os mais diversos tamanhos (resoluções) diferentes. A resolução que será utilizada para a construção dos nossos jogos será uma resolução “3.2 HVGA” (que é normalmente uma resolução padrão de Smartphone). Para o dispositivo vamos escolher a opção “3.12 HVGA slider (ADP1) (320 x 480 : mdpi).
Automaticamente quando selecionamos o tipo de dispositivo (Device), é definida a plataforma que será utilizada (a seção “Target” ). Como havia falado, essa versão 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 configurações na figura abaixo:
Para criarmos nosso AVD, clique no botão “OK” e pronto. O resultado você confere na figura seguinte:
Nosso ambiente de desenvolvimento está devidamente configurado.Agora,iremos aprender como criar um projeto Android para desenvolvimento de aplicações.
3 Construindo as aplicações no Android
Desenvolvendo uma Calculadora Básica
Vamos construir em uma aplicação que vai consistir em uma calculadora básica com as quatro operações aritméticas. Para criar um projeto em Android (conforme já foi mostrado mas, mostro novamente aqui) vamos no menu “File”/”New / Android Aplication Project”. Confira na figura seguinte:
Seguido um dos passos descritos acima, irá se abrir a caixa de diálogo abaixo:
Criando o projeto Calculadora
Agora vamos preencher os campos, conforme abaixo:
Application Name : Calculadora
Project Name : Calculadora
Package Name : com.example.calculadora
Mininum Required SDK : API 14 Android 4.0 (Ice Cream Sandwich)
Confira como ficou na imagem abaixo
Campos preenchidos
Agora na próxima seção (clicando em “Next”) será aberta a tela de configurações do projeto (que já estão previamente definidas.Nela não iremos alterar nada, simplesmente vamos clicar em “Next”. Na próxima tela escolhemos o ícone para a nossa aplicação (conforme demonstra a imagem seguinte). Fique a vontade para escolher seu ícone (Dica : escolha ícones que tenham de uma certa forma, relação com a aplicação em desenvolvimento).
Depois de definir seu ícone vamos para a próxima etapa, onde vamos escolher qual tipo de Activity iremos criar (por padrão, o BlackActivity), conforme demonstra a próxima imagem:
Agora na próxima seção (clicando em “Next”) vamos preencher as informações da Activity, conforme é mostrado abaixo:
Activity Name : CalculadoraActivity
Layout Name : activity_calculadora
Confira como ficou na figura seguinte:
Depois de preenchidas as informações, vamos criar o nosso projeto clicando no botão “Finish”. Feito isso o nosso projeto será criado.A primeira coisa que iremos fazer a alterar a estrutura de layout (trocar de RelativeLayout para LinearLayout, conforme já mostrado no Capítulo 3) que vai “comportar” nossos componentes.
Depois de alterar a estrutura de layout vamos selecionar o componente TextView na tela (cuja frase está escrito “Hello World”) e vamos alterar as seguintes propriedades, como segue:
Veja o resultado:
Agora arraste e solte um componente “Plain Text” (EditText) abaixo do título, e em seguida, vamos atribuir um nome de componente para ele (por padrão, ele coloca “editText1”), clicando com o botão direito do mouse sobre ele e em seguida, selecione “Edit ID”. Confira na imagem abaixo:
Feito isso, vai ser aberto uma caixa de diálogo conforme mostra a imagem seguinte:
Conforme falei, o nome do componente é “editText1”. Agora vamos mudar o nome desse componente para “ednumero1” (sem aspas, é claro). Feito isso vamos clicar em “OK” para confirmar a alteração.
Porque alterar a sua ID ? Isso é necessário pois vamos “manipular” esse componente através do código Java, então nada mais justo do que trabalhar com componentes cujos nomes estejam de forma clara e organizada.
Agora arraste e solte um componente TextView abaixo da caixa de texto que inserimos, e em seguida altere as seguintes propriedades:
TextView
Logo após , arraste e solte um componente Plain Text (EditText) abaixo do componente acima inserido, e altere seu nome (ID) para “ednumero2” (conforme já foi mostrado).
Veja o resultado:
Agora vamos adicionar um componente Button abaixo da caixa de texto, que vai ser o nosso botão de “somar” os números. Depois de adicionar, vamos alterar as suas propriedades, conforme é mostrado abaixo:
Button
Depois disso vamos atribuir um nome (ID) para o componente, que vai se chamar “btsomar”. Veja o resultado abaixo:
Para começarmos, vamos fazer o teste da nossa aplicação realizando somente soma dos números (implementaremos as outras operações restantes daqui a pouco). Agora salve o arquivo “activity_calculadora.xml” , para confirmar todas as alterações feitas, antes de trabalharmos com a parte da programação Java (que vai fazer uso dos componentes da tela da aplicação via código).
Depois de salvar o arquivo XML vamos abrir o arquivo “CalculadoraActivity.java” (situado no pacote “com.example.calculadora”, que fica dentro do diretório “src”). Veja a imagem seguinte:
Feito isso será aberto o seu conteúdo conforme é demonstrado na imagem seguinte:
Se você observar no código acima, na seção onde se declaram os pacotes, existe a seguinte instrução :
import android.os.Bunble;
Nessa linha se você observar (conforme demonstra a figura acima), existe um sinal de “+”, que na verdade indica que há mais de uma importação (processo esse que o eclipse faz para “simplificar” e “organizar” a compreensão do código). Para você visualizar todos os pacotes utilizados basta clicar nesse sinal. Confira o resultado na próxima figura: