Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1
Sistemas Operacionais Abertos e Mobile
Android Runtime - Dalvik e ART
Prof. Elias Oliveira
2
Qual é o sistema operacional Android?
 Android - Plataforma tecnológica projetada para 
dispositivos móveis, como smartphones, tablets e 
relógios inteligentes.
 Origem - Aquisição da Android Inc. pelo Google em 
2005.
 Desenvolvido foi abraçado pelo Google, 
 Lançamento inicial em 2008.
 É baseado no núcleo do sistema operacional Linux
3
Recursos
 Interface amigável: 
 interface de usuário intuitiva e fácil de usar. 
 É altamente personalizável.
 Multitarefa: 
 Capacidade de executar vários aplicativos ao mesmo tempo. 
 Receber notificações em tempo real.
 Loja de aplicativos: 
 O Google Play Store, uma loja online que oferece uma grande variedade 
de aplicativos, jogos, músicas, filmes e livros. 
4
Arquitetura
 Android é mais do que um sistema operacional. 
 Ele ´e na verdade um software stack composto por cinco 
camadas,
5
Arquitetura
6
Arquitetura
 É baseado no modelo de máquina virtual Java (JVM) e no 
kernel Linux.
 O núcleo do Android é o Linux, que fornece serviços 
básicos do sistema operacional, 
 como gerenciamento de processos, 
 gerenciamento de memória. 
 gerenciamento de arquivos e
 Os drivers de interface com o HW
7
Arquitetura
 Acima do kernel ficam as bibliotecas C/C++ utilizadas por diversos dos 
componentes do sistema compostas pelas seguintes bibliotecas
 Padrão do C (libc), otimizada para dispositivos embarcados;
 Diversos formatos de áudio, vídeo e imagens; 
 Um gerenciador que intermedia o acesso ao display e camadas de imagem 2D 
e 3D; 
 O engine para navegadores WebKit; 
 Bibliotecas para gráficos 2D (SGL) e 3D (OpenGLES); 
 Renderizador de fontes bitmap e vetoriais; e 
 O banco de dados relacional SQLite
8
Arquitetura
 A máquina virtual Dalvik, que executa aplicativos 
Android.
 A Dalvik Virtual Machine é uma implementação 
personalizada e otimizada da Java Virtual Machine 
(JVM).
 Projetada especificamente para dispositivos móveis e 
com recursos limitados.
 É executada num processo isolado “Android Runtime” 
(ART) 
9
Arquitetura
 O Framework de aplicações, fornece as funcionalidades 
necessárias para a construçõ de aplicativos
 Aplicações Android podem possuir quatro tipos de 
componentes: 
 Activities,
 services, 
 content providers e
 broadcast receivers. 
10
Arquitetura
 Activity é um componente fundamental que representa 
uma única tela com uma interface de usuário. 
 Cada Activity é uma janela onde os elementos da 
interface, como botões, textos e imagens, são exibidos e 
com os quais o usuário pode interagir
11
Arquitetura
 Service é um componente que permite a execução de 
operações em segundo plano sem uma interface de usuário. 
 Tipos de Services:
 Foreground Services: Executam tarefas que o usuário está 
ciente, como tocar música ou baixar arquivos.
 Background Services: Executam tarefas que o usuário não 
está ciente diretamente, como sincronização de dados.
 Bound Services: Permitem que outros componentes, como 
Activities, se conectem a eles para interagir e realizar 
operações.
12
Arquitetura
 Content Provider é um componente que permite que 
os aplicativos compartilhem dados entre si de maneira 
segura e estruturada. 
 Eles gerenciam o acesso a um repositório central de 
dados, permitindo que diferentes aplicativos leiam e 
escrevam dados
13
Arquitetura
 Broadcast Receiver é um componente que permite que 
os aplicativos recebam e respondam a mensagens de 
broadcast enviadas pelo sistema ou por outros 
aplicativos. 
 Eles permitem que os aplicativos “ouçam” eventos do 
sistema, como mudanças na conectividade de rede, 
recebimento de mensagens SMS, ou a conclusão de um 
download.
14
ART - Android Runtime
 Quando construímos nosso aplicativo e geramos APK, 
parte desse APK são arquivos .dex . 
 Esses arquivos contêm o bytecode de nosso aplicativo.
 O bytecode escrito em arquivos .dex é traduzido pelo 
Android Runtime em código de máquina.
 O Android Runtime também gerencia memória e coleta 
de lixo
15
ART - Android Runtime
16
ART - Android Runtime
 O Android Runtime é um dos principais blocos de construção do 
ecossistema Android. 
 O Android inclui um grupo de bibliotecas que fornece a maioria das 
funcionalidades disponíveis nas principais bibliotecas da linguagem Java
 o Android utiliza-se de uma Máquina Virtual(VM) própria a ART/DALVKIT.
 Tanto ART como Dalvikit utilizam o kernel do Linux para lidar com 
funcionalidades de nível mais baixo, como segurança, threading e 
gerenciamento de processos e memória.
 A partir do Android 5.0 (Lollipop), ART substituiu Dalvik como o runtime 
padrão
17
Android Runtime
A principal diferença entre Dalvik e ART (Android Runtime) está na forma como eles 
executam os aplicativos no Android:
1. Dalvik:
 - Compilação Just-In-Time (JIT): Dalvik utiliza a compilação JIT, que compila o código 
do aplicativo em tempo de execução. Isso significa que o código é traduzido para código 
de máquina enquanto o aplicativo está sendo executado.
 - Desempenho: A compilação JIT pode resultar em desempenho mais lento, pois a 
tradução do código ocorre durante a execução do aplicativo².
 - Consumo de Recursos: Pode consumir mais bateria e memória devido à necessidade 
constante de compilar o código durante a execução¹.
 
18
Android Runtime
19
Android Runtime
2. ART (Android Runtime) Android L:
 - Compilação Ahead-Of-Time (AOT): ART utiliza a compilação AOT, que compila o código do 
aplicativo no momento da instalação. 
 - Desempenho: A compilação AOT resulta em desempenho mais rápido, pois o código já está 
pré-compilado quando o aplicativo é executado.
 - Consumo de Recursos: Reduz o consumo de bateria e memória, pois elimina a 
necessidade de compilar o código durante a execução.
Desvantagens:
 O ART no Android L usava muito mais RAM do que o Dalvik.
 Maior tempo para instalar o aplicativo
 Mais tempo para realizar uma atualização do sistema.
20
Android Runtime
21
Android Runtime
 Compilação guiada por perfil (Android N)
 A compilação guiada por perfil é uma estratégia que permite 
melhorar constantemente o desempenho dos aplicativos Android 
durante sua execução. 
 Por padrão, o aplicativo é compilado usando a estratégia de 
compilação Just in Time , mas quando o ART detecta que 
alguns métodos são "quentes", o que significa que eles são 
executados com frequência, o ART pode pré-compilar e 
armazenar em cache esses métodos para obter o melhor 
desempenho.
22
Android Runtime
23
Android Runtime
 Melhor desempenho possível para as partes principais do 
aplicativo enquanto reduz o uso de RAM. 
 Para a maioria dos aplicativos apenas 10% a 20% do 
código é usado com frequência.
 Após essa mudança, o ART não afetou mais a velocidade 
de instalação de aplicativos e atualizações do sistema. 
 A pré-compilação acontece apenas enquanto o dispositivo 
estava ocioso e carregando.
24
Android Runtime
25
Android Runtime
 Desvantagem:
 Para obter dados de perfil e pré-compilar métodos e 
classes usados com frequência, o usuário precisa 
realmente usar um aplicativo. 
 Isso significa que alguns primeiros usos do aplicativo 
podem ser um tanto lentos porque, nesse caso, apenas 
a compilação Just in Time será usada.
26
Android Runtime
 Perfis na nuvem (Android P)
 A ideia principal por trás dos perfis na nuvem é que a maioria 
das pessoas usa o aplicativo de maneira bastante 
semelhante. 
 Portanto, para melhorar o desempenho logo após a 
instalação, podemos coletar dados de perfil de pessoas que 
já usaram este aplicativo. 
 Esses dados de perfil agregados são usados para criar um 
arquivo denominado perfil de núcleo comum para o 
aplicativo.
27
Android Runtime
28
Android Runtime
29
Android Runtime
 Os novos usuários obtêm um melhor desempenho logo após o 
download de um aplicativo. Depois que o usuário executa um aplicativo, o ART coleta dados 
de perfil específicos do usuário e recompila o código que é 
frequentemente usado por esse usuário em particular quando o 
dispositivo está ocioso.
 E a melhor parte de tudo isso é que nós, desenvolvedores que 
criamos aplicativos, não precisamos fazer nada para habilitar 
esse recurso. Tudo acontece nos bastidores do Android 
Runtime.
30
Resumo ART - Android Runtime
31
Prioridade Processos 
 No Android todos os processos são mantidos na 
memória até que haja a necessidade de recursos para 
outros processos. 
 A ordem onde os processos são finalizados para 
liberação de recursos está associada ao nível de 
prioridade da aplicação do mesmo. 
32
Prioridade Processos
33
Prioridade Processos
 Active Processes: São processos em interação com usuário 
(foreground). São os processos mantidos a todo custo pelo 
gerenciador;
 Visible Processes: São processos que estão visíveis, mas não estão 
interagindo com o usuário. Estes processos somente são terminados 
em casos de extrema necessidade, para que um processo ativo 
continue executando;
 Started Service Processes: São processos hospedando serviços que 
foram iniciados e não possuem interface visível. Como não interagem 
diretamente com o usuário possuem um nível de prioridade inferior ao 
de processos visíveis;
34
Prioridade Processos
 Background Processes: São processos de atividades 
que não estão visíveis e não possuem serviços iniciados. 
Estes processos são finalizados utilizando-se o padrão 
Last–Seen–First–Killed;
 Empty Processes: São processos já finalizados, que são 
mantidos na memória pelo sistema operacional, para 
acelerar o start–up do mesmo e melhorar a performance 
do sistema. Estes processos são frequentemente 
finalizados para serem finalizados e cederem recursos aos 
processos em execução.
35
Comunicação entre processos
Permitir que diferentes componentes de um aplicativo ou diferentes aplicativos 
troquem informações e coordenem suas atividades. 
 1. **Binder**: 
 É o principal mecanismo de IPC no Android. 
 Ele permite a comunicação eficiente entre processos, utilizando um módulo no 
kernel do sistema.
 2. **Intents**: 
São usados para enviar mensagens assíncronas entre componentes de um 
aplicativo ou entre diferentes aplicativos.
 Intents podem iniciar atividades, serviços ou transmitir dados.
36
Comunicação entre processos
 3. **Content Providers**: 
 Permitem que aplicativos compartilhem dados com outros aplicativos de maneira controlada. 
 Usados para acessar e modificar dados armazenados em um banco de dados SQLite, arquivos ou 
outros repositórios persistentes.
 4. **Messenger**: 
 Utiliza objetos `Message` para enviar dados entre processos. 
 É útil para comunicação simples e de baixo volume de dados.
 5. **AIDL (Android Interface Definition Language)**:
 Permite a definição de interfaces, podem ser usados para se comunicar com serviços em outros 
processos. 
 É mais complexo que o Messenger, mas oferece maior flexibilidade e controle.
37
Comunicação entre processos
38
Bibliográfia
 Bordin, Maycon. (2012). Introdução a Arquitetura 
Android. 
 https://tecnobits.com/pt/o-que-%C3%A9-sistema-operaci
onal-android/
 https://ichi.pro/pt/android-runtime-como-dalvik-e-art-funci
onam-121323415949541
 
https://tecnobits.com/pt/o-que-%C3%A9-sistema-operacional-android/
https://tecnobits.com/pt/o-que-%C3%A9-sistema-operacional-android/
https://ichi.pro/pt/android-runtime-como-dalvik-e-art-funcionam-121323415949541
https://ichi.pro/pt/android-runtime-como-dalvik-e-art-funcionam-121323415949541
	Sistemas Operacionais Abertos e Mobile
	Qual é o sistema operacional Android?
	Recursos
	Arquitetura
	Arquitetura (2)
	Arquitetura (3)
	Arquitetura (4)
	Arquitetura (5)
	Arquitetura (6)
	Arquitetura (7)
	Arquitetura (8)
	Arquitetura (9)
	Arquitetura (10)
	ART - Android Runtime
	ART - Android Runtime (2)
	ART - Android Runtime (3)
	Android Runtime
	Android Runtime (2)
	Android Runtime (3)
	Android Runtime (4)
	Android Runtime (5)
	Android Runtime (6)
	Android Runtime (7)
	Android Runtime (8)
	Android Runtime (9)
	Android Runtime (10)
	Android Runtime (11)
	Android Runtime (12)
	Android Runtime (13)
	Resumo ART - Android Runtime
	Prioridade Processos
	Prioridade Processos
	Prioridade Processos (2)
	Prioridade Processos (3)
	Slide 35
	Comunicação entre processos
	Slide 37
	Bibliográfia

Mais conteúdos dessa disciplina