POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao Java
Android
1. Universidade Federal de Sergipe
Centro de Ciências Exatas e Tecnologia
Departamento de Computação
Android
Felipe J. R. Vieira
2. Índice
● O que é
● Histórico
● Características
● Arquitetura
● Desenvolvimento
● Referências
3. O que é
É uma pilha de software para dispositivos móveis
que inclui um sistema operacional, middleware e
aplicações chaves.
4. Histórico
● Em julho de 2005 o Google
adquire a Android Inc.
● Criação da Open Handset Alliance
● Primeiro aparelho lançado 2º
semestre de 2008
● Avaliado como código aberto pela
licença Apache
5. Características
● Framework de aplicações
● Máquina virtual Dalvik
● Navegador Integrado
● Otimizador gráfico
● SQLite
● Suporte a formatos de mídia
● Telefonia GSM
● Bluetooth, EDGE, 3G e WiFi
● Camera, GPS, bússola e acelerômetro
● Rico ambiente de desenvolvimento
7. Arquitetura
Aplicativos
● Existe um conjunto de aplicativos inclusas: cliente de
email, programa de SMS, calendário, mapas,
navegador, agenda, entre outros.
● Todos os aplicativos são desenvolvidos em Java.
8. Arquitetura
Framework de Aplicações
● Projetada para simplificar o reuso de componentes
● Um rico e extensível conjunto de componentes
visuais
● Content Providers que possibilita o acesso ou
compartilhamento de dados.
● Resource Manager prover acesso a arquivos
externos usados no código
9. Arquitetura
Framework de Aplicações
● Notification Manager habilita todos os aplicativos a
mostrar alertas na barra de status
● Activity Manager, administra o ciclo de vida dos
aplicativos.
10. Arquitetura
Bibliotecas
O Android inclui um conjunto de bibliotecas C/C++
usadas por vários componentes do sistema.
● System C Library
● Media Libraries
● Surface Manager
● LibWebCore
● SGL
● 3D Libraries
● Free Type
● SQLite
11. Arquitetura
Máquina Virtual Android
● Inclui um conjunto de bibliotecas que prover muitas
funcionalidades disponíveis para o Java
● Cada aplicativo roda em seu próprio processo, em
uma instância da máquina virtual
● O formato dos executáveis são projetados para
otimizar a utilização de memória.
12. Arquitetura
Kernel Linux
● O Android roda em cima da versão 2.6 do Linux
● O kernel serve como abstração entre o hardware e o
resto da pilha de software.
14. Desenvolvimento
SDK
● Versão atual 1.5 release 3
● Suporte à Windows, Mac e Linux
● Aproximadamente 180 MB
● Plugin para desenvolvimento no Eclipse
16. Desenvolvimento
Android Virtual Device
[2009-09-04 08:53:59 - android] Android Launch!
[2009-09-04 08:53:59 - android] adb is running normally.
[2009-09-04 08:53:59 - android] Performing
br.com.felipejrvieira.android.helloworld activity launch
[2009-09-04 08:53:59 - android] Automatic Target Mode: launching new emulator with
compatible AVD 'AVD'
[2009-09-04 08:53:59 - android] Launching a new emulator with Virtual Device 'AVD'
[2009-09-04 08:54:00 - android] New emulator found: emulator-5554
[2009-09-04 08:54:00 - android] Waiting for HOME ('android.process.acore') to be
launched...
[2009-09-04 09:00:58 - android] HOME is up on device 'emulator-5554'
[2009-09-04 09:00:58 - android] Uploading android.apk onto device 'emulator-5554'
[2009-09-04 09:01:00 - android] Installing android.apk...
[2009-09-04 09:03:36 - android] Success!
[2009-09-04 09:03:37 - android] Starting activity
br.com.felipejrvieira.android.helloworld on device
[2009-09-04 09:04:32 - android] ActivityManager: Starting: Intent
{ comp={br.com.felipejrvieira.android/br.com.felipejrvieira.android.helloworld} }
17. Desenvolvimento
Exemplo de Código
package br.com.felipejrvieira.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class helloworld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Bom dia pessoal!");
setContentView(tv);
}
}
19. Desenvolvimento
/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello, Android! I am a string resource!</string>
<string name="app_name">Hello, Android</string>
</resources>