Escolar Documentos
Profissional Documentos
Cultura Documentos
Android
Android
E NGENHARIA DE T ELECOMUNICAES
S ISTEMAS DE C OMPUTAO PARA T ELECOMUNICAES
TET 00197
Grupo:
R AFAEL C AVEARI G OMES
J EAN A LVES R. F ERNANDES
V INICIUS C ORRA F ERREIRA
Professora:
NATALIA C ASTRO F ERNANDES
10 de julho de 2012
Sumrio
Lista de Figuras
Introduo
1.1
Gerenciamento de processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Gerenciamento de memria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Sistema de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4
Objetivo e motivao
3.1
O kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
O sistema de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.3
Os servios bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.4
As aplicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.5
O processo de boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.5.1
O init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.5.2
O Zygote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.5.3
System server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
4.1
Android runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.2
18
4.2.1
19
Memria Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
4.3.1
Segmentao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4.3.2
Paginao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4.3.3
Substituio de pginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
4.4
22
4.5
Escalonamento de CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4.6
Deadlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.3
Desenvolvimento no Android
24
5.1
26
Android.os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consideraes finais
26
27
Referncias
29
Lista de Figuras
1
11
[11]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
13
14
15
19
10
Paginao no Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
11
23
12
27
13
27
14
27
15
28
Introduo
Introduo
Um computador composto basicamente por uma Unidade Central de Processamento (CPU),
memria e dispositivos de entrada e sada. O responsvel pelo controle e alocao de recursos para
este sistema o programa chamado sistema operacional. Sistemas operacionais so programas com a
funo de gerir o hardware de um computador. O sistema operacional age como uma interface entre
o usurio e o hardware, provendo uma base para a execuo de programas. As principais funes de
um sistema operacional so portanto:
Gerenciamento de processos.
Gerenciamento de memria.
Sistema de arquivos.
Entrada e sada de dados.
1.1
Gerenciamento de processos
A maioria dos computadores modernos so sistemas multitarefa, ou seja, so feitos para dar ao
usurio a sensao de que mltiplos processos e programas esto sendo executados simultaneamente.
funo do sistema operacional coordenar a ordenao e execuo de cada processo. Alm disto
existe tambm a comunicao entre os processos, conhecido como InterProcess Communication
(IPC), que tambm deve ser fornecida pelo sistema operacional.
1.2
Gerenciamento de memria
O sistema operacional possui acesso memria e coordena a utilizao desta por processos dos
usurios e garante a utilizao segura da mesma. Grande parte dos sistemas operacionais utilizam o
conceito de memria virtual. O sistema deve portanto assegurar que cada processo tenha seu prprio
espao na memria, prover a proteo deste espao para que no haja a sobrescrio e utilizao por
outro processo e possibilitar que uma aplicao no utilize mais memria que a existente fisicamente.
Sistemas de Computao
Objetivo e motivao
1.3
1.3
Sistema de arquivos
Sistema de arquivos
A memria principal do computador voltil, isto , todo o seu contedo perdido quando a
alimentao desligada, e seu tamanho limitado pelo custo do hardware. Assim, os usurios necessitam de algum mtodo para armazenar e recuperar informaes de modo permanente. Para uma
utilizao futura os dados devem ser armazenados em um dispositivo perifrico no volteis, como
um disco rgido (HD), CD, etc, que pode ser lido e gravado por um ou mais processos.
1.4
necessrio haver a entrada de dados no sistema, para que estes sejam processados e gerem
as informaes desejadas pelo usurio. Em computadores pessoais geralmente so utilizados como
dispositivos de entrada o mouse, o teclado ou a leitura dos dados feita diretamente de dispositivo de
memria secundria, como CDs (Compact Discs) e HDs (Hard Disks). E para o usurio ter acesso
a estas informaes geradas necessita-se tambm de um dispositivo de sada de dados. Sendo os
mais comumente utilizados a tela, as caixas de som ou feita a escrita em dispositivos de memria
secundrio. Todas estas aes so realizadas pelo sistema operacional.
Objetivo e motivao
Estudos mostram que nos dias atuais mais de seis bilhes de pessoas possuem um celular, como
visto na Figura 1, e isto quase a totalidade da populao mundial que de sete bilhes de habitantes,
segundo a ONU.
A crescente evoluo dos dispositivos mveis, impulsionada pelo modo em que os fabricantes
vm trazendo aparelhos cada vez mais completos, tem aberto um novo mercado de aplicaes para
celular. A presena de GPS (Sistema de Posicionamento Global), conexo WiFi, acelermetros
(sensores de movimento) e aumento na capacidade de processamento, fazem com que estes aparelhos
estejam aptos a portar aplicaes mais robustas e prover novas funcionalidades. Aparelhos mais
robustos requerem sistemas operacionais mais complexos, e com capacidade de gerenciar os novos
componentes de seu hardware. Sendo assim, alguns sistemas operacionais surgiram para sanar este
ponto, dentre eles podese citar: Symbian OS, Iphone OS, Google Android e Windows Mobile [10].
Neste trabalho vamos nos aprofundar no sistema operacional Android.
Universidade Federal Fluminense
Sistemas de Computao
Objetivo e motivao
Sistemas de Computao
Apesar de ter sido desenvolvido inicialmente para smartphones, hoje usado em diversas outras
aplicaes como tablets, netbooks, relgios, etc.
Apesar de ser baseado no kernel do Linux, existe pouca coisa em comum com distribuies Linux
convencionais (embarcadas ou no), lembrando que um sistema embarcado (ou sistema embutido)
um sistema microprocessado no qual o computador completamente encapsulado ou dedicado ao
dispositivo ou sistema que ele controla [13]. grosso modo, o Android uma mquina virtual Java
rodando sobre o kernel do Linux, dando suporte para o desenvolvimento de aplicaes Java atravs
de um conjunto de bibliotecas e servios.
Muitas caractersticas presentes no Android, tais como grficos 3D e suporte a banco de dados
nativo, tambm esto disponveis em outras plataformas mveis. Porm, apenas no Android h um
componente que permite exibir e manipular um mapa do Google Maps, servio de mapas do Google,
dentro de uma aplicao. Somente no Android todos os aplicativos so criados igualmente. Ou
seja, nele no h distino entre aplicativos que so nativos e os demais. Isso possibilita uma grande
customizao do sistema operacional, permitindo a substituio completa de aplicativos nativos por
outros, criados por terceiros. Alm disto, todos os aplicativos tm acesso as mesmas funcionalidades
[12].
Sua arquitetura possui basicamente 4 camadas, como visto na Figura 2. Uma breve descrio das
mesmas mostrada abaixo:
Aplicaes: A camada de aplicativos a que est no topo da pirmide da arquitetura do sistema
operacional Android, composta pelo conjunto de aplicaes nativas do mesmo. Dentre estes
podese citar: cliente de e-mail, despertador, calendrio, jogos, mapas, browser e internet, etc.
Framework: A camada de framework nativo disponibiliza aos desenvolvedores as mesmas
Applications Programming Interface (APIs) Interface de Programao de Aplicativos utilizadas para a criao de aplicaes originais do sistema operacional Android. Este framework
permite que o programador tenha o mesmo acesso ao sistema que os aplicativos da camada
de aplicativos possuem. Este framework foi criado para abstrair a complexidade e simplificar o reutilizao de procedimentos. Essa camada funciona como um link com a camada de
Universidade Federal Fluminense
Sistemas de Computao
Sistemas de Computao
3.1
O kernel
mquina virtual foi construda pelos engenheiros da Google, para obter um consumo mnimo
de memria e isolamento de processos. Ela permite que as aplicaes escritas em linguagem
Java sejam executadas normalmente;
Kernel Linux: A camada do kernel baseada em um sistema do sistema operacional Linux
verso 2.6. Esta camada atua tambm como responsvel pela abstrao entre o hardware e os
aplicativos e responsvel pelos servios principais do sistema operacional Android, como o
gerenciamento de memria e de processos. Vrias funes do kernel so utilizadas diretamente
pelo Android, mas muitas modificaes foram feitas para otimizar memria e tempo de processamento das aplicaes. Essas modificaes incluem novos dispositivos de drivers, adies no
sistema de gerenciamento de energia e um sistema que possibilita terminar processos de maneira criteriosa quando h pouca memria disponvel. O Linux 2.6 foi escolhido por j conter
uma grande quantidade de drivers de dispositivos slidos e por ter um bom gerenciamento de
memria e processos.
Se olharmos para a arquitetura interna do Android, veremos o nvel de complexidade deste sistema
operacional, vista na Figura 3.
3.1
O kernel
Como vimos anteriormente o Android usa uma verso modificada do kernel do Linux. Dentre as
principais modificaes, podemos citar:
Binder: Em todo sistema operacional com suporte memria virtual os processos rodam em
diferentes regies de memria. Isso significa que nenhum processo tem acesso direto regio
de memria de outro processo ou thread. Dessa forma precisamos de um mecanismo de comunicao entre processos. No Android utilizado o Binder, que ser visto com mais detalhes na
seco 4.5.
Ashmem: um novo mecanismo de compartilhamento de memria, onde dois ou mais processos podem comunicarem-se atravs de uma regio compartilhada de memria. mais leve
e fcil de usar, tem um melhor suporte a dispositivos com pouca memria, j que tem a capacidade de descartar regies de memria compartilhada de maneira segura em caso de pouca
memria disponvel. Sua implementao encontra-se em mm/ashmem.c.
Universidade Federal Fluminense
Sistemas de Computao
3.1
O kernel
10
Sistemas de Computao
3.2
O sistema de arquivos
encontra-se em kernel/power/wakelock.c.
Oom handling: Faz o controle do uso de memria do sistema operacional e encerra processos
se verificar que a memria disponvel esta abaixo de um valor mnimo aceitvel. implementado em
drivers/misc/lowmemorykiller.c.
Timed GPIO: o que possibilita acionar sadas de Input/Output (I/O) Entrada e Sada de
forma temporizada. Est implementado em
drives/misc/timed_gpio.c.
3.2
O sistema de arquivos
Uma rvore de diretrios de um sistema de arquivos para o Android pode ser visto na Figura 5.
Novamente podemos notar um grande diferena se comparado ao sistema Linux usual. Os dois
principais diretrios so o data, que armazena os dados das aplicaes, e o system, com as bibliotecas (system/lib), servios (system/bin e system/xbin) e aplicaes Java (system/app).
O Android implementou uma biblioteca chamada Bionic para usar como biblioteca do sistema.
O Google tem problemas burocrticos com licenas GPL. A Bionic usa a licena BSD, e suporta as
arquiteturas x86 e ARM. Diferentemente do Linux, as bibliotecas no so a glibc ou uClibc.
Uma alternativa vivel seria utilizar a licena GPL da Busybox, no entanto os engenheiros da
Google preferiram usar a Toolbox, uma implementao no mesmo esquema do Busybox, que tambm
traz um conjunto mais limitado de comandos e ferramentas teis para gerenciar um sistema Android.
Podemos ver os executveis que fazem um link para a Toolbox na listagem na Figura 6.
O Android ainda usa por padro o SQLite como gerenciador de banco de dados para as aplicaes
e o OpenGL/ES como biblioteca para interface grfica, dentre outras bibliotecas disponveis.
11
Sistemas de Computao
3.3
Os servios bsicos
Figura 5: Exemplo de uma rvore de diretrios de um sistema de arquivos no Android. Fonte: [11].
3.3
Os servios bsicos
Se listarmos os processos rodando em um dispositivo com Android, a sada ser mais ou menos
como o visto na Figura 7.
12
Sistemas de Computao
3.4
As aplicaes
3.4
As aplicaes
As aplicaes so escritas em linguagem Java. H bibliotecas Java disponveis para acessar todos
os recursos do dispositivo.
Ao executar uma aplicao, o processo zygote cria uma instncia da MV Dalvik para executla. E cada aplicao roda com um user ID diferente. Como vemos na coluna USER da listagem de
processos da Figura 7. Isso protege os processos uns dos outros, e do sistema como um todo. Isso
permite limitar o acesso aos arquivos do sistema e aos recursos do dispositivo atravs de permisses
de usurio.
13
Sistemas de Computao
3.5
O processo de boot
3.5
O processo de boot
O kernel do Linux executa o processo init, que faz as configuraes bsicas do sistema operacional Android e inicia outros processos e servios, incluindo o zygote, que responsvel por inicializar
a MV Dalvik e todos os processos e servios Java.
Normalmente a CPU possui um cdigo de boot residente em ROM (bootloader de primeiro nvel), responsvel por carregar um bootloader de segundo nvel para a memria. Este bootloader pode
ainda carregar um outro bootloader de terceiro nvel antes de iniciar o kernel do Linux. Na beagleboard, podemos ver o que acontece na Figura 8.
1. O bootloader de primeiro estgio, residente em ROM, procura por imagens de boot em diversos dispositivos de armazenamento e carrega para a SRAM (limite de 64KB). Neste caso
encontrar o XLoader na flash NAND ;
14
Sistemas de Computao
3.5
O processo de boot
15
Sistemas de Computao
3.5.1
3.5
O processo de boot
O init
Como j mencionado anteriomente, o Android implementa seu prprio mecanismo de inicializao dos processos bsicos do sistema.
A implementao do init encontrase nos cdigos fontes do Android disponvel em system/core/init/init.c. Este processo faz algumas inicializaes de sistema operacional, como por
exemplo: criar diretrios e pontos de montagem bsicos do Linux como o /proc, o /sys e o /dev;
inicializar o sistema de log e abrir o console.
Uma tarefa importante deste processo o tratamento de um arquivo de configurao chamado
init.rc. Este arquivo tem objetivos parecidos com o /etc/inittab do mecanismo de inicializao
System V.
no init.rc que esta configurada boa parte do restante da inicializao do sistema, incluindo a
execuo dos servios bsicos do Android, dentre eles:
Console: Inicia o shell ash ;
ServiceManager: Inicia o binder (responsvel pela comunicao entre os processos);
Vold: Volume daemon controla a montagem de volumes de mdia no sistema de arquivos;
Adbd: Android debugger bridge daemon servidor para comunicao com o cliente adb ;
Media: Inicia os servidores multimdia (udio, vdeo, etc);
Bootsound: Executa um arquivo de udio no boot, lendo um arquivo em
/system/media/audio/ui/boot.mp3;
Installd: Servidor de instalao de pacotes/aplicaes *.apk.
Depois de interpretar este arquivo, o init entra em um loop infinito monitorando a ocorrncia de
eventos e a execuo de processos.
Pode-se, por exemplo, configurar o init.rc para que um processo seja iniciado quando conectado um pendrive na porta USB, (o init monitora a criao do device node em /dev quando um
dispositivo USB for conectado). [11]
16
Sistemas de Computao
3.5.2
O Zygote
O zygote o pai dos processos Java. Todos os aplicativos desenvolvidos em Java criado por
este processo, que instancia uma MV Dalvik para executar um processo ou servio Java.
O zygote tem basicamente dois objetivos principais:
1. Prover uma infraestrutura para a execuo de aplicaes Java. Primeiramente, inicia a mquina
virtual Dalvik. Em seguida, executa um servidor que abre um socket que aguarda requisies
para execuo de aplicaes Java. Qualquer requisio de execuo de aplicaes Java passa
por esse servidor, que faz um fork para executar a aplicao em uma outra instncia da mquina
virtual. O cdigofonte deste servidor esta disponvel em
frameworks/base/core/java/com/android/internal/os/ZygoteConnection.java;
2. Iniciar o System Server, que gerencia a base dos servios do sistema operacional Android [11].
3.5.3
System server
kernel 2.6.x e utiliza o gerenciamentode memria baseado em tal. Todas as operaes bsicas do
Universidade Federal Fluminense
17
Sistemas de Computao
4.1
Android runtime
sistema operacional em nveis mais baixos, como o I/O, gerenciamento de memria, e assim por
diante, so tratados pelo kernel do Linux. Sendo assim o sistema se utiliza da biblioteca padro do C,
que acompanha o Linux h anos.
4.1
Android runtime
4.2
18
Sistemas de Computao
4.2.1
4.2
19
Sistemas de Computao
4.3
Memria Virtual
4.3
Memria Virtual
Memria virtual, uma tcnica que usa a memria principal como uma cache para armazenamento secundrio. Houve duas motivaes principais: permitir o compartilhamento seguro e eficiente da memria entre vrios programas e remover os transtornos de programao de uma quantidade
pequena e limitada na memria principal. A memria virtual consiste em recursos de hardware e
software com trs funes bsicas:
Realocao: Que assegura que cada processo (aplicao) tenha o seu prprio espao de endereamento, comeando em zero;
Proteo: Impede que um processo utilize um endereo de memria que no lhe pertena;
Paginao (paging) ou troca (swapping): Que possibilita a uma aplicao utilizar mais memria do que a fisicamente existente.
Simplificadamente, um usurio ou programador v um espao de endereamento virtual, que pode
ser igual, maior ou menor que a memria fsica [9].
Como foi dito anteriormente, o gerenciamento de memria em baixo nvel do Android feito pelo
Linux Kernel 2.6. A descrio da memria virtual feita portanto no Linux atravs de segmentao
e paginao. Faremos uma breve descrio de ambos a seguir.
20
Sistemas de Computao
4.3.1
4.3
Memria Virtual
Segmentao
Paginao
Somente com a segmentao teramos blocos de memria contnuos para cada processo. Isso
sobrecarregaria a memria, copiando a imagem de um processo todo de uma vez. Caso no haja
um espao de memria suficiente para alocar todo o processo, ou seja, no h um segmento que o
comportasse e haver falha por falta de segmento (segmentation fault). Para resolver tal problema
usada a paginao, onde a memria dividida em pedaos de tamanho fixo (pginas), e segmentos de
cdigo so alocados nestes e mapeados utilizando-se uma tabela de pginas, ao invs de alocao de
todo cdigo de uma nica vez.
No Linux a paginao feita em 3 nveis, ou seja, so usadas 3 tabelas para mapear a memria, a
Page Directory, Page Middle Directory e Page Table. O campo directory field usado como ndice
para o diretrio global, que existe para cada processo. O valor achado nessa posio um ponteiro
para a page middle table, que novamente indexada e contm um ponteiro que indica para o endereo
virtual de memria. Isso pode ser visto na Figura 10. Alm disso, para aumentar o desempenho do
sistema mantido um buffer com os ltimos endereos acessados, para que no haja necessidade
de fazer mltiplos acessos as pginas. Este buffer chamado de TLB (Translation Lookaside Buffer). Logo antes de realizar a procura do endereo utilizando as tabelas de pgina o sistema busca a
traduo direta do endereo no TLB. importante que a TLB se mantenha atualizada com relao
Universidade Federal Fluminense
21
Sistemas de Computao
4.4
Substituio de pginas
4.4
22
Sistemas de Computao
4.5
Escalonamento de CPU
4.5
Escalonamento de CPU
O problema bsico de escalonamento em sistemas operacionais como satisfazer simultaneamente objetivos conflitantes: tempo de resposta rpido, bom throughput para processos em segundo
plano, evitar postergao indefinida, conciliar processos de alta prioridade com de baixa prioridade,
etc. O conjunto de regras utilizado para determinar como, quando e qual processo dever ser executado conhecido como poltica de escalonamento. Assim como no Linux, o sistema operacional
Android divide os seus processos em trs grandes classe: processos interativos, processos batch e
processos tempo real. Em cada classe, os processos podem ser ainda subdivididos em I/O bound ou
CPU bound de acordo com a proporo de tempo que ficam esperando por operaes de entrada e
sada ou utilizando o processador. O escalonador do Android no distingue processos interativos de
processos batch, diferenciando-os apenas dos processos em tempo real. O escalonador do sistema
Universidade Federal Fluminense
23
Sistemas de Computao
Desenvolvimento no Android
4.6 Deadlocks
4.6
Deadlocks
Um deadlock caracterizado por uma situao em que ocorre um impasse entre dois ou mais
processos que ficam impedidos de continuar suas execues, ou seja, ficam bloqueados. O deadlock
ocorre com um conjunto de processos e recursos no-preemptveis, onde um ou mais processos desse
conjunto est aguardando a liberao de um recurso por um outro processo que, por sua vez, aguarda
a liberao de outro recurso alocado ou dependente do primeiro processo [15].
Assim como no Linux, no Android no feito tratamento de deadlocks. O sistema parte do
princpio de que eles no viro a ocorrer.
Desenvolvimento no Android
Existem diversas ferramentas para auxiliar no desenvolvimento de aplicativos para o sistema An-
droid. A mais completa o kit de desenvolvimento Android SDK, que contm um ambiente com as
caractersticas e especificaes do Android. Dentre as vantagens no desenvolvimento Android, esto
as APIs (Application Programming Interface) com diversas funcionalidades provendo os servios do
24
Sistemas de Computao
Desenvolvimento no Android
sistema.
As APIs estabelecidas para o Android permitem total modificao por meio de programao do
seu contedo. Porm, programas que no precisa envolver-se em detalhes da implementao do software podem apenas utilizar os servios, se a preocupao de como funciona, utilizando apenas as
caractersticas menos evidentes ao usurio padro. Um ponto forte das APIs bsicas do Android a
otimizao que estas possuem, focando a utilidade dos pacotes, em conjunto com um bom aproveitamento, deixando de fora pacotes pesados e pouco evoludos. Atravs destas, pode ser criada toda a
interface com o usurio, permitindo a criao de telas, acessar arquivos, criptografar dados, ou seja,
utilizar a funcionalidade definida pelo utilizador.
Entre as principais APIs podemos destacar:
Location Manager (android.maps): Usada para obter a posio geogrfica do usurio. Como
por exemplo, em aplicaes que fazem uso de GPS ;
Telephony Manager (android.telephony): Informaes sobre dispositivos como bateria e servios de telefonia celular podem ser obtidos atravs dessa API ;
Window Manager (android.view): Responsvel pelo gerenciamento de toda janela de uma
aplicao, principais funes e componentes de inteface grfica;
Content Providers (android.provider): Responsvel pela disponibilizao dos dados atravs
das aplicaes tornando esses dados pblicos. Quase todo tipo de dado compartilhvel, como
udio, vdeo, imagens e texto;
Resource Manager (android.util): Todos os recursos que uma aplicao ir usar como udio,
vdeo, arquivos XML, so separados dela a fim de que sejam otimizados para ocupar menos
espao e demorar menos tempo para que sejam carregados. Essa API facilita o acesso a esses
recursos;
Notification Manager: Permite que uma aplicao exiba notificaes, ative LEDs, luzes, sons
ou vibrao disponveis no dispositivo;
Activity Manager: Responsvel pelo gerenciamento de cada atividade do sistema. No Android
cada atividade gerenciada atravs de uma pilha de atividades. Toda nova atividade criada
25
Sistemas de Computao
Consideraes finais
5.1
Android.os
vai para o topo de pilha de atividades e se torna uma running activity, significando que ser
executada;
Webkit (android.webkit): Inclui APIs para contedo web, bem como um navegador embutido
para utilizao geral;
android.app: APIs de Alto nvel referentes ao modelo da aplicao;
android.widget: Contm widgets prontos (botes, listas, grades, etc) para serem utilizados nas
aplicaes;
android.database: Contm as APIs para comunicao com o banco de dados SQLite;
android.os: Contm servios referentes ao sistema operacional, passagem de parmetros e
comunicao entre processos.
5.1
Android.os
A API Android.os prov os servios bsicos e essenciais do sistema operacional, alm de servios
de troca de mensagens e a comunicao entre processos. As funes da API podem ser observadas
no Apndice A.
Consideraes finais
No decorrer desse trabalho foram destacadas as principais caractersticas do sistema operacio-
nal Android dando nfase ao bom momento em que se encontra o mercado atual dos dispositivos
mveis. Com um evidente crescimento no desenvolvimento de dispositivos mveis, o desenvolvimento de aplicativos para smartphones se torna um grande nicho de mercado que vem crescendo
exponencialmente. O sistema operacional Android se tornou um atrativo para esse mercado vido
por tecnologia, principalmente pelo seu conceito de integrao e flexibilidade embutidos, fornecendo
total acesso aos programadores que desenvolvem aplicativos para essa plataforma.
26
Sistemas de Computao
27
Sistemas de Computao
28
Sistemas de Computao
Referncias
Referncias
Referncias
[1] Silberschatz, A.; Galvin, P.B.; Gagne, G. Fundamento de Sistemas Operacionais. 8 ed.,
LTC, 2010.
[2] Android.com Discover Android.
Disponvel em: http://www.android.com/about/
Acesso em 17 de maio de 2012.
[3] Businessweek.com Google Buys Android for Its Mobile Arsenal.
Disponvel em:
http://www.businessweek.com/technology/content/aug2005/tc20050817_0949_tc024.htm
Acesso em 11 de maio de 2012.
[4] Mobworld Memory Management in Android.
Disponvel em:
http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/
Acesso em 14 de maio de 2012.
[5] HowStuffWorks Como Funciona A Memria Virtual.
Disponvel em: http://informatica.hsw.uol.com.br/memoria-virtual.htm
Acesso em 18 de maio de 2012.
[6] Wikipdia Android.
Disponvel em: http://pt.wikipedia.org/wiki/Android
Acesso em 15 de maio de 2012.
[7] Wikipdia Sistema Operacional.
Disponvel em: http://pt.wikipedia.org/wiki/Sistema_operativo
Acesso em 15 de maio de 2012.
29
Sistemas de Computao
Referncias
Referncias
30
Sistemas de Computao
Referncias
Referncias
31
Sistemas de Computao