Você está na página 1de 65

Apresentao

Luiz Gustavo S Mafra


Universidade Estadual de Santa Cruz
Intellisys Informtica

Programador
PHP, Ruby on Rails, .Net, Android... PostgreSql, SQL Server, Oracle

Contatos
http://www.lgmafra.com.br

@lgmafra

Apresentao

lvaro Coelho(Degas)
Bacharel em Cincia da Computao, UFPb

Campus II Campina Grande/Pb Mestre em Cincia da Computao, UFCG Campina Grande/Pb Doutor em Cincia da Computao, UFCG Campina Grande/Pb

Roteiro Parte 1

Plataforma Android

O que ? Recursos e APIs Arquitetura Ferramentas Elementos de Aplicao

Hello World
Quais as formas de fazer?

Mtodos de informao
Toast e AlertDialog

Roteiro Parte 2

Interface do Usurio

Activity View Posio e Tamanho ID Layout Interao com Usurio

Trabalhando com Menu


Menu Menu em XML Criando Menu da Aplicao

Roteiro Parte 3

Armazenamento de Dados
SQLite

Persistncia de Dados da Aplicao Parmetros entre Activities Criando uma ListView startActivityForResult() Utilizando uma Intent
Realizando um ligao

Plataforma Android

O que ?
Sistema Operacional baseado em Linux
Open Source Open Handset Alliance
Operadoras de celular
Fabricantes de aparelhos Empresas de semicondutores

Empresas de software
Empresas de comercializao

Plataforma Android

Recursos do Android
Framework
DVM Navegador web

SQLite Comunicao Wireless


EDGE, 3G, Wi-Fi

Ambiente de desenvolvimento
Android Development Tool

Plataforma Android

Principais APIs
android.util Containers e XML
android.os Comunicao android.database Comunicao com BD

android.view Interface grfica android.widget Widgets prontos


android.app Modelo de aplicao

Plataforma Android

Arquitetura

Plataforma - Arquitetura

Aplicaes
Aplicativos fundamentais SMS, Contatos, Calendrios, Navegadores... Rodam sobre Dalvik Virtual Machine

Framework
Activity Manager Ciclo de vida Package Manager Utilizada pela Activity

Manager Content Provider Compartilhamento de dados View System Tratamento grfico

Plataforma - Arquitetura

Bibliotecas
Freetype Fontes e bitmaps
Webkit Browser Webkit SQLite SQL92

Media libraries PacketVideos OpenCORE 3D libraries APIs do OpenGL

Plataforma - Arquitetura

Kernel Linux
Utiliza a verso 2.6
Segurana, processos, protocolos de rede...

Hardware Software

Binder
Obter e enviar interface de servio requisitada

Gerenciamento de energia

Plataforma - Arquitetura

Ambiente de Execuo
Instncia da Mquina Virtual Dalvik Executada paralelamente Utilizada em sistemas De baixa frequncia de CPU Pouca memria RAM e sem Swap Otimiza o consumo de memria e bateria Executa arquivos .DEX Core Libraries Compiladas em bytecodes Dalvik

Plataforma - Ferramentas

Emulador

Plataforma - Ferramentas

DDMS
Depurao de aplicaes
LogCat Devices

Emulator Control
File Explorer Threads

Heap
Allocation Tracker

Plataforma - Ferramentas

DDMS

Plataforma Estrutura do Projeto

Plataforma Elementos da Aplicao

Activity, View e setContentView(view)


Activity android.app.Activity Representa as telas da aplicao View android.view.View Define os elementos da tela setContentView(view) Liga Activity com a View setContentView(R.layout.Tela)

Plataforma Elementos da Aplicao

Plataforma Elementos da Aplicao

Classe R
Realiza o mapeamento dos elementos
Diretrios drawable, layout, values

Cria constantes do tipo int independente da

extenso do arquivo NUNCA MODIFIQUE ESTA CLASSE

Plataforma Elementos da Aplicao

Intent
Mensagens Assncronas
Representa uma Ao Utilizao
Abrir nova tela, realizar chamadas, abrir

browser...
android.content.Intent

Plataforma Elementos da Aplicao

Intent Filter
Intercepta requisio de uma Intent
Executa de acordo com a mensagem Configurvel no AndroidManifet.xml
<intent-filter>

android.content.IntentFilter

Plataforma Elementos da Aplicao

BroadcastReceiver
Uma das classe mais importantes
Utilizada para processar mensagens(Intent) Executa em segundo plano

Configurvel no AndroidManifest.xml
<receiver>

android.content.BroadcastReceiver

Plataforma Elementos da Aplicao

Services
Utilizado para executar processos em

segundo plano
Ex: MP3, Download da internet

Alto consumo de memria e CPU


Ciclo de vida controlado pelo sistema android.app.Service

Plataforma Elementos da Aplicao

AndroidManifest.xml
Contm as configuraes da aplicao
Nome do pacote, nome das activities, verso

do SDK...
Toda activity deve ser declarada
<activity android:name=.NomeActivity>

Plataforma Elementos da Aplicao

Hello World Quais as forma de fazer?

1 - Alterando a propriedade android:text do layout

Hello World Quais as forma de fazer?

2 - Criando o elemento TextView em tempo de execuo

Hello World Quais as forma de fazer?

3 - Utilizando o arquivo string.xml

Mtodos de informao

Interface do Usurio Activity


android.app.Activity Representa um tela da aplicao Controla os eventos da tela Implementa o mtodo onCreate(Bundle) Ciclo de vida

Executando

Temporariamente interrompida
Em segundo plano Completamente destruda

Interface do Usurio Activity

Subnveis do ciclo
Entire lifetime
Ciclo completo

Visible lifetime
Activity iniciada, pode estar ativa ou parada

Foreground lifetime
Activity no topo da pilha e interagindo

Interface do Usurio Activity

Mtodos
onCreate(bundle)
onStart() onRestart()

onResume() onPause()
onStop()

onDestroy()

Interface do Usurio Activity

Interface do Usurio View


android.view.View onDraw(Canvas) Widgets


TextView EditText Button ListView


RelativeLayout AbsoluteLayout FrameLayout LinearLayout TableLayout

Gerenciadores de Layout

Interface do Usurio View

Interface do Usurio View

Posio e tamanho
android:gravity Top Left Right Bottom android:layout_height, android:layout_width fill_parent wrap_content

ID
android:id @+id/NomeDoElemento

Interface do Usurio Layout

Interface do Usurio Layout

Interface do Usurio Interao

Interface do Usurio Interao

Trabalhando com Menu


android.view.Menu android.view.MenuItem Existem trs tipos de Menu

Menu de Contexto
onOptionsItemSelected(Item do Menu)

Menu de Opes
onContextItemSelected(Item do Menu)

Submenu

onCreateOptionsMenu()

Trabalhando com Menu

Trabalhando com Menu XML

Trabalhando com Menu XML

Trabalhando com Menu XML

Armazenamento de Dados

SQLite

Simples e eficiente SQLiteDataBase /data/data/NomeDoPacote/databases Tipo de Dados


NULL INTEGER REAL TEXT BLOB

http://www.sqliteexpert.com/SQLiteExpertPersSetup.exe

Armazenamento de Dados

Adicionando Persistncia de Dados

Adicionando Persistncia de Dados

Adicionando Persistncia de Dados

Adicionando Persistncia de Dados

Parmetros entre Activities

Envio
android.os.Bundle
putString(chave, valor)

Parmetros entre Activities

Recebimento
getIntent()

Criando uma ListView

startActivityForResult()

startActivityForResult()

Realizando uma Intent

Realizando uma ligao

Finalizando a Aplicao

Cadastro
carregaRegistro validaCampos

ListRegistro
carregaRegistros onCreate

ViewRegistro

anterior_proximo mostraRegistro onActivityResult onBackPressed

Aplicao

OBRIGADO!

Você também pode gostar