Upload
tadeu-araujo
View
1.070
Download
0
Embed Size (px)
DESCRIPTION
Introdução ao desenvolvimento de aplicações utilizando a plataforma Google Android.São apresentados conceitos básicos sobre a estrutura e funcionamento de uma aplicação na plataforma Android, como instalar o ambiente de desenvolvimento e a criação de duas demos mostrando na prática como desenvolver.
Citation preview
Introdução ao desenvolvimento de aplicações utilizando a
plataforma Google Android.
Tadeu Araujo e Roberto Silva Outubro de 2011
Quem vos fala? • Tadeu Araujo
• Entusiasta e evangelista de assuntos relacionados à Tecnologia de Informação (principalmente o que envolve dispositivos móveis) e design
• Graduado em Sistemas de Informação pela Universidade Estadual Paulista "Júlio de Mesquita Filho“, cursando MBA em Engenharia de Software Orientada para Serviços (SOA)
• A quase 10 anos trabalhando com TI, atuando em diversas áreas desenvolvimento de aplicações desktop, aplicações web, atendimento ao cliente, administração e controle de redes de computadores e pesquisa e desenvolvimento. “Especialização pra que, né?”
• Mobile Developer na Arca Solutions
• Um dos editores do blog Mestre Android
@araujotadeu
Quem vos fala? • Roberto C. Silva
• Graduado em Tecnologia de Sistemas e Desenvolvimento de sistemas na FATEC Ourinhos, Pós graduado em Tecnologia Java UTFPR (Cornélio Procópio)
• Experiência 10 anos de experiência com desenvolvimento de sistema, com tecnologias JSE, JEE, GWT, PHP, ASP.NET C#, Atualmente estudando Python, JME, Objective-C (iPhone), Android
• Participação 1ª Feira Tecnológica do Centro Paula Souza - projeto Software para entrada de dados estatísticos
@betorcs
... e vocês?
Agenda • História • OHA – Open Handset Alliance • Versões da SDK • Dispositivos • Conceitos
• Documentação • Dalvik • Siglas • Arquitetura • AndroidManifest.xml • Interfaces • Activity / Intent • Notification • BroadcastReceiver • Service • Toast / Dialog • SQLite • ContentProvider
• MÃOS A OBRA! • Fontes de informação
História
Julho de 2005
• Compra da Android Inc. (pequena startup que fazia softwares mobile)
De 2005 a 2007
• Especulações
Novembro de 2007
• Android nasce como plataforma móvel • A OHA (Open Handset Alliance) é criada • Lançada a primeira versão da SDK • Android Developer Challenge (com submissões até abril de 2008)
Outubro de 2008
• Primeiro aparelho android é lançado no mercado (HTC G1)
OHA -‐ Open Handset Alliance Surge em novembro de 2007 Objetivo: padronizar
e muitas mais...
Versões (evolução)
Versões (evolução)
Versões (evolução)
Versões (evolução)
Versões (evolução)
Android 4.0 (Ice Cream Sandwich)
Versões (hoje)
Data collected during a 14-‐day period ending on October 3, 2011
Plataforma Nome API Level Distribuição
Android 1.5 Cupcake 3 1.1%
Android 1.6 Donut 4 1.4%
Android 2.1 Eclair 7 11.7%
Android 2.2 Froyo 8 45.3%
Android 2.3 -‐ 2.3.2 Gingerbread
9 0.5%
Android 2.3.3 -‐ 2.3.7 10 38.2%
Android 3.0
Honeycomb
11 0.2%
Android 3.1 12 0.9%
Android 3.2 13 0.7%
Data collected during a 14-day period ending on October 3, 2011
DisposiCvos
Conceitos e Informações Necessárias
Documentação • Documentação oficial sempre atualizada
• Exemplos
• Fórum
Dalvik • Máquina virtual (VM) escrita por Dan Bornstein e outros engenheiros da Google
• Lançada junto com a SDK do Android no final de 2007
• Criada com base na especificação POSIX para sistema operacional UNIX
• Precisava e a J2ME? • Limitada e incompatível com alguns aparelhos • “Write once, run anywhere” não funcionava • JSR (Java Specification Request) muito burocrático
• .CLASS vs .DEX (mais rápido devido a remoção de pools de constantes)
• Ferramenta “dx”
• .APK vs .JAR
* Baseado no Kernel 2.6
Siglas
• ADV
• ADT
• SDK
• NDK
Arquitetura *Fácil acesso a aplicativos e funções nativas do aparelho
AndroidManifest.XML
Interfaces • Cada fabricante possui a sua
• Similar ao Java convencional (Swing e AWT, Canvas, OpenGL)
• XML (interface/imagens) • Arrastar componentes / escrever XML
• Suporte a múltiplas resoluções e tamanhos de tela
* Evite imagens crie suas próprias imagens utilizando XML sempre que possível
Interfaces
Low density (120), ldpi Medium density (160), mdpi High density (240), hdpi Extra high density
(320), xhdpi
Small screen QVGA (240x320) 480x640
Normal screen WQVGA400 (240x400) WQVGA432 (240x432) HVGA (320x480)
WVGA800 (480x800) WVGA854 (480x854) 600x1024
640x960
Large screen WVGA800** (480x800) WVGA854** (480x854)
WVGA800* (480x800) WVGA854* (480x854) 600x1024
Extra Large screen 1024x600 WXGA (1280x800)† 1024x768 1280x768
1536x1152 1920x1152 1920x1200
2048x1536 2560x1536 2560x1600
res/layout/my_layout.xml // layout for normal screen size ("default") res/layout-small/my_layout.xml // layout for small screen size res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra large screen size res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation res/drawable-mdpi/my_icon.png // bitmap for medium density res/drawable-hdpi/my_icon.png // bitmap for high density res/drawable-xhdpi/my_icon.png // bitmap for extra high density
Interfaces
• ViewGroup
• View
• Package android.widget.*
Interfaces
AcCvity / Intent
• Activity
• Representação de uma tela
• Deve estender android.app.Activity
• Ciclo de vida de uma Activity
• Intent
• Classe android.content.Intent
• Representa uma “ação” ou
“intenção”
• Representa uma mensagem de
uma aplicação para o sistema ou de
uma aplicação para outra aplicação
NoCficaCon • Utilizada para enviar uma notificação, uma mensagem ao usuário
• O usuário decide se quer ver a notificação ou não
• Classe android.app.Notification
BroadcastReceiver • É utilizada para que as aplicações possam reagir a um evento gerado por uma intent, que pode ter sido gerada por outra aplicação ou pelo próprio sistema.
• Roda em segundo plano e não tem interface gráfica
• Classe android.content.BroadcastReceiver
Service • Classe utilizada para a criação de um serviço, um serviço é um ou mais processos que são executados em segundo plano por tempo indeterminado, por necessitar utilizar muitos recursos do aparelho ou para permitir que uma atividade independente seja executada.
• Classe android.app.Service
Toast / Dialog • Uma Toast ou uma Dialog são caixas .
• Classe android.app.Dialog
• Classe android.app.AlertDialog
• Classe android.app.ProgressDialog
• Classe android.widget.Toast
SQLite • Integração nativa
• http://www.sqlite.org/
• Criação de um banco de dados
• Utilizando um gerenciador de banco de dados
• Através da API Android
• Classe android.database.sqlite.SQLiteOpenHelper
• Classe android.database.sqlite.SQLiteDatabase
ContentProvider • Permite o compartilhamento de informações que por padrão só quem teria acesso seria a própria aplicação (SQL, propriedades, etc.)
• O android possui vários ContentProvider nativos para uso
Exemplo: content://com.android.contacts/contacts
• Classe android.acontent.ContentProvider
DÚVIDAS?
Mãos a obra!
Fontes de informação • Livros Apress
• Comunidades
• Site Developer Android
@araujotadeu @betorcs
[email protected] [email protected]
OBRIGADO! Introdução ao desenvolvimento
de aplicações utilizando a plataforma Google Android.
Tadeu Araujo e Roberto Silva Outubro de 2011