Você está na página 1de 37

Introdução a

plataforma
Android
Prof. Cristhian Heck, M.Eng.

1
Cronograma

 Introdução
 Versões
 Estrutura geral
 Arquitetura:
 Aplicações
 Framework de Aplicações
 Bibliotecas
 Android Runtime
 Kernel

2
Introdução

 Android é a plataforma da Google para dispositivos móveis

 É baseado na plataforma Java com OS Linux

 Foi anunciada em 2007

 Primeiro dispositivo Android foi lançado em Out/2008

 Tem como objetivo ser uma plataforma:


 Flexível
 Aberta
 Fácil migração
3
Introdução

HTC G1 (Dream)
4
Introdução

 Foi oriundo da ação da Open Headset Aliance, grupo formado por


gigantes do mercado de telefonia liderados pelo Google;

 Alguns membros: Motorola, HTC, LG, Samsung, Sony Ericson,


Toshiba, Intel, Asus, entre outros;

 O sistema é baseado na plataforma Java com sistema operacional


Linux;

 Android é a primeira plataforma móvel completa, aberta e livre


(Xing ling pode rodar android!);

 Fácil integração com as Aplicações nativas e serviços do google e


possui um poderoso ambiente de desenvolvimento e uma loja para
Apps;
5
Introdução

 O sistema operacional desenvolvido pela Google domina


soberano o mercado mundial de telefones;

 91,6% de todos os novos aparelhos vendidos no Brasil rodam


alguma versão do Android (2014);

 Até o final do ano passado, mais de 500 milhões de aparelhos


no mundo já usavam o sistema operacional da Google;

 Aplicativos para Android surgem em profusão no mercado, e


muitos Apps pagos para usuários do iPhone chegam aos
telefones do robozinho de graça

6
Versões
 Possui diversas versões, variando conforme o tipo de dispositivo

1.5: Cupcake (Abril de 2009) 4.1-4.3: Jelly Bean


1.6: Donut (Setembro de 2009) 4.4: Kit-Kat
2.1: Eclair (Janeiro de 2010) 5.0-5.1: Lollipop
2.2: FroYo (Frozen Yogourt - Maio 6.0: Marshmallow
de 2010) 7.0: Nougat
2.3-2.4: Gingerbread (Dezembro 8.0: Oreo
de 2010) 9.0: PIE
3.0-3.2: Honeycomb (Lançada Android 10
especialmente para tablets em Android 11
Janeiro de 2011)
4.0: Ice Cream Sandwich (Outubro
de 2011)

7
Versões

Android 8.0 Android 9.0


8
Versões
 Android 1.1
 Versão do Kernel: 2.6
 Resolução máxima suportada: 320×480 HVGA

 Android 1.5
 Versão do Kernel: 2.6
 Resolução máxima suportada: 320×480 HVGA
 Suporte a bluetooth
 Teclado com text-prediction(descoberta automática de texto)
 Suporte a gravação de vídeo

 Android 1.6
 Versão do Kernel: 2.6.29
 Resolução máxima suportada: 800×480 WVGA
 Navegação Turn-by-Turn
9
Versões

 Android 2.0
 Versão do Kernel: 2.6.29
 Resolução máxima suportada: 800×480 WVGA
 Suporte a HTML
 Suporte a Microsoft Exchange(email, calendário, contatos)
 Bluetooth 2.1
 Atualização da interface gráfica

 Android 2.2
 Versão do Kernel: 2.6.32
 Possibilidade de instalar aplicativos na memória expansível(cartão SD)
 Compartilhamento de acesso a dados via USB(USB Tethering)
10
 Suporte a Flash 10.1
Versões

 Android 2.3
 Versão do Kernel: 2.6.35
 Resolução máxima suportada: 1366×768 WXGA
 Interface gráfica atualizada
 Suporte a Flash 10.2
 Suporte a WebM video
 Suporte a vídeo chamada

 Android 3.0
 Versã0 do kernel: 2.6.36
 Suporte a processamento multi núcleos(multi core)
 Atualização da interface do usuário
 Google Talk video chat 11

 Google eBooks
Versões

 Android 4.0
 Versão do Kernel: 3.0.1
 Controle nativo de utilização de banda de dados
 Novas aplicações padrão
 Maior customização da interface
 Novos meios de compartilhamento, incluindo mais opções sociais
 Unificação da plataforma para Tablets e telefones
 Suporte a mais dispositivos Bluetooth
 Lockscreen com controles de câmera e música
 Suporte a efeitos de imagem e vídeo, câmera com detecção de
face
 Suporte à correção ortográfica e novas funções de acessibilidade

12
Versões

 Android 4.1 – 4.2 - 4.3


 Versão do Kernel: 3.0.31 - 3.4.0 - 3.4.39
 Google Maps Offline
 Reconhecimento e digitação por voz Offline
 Google Now
 NFC
 Perfis restritos
 OpenGL ES 3.0
 Melhoria no algoritmo de digitação.

13
Versões

 Android 4.4 + Wear


 Versão do Kernel: 3.10
 Melhoria de performance e visual
 Unificação SMS + Hangouts
 Teclado com Emojis
 Suporte a novos gestos
 Google Cloud Print

14
Versões

 Android 5.0 – 5.1.1


 Versão do kernel: 3.16.1
 Material Design
 Novos efeitos de toque e de transição;
 Sistema mais limpo e fluido;
 Novo modo de economia de bateria;
 Barra de status dupla;
 Tela de bloqueio que exibe as notificações;
 Possibilidade de múltiplos usuários, parecido com o
Windows.

15
Versões

 Android 6.0
 Versão do kernel: 3.18.10
 Suporte nativo para leitores de impressão digital
 Melhorias para compartilhamento de conteúdo entre
aplicativos
 Suporte para USB Type-C
 Modo de tela 4K para apps

16
Versões

 Android 7.0
 Versão do kernel: 4.1.18
 Suporte a multi-janela
 Nova partição de sistema
 API para renderização 3d Vulkan
 Novo modo de salvar dados – reduzindo uso de banda
 Novo compilador JIT (Just-in-time)
 Suporte a PIP para Android TV

17
Versões

 Android 8.0
 Versão do kernel: 4.13
 Melhora na economia de bateria
 Suporte ao Google Play Protect para segurança de dados
 Novos canais de notificação
 Personalização

18
Versões

 Android 9.0
 Versão do kernel: 4.4.146
 Melhor aproveitamento dos formatos de tela de 18:9,
18,5:9, 19:9
 Melhor gerenciamento da bateria
 Sistema de pesquisa otimizado e direto ao ponto

19
Versões

 Android 10.0
 Versão do kernel: 4.9.191
 Tema escuro oficial
 Novo controle por gestos e a volta dos botões
 Novo gerenciador de arquivos

20
Estrutura Geral

 Android proporciona:
 Framework de aplicação que possibilita o reuso e troca de
componentes.

 Máquina virtual otimizada para dispositivos móveis.

 Navegador integrado baseado na engine open-source WebKit.

 Gráficos otimizados fornecidos por uma biblioteca gráfica


personalizada para 2D; biblioteca gráfica 3D baseada na
especificação OpenGL ES 1.0 (com aceleração de hardware opcional).

 SQLite para armazenamento de dados estruturado. 21


Estrutura Geral

 Suporte à mídia de áudios, vídeos e formatos de imagens


comuns (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

 Bluetooth, EDGE, 3G, e WiFi (dependente de hardware)

 Câmera, GPS, compasso, e acelerômetro (dependente de


hardware)

22
Arquitetura

23
Estrutura geral

 A execução dos aplicativos Java no Android é feita por uma máquina virtual Java
denominada Dalvik;

 A Dalvik possui uma implementação própria das principais APIs do Java, baseada no
código das bibliotecas do projeto Apache Harmony, contendo os principais pacotes e
classes da linguagem Java;

 Outro detalhe importante: o Android não implementa o Java SE, o Java EE e nem o
Java ME;

 Ele possui, sim, um grande subconjunto de pacotes e classes padrões do Java, mas
voltadas apenas ao desenvolvimento de aplicativos para o Android;

 Nas últimas versões o modelo do Dalvik vem sendo substituído pelo ART 24
Diferença Dalvik x ART

 Resumidamente, os aplicativos instalados no Android são interpretados/traduzidos


pela máquina virtual Dalvik, e então as informações deles são enviadas até a interface
gráfica;

 É utilizado desde o Android 2.2;

 Tem como finalidade tornar o Android mais amplo, traduzindo o código dos aplicativos
para que uma grande quantidade de aparelhos possa executá-los;

25
Diferença Dalvik x ART

 Porém essa tradução/interpretação gera um caminho mais longo no processo dos


aplicativos, utilizando muitos recursos, como bateria e memória;

 Funciona como um tradutor, mas mais do que receber uma informação e repassá-la,
ele precisa saber interpretar as diferenças de estrutura de hardware, para que não
ocorra erros;

 Ele utiliza o modelo de compilação Just-in-time, onde a informação é traduzida


somente no momento que lhe é solicitado.

 Para aplicativos mais pesados, com a quantidade de recursos utilizados diversos


problemas podem ocorrer, como travamentos em diversos casos.
26
Diferença Dalvik x ART

 Por estes motivos a Google introduziu na versão KitKat (4.4) a máquina ART;

 Esta visa garantir melhores resultados, pois muda a forma como ocorre a compilação
dos dados;

 Utiliza a compilação Ahead-of-time, onde os códigos são pré-compilados na linguagem


de execução já durante a instalação dos aplicativos;

 Isso ocasiona uma maior demora na instalação do aplicativo, em contra partida


ganhasse rapidez na execução do mesmo;

27
Diferença Dalvik x ART

 Segundo a Google, com a máquina ART, apesar da instalação mais demorada, os


aparelhos devem ganhar mais velocidade no processamento e na execução de tarefas;

 Com a aplicação pré-compilada, evitasse a repetição de atividades que aconteciam no


rodar as aplicações;

 Com isso, também é esperado que se utilize menos memória, deixando para o que
realmente “precisa” e diminuindo o consumo de energia.

28
Arquitetura

 Aplicações
 É disponibilizado com um conjunto de aplicações que inclui:
 Cliente de e-mail
 Programa SMS
 Calendário
 Mapas
 Navegador
 Contatos
 Entre outros.

 Todas aplicações são escritas usando a linguagem de programação


Java.

29
Arquitetura

 Framework de Aplicação

 Prove uma plataforma de desenvolvimento aberta

 Desenvolvedores são livres para acessar o hardware, acessar


informações locais, rodar serviços e etc.

 Tem acesso total às mesmas API’s do Framework utilizadas


pelas aplicações centrais

 Foi desenvolvida para simplificar o reuso de componentes

30
Arquitetura

 Framework de Aplicação

 Apresenta um conjunto de serviços e sistemas, que incluí:

 Extensa variedade de Views que podem ser usados para


construir aplicações (listas, grid, caixas de textos, etc.)

 Content Providers: permitem às aplicações acessarem dados de


outras aplicações ou compartilhar suas próprias informações

31
Arquitetura

 Framework de Aplicação

 Resource Manager: prove acesso a recursos que não são código


como strings localizadas, gráficos e arquivos de layouts

 Notification Manager: permite que aplicações mostrem alertas


personalizados na barra de status

 Activity Manager: gerencia o ciclo de vida de aplicações e


prove uma forma de navegação “backstack”

32
Arquitetura

 Bibliotecas

 Inclui um conjunto de bibliotecas C/C++, sendo utilizadas por vários


componentes do sistema.

 Biblioteca C: Implementação derivada do BSD da biblioteca padrão de


sistema C (libc), aperfeiçoada para dispositivos móveis que utilizam Linux

 Bibliotecas de mídia: Baseadas no PacketVideo’s OpenCore, suporta


gravação e playback de vídeo e aúdio bem como arquivos de imagem
estática

 FreeType: Renderização de fontes bitmap e vetoriais

 SQLite: Engine de base de dados relacional disponível a todas aplicações


33
Arquitetura

 Android Runtime

 O Android inclui um grupo de bibliotecas que fornece a maioria das funcionalidades


disponíveis nas principais bibliotecas da linguagem Java.

 Toda aplicação Android roda em seu próprio processo, com sua própria instância da
Máquina Virtual Dalvik.

 O Dalvik executa arquivos .dex, que é otimizado para consumo mínimo de memória.

 A VM é baseada em registros e roda classes compiladas pela linguagem Java, gerando


os arquivos .dex.

 O Dalvik VM baseia no kernel do Linux para funcionalidades como subjacentes como


encadeamento e gestão de baixo nível de memória.
34
Arquitetura

 Kernel
 Atualmente utiliza a versão 3.18.10 do kernel do
Linux para os serviços centrais do sistema, como
segurança, gestão de memória e processos.

 O kernel atua como uma camada de abstração entre


o hardware e o software.

35
Arquitetura

36
Referências

 Arquitetura Para Dispositivos Móveis. Giovanni


La Porta

 Apostila de Android. Programando Passo a


Passo 4ª. Luciano Alves da Silva.

 http://pt.wikipedia.org/wiki/Android

 http://www.luiztools.com/post/Introducao-ao-
Android.aspx

37

Você também pode gostar