Arquitetura Android
Máquina Virtual Dalvik
FIM
cando Arold
10
Máquina Virtual Dalvík
Dadan retro
Jove VM able
Jahan pida
Java is Stack Based
#100+ 10
Iniciação de um Android
Processo detalhado
Contrado e executando
H
Arquitetura Android
Máquina Virtual Dalvik
FIM
T
Candido Android
Maquina Virtual Dalvík
O que
Jaada ya púdia.
Java is Stack Based
#106752
Java VMx Dakluik, s
Dalvik basada en registro
Iniciação de um Androl
Construindo e executando
Han
Corcu
Aplicações
APPLICATIONS
Camadas do Android
Home
Contacts
APPLICATIONS
Phone
APPLICATION FRAMEWORK
Browser
Activity Manager
Window
Manager
Content
Providers
View
System
Package Manager
Telephony
Manager
Resource
Manager
Location
Manager
Notification
Manager
LIBRARIES
ANDROID RUNTIME
Surface Manager
Media
Framework
SQLite
Core Libraries
OpenGL | ES
FreeType
WebKit
Dalvik Virtual
Machine
SGL
Display
Driver
Keypad Driver
SSL
libc
LINUX KERNEL
Camera Driver
WiFi Driver
Flash Memory
Driver
Binder (IPC)
Driver
Audio
Drivers
Power
Management
୮
Android Runtime
7
Kernel Linux
-Keldon.compatches
-Sensuporte à glibc.
-Segurança
-Cencinta da Mo
-Cantrale de Processos
-Rede
-Actua como um canada de interface entre o hardwar
canadas
Bibliotecas
Frund
Fornecem funcionalidades de baboo nivel.
Camadas do Android
Home
Contacts
Applications
Phone
APPLICATION FRAMEWORK
Browser
Window
Content
Activity Manager
Manager
Providers
View
System
Package Manager
Telephony
Resource
Manager
Manager
Location
Manager
Notification
Manager
LIBRARIES
Surface Manager
Media
Framework
SQLite
OpenGL | ES
FreeType
WebKit
SGL
Display
Driver
Keypad Driver
SSL
libc
Linux KernEL
Camera Driver
WiFi Driver
Android RUNTIME
Core Libraries
Dalvik Virtual
Machine
Flash Memory
Driver
Binder (IPC)
Driver
Audio
Drivers
Power
Management
Display
Driver
Kernel Linux
Linux Kernel
Camera Driver
Keypad Driver
WiFi Driver
• Kernel do Linux com patches
Sem suporte à glibc.
Segurança
Gerenciamento de Memória
•
Controle de Processos
Flash Memory
Driver
Binder (IPC)
Driver
Audio
Drivers
Power
Management
Rede
Atua como um camada de interface entre o hardware e as outras
camadas.
•
•
Patches do Kernel
Alarme: fornece alguns timers que permitem, por ex., "acordar" o
aparelho quando ele está dormindo.
Ashmem: permite às aplicações compartilhar a memória, com
melhor suporte a dispositivos com pouca capacidade de memória
• Pmem: utilizado para o gerenciamento de grandes regiões
•
contíguas de memória física compartilhadas entre o espaço dos
usuários e drivers do kernel
Binder - Android IPC: A comunicação enre processos (IPC) pode
provocar furos na segurança. O Binder substitui o IPC
normalmente usado em sistemas Unix.
to do indar
U.
Funcionamento do Binder
PROCESS A
App A
PROCESS B
Context
Binder Driver
Service B
get service
service
call foo(object)
call return
marshal proxy
object
relay to
IPC threads
Kernel Android
• uma CPU virtual, Goldfish, que executa instruções ARM926T
•
•
·
o sistema de arquivos de alto desempenho para memórias flash
YAFFS2 (Yet Another Flash File System, 2nd edition)
correção de bugs relacionados ao Bluetooth
adição de funções para controle de acesso e debug
mecanismo (00M - Out-of-Memory Handler) para terminar processos
quando na falta de memória
Bibliotecas
Libraries
Surface Manager
Media
Framework
SQLite
OpenGL | ES
Free Type
WebKit
Bionic libc
• Possui cerca de 200KB, a metade da glibc.
As exceções C++ eo "wide char" não são suportadas, assim como a
"Standard Template Library" (STI)
Otimizada para celulares e desenvolvida especialemente para o
android.
SGL
SSL
libc
Fornecem funcionalidades de baixo nível.
Webkit
+
Versão adaptada aos celulares.
Mesma utilizada no navegador Safari da apple e
Vic
atulamente desenvolvida por KDE, Apple, Nokia,
Google e outros.
Media Framework
Surface Finger
Andino AppLayer
Surface
Data Formats
Aup
OpenCORE
Funs
Surface
Surface Finger
C
Ap
D
Vid
Image Co
L
Link Opening System
Co
Scenic interpofi
Audio Flinger
Gerencia os periféricos de áudio e controla os
fluxos em direção aos periféricos de saida
•
•
Bionic libc
Possui cerca de 200KB, a metade da glibc.
As exceções C++ e o "wide char" não são suportadas, assim como a
"Standard Template Library" (STI)
Otimizada para celulares e desenvolvida especialemente para o
android.
webkit
• Versão adaptada aos celulares.
• Mesma utilizada no navegador Safari da apple e
atulamente desenvolvida por KDE, Apple, Nokia,
Google e outros.
Video Codecs
AVC
H.263
MPEG-4
Image Codec
JPEG
Media Framework
Android Application Layer
OpenCORE
Content Policy Manager
Multimedia Engines
Player, Author and 2-Way
Data Formats
Download Streaming Parser
3GPP
HTTP
3GPP
3GPP
AAC
AMR
2-Way
Composer
MP3
3G324M
CS VTC
3GPP
MPEG-4
WAV
H.223
H.245
Data Formats
Video Codecs
Audio Codecs
Linux Interface
Linux Operating System
Audio Codecs
AAC
AMR (NB, WB)
HE-AAC
HE-AACV2
MP3
Surface Flinger
Surface
App
Frame
Surface
Surface Flinger
Buffer
App
Surface
O Surface Flinger permite construir a interface gráfica.
Audio Flinger
Tone
Audio
App
Media
Audio Flinger
Player
App
Game Audio
л
Earpeace
Speaker
Bluetooth
Gerencia os periféricos de áudio e controla os
fluxos em direção aos periféricos de saída
Harware Abstration Layer (Hal)
Applications
Home
Dialer
SMS/MMS
IM
Browser
Camera
Alarm
Calculator
Contacts
Voice Dial
Email
Calendar Media Player Photo Album
Clock
Application Framework
Activity Manager
Window
Manager
View
Content Providers
System
Notification
Manager
Package Manager
Telephony
Manager
Location
Resource Manager
Manager
Libraries
Surface
Manager
OpenGLIES
Media
Framework
Audio
Manager
Android Runtime
Core Libraries
SQLite
FreeType
WebKit
Libc
SSL
Dalvik Virtual Machine
Graphics
Audio
Camera
HARDWARE Abstraction Layer
GPS Radio (RIL)
Bluetooth
Linux Kernel
WiFi
Display Driver
Camera Driver
Bluetooth Driver
Shared Memory
Driver
Binder (IPC) Driver
Audio
USB Driver
Keypad Driver
WiFi Driver
Drivers
Power
Management
Android Runtime
Android RUNTIME
Core Libraries
Dalvik Virtual
Machine
•
•
A MV dalvik executa os DEXcodes do android.
A Core Libraries fornece a linguagem Java disponível para
as aplicações
Framework
APPLICATIon Framework
Activity Manager
Window
Manager
Content
Providers
Package Manager
Telephony
Resource
Manager
Manager
Location
Manager
View
System
Notification
Manager
Fornece a API para que os desenvolvedores desenvolvam suas aplicações
Serviços do Núcleo da plataforma
APPLICATION TRAMCHORK
Os serviços não possuem interação direta com o usuário e executam em
background constantemente.
Serviços do Núcleo da plataforma
Application Framework
Window
Activity Manager
Content Providers
Manager
View
System
Notification
Manager
Package Manager
Telephony
Manager
Resource Manager
Location
Manager
Os serviços não possuem interação direta com o usuário e executam em
background constantemente.
Activity Manager
Gerencia ciclo de vida das aplicações a mantém uma "pilha” da
navegação, permitindo ir de uma aplicação à outra e de retornar
quando a última aplicação aberta á fachada.
View System
Fornece todos so componentes gráficos listas, grade,
caixa de texto, botões e mesmo um navegador embarcado.
Package Manager:
Utilisado pelo Activity Manager para
carregar as informações dos arques apk
Content Provider
Gerda compartimento de dados entre es aplicações, como por ex, a
sede dades de contates, que pode ser consultada por outras aplicações.
Os dados podem ser compartilhados a través de um 80 (500 be), por
quivos rede, elc
Window Manager
Logo abaixo do Surface Flinger, ele gerencia as janelas das
aplicações --> qual janela dve ser mostrada na frente de outra
na tela.
Resource Manager
gerencia tudo que não é código, todos os recursos --> imagens,
arquivos de áudio, etc.
Serviços de Hardware
Telephony Service
Location Service (GPS)
Bluetooth Service
WiFi Service
USB Service
Sensor Service: (detector de luminosidade, etc.)
Activity Manager:
Gerencia o ciclo de vida das aplicações e mantém uma "pilha" de
navegação, permitindo ir de uma aplicação à outra e de retornar
à precedente quando a última aplicação aberta é fechada.
Package Manager:
Utilisado pelo Activity Manager para
carregar as informações dos arquvos .apk.