Android * uma visão informal

Propaganda
Android – uma visão informal
José Antonio Borges - 2014
Inst. Tércio Pacitti da UFRJ
O Android é um sistema operacional baseado no kernel
do Linux, destinado originalmente a dispositivos
móveis.
• Dá suporte a muitos dispositivos
• Biblioteca de interface de usuário rica, suporta
gráficos 2-D e 3-D usando os OpenGL ES (OpenGL)
• Dá acesso ao sistema de arquivos do Linux
• Vem com banco de dados SQLite embutido.
• Grande suporte a dispositivos de hardware (GPS,
sensores, acelerômetro, áudio/vídeo, etc.)
• Teoricamente, código aberto
No Android a reutilização de outros componentes
de aplicação é um conceito muito comum,
conhecido como task (tarefa). Um aplicativo pode
acessar outros componentes do Android para
realizar uma tarefa, mesmo se este componente
não fizer parte desta aplicação.
• Programação em Java
– Mas as bibliotecas são totalmente diferentes do
padrão de Java
• Classes em Java são compiladas para dex
(Dalvik Virtual Machine)  não é Java
bytecode
– Just in time compiler on Dalvik
– Android RunTime (ART)  tendência
Classificação geral dos programas:
Applications
(interativas,
visuais, em tempo
real)
Broadcast receivers
(Registrados no Android para
atender a mensagens do
sistema e pedidos das
aplicações  intents)
Services
(tarefas longas,
não visuais, em
background)
Content providers
(usados para organizar,
armazenar e compartilhar
dados entre aplicações)
Estrutura conceitual do Android
• O kernel do Linux, as bibliotecas e o runtime são
encapsuladas na estrutura do aplicativo. O desenvolvedor
do aplicativo Android normalmente trabalha com as duas
camadas de cima para criar novos aplicativos Android.
Framework: altamente burocratizado, acessado
através de “gerentes”
•
•
•
•
•
•
•
•
•
•
•
•
•
•
AccessibilityManager
AccountManager
AlarmManager
AppWidgetManager
AppWidgetManager
AudioManager
BackupManager
BatteryManager
FragmentManager
GlowManager
InputMethodManager
KeyguardManager
LoaderManager
LocationManager
•
•
•
•
•
•
•
•
•
•
•
•
•
NotificationManager
PackageManager
PowerManager
PreferenceManager
RingtoneManager
SearchManager
SensorManager
ServiceManager
SupportFragmentManager
SyncManager
TelephonyManager
WaveManager
WindowManager
Quase tudo tem que ser requisitado através destes gerentes, solicitados em tempo de
execução.
A programação não é tão simples...
Telefones fazem muitas coisas ao mesmo tempo, e elas
não se podem interferir, por exemplo...
• Programa tem que se preocupar com o estado do
telefone:
– p.ex.: parar de executar quando a tela está desligada ou se
alguma chamada telefônica em curso.
– Android provê callbacks para que se saiba quando ocorrem
mudanças de estado  ciclo de vida.
• Proteção é pequena quanto ao monopólio da CPU.
– Os programas têm que ser “bem educados”.
– Usar um pouquinho e retornar.
– Tarefas grandes: threads em background
Proteção:
• Os aplicativos do Android são isolados de outros
aplicativos em execução.
• Se os dados precisarem ser compartilhados, o
aplicativo deve fazer isso de forma explícita através
de um componente Android que trata da partilha dos
dados: um serviço ou de um provedor de conteúdo.
Permissões são tratadas com cuidado:
• Programas indicam explicitamente o que vão usar ou
atender  AndroidManifest.xml
• O Android pode deixar automaticamente ou pode
pedir autorização ao usuário.
Ferramentas de desenvolvimento
• Android SDK
• Inclui emuladores
• Android NDK
• Android debug bridge (adb)
• Android Developer Tools (Eclipse)
– and Android Studio (Google)
http://developer.android.com/sdk/index.html
Ambiente de desenvolvimento gratuito, pré-configurado
•
•
•
•
•
Eclipse + ADT plugin
Android SDK Tools
Plataforma Android-tools
A plataforma Android mais recente
A imagem do sistema mais recente do Android para o
emulador
Instalação Stand-alone do ADT (CD distribuído)
Extraia o arquivo zip e inicie o Android Developer Tools
(Eclipse), que está localizados na pasta eclipse.
Clique duplo em eclipse.exe ou crie atalho no desktop
Usando o Assistente
(wizard) para
criar um projeto
File → New →
Other... → Android →
Android Application
Project
Interface com o usuário
Activity  base da
interface com o usuário
Views  componentes
visuais
LayoutManager  calcula
a posição das Views
A partir do 4.0, as Views
são colocadas em
fragmentos (sub-janelas
da activity) para permitir
reconfiguração mais fácil
de telas.
Organização do fonte
Mais
importantes
para
conhecer
logo.
Layout
Código Java (no estilo antigo, sem fragmentos)
AndroidManifest.xml
Para debugs e informação
Log.d (“tag”, “informação”);
ou Log.i, Log.e, Log.w
Mensagens popup simples
Toast.makeText(this, “Oi mamãe”, Toast.LENGTH_LONG).show();
(*) Toast precisa do contexto da aplicação: this
Referências de hoje
• vogella.com/tutorials/Android/article.html
• developer.android.com/sdk
Download