Escolar Documentos
Profissional Documentos
Cultura Documentos
Android
Android
Markus Endler
Android
Iniciativa da Google de prover uma plataforma aberta para Web mvel
Set./08: lanado G1
Primeiro dispositivo para plataforma Android
2
O que Android?
Pilha de softwares para dispositivos mveis:
Um sistema operacional Um middleware Conjunto de aplicaes
Android SDK:
Projetos Ferramentas de desenvolvimento Emulador Conjunto de bibliotecas
Linguagem de programao:
Java
Mquina virtual:
Dalvik (Kernel GNU/Linux)
3
Android Definio
Caractersticas
Application Framewok:
Permite o reuso e a substituio de componentes
Um navegador integrado:
Baseado no projeto WebKit (cdigo aberto)
Grficos otimizados:
Bibliotecas grficas 2D Grficos 3D baseado na especificao OpenGL 1.0
SQLite:
Para armazenamento de dados estruturados
4
Android Caractersticas
Caractersticas
Questes dependentes do hardware:
Telefonia T l f i GPRS/GSM e EDGE Telefonia 3G WiFi Cmera GPS Bssola Acelermetro
5
Android Caractersticas
Arquitetura
Markus Endler
Aplicaes
7
Android Arquitetura Aplicaes
Framework
8
Android Arquitetura Framework
Bibliotecas
Andrid inclui um conjunto de bibliotecas C/C++ usadas por diversos componentes do sistema: System C Library Media Libraries Surface Manager LibWebCore SGL 3D Libraries FreeType SQLite
9
Android Arquitetura Bibliotecas
Bibliotecas
System C library uma implementao derivada da biblioteca C padro sistema (libc) do BSD adaptada para dispositivos rodando Linux. Media Libraries baseado no PacketVideos OpenCORE; as bibliotecas suportam os mais populares formatos de audio e video, bem como imagens estticas. Surface Manager acesso ao subsistema de exibio bem como as mltiplas camadas de aplicaes 2D e 3D; LibWebCore um web browser engine utilizado no Android Browser SGL o engine de grficos 2D 3D libraries uma implementao baseada no OpenGL 1.0; as bibliotecas utilizam acelerao 3D via hardware (quando disponvel) ou o software d renderizao 3D altamente otimizado i l d no A d id ft de d i lt t ti i d includo Android. FreeType renderizao de fontes bitmap e vector SQLite um poderoso e leve engine de banco de dados relacional disponvel para todas as aplicaes
Markus Endler
Android Runtime
Aplicao Android:
um processo Linux Possui sua prpria instncia da mquina virtual Dalvik
11
Android Arquitetura Android Runtime
Linux Kernel
Verso do kernel: 2.6 O kernel atua como uma camada de abstrao entre o hardware e o resto da pilha de software
Servios:
Segurana Gerenciamento de memria Gerenciamento de processos Pilha de protocolos de rede Modelo de drives
12
Android Arquitetura Linux Kernel
Markus Endler
Android Manifest
AndroidManifest.xml necessrio p/ cada aplicao. Descreve os elementos da aplicao: (Activities, Content Providers, Services, and Intent Receivers) globalmente visveis, as classes de implementao de cada componente, e qual tipo de dado este pode tratar, quando pode ser ativado, etc. Compara-se cada Intent gerado com os Intentfilters registrados para identificar qual a atividade mais apropriada p p p para tratar este intent Pode-se tambm descrever as permisses e parmetros de instrumentao
Markus Endler
Tipos de Elementos
Activity = uma tela de sua aplicao; cada uma uma especializao da classe base Activity. Sua classe ser composta de views que respondem a eventos; uma atividade pode retornar um valor para outra atividade; Intent = classe usada para passar o controle de uma atividade para outra; um intent consiste de uma ao (evento/requisio) e uma URI indicando um dado sobre o qual a ao deve ser executada. Valores comuns para aes: MAIN ( t d d aplicao), (entrada da li ) VIEW, PICK, EDIT, etc. Exemplo: para visualizar informao de contato criase um intent com aoVIEW e a URI indicando os dados associados a uma pessoa.
Markus Endler
Tipos de Elementos
IntentFilter = desrio de quais intents uma Activity (ou BroadcastReceiver) capaz d t t e so B d tR i ) de tratar publicados no arquivo AndroidManifest.xml Exemplo: Uma Activity capaz de mostrar dados de uma pessoa iria publicar um IntentFilter com a capacidade VIEW para determinados dados; Obs: Activities com IntentFilters equivalentes podem ser trocadas a qualquer instante
Markus Endler
Tipos de Elementos
BroadcastReceiver deve ser usado quando a aplicao deve reagir a eventos externos aplicao (e.g. ligao telefnica, timer, rede wifi dispon el etc ) telefnica timer ifi disponvel, etc.) BroadcastReceivers so definidos no AndroidManifest.xml, ou so registrados usando mtodo Context.registerReceiver(). Obs: A aplicao no precisa estar executando; o sistema vai inci-la quando o BroadcastReceiver disparado di d Aplicaes tambm podem enviar seus IntentBroadcasts para outras aplicaes
Markus Endler
Tipos de Elementos
Servio = uma thread (processo) executando em background, independentemente de uma Interface do usurio (p.ex. tocar msicas de uma playlist) Activities (para escolha do album) podem se conectar a um servio usando Context.bindService() para inicia-lo (se j no executa) .Uma vez conectado, pode-se interagir com ele atravs da interface exportada pelo mesmo (p.ex. p/ pause) ContentProvider = uma classe usada para q aplicaes p que p compartilhem dados entre s ; implementa um conjunto de mtodos padro para armazenar e recuperar dados de um determinado tipo; Obs: aplicaes tambm podem interagir atravs de um banco de dados SQL ou de arquivos
Markus Endler
Aplicao Android
Obs: Cada Activity representa uma tela
GUI Commands & Display y
Intent Intent Fiter
Act1 Act2
BcastReceiver
Act3 Act4
Content Provider
Act1 Act2
Act3
CntxtBindService
Manifest
IntentBcast
Manifest
Content Provider
put/ get
Service A
Memory
Instalao do SDK
Aps realizar o download do SDK, descompactar o arquivo .zip zip
Por exemplo, android_sdk_windows_m3-rc22a.zip
20
Data Funneling Fases
21