Android
Android
móvel
Android
Prof. Dr. Daniel Vecchiato <[email protected]>
Roteiro
• Introdução
• Versões
• Ferramentas
• Arquitetura
2
Introdução
• É um sistema operacional para dispositivos móveis como
smartphones e tablets
• Criação: Google Inc (Android Inc) e Open HandSet
Alliance
3
Características
• Open source
• Começou baseado no kernel 2.6 do Linux
• Possui:
Kit de desenvolvimento: Android SDK
SGBD: Sqlite
4
Licença
• Apache Software License (ASL)
Rede e telefonia
Mais amigável ao uso comercial
Menos restritiva
• GNU/GPL
Modificações no kernel Linux
5
Versões
• A partir da versão 1.5, possui nomes de doces seguindo a
ordem alfabética
6
Versões
• 1.5: Cupcake (2009)
• 4.0: Ice Cream Sandwich (2011) A partir desta versão, houve alteração no
kernel linux para 3.x
7
Versões
• https://developer.android.com/about/dashboards/index.ht
ml
8
Software Development Kit
9
SQLite
• Código aberto
10
SQLite
• Alguns comandos
ALTER TABLE
BEGIN TRANSACTION
COMMIT TRANSACTION
CREATE INDEX, CREATE TABLE
CREATE TRIGGER, CREATE VIEW
DELETE, DROP TABLE
DROP TRIGGER, DROP VIEW
INSERT
ROLLBACK TRANSACTION
SELECT
UPDATE
11
Máquina Virtual
12
Máquina Virtual Dalvik
13
Máquina Virtual Dalvik
14
Máquina Virtual Dalvik
15
Armazenamento Externo
• Armazenamento externo
Suporta MicroSD e USB "A" para conexão com dispositivos de
armazenamento
16
Sistema de Arquivos
17
YAFFS2
18
YAFFS2
• Dados de uma aplicação instalada no sistema, por
exemplo, cairá no diretório /data/
Dentro desse diretório, existe outras pasta que são criadas
pela API, além daquelas que a aplicação pode criar. Os
diretórios comuns são
shared_prefs: Diretório que armazena as preferências
compartilhadas no formato XML;
lib: Arquivos de bibliotecas customizadas;
files: Arquivos que o desenvolvedor salva no armazenamento
interno;
cache: Arquivos de cache da aplicação;
database: Banco de dados SQLite e jornal
Um arquivo que não esteja em um dos diretórios
shared_prefs, lib, cache ou database deve ser uma pasta que
o desenvolvedor criou e controla
19
Tipos de Armazenamento
• Shared Preferences
Armazena dados primitivos em pares chave-valor
Permite que a app salve e recupere pares de chave-valor de
tipos de dados primitivos:
boolean
floats
ints
longs
Strings
20
Tipos de Armazenamento
• Internal Storage
Armazena dados privados na memória do dispositivo
Salva arquivos diretamente na memória interna do
dispositivo
Arquivos salvos na memória interna são privados a sua
aplicação e outras aplicações não podem acessá-las (nem o
usuário)
21
Tipos de Armazenamento
• External Storage
Armazena dados públicos no cartão de memória
Cartão SD
PenDrive
• SQLite Databases
Armazena dados estruturados num banco de dados privado
• Network Connection
Armazena dados na web do seu servidor de rede
22
Arquitetura
23
Arquitetura – Linux Kernel
24
Arquitetura –
Camada de abstração de
hardware
25
Arquitetura – Android
Runtime
• Principais recursos:
Compilação "ahead-of-time" (AOT) e "just-in-time" (JIT)
Coleta de lixo (GC) otimizada
Melhor compatibilidade de depuração
26
Arquitetura – Bibliotecas
C/C++ Nativas
• Vários componentes e serviços principais do sistema
Android, como ART e HAL, são implementados por
código nativo
27
Estrutura de Java API
28
Aplicativos do Sistema
29
Ambiente de desenvolvimento
• Android Studio
• Android SDK
30
NDK
31
Segurança
• Aplicações rodam em SandBox
São áreas que não tem acesso ao restante dos recursos do
sistema
Com exceção das permissões de acesso concedidas pelo
usuário quando a aplicação é instalada
32
Segurança
33
Segurança
34
Hora de praticar!
[1] Qual foi a versão do Android desenvolvida
inicialmente apenas para tablets?
35
Hora de praticar!
[1] Qual foi a versão do Android desenvolvida
inicialmente apenas para tablets?
Honeycomb
36
Hora de praticar!
[2] Qual é a máquina virtual do Android?
37
Hora de praticar!
[2] Qual é a máquina virtual do Android?
Era a Dalvik VM agora é a ART (Android Runtime)
38
Hora de praticar!
[3] Qual é o SGBD do Android?
39
Hora de praticar!
[3] Qual é o SGBD do Android?
SQLite
40
Hora de Praticar
[4] O Android pode ser executado sobre qualquer sistema
operacional, pois os aplicativos Android são escritos na
linguagem de programação Java e executados em uma
máquina virtual Java.
CERTO ou ERRADO?
41
Hora de Praticar
[4] O Android pode ser executado sobre qualquer sistema
operacional, pois os aplicativos Android são escritos na
linguagem de programação Java e executados em uma
máquina virtual Java.
ERRADO
42
Hora de Praticar!
[5] O sistema operacional Android tem o Linux como
base, o que permite a utilização simultânea de aplicações
que podem ser executadas em segundo plano, de forma
transparente para o usuário
CERTO ou ERRADO?
43
Hora de Praticar!
[5] O sistema operacional Android tem o Linux como
base, o que permite a utilização simultânea de aplicações
que podem ser executadas em segundo plano, de forma
transparente para o usuário
CERTO
44
Hora de Praticar!
[6] Quando um banco de dados do SQLite é criado no
Android, seus arquivos ficam armazenados no seguinte
endereço: /data/data/pacote.do.aplicativo/databases/.
CERTO ou ERRADO?
45
Hora de Praticar!
[6] Quando um banco de dados do SQLite é criado no
Android, seus arquivos ficam armazenados no seguinte
endereço: /data/data/pacote.do.aplicativo/databases/.
CERTO
46
Hora de Praticar!
[7] As aplicações desenvolvidas para Android são escritas
em Java, não sendo, entretanto, consideradas uma
máquina virtual Java.
CERTO ou ERRADO?
47
Hora de Praticar!
[7] As aplicações desenvolvidas para Android são escritas
em Java, não sendo, entretanto, consideradas uma
máquina virtual Java.
CERTO
48
Hora de Praticar!
[8] Apesar de o Android ser o sistema operacional mais
utilizado para o acesso a aplicativos por meio de
equipamentos móveis, especialmente smartphones, ainda
não se dispõe de e-readers que permitam a leitura de
livros eletrônicos nessa plataforma.
CERTO ou ERRADO?
49
Hora de Praticar!
[8] Apesar de o Android ser o sistema operacional mais
utilizado para o acesso a aplicativos por meio de
equipamentos móveis, especialmente smartphones, ainda
não se dispõe de e-readers que permitam a leitura de
livros eletrônicos nessa plataforma.
ERRADO
50
Hora de Praticar!
• [9] Todos os aplicativos de usuários executados no iOS 7
são colocados em sandbox para proteger o sistema e
outros aplicativos. O mesmo processo ocorre com o
Android 4, em que todos os softwares acima do kernel,
incluindo bibliotecas de sistema operacional e estrutura
de aplicação, são executados dentro da sandbox do
aplicativo.
CERTO ou ERRADO?
51
Hora de Praticar!
• [9] Todos os aplicativos de usuários executados no iOS 7
são colocados em sandbox para proteger o sistema e
outros aplicativos. O mesmo processo ocorre com o
Android 4, em que todos os softwares acima do kernel,
incluindo bibliotecas de sistema operacional e estrutura
de aplicação, são executados dentro da sandbox do
aplicativo.
CERTO
52
Hora de Praticar!
• [10] O Android, sistema operacional Linux multiusuário
em que cada aplicativo é visto como um usuário
diferente, atribui a cada aplicativo uma identidade de
usuário exclusiva.
CERTO ou ERRADO
53
Hora de Praticar!
• [10] O Android, sistema operacional Linux multiusuário
em que cada aplicativo é visto como um usuário
diferente, atribui a cada aplicativo uma identidade de
usuário exclusiva.
CERTO
54