Escolar Documentos
Profissional Documentos
Cultura Documentos
Por que ?
AGENDA
Agenda
Onde encontrar o Android? Quem usa o Android? UI Layout, Menu, Alertas e Notificaes Atividades Armazenamento de Dados Provedores de Contedo Multimdia (udio e Vdeo) Servios Localizao e Mapas Servios Web, XML, Computao em nuvem Segurana e Permisses
Recursos e Assets
Celulares NetBook RIM BlackBerry PlayBook tablet Tablet PC Carros Smart TV Em resumo em quase todos os lugares
O QUE O ANDROID NO
Android vs IPhone Duas plataformas, 2 conceitos
O que Android no
Uma ferramenta para construir robs humanides
(pelo menos no por enquanto) Uma implementao de Java ME As aplicaes Android no so executadas na mquina virtual
Um elemento do Linux Phone Standard Forum (LiPS) ou do Open Mobile Alliance (OMA)
Assim como no Linux, o Android executa um kernel de cdigo aberto, e vai alm das preocupaes de padronizao do LiPS e da OMA.
Um celular
Plataforma de Referncia para os fabricantes. No de UM s telefone Android mais DOS telefones Android.
11
Window Manager (Gerenciador de Janelas) Location Manager (Gerenciador de geo-localizao) Content Manager (Gerenciador de contedo)
SDK ANDROID
Com a caixa de ferramentas possvel criar aplicativos que sero includos no telefone, como aplicaes nativas do Android. A VM Dalvik no uma JVM, tal como Java ME. Facilidade para escrever aplicaes em C# e C++ para Dalvik.
13
O SDK Android
14
O SDK Android
Sem custos de licena (desenvolvimento, distribuio) Nenhum processo de aprovao de aplicativos de terceiros O acesso direto ao hardware
Wi-Fi, redes GSM, EDGE, e 3G SMS
APIs completas para servios de localizao, como o GPS. Controle total de equipamentos de multimdia
Leitura e gravao de vdeo e udio Acelermetro Bssola
Controle de sensores
Motor grfico
15
16
Linux
Ambiente de Desenvolvimento
SDK Android (http://developer.android.com/sdk/index.html) JDK5 ou 6 (http://sun.java.com/javase/downloads/index.jsp) Eclipse 3.4 ou 3.5 (Galileo de preferncia) O plugin Eclipse ADT (Android Developer Tool)
Declarando um layout
Duas maneiras de declarar um Layout
Opo #1: Declare os elementos da interface do usurio em um arquivo XML (fcil de organizar, visualizar, etc...). Altamente Recomendado
O Android fornece um vocabulrio bastante simplificado de elementos XML correspondentes s classes e subclasses do tipo View.
Opo #2: Instanciar os elementos do layout em tempo de execuo (no cdigo Java)
O aplicativo pode gerar objetos do tipo View (Viso) ou ViewGroup (Grupo de vises) e, assim, manipular suas propriedades por programao no cdigo Java.
19
20
Tipos de Layout
Todos os tipos de layout so subclasses da classe ViewGroup
LinearLayout
Alinha ou empilha todos os elementos filhos em uma direo (horizontal ou vertical). A distncia entre os elementos respeita a gravidade (alinhado direita, centro ou esquerda).
RelativeLayout
Cada elemento filho pode ter a sua prpria posio em relao ao pai ou outros elementos filhos. Se, por exemplo, o primeiro elemento filho est centralizado, em seguida, todos os outros elementos cujas posies no foram especificados sero alinhados ao centro tambm.
TableLayout
22
Os elementos filho so posicionados em linhas (TableRow) e colunas. Cada linha pode ter zero ou mais clulas.
Tipos de Layout
FrameLayout
FrameLayout o mais simples dos objetos tipo layout. apenas um espao vazio na tela onde voc pode preencher com um nico objeto. Ex: uma imagem de fundo. Todos os elementos filhos so automaticamente colocados no topo esquerdo da tela.
23
24
26
/* Cria os tens de menu sem icones */ public boolean onCreateOptionsMenu(Menu menu) { // O mtodo add() usado neste exemplo pede quatro argumentos: // groupId, itemId, order, e title. menu.add(0, MENU_NEW_GAME, 0, "Novo jogo"); menu.add(0, MENU_QUIT, 0, "sair"); return true; }
27
AlertDialog ProgressDialog
30
Uma Toast notification uma mensagem que aparece logo em primeiro plano na tela. comparvel a um mini pop-up. No requer nenhuma ao do usurio. Eventualmente clicar e desaparece gradualmente.
33
Toast.makeText( getApplicationContext(), // Contexto R.string.toast_message, // Obter o texto a exibir Toast.LENGTH_LONG).show(); //Exibir a mensagem show()
34
35
O que uma atividade ? Declarao de Atividade no arquivo de manifesto Atividade e Aplicao O ciclo de vida de uma Atividade
ACTIVITY
36
Activity (O que ?)
Activity (atividade) representa uma tela (semelhante a Form) pode apresentar um pedido para o usurio. Para aplicaes mais complexas, havero, portanto, Activities. Ex: Uma aplicao para o envio de SMS apresentar:
Atividade de uma lista de contatos Atividade para escrever uma mensagem Uma Atividade para listar as mensagens antigas, etc.
No caso de vrias atividades, uma delas ser marcada para ser apresentada primeiro para o usurio ao iniciar o aplicativo.
37
40
APLICAO E RECURSOS
O que so recursos? Externalizao de recursos Padro vs. Recursos alternativos Onde colocar os meus recursos ?
41
42
Recursos (Externalizao)
Permite manter os recursos fora do cdigo Java. Permite fornecer recursos alternativos de acordo com o usurio ou equipamentos utilizados:
Gesto de mltiplos idiomas Gesto de diferentes tamanhos de tela
Para todos os tipos de recursos, possvel especificar um padro e diversas alternativas para a mesma aplicao.
Os recursos alternativos sero utilizados independentemente da configurao do aparelho, ou quando no houver recursos alternativos para uma determinada configurao. Os recursos alternativos sero utilizados para casos especficos e predeterminados..
Duas configuraes utilizando os recursos padro Duas configuraes das quais uma utiliza os recursos alternativos
Recursos (Alternativa)
44
Resources (res/)
Cada tipo de recurso deve ser colocado em uma subpasta da pasta res Ex :
Meuprojeto/ src/ MinhaAtividade.java res/ drawable/ icon.png layout/ main.xml info.xml values/ strings.xml
45
Sistema de armazenamento de dados Preferncias (SharedPreferences) Armazenamento interno Armazenamento externo Base de dados
ARMAZENAMENTO DE DADOS
46
Dados (Preferncias)
Dados primitivos so guardados no formato de chave=valor. A classe SharedPreferences fornece ferramentas para armazenar e recuperar informaes no formato chave=valor. Podemos usar a classe SharedPreferences para armazenar dados de tipo primitivo, exemplo:
boolean, float, int, long e string
Os dados so persistidos atravs das sesses de usurio, e ficam disponveis mesmo com o aplicativo fechado.
48
49
50
Arquivos armazenados dessa forma so acessveis a todos (hardware, software, utilitrios) e podem ser modificados pelo usurio, por exemplo, durante a transferncia para seu computador.
Todos os bancos criados e armazenados sero acessveis a todas as aplicaes (mas no fora da aplicao).
51
============================================================ SQLiteDatabase myDB = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null); // Insere uma nova linha na base de dados. ContentValues newRow = new ContentValues(); newRow.put("country_name", "Brasil"); newRow.put("capital_city", "Braslia"); myDB.insert(DATABASE_TABLE_NAME, null, newRow);
52
Plataforma Android para udio e vdeo Reproduo de udio e vdeo Formatos de mdias suportados
MDIA(UDIO E VDEO)
53
Vdeo
H.263, H.264 AVC, MPEG-4 SP
56
Servios (O que ?)
Algumas aplicaes precisam continuar executando em segundo plano, sem a interveno do usurio. Estes processos de fundo continuam funcionando mesmo quando o telefone est ocupado com outras tarefas ou atividades.
58
Servios Remotos
So acessveis a outras aplicaes Disponveis a outras aplicaes por meio do AIDL (Android Interface Definition Language).
59
Servios de geolocalizao Simulao dos dados de geolocalizao Google Maps (biblioteca externa)
GEOLOCALIZAO E MAPAS
60
Geolocalizao e Mapas
(Servios)
As principais tcnicas utilizadas pelo Android para determinar a posio atual de um dispositivo so as seguintes:
Location Manager : Fornecimento de ganchos (pontos de entrada) aos servios de geolocalizao com os objetivos de:
Obter sua posio atual Monitorar movimentos durante um perodo determinado Salvar ou excluir os dados de localizao periodicamente atravs do LocationProvider Executar alertas de proximidade ao se aproximar de uma zona especfica
61
Location Providers : Cada Fornecedor de Posio representa uma tecnologia de localizao da posio do aparelho.
Geolocalizao e Mapas
posio)
(Simulando uma
Utilizar o DDMS (Dalvik Debug Monitor Service) do Eclipse na perspectiva DDMS para :
Enviar manualmente os dados de localizao (longitude/latitude) do LocationProvider
Utilizar um arquivo GPX (GPS Exchange Format) que descreve a rota simular. GPX um arquivo XML responsvel pela comunicao dos dados GPS Utilizar o arquivo KLM que descreve os pontos de referncia para a sequncia de leitura. Utilizar GEO em linha de comando. Acessvel atravs do console emulador do Android, que permite a simulao de posies.
62
Geolocalizao e Mapas
(Google Map)
Baseado na classe : com.google.android.maps.MapView Permite adicionar os recursos oferecidos pelo Google Maps diretamente em sua aplicao. Exibe um mapa com os dados obtidos a partir do Google Maps. Controle do Zoom (controles de toques na tela) Fornece todos os elementos de interface grfica necessrios ao usurio para controle dos mapas. Cadastro de aceitao de uso (licena) , necessria para utilizao dos do Google Maps.
63
64
Response Formats
XML JSON RSS, Atom
XML Parsing
SAX DOM Pull-parser
65
67
SEGURANA E PERMISSES
68
Segurana e permisses
O padro nenhum aplicativo autorizado a executar operaes que tero efeito negativo sobre outras aplicaes, ou sistema operacional, ou alterar a experincia do usurio. Cada aplicativo executado em um processo exclusivo para ele e fechado.
Ele no pode interferir com outras aplicaes, a menos que seja expressamente autorizada a utilizar os recursos no previstos por padro. EX : Gerenciar SMS
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission.RECEIVE_SMS" /> </manifest>
69
Tradutores
A traduo deste material foi realizada de forma colaborativa e voluntria pela equipe do DFJUG www.dfjug.org, em Maio de 2011. Daniel deOliveira Daniel Wield Francisco Marcio da Silva Kete Martins Rufino Marcos Aires Natali Silverio Patrick Nascimento Silvani Neri
70
Renncia Legal
Partes desta apresentao so modificaes baseadas nos trabalhos compartilhados por: Projeto de Cdigo Aberto Android
> http://code.google.com/policies.html
Reto Meier autor do livro Android 2 Foram usados de acordo com os termos descritos na licena Creative Commons 2.5 > http://creativecommons.org/licenses/by/2.5/