35

Apresentacao android-fatec

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

Page 1: Apresentacao android-fatec

Introdução ao desenvolvimento de aplicações utilizando a

plataforma Google Android.

Tadeu Araujo e Roberto Silva Outubro de 2011

Page 2: Apresentacao android-fatec

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  

Page 3: Apresentacao android-fatec

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  

Page 4: Apresentacao android-fatec

...  e  vocês?  

Page 5: Apresentacao android-fatec

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

Page 6: Apresentacao android-fatec

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)  

Page 7: Apresentacao android-fatec

OHA  -­‐  Open  Handset  Alliance  Surge em novembro de 2007 Objetivo: padronizar

e muitas mais...

Page 8: Apresentacao android-fatec

Versões  (evolução)  

Page 9: Apresentacao android-fatec

Versões  (evolução)  

Page 10: Apresentacao android-fatec

Versões  (evolução)  

Page 11: Apresentacao android-fatec

Versões  (evolução)  

Page 12: Apresentacao android-fatec

Versões  (evolução)  

Android  4.0  (Ice  Cream  Sandwich)  

Page 13: Apresentacao android-fatec

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

Page 14: Apresentacao android-fatec

DisposiCvos  

Page 15: Apresentacao android-fatec

Conceitos e Informações Necessárias

Page 16: Apresentacao android-fatec

Documentação  • Documentação oficial sempre atualizada

• Exemplos

• Fórum

Page 17: Apresentacao android-fatec

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

Page 18: Apresentacao android-fatec

Siglas  

• ADV

• ADT

• SDK

• NDK

Page 19: Apresentacao android-fatec

Arquitetura   *Fácil acesso a aplicativos e funções nativas do aparelho

Page 20: Apresentacao android-fatec

AndroidManifest.XML  

Page 21: Apresentacao android-fatec

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

Page 22: Apresentacao android-fatec

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

Page 23: Apresentacao android-fatec

Interfaces  

• ViewGroup

• View

• Package android.widget.*

Page 24: Apresentacao android-fatec

Interfaces  

Page 25: Apresentacao android-fatec

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

Page 26: Apresentacao android-fatec

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

Page 27: Apresentacao android-fatec

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

Page 28: Apresentacao android-fatec

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

Page 29: Apresentacao android-fatec

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

Page 30: Apresentacao android-fatec

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

Page 31: Apresentacao android-fatec

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

Page 32: Apresentacao android-fatec

DÚVIDAS?

Page 33: Apresentacao android-fatec

Mãos a obra!

Page 34: Apresentacao android-fatec

Fontes  de  informação  • Livros Apress

• Comunidades

• Site Developer Android

Page 35: Apresentacao android-fatec

@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