Aula Android

32

Transcript of Aula Android

Page 1: Aula Android
Page 2: Aula Android

O que é o Android?

    O Android é um conjunto de softwares que possuem foco em dispositivos móveis, sendo eles smartphones, tablets, smartbooks ou netbooks. 

Este conjunto de softwares fornecem:• Sistema Operacional (Linux)• Middleware• Aplicações principais (Agenda, Contatos, Telefone...)

Page 3: Aula Android
Page 4: Aula Android

Aplicações Principais

    O Android vem com um conjunto de aplicações principais todas escritas em Java.

• Cliente de E-Mail• SMS• Calendário• Mapas• Navegador (Webkit)• Contatos

Page 5: Aula Android

Android Runtime e Dalvik VM

    Cada aplicação no Android roda em um processo diferente no linux, e em cada processo é criada uma instância da máquina virtual Dalvik.

    As classes compiladas da aplicação são transformadas para o formato .dex (Dalvik Executable) que é a otimização para uma mínima utilização da memória.

    A Dalvik VM interage diretamente com o kernel Linux para execução de funcionalidades subjacentes como threading e gerenciamento de memória de baixo nível.        

Page 6: Aula Android

Ambiente de Desenvolvimento

• Eclipse (Galileo)• Android SDK• ADT Plugin para Eclipse• Windows, Linux ou Mac OS X.

Referência:http://developer.android.com/sdk/index.html

Page 7: Aula Android

Android Virtual Device (AVD)

    São como emuladores que podem ser configurados para cada versão do SDK ou cópia de especificações determinadas por um fabricante em um dispositivo.

Exercício:• Criar uma AVD da versão 1.5 do SDK, API 3.• Criar uma AVD com mais Memória RAM.• Criar uma AVD sem touchscreen.• Iniciar cada uma das AVDs acima.• Verificar funcionamento das aplicações principais.

Page 8: Aula Android
Page 9: Aula Android

Aplication Components

• Activityo Formulários.o Listas.o Views.

• Serviceo Sem interface visual.o Roda em Background (Música).

• Broadcast Receivero Download concluído.o Bateria fraca.

• Content Providero Banco de Dados.o Acesso a conteúdos externos.

Page 10: Aula Android

Criação do Projeto

O ADT fornece um wizard para a criação do projeto Android.

Exercício:• Criar o projeto com nome: Contatos.• Activity: ContatoEdicaoActivity.

Com o projeto criado:• Rodar o projeto no emulador.

Page 11: Aula Android

Estrutura do projeto

• / - Raiz do projeto.o src/ - Classes Javao gen/ - Código Java gerado automaticamente.o res/ - Recursos da aplicação

drawable/ - Imagens layout/ - Layouts de telas/formulários. values/ - Arquivos de variáveis.

o AndroidManifest.xml - Configuração do projeto.

Page 12: Aula Android

AndroidManifest.xml

    Arquivo de configuração dos recursos disponíveis na aplicação.• Nome e ícone da aplicação.• Activity, Broadcast, Content Provider e Service.• Permissões de acesso a recursos do dispositivo:

o GPSo Conexão com interneto Acesso a dados pessoais (Contatos, Ligações ...)

• Compatibilidade mínima com a SDK do Android.

Page 13: Aula Android

Layout - main.xml

    O arquivo XML de layout de tela declara os componentes e suas propriedades para uso da aplicação.

Exercício:• Modificar o conteúdo da tela

main.xml, criando tela similar a que está ao lado.

Page 14: Aula Android

Edição de Contato

xExercício:1. Criar novo layout em xml:

edicao_contato.xml– Adicionar as Views para os

campos:o Nomeo Telefoneo E-Mailo Data Nascimento

Page 15: Aula Android

Mapear os componentes no Java

    Os componentes serão manipulados pelas classes Java, então será necessário ligá-los a variáveis na Activity para, por exemplo:• Adicionar ações aos botões.• Adquirir o valor preenchido no campo.• Atribuir valores aos campos.

    Para encontrar um componente usar o método findViewById da classe Activity.    O parâmetro passado neste método deve estar listado na classe R.id.    Exercício:• Mapear os campos do layout de Edição na Activity.

Page 16: Aula Android

Listas - ListActivity

    A subclasse de Activity, ListActivity é um helper para manipulação de listas, tanto para popular os dados na tela quanto para tratar as ações do usuário.

Exercício:• Criar nova Activity: ContatoListActivity subclasse de

ListActivity.• Criar layout para cada item da lista: contato_item.xml• Criar Adapter da lista para Array de String: ArrayAdapter.• Habilitar filtro por digitação:

o getListView().setTextFilterEnabled(true);

Page 17: Aula Android

Banco de Dados - SQLite

    A API do Android fornece suporte para criação e manipulação de bancos de dados SQLite.

Exercício:• Criar classe ContatoDbAdapter.• Crias constantes de configuração do banco de dados e

tabela de Contatos.o DATABASE_NAMEo CONTATO_TABLE_NAMEo DATABASE_VERSION

• Criar classe Contato com constantes dos campos.o KEY_ID, KEY_NOME, KEY_TELEFONE, KEY_EMAIL,

KEY_DATANASCIMENTO.

Page 18: Aula Android

SQLiteOpenHelper

Criar classe DatabaseAdapter:

Construtor• SQLiteOpenHelper(Context context, String name,

SQLiteDatabase.CursorFactory factory, int version);

Método onCreate()• Executado quando o banco de dados é criado pela primeira

vez.

Método onUpgrade()• Executado quando o banco de dados precisa ser

atualizado.

Page 19: Aula Android

SimpleCursorAdapter

    A classe SimpleCursorAdapter faz a ligação entre a ListActivity e o Cursor do SQLite.

Exercício:• Criar método de consulta retornando um Cursor (Próximo

slide).• Adicionar este cursor a ListActivity.• Atribuir uma nova instância de SimpleCursorAdapter a

ListActivity pelo método setListAdapter().

Page 20: Aula Android

Consultas no SQLite

    A classe SQLiteDatabase fornece o método query() para efetuar queries SQL na base de dados.

    SQLDatabase.query( String nomeTabela, String[ ] colunas,        String whereStatement, String[ ] whereArgs,        String groupBy, String having, String orderBy);

    PreparedStatement: O parâmetro whereArgs irá preencher com os seus valores as ocorrências de ? no parâmetro whereStatement.

Exercício:• Criar um método que consulte por todos Contatos da base.

Page 21: Aula Android

Options Menu

    O menu de opções é mostrado quando a tecla Menu do dispositivo é acionado.     Trazendo as opções da tela disponíveis para o usuário.

Exercício:• Criar opção Novo Contato na tela de lista

de Contatos.

Page 22: Aula Android

Intent

    Existem 3 componentes principais de uma aplicação que são ativados por Intents - Activity, Service e Broadcast Receiver. As Intents são mensagens que apenas guardam as informações para uma operação ser realizada.

    Intent intent = new Intent(this, ContatoEdicaoActivity.class);    startActivityForResult(intent, NOVO_CONTATO);

Page 23: Aula Android

Retorno da Activity

    Uma activity pode enviar um Intent de volta para o recurso que a executou.

    Activity.setResult(RESULT_OK, intent);    Activity.finish();

    Mais informações podem ser passadas pelo Intent com a atribuição de um objeto do tipo Bundle.

    bundle.putString(Contato.KEY_NOME, "João Galli");    intent.setExtras(bundle);

Page 24: Aula Android

Inserindo registros no SQLite

    A classe SQLiteDatabase fornece o método insert() para a inserção de novos registros no banco de dados.

    SQLiteDatabase.insert( String nomeTabela, null, ContentValues cv);

    A classe de tipo ContentValues mapeia as colunas com seus valores para a inserção.        ContentValues cv = new ContentValues();    cv.put(Contato.KEY_NOME, "João Galli");

Page 25: Aula Android

Edição de Contato

    Exercício:• Implementar o método: ListActivity.onListItemClick() para

abrir a tela de edição de Contato quando um item da lista for selecionado.

• Passar pela Intent os valores do Contato selecionado para popular a tela de edição.

• Retornar os novos valores do Contato para a ListActivity informando que a operação é de Edição de um contato existente.

Page 26: Aula Android

Update no SQLite

    Outro método fornecido pela classe SQLDatabase é o update() que realiza uma operação SQL de update em um registro já existente.

    SQLDatabase.update( String nomeTabela,        ContentValues cv,        String whereStatement,        String[ ] whereArgs);

    Este método retorna um int com o número de objetos modificados.

Page 27: Aula Android

Notificações - Toast

    Toast são notificações simples na tela do dispositivo, possuem apenas uma mensagem textual.

    Toast toast = Toast.makeText(Context c, String mensagem,        int duração);    toast.show();

Duração: • Toast.LENGHT_LONG• Toast.LENGHT_SHORT

Exercício:• Notificar usuário quando o contato é gravado com sucesso.

Page 28: Aula Android

Context Menu

    O Context Menu é ativado sempre que um item da lista for selecionado pressionando a tela por uma longa duração.

Exercício:• Registrar a ListView da ListActivity para o ContextMenu.• Implementar o método onCreateContextMenu() para

adicionar opções ao menu.

Page 29: Aula Android

Excluindo registros no SQLite

    Para excluir registros no SQLite utilizar método delete().

    SQLDatabase.delete( String nomeTabela,        String whereStatement,        String[ ] whereArgs);

    Exercício:• Criar método que exclui contato a partir do ID.

Page 30: Aula Android

Dialog

    Dialogs são pequenas janelas mostradas em cima de uma Activity para interação com o usuário. Existem diversos modelos de dialogs prontos, como:

Page 31: Aula Android

Alert Dialog

Exercício:• Criar um dialog de confirmação para exclusão de contato.

AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setMessage("Título do Dialog")      .setCancelable(false)      .setPositiveButton("Sim", new DialogInterface.OnClickListener() {          public void onClick(DialogInterface dialog, int id) {               // Executar ação de exclusão do contato.          }      })      .setNegativeButton("Não", new DialogInterface.OnClickListener() {          public void onClick(DialogInterface dialog, int id) {               dialog.cancel();          }      });AlertDialog alert = builder.create();

Page 32: Aula Android

João Eduardo [email protected]

Agradeço pela atenção.