Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
O que o Android?
O
que
o
Android?
O
Android
um
sistema
operacional
que
roda
sobre
o
ncleo
do
Linux.
Foi
inicialmente
desenvolvido
pela
Android
Inc.,
e
depois
passou
para
as
mos
do
Google
(que
a
comprou
em
2005)
e
posteriormente
pela
OHA
(Open
Handset
Alliance).
fundamentado
em
cdigo
open
source
(licena
Apache)
permiKndo
que
os
fabricantes
de
hardware
insiram
cdigo
proprietrio
para
diferenciar
seus
produtos.
OHA
Empresas
de
semicondutores
Empresas
de
so\ware
Empresas
de
comercializao
Arquiteturalmente
Sob
a
Kca
arquitetural,
o
Android
mais
do
que
um
sistema
operacional
baseado
no
ncleo
do
Linux,
ele
uma
plataforma.
Pilha
de
so8ware
do
Android
Ecossistema
O
ecossistema
da
plataforma
Android
envolve
mtricas
de
compaKbilidade
e
padres
para
fabricantes,
um
SDK
e
ambiente
integrado
de
desenvolvimento
para
o
desenvolvedor.
Fabricantes
x
Interface
comum
que
alguns
fabricantes
de
aparelhos
apresentem
uma
interface
customizada
para
cada
verso
do
Android.
Para
tal,
cada
fabricante
implementa
o
seu
prprio
Launcher.
Um
Launcher
pode
ser
denido
como
um
tema
customizado
que
proporciona
aos
usurios
novas
possibilidades
de
interao
e
de
visual.
Samsung
TouchWiz,
HTC
Sense
e
LG
UX
(antes
UI)
so
exemplos
de
Launchers.
Fabricantes
x
Interface
10
Principais CaractersBcas
Principais
CaractersBcas
Ampla
API
e
acesso
a
servios
naKvos
como
por
exemplo
chamadas
telefnicas,
lista
de
contatos
e
SMS.
Interface
grca
mulKtouch
adequada
a
tela
de
resolues
e
densidades
diferentes.
Extenso
suporte
a
mdias
como
imagens,
grcos
2D
e
3D
(OpenGL),
udio,
vdeo
e
live
streaming.
Incrementos
de
experincia
de
usurio
no
ambiente
operacional
com
widgets
e
live
wallpapers.
Aplicaes
mulKtarefas,
visveis
ou
em
background
e
servios
de
noKcaes.
Prof.
Vincius
de
Paula
12
Principais
CaractersBcas
Acesso
a
hardware
como
cmeras
(frontal
e
traseira),
vibraes,
ashes,
etc.
Persistncia
em
banco
de
dados
SQLite
e
Content
Providers.
ComparKlhamento
de
dados
inter-aplicao
como
intenes.
Envio
de
comandos
remotos
para
o
aparelho
-
Google
Cloud
Messaging
(GCM).
Mapas
e
servios
de
geolocalizao
uKlizando
GPS.
Prof.
Vincius
de
Paula
13
Principais
CaractersBcas
Suporte
a
sensores:
Iluminao
Proximidade
Presso
Temperatura
ambiente
Acelermetro
Giroscpio
Umidade
relaKva
do
ar
14
O Mercado
O
Mercado
Em
2014,
as
plataformas
da
Google
e
da
Apple
foram
responsveis
por
96,3%
das
vendas
de
todos
os
smartphones
no
mundo.
Sistema
Operacional
Unid.
Vendidas/2014
Part.
Mercado/2014
Unid.
Vendidas/2013
Part.
Mercado/2013
Android
iOS
Windows
Phone
1,059.3
192.7
34.9
81.5%
802.2
78.7%
14.8%
153.4
15.1%
2.7%
33.5
3.3%
19.2
1.9%
BlackBerry
5.8
0.4%
Outros
7.7
0.6%
1,300.4
100.0%
Total
*
Unidades
em
milhes
2.3
0.2%
1,018.7
100.0%
16
O Mercado
17
Android,
alm
de
smartphones
e
tablets
Android
Wear
Desenvolvido
para
disposiKvos
vesuveis.
Relgios,
pulseiras
e
outros
acessrios.
19
Android
TV
Plataforma
voltada
para
o
entretenimento.
Contedo
digital
para
TVs
com
o
intuito
de
deix-las
mais
inteligentes.
20
Android
Auto
Desenvolvido
com
a
nalidade
de
equipar
carros
de
diversas
marcas.
Google
Maps,
Google
Play
Music,
cards
do
Google
Now.
21
Android
Auto
Em
janeiro
de
2014,
o
Google
ocializou
uma
parceria
com
empresas
do
setor
automobilsKco
e
tecnolgico.
A
Open
AutomoKve
Alliance
(OHA),
como
foi
chamada,
busca
aperfeioar
a
integrao
entre
os
carros
e
o
Android.
22
23
24
25
26
Verses do Android
Verses
do
Android
Todas
as
verses
do
Android
possuem
nomes
de
doces
em
ordem
alfabKca.
28
Verses
do
Android
Cada
verso
do
Android
idenKcada
por
um
nmero
de
API
Level.
29
Verses do Android
30
Arquitetura do Android
Arquitetura do Android
Java
Prof.
Vincius
de
Paula
C/C++
Centro
Universitrio
do
Tringulo
32
Arquitetura
do
Android
Linux
Kernel:
Camada
de
mais
baixo
nvel
que
traz
os
drivers
para
comunicao
com
o
hardware
adjacente.
Libraries:
Camadas
de
bibliotecas
naKvas
escritas
em
C/C++
que
so
acessadas
atravs
de
interfaces
Java.
Gerenciamento
de
janelas,
codecs,
base
de
dados
SQL,
etc.
Prof.
Vincius
de
Paula
33
Arquitetura
do
Android
Android
RunBme:
Dalvik
Virtual
Machine:
mquina
virtual
oKmizada
para
a
execuo
em
disposiKvos
mveis.
Depois
que
o
bytecode
(.class)
compilado,
ele
converKdo
para
o
formato
.dex
(Dalvik
Executable)
que
representa
a
aplicao
do
Android
compilada.
Depois
os
arquivos
.dex
e
outros
recursos
como
imagens
so
compactados
em
um
nico
arquivo
com
a
extenso
.apk
(Android
Package
File)
que
representa
a
aplicao
nal,
pronta
para
ser
distribuda
e
instalada.
34
Arquitetura
do
Android
Cdigo
Java
(.java)
Compilador
Java
Compilador
Java
Bytecode
(.class)
Compilador
Dex
Java Bytecode
Java
VM
Prof.
Vincius
de
Paula
Java Bytecode
Dalvik
VM
Centro
Universitrio
do
Tringulo
35
Arquitetura
do
Android
Android
RunBme:
Core
Libraries:
Dalvik
VM
Specic
Libraries
-
bibliotecas
uKlizadas
para
interao
direta
com
uma
instncia
da
Dalvik
VM.
Java
Core
Libraries
conjunto
de
bibliotecas
Java
que
podem
ser
uKlizadas
no
Android
(ex.:
java.*,
javax.*).
hxp://www.zdnet.com/arKcle/java-vs-android-apis/
36
Arquitetura
do
Android
ApplicaBon
Framework:
Camada
que
expe
diversos
servios
e
funcionalidades
do
Android
que
o
programador
em
geral
faz
uso
em
seus
aplicaKvos.
ApplicaBons:
Camada
top
level
onde
cam
todos
os
aplicaKvos
naKvos
do
Android
e
instalados
pelo
usurio.
37
Arquitetura
do
Android
Linux
Kernel
Linux
process
Dalvik
Virtual
Machine
Android
ApplicaBon
38
Segurana no Android
Segurana
no
Android
Ao
Krar
proveito
do
Kernel
do
Linux,
o
Android
obtm
uma
srie
de
servios
naKvos
do
sistema
operacional,
incluindo
o
gerenciamento
de
processos
e
de
memria,
uma
pilha
de
rede,
drivers,
uma
camada
de
abstrao
de
hardware
e,
servios
de
segurana.
Segurana
em
nvel
de
processo;
IDs
de
usurio
e
de
grupo
associados
com
o
aplicaKvo
e;
Permisses
para
impor
quais
operaes
um
aplicaKvo
tem
permisso
de
realizar.
40
Segurana no Android
41
Segurana
no
Android
ID
do
usurio:
Linux
versus
Android
Enquanto
que
no
Linux
um
user
id
atribudo
para
idenKcar
um
usurio,
no
Android
ele
atribudo
para
um
aplicaKvo.
IDs
de
usurio
so
atribudos
quando
o
aplicaKvo
instalado
e
permanecem
pela
vida
Kl
do
aplicaKvo
no
disposiKvo.
Permisses
dizem
respeito
a
permiKr
ou
restringir
o
acesso
do
aplicaKvo
(em
vez
de
usurios)
aos
recursos
do
disposiKvo.
42
Segurana no Android
43
Ambiente de Desenvolvimento
Ambiente de Desenvolvimento
Android Studio
Eclipse ADT
45
Ambiente de Desenvolvimento
hxps://developer.android.com/sdk/
Prof.
Vincius
de
Paula
46
Processo de Desenvolvimento
Processo de Desenvolvimento
48
Primeiro AplicaBvo
50
51
52
53
54
Run/Debug
Project Pane
Devices/Logcat
Build Messages
55
56
Estrutura
de
componentes
visuais
da
tela.
Propriedades
dos
componentes
da
tela.
Paleta
de
componentes
Modo
de
visualizao
do
layout:
grco
ou
cdigo
XML
Preview da tela
57
SDK Manager
Permite
o
download
de
ferramentas,
plataformas
e
outros
componentes.
58
AVD Manager
59
AVD Manager
60
AVD Manager
61
AVD Manager
62
AVD
Manager
Clique
nesta
opo
para
iniciar
o
disposiKvo
virtual.
63
64
Execuo
do
AplicaBvo
Aps
a
inicializao
do
emulador,
o
aplicaKvo
j
pode
ser
implantado.
65
Execuo do AplicaBvo
66
67
68
69
70
71
Prof.
Vincius
de
Paula
72
73
3
Passo:
Rodar
sua
aplicao
(Run)
e
vericar
se
o
seu
disposiKvo
foi
detectado.
Caso
no
tenha
sido
detectado,
geralmente
necessrio
instalar
os
drivers
do
aparelho.
74
Conceitos Fundamentais
Prof.
Vincius
de
Paula
76
Intent
77
Prof.
Vincius
de
Paula
78
79
Arquitetura
de
um
AplicaBvo
AndroidManifest.xml
Content
Providers
Broadcast Receiver
NoKcaKons
Services
Intents
Fragments
Views
AcKviKes
Prof.
Vincius
de
Paula
80
AcBviBes
AcBviBes
Sempre
que
se
deseja
criar
uma
nova
tela
na
aplicao,
devera
ser
criada
uma
classe
que
herda
de
Ac9vity
(android.app.AcKvity).
AcKviKes
so
responsveis
por
carregar
Views
e
Fragments
para
exibir
contedo
ao
usurio.
82
83
84
85
86
87
88
@Override
protected
void
onResume()
{
super.onResume();
Log.d(TAG,
"Chamando
o
mtodo
onResume()");
}
@Override
protected
void
onPause()
{
super.onPause();
Log.d(TAG,
"Chamando
o
mtodo
onPause()");
}
@Override
protected
void
onStop()
{
super.onStop();
Log.d(TAG,
"Chamando
o
mtodo
onStop()");
}
@Override
protected
void
onDestroy()
{
super.onDestroy();
Log.d(TAG,
"Chamando
o
mtodo
onDestroy()");
}
}
89
A
classe
Log
A
classe
Log
(android.u9l.Log)
responsvel
por
imprimir
mensagens
no
log
do
Android
(Logcat).
Os
principais
mtodos
desta
classe
so:
v(String,
String)
(verbose)
d(String,
String)
(debug)
i(String,
String)
(informaKon)
w(String,
String)
(warning)
e(String,
String)
(error)
Prof.
Vincius
de
Paula
90
91
92
93
94
Referncias
95