Introdução ao Desenvolvimento Android

Imagine a seguinte situação: Seu chefe chega para você diz: - Fulano, a empresa decidiu comprar dispositivos móveis que rodam o Android ao invés de PDA's/Palms e você vai ter que desenvolver uma aplicação de cadastros de clientes para esses aparelhos. É meu caro, mãos a obra.

[ Hits: 59.223 ]

Por: Fabio Mattes em 18/07/2011 | Blog: https://www.facebook.com/fabiomattes


Mãos a obra, uma calculadora simples



Bom vamos começar nosso desenvolvimento com uma calculadora simples.

Com o tempo eu irei criando mais artigos com mais exemplos de aplicações.

Primeiramente crie um novo projeto Android como mostrei na parte anterior, com as seguintes propriedades:
  • Project Name: calculadora
  • Build Target: Android 2.2
  • Application Name: Calculadora 1.0
  • Package Name: br.com.calculadora
  • CreateActivity: calcActivity
  • Min. SDK Version: 8
Primeiramente clique 2 vezes no arquivo main.xml na pasta res -> layout, esse arquivo é o responsável pela interface gráfica da nossa aplicação, como vocês podem ver na tela abaixo:
Linux: Introdução ao Desenvolvimento Android
Reparem que na parte de cima nós temos algumas propriedades:
  • A primeira que temos é a da resolução do dispositivo, clique nele e selecione 3.2in HVGA (ADAP2), que no caso é o padrão 320x480 px. Note que ele aumentou a janela para adicionarmos nossos widgets;
  • Ao lado da resolução temos a orientação: Portrait ou Landscape, ou seja, Retrato ou Paisagem, deixe como Portrait(Retrato);
  • Ao lado temos os temas, deixe como está. E por último temos a plataforma usada, ou seja, Android 2.2;
  • No lado esquerdo abaixo temos nossa paleta de widgets, é aqui que se encontram todos os nossos componentes visuais, basta como no Delphi, Lazarus ou NetBeans, clicar e arrastar para adicionar o nosso widget.
Muito prático, mas também é possível adicionar ou alterar nossos componentes via xml clicando logo abaixo em main.xml:
Linux: Introdução ao Desenvolvimento Android
Vejam que dos dois modos é muito fácil de se criar uma janela com xml, faça um teste, se você está no modo xml clique em Graphical Layout e apague todos os widgets que estão nele clicando em cima apertando a tecla DEL, adicione o primeiro widget chamado TextView, ele é o equivalente ao Label do Delphi/Lazarus, em seguida clique em main.xml e veja que ele automaticamente criou o código xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
<TextView android:text="TextView" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content">
</LinearLayout>


Agora no modo xml selecione a linha que começa por <TextView, copie com CTRL+C, dê um enter e cole com CTRL+V, agora volte ao modo gráfico, e veja que ele já adicionou um novo TextView, legal demais. Faça os testes, coloque um Button pelo modo gráfico e entre no modo xml e veja o código, notem que ele tem muitas propriedades. Tá! E pra alterar estas propriedades?

Simples, no modo gráfico olhe a aba outline dê 2 cliques no nome do widget e veja abaixo as propriedades:
Linux: Introdução ao Desenvolvimento Android
Mas, nada me impede de alterar as propriedades via xml, vamos conhecer algumas:

android:text - está propriedade altera o texto do widget, você pode colocar um texto normal ou uma variável criada no arquivo strings.xml. Exemplo 1: Altere a propriedade android:text do widget TextView:

<TextView android:text="Olá Mundo" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>


Execute o emulador clicando com botão direito do mouse em cima do projeto e clique em Run As -> Android Application e veja o resultado.

Exemplo 2: Abra o arquivo strings.xml na pasta res -> values, clique em add, será mostrado a seguinte tela:
Linux: Introdução ao Desenvolvimento Android
Clique em String e de um ok, ele irá voltar para a tela de adição de variáveis, clique na variável String que acabamos de criar e olhem a direita, temos 2 propriedades para preencher: Name e Value. Preencha como "teste" e "Olá mundo2".

Agora volte ao nosso main.xml e no modo xml altere a propriedade android:text para:

<TextView android:text="@string/teste" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>


Execute novamente a aplicação, como eu já havia mostrado antes.

Com isto estamos referenciando o texto para pegar o valor da variável teste que criamos.

android:id

A propriedade android:id nada mais é do que um identificador para os widgets, ou seja, quando formos criar nossas aplicações no arquivo java, iremos referenciar no widgets ao código java por este ID.

Vamos a um exemplo pratico, volte ao modo gráfico e adicione um Button na tela, em seguida volte ao modo xml e altere as seguintes linhas:

<TextView android:text="@string/teste" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

Para:

<TextView android:text="@string/teste" android:id="@+teste/txtTexto" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<Button android:text="Trocar Texto" android:id="@+teste/btnTroca" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>


Veja que alteramos a propriedade id do TextView para @+teste/txtTexto, ou seja, trocamos o seu nome e seu identificador, a mesma coisa com o Button, essa propriedade é muito interessante caso você tenha uma aplicação com várias telas, você poderia identificar cada widget em suas respectivas telas.

Outra coisa interessante também seria você abrir o arquivo R.java na pasta gen e olhar seu conteúdo, mas lembre-se de não altera-lo:
Linux: Introdução ao Desenvolvimento Android
Notem que tudo o que foi criado se encontra nele, é ele que irá fazer a ponte entre o xml dos widgets e o código java em si.

Voltemos então ao nosso exemplo prático, abra o arquivo principal do nosso exemplo, o calcActivity.java:
Linux: Introdução ao Desenvolvimento Android
Nele iremos fazer acontecer a mágica. Eis o seu conteúdo:

package br.com.calculadora;

import android.app.Activity;
import android.os.Bundle;

public class calcActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


Primeiramente vamos importar as bibliotecas necessárias. Na seção imports digite:

import android.widget.*; // Importando a classe widget
import android.view.*;     // importando a classe view


Sem essas classes não iremos conseguir manipular os widgets e nem criar seus eventos.

Agora vamos instanciar nossos widgets, antes de @override digite o seguinte código:

TextView txtTexto; // Cria um Objeto TextView
Button btnTroca;  // Cria um Objeto Button


Criado nossos widgets vamos referência-los ao nosso main.xml, logo abaixo a linha setContentView(R.layout.main); digite:

txtTexto = (TextView) findViewById(R.teste.txtTexto); // Aqui fazemos a referencia com o método findViewById(), muito fácil.
btnTroca = (Button) findViewById(R.teste.btnTroca);


Que tal agora criarmos um evento pra eles, logo abaixo a linha btnTroca = (Button) findViewById(R.teste.btnTroca); digite o seguinte código:

btnTroca.setOnClickListener(new View.OnClickListener() { // Criando o evento para o clique do botão

                  @Override
         public void onClick(View arg0) {
            txtTexto.setText("Você trocou o texto!");

                      }
});


Execute novamente e olhe o resultado. Muito simples não?

Eis o código completo:

package br.com.calculadora;

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;

public class calcActivity extends Activity {
    /** Called when the activity is first created. */
  
   TextView txtTexto;
   Button btnTroca;
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        txtTexto = (TextView) findViewById(R.teste.txtTexto);
        btnTroca = (Button) findViewById(R.teste.btnTroca);
        
        btnTroca.setOnClickListener(new View.OnClickListener() {
        
         @Override
         public void onClick(View arg0) {
            txtTexto.setText("Você trocou o texto!");
            
         }
      });
    }
}
Página anterior     Próxima página

Páginas do artigo
   1. O que é esse tal de Android?
   2. Começando: Eclipse e AndroiSDK
   3. Plugin ADT e testando o Ambiente de Desenvolvimento
   4. Mãos a obra, uma calculadora simples
   5. Calculadora simples, Layout...
   6. Calculadora simples, Codificação
Outros artigos deste autor

DesktopBSD - opção ao FreeBSD para desktops

Leitura recomendada

HrStatus - agilizando a virada do horário de verão

Construindo uma aplicação JDialog

Lançamento do GFP 0.1.4.5 - Gerenciador Financeiro Pessoal

Entendendo orientação a objetos na prática (parte 1)

Desenvolvendo aplicações em J2ME no Linux

  
Comentários
[1] Comentário enviado por sonictk em 19/07/2011 - 09:59h

Legal o tutorial.
Gostaria de saber mesmo onde consig Aostila bora para aprender Android, não só uma postila com tutoriais, mas quero algo mais! Sei que existe a documentação e exemplos no site http://developer.android.com/index.html , mas alguem conhece uma apostila ensinado ?

[2] Comentário enviado por hlbomfim em 19/07/2011 - 10:00h

Sensacional o tuto..
muito bom mesmo

[3] Comentário enviado por lestatwa em 19/07/2011 - 11:24h

Artigo introdutorio legal, porém algumas ressalvas:

-Windows Modile o S.O mais usado em smartphones? Mais pesado? MAIS PROGRAMAS? SKYPE?! Da onde pegou esta estatistica???

Tanto IOS quanto Android tem mais mercado do que Windows Phone, em determinados países até o famigerado Symbian se sai melhor.
O Skype que você citou ai, chegou inclusive a abandonar o desenvolvimento para Windows Phone alegando falta de padronização entre as versões....
Tá certo que este é um site voltado ao linux, porém cabe aos usuários um certo nivel, não acha? o WP7 (windows phone 7) esta bem bacana e bem acabado, talvez o unico concorrente a altura do IOS4.

Não estou aqui pra defender a Microsoft, longe disto, porém não sou ignorante. Possuo um Iphone4 e um galaxy 5(android 2.3) para brincar, e amigo... Android precisa comer muito feijão para chegar no nível do IOS ou WP7 alem de filtrar muito mais o Market, pois o mesmo esta cheio de lixo (males de um S.O opensource)...

Se quiser ver algumas estatisticas reais, sem axismo:
http://www.teleco.com.br/smartphone.asp

É isso ai!
Boa sorte na proxima.




[4] Comentário enviado por bitetti em 20/07/2011 - 08:54h

kra, essa tabela da Teleco só mostra um mercado crescente e o Android parece bem favoravel.
A Apple só me ganha como desenvolvedor denovo se melhorar suporte ao Flash, pq aquela SDK deles é porca demais.

A única coisa que me chateou é esses findViewById credo, parece JavaScript ou WinAPI ( double ecahh )

Valew fabiomattes2011 pelo artigo, me reanimou a mecher no Android já que a preguiça me segurava de procurar um emulador.
Vou começar esta semana a porta umas aplicações minhas e ver o resultado.

[5] Comentário enviado por juliaojunior em 20/07/2011 - 18:13h

rapaz,
tentei aqui mas o eclipse não reconheceu o Android2.2. Quando eu coloquo em 'Android Project' dentro do Eclipse, não aparece nada abaixo de 'Target Name'. Vc tem alguma idéia do que está acontecendo?

[6] Comentário enviado por bitetti em 20/07/2011 - 21:12h

Vai la em Window / Preferences
e no Android aponta o lugar q vc descompactou o SDK

[7] Comentário enviado por tonnytg em 22/07/2011 - 08:04h

Acho muito bom a filosofia e a abrangencia do Android porém, ao ler que o android já liberava aplicativos do market com scripts maliciosos isso me deixou com o pé atrás ainda com ele.

[8] Comentário enviado por DarthVictor em 24/07/2011 - 07:00h

Muito bom. Só uma pergunta, posso programar para Android em C++??

[9] Comentário enviado por FenrirUbuntu em 25/07/2011 - 15:53h

Muito massa!!!
Procurei isso a vida toda :P
Vou começar ainda Hoje!!!

[10] Comentário enviado por FenrirUbuntu em 25/07/2011 - 15:56h

Mas sabe informar se existe algum tipo de incompatibilidade de hardware pois meu pc eh um pouco fraquinho!!!

[11] Comentário enviado por fabiomattes2011 em 27/07/2011 - 10:15h

@DarthVictor de uma lida neste link: http://www.mestreandroid.com.br/android-aceita-aplicativos-linguagem-c/

@antonioubuntu é preciso um hardware razoavel para se poder usar o emulador, pois ele é meio pesado.

[12] Comentário enviado por fabiomattes2011 em 27/07/2011 - 10:31h

lestatwa pelo menos pra mim:

* Windows Mobile inviável para desenvolvimento
* Android ótimo para desenvolviemento

Cada um tem seu modo de pensamento.
Obrigado pelo comentário.

[13] Comentário enviado por bitetti em 28/07/2011 - 17:05h

O suporte a C no Android foi uma implementação show, nesse momento a OGRE esta se adaptando.

Mais alguem ai teve problemas em instalar os pacotes das Sansung ? No meu o emulador ficou 4 vezes maior que a minha tela!

[14] Comentário enviado por removido em 29/07/2011 - 14:03h

Não acho o Windows Mobile inviável para desenvolvimento.
Programo aplicações para ele e ainda tem um mercado principalmente corporativo grande.

MAS cada um tem sua opnião.

[15] Comentário enviado por leandrogigant em 31/07/2011 - 11:16h

Artigo show de bola!
Melhor impossível!
Valeu por compartilhar a ideia amigo!

abraço

[16] Comentário enviado por bruno.magno em 05/08/2011 - 12:28h

Muito interessante esse artigo, não sou desenvolvedor mas gosto de conhecer o funcionamento de sistemas.

[17] Comentário enviado por victorf.braga em 10/08/2011 - 10:33h

Eu fiz todos os procedimentos estava ocorrendo tudo certo , no entando até eu tentar criar o projeto houve um problema, no campo build target não ficou disponivel para eu selecionar android 2.2 , será que alguem pode me ajudar ? o plugin adt eu fiz a instalação online . obg.

Resolvido em eclipse Window - Preferences - Android - era necessario aporntar a pasta android.

[18] Comentário enviado por andrezc em 27/08/2011 - 13:51h

Ótimo artigo.

Parabéns.

[19] Comentário enviado por lipe link em 23/10/2011 - 15:34h

Olá amigos!

Muito bom o tutorial!
Eu já o havia encontrado há um tempo atrás. Tinha instalado o IDE com os plugins e tudo estava funcionando perfeitamente, já tinha até começado a desenvolver alguns pequenos testes.

Porém, após eu atualizar meu Ubuntu do 11.04 para 11.10, o plugin simplesmente sumiu do meu Eclipse!
Já pesquisei em vários sites em busca de uma solução, já desinstalei o Eclipse e instalei de novo, mas nada adianta...

Alguem sabe o que pode estar causando o problema?

desde ja obrigado!

[20] Comentário enviado por aprendiz_ce em 05/01/2012 - 13:38h

Olá Fabio,

Muito boa a sua iniciativa. O seu artigo me caiu como uma luva, pois eu estava exatamente a procura de algum material sobre o Android e nunca encontrava nada como o seu, ou seja, simples e objetivo. Segui as suas colocações a risca e deu tudo certinho, fiz até as outras funções da calculadora e ficou show de bola.

Parabéns pelo artigo!

Forte abraço.







[21] Comentário enviado por fabiomattes2011 em 30/01/2012 - 21:19h

@ aprendiz_ce que bom que gostou, muito obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts