SlideShare a Scribd company logo
1 of 48
Download to read offline
Erisvaldo Gadelha Saraiva Júnior

Faculdade de Tecnologia de João Pessoa (FATEC-JP)
Especialização em Desenvolvimento para Dispositivos Móveis
Disciplina: Tecnologias para Dispositivos Móveis

Android (Parte 5)
                               E-mail: erisvaldojunior@gmail.com
                                  Site: http://erisvaldojunior.com
                                        Twitter: @erisvaldojunior
Roteiro da Aula


  ANDROID              GRÁFICOS E                 TENDÊNCIAS
    3.0                ANIMAÇÕES




 Introdução ao Android 3.0, UI avançada e Tendências do mundo mobile
ANDROID 3.0



        Visão geral e recursos do Android 3.0
Novos recursos para o Usuário
Novidades do Android 3.0    Nova interface, otimizada para os tablets



                           • System Bar
                           • Action Bar
                           • 5 Homes Customizáveis
                           • Aplicações recentes
Novos recursos para o Usuário
Novidades do Android 3.0

                           • Novo Teclado
                           • Manipulação de Textos
                           • Mais conectividade
                           • Aplicações-chave melhores
Novos recursos para o Usuário
Novidades do Android 3.0   Aplicações-chave foram aperfeiçoadas
Novos recursos para o Desenvolvedor
                            Novo framework de UI, refinado para tablets

                           • Activity Fragments
Novidades do Android 3.0

                           • Widgets remodelados
                           • Action Bar customizável
                           • Notificações mais ricas
                           • Seleção múltipla, clipboard
                           e recurso de drag-and-drop
Novos recursos para o Desenvolvedor

                           • Novo e flexível Framework de animação
Novidades do Android 3.0

                           • Aceleração gráfica 2D por hardware
                           • Renderscript (engine 3D)
                           • Suporte a múltiplos processadores
                           • HTTP Live streaming (M3U)
                           • Framework de DRM
                           • Transferência de arquivos de mídia (MTP/PTP)
                           • Mais opções de conectividade
                           • Segurança para ambientes corporativos
                           • Compatibilidade com aplicações existentes
Fragments
               Componente que permite a separação de elementos distintos de
               uma Activity em módulos com interfaces e ciclos de vida próprios.

                Pode-se combinar múltiplos fragmentos em uma única Activity para
                construir uma interface de vários painéis na qual cada painel
                gerencia seu próprio ciclo de vida e entradas do usuário.

                • Fragments podem ser reusados em múltiplas Activitys;

                • Pode-se adicionar, remover, substituir
API Level 11




                                                                    e   animar
                Fragments dentro de uma Activity;

                • Por meio de layouts alternativos, pode-se combinar
                Fragments baseado no tamanho e orientação da tela;

                • Fragments tem acesso direto a sua Activity e pode
                acessar a Action Bar da Activity.
Loaders
               Permitem, de maneira assíncrona, facilmente carregar dados em
               um Activity ou Fragment.



                • Estão disponíveis em qualquer Activity ou Fragment;

                • Provêem carregamento assíncrono de dados;
API Level 11




                • Monitoram a fonte dos dados e entregam novos
                resultados a medida que o conteúdo muda;

                • Reconectam-se automaticamente ao último cursor do
                Loader quando são recriados após uma mudança de
                configuração. Assim, não necessitam reconsultar os dados.
Action Bar
               Substitui a barra de título na parte superior da Activity. Mostra o
               ícone da aplicação e provê uma nova interface para os itens do
               menu de opções. Além disso, permite ao desenvolvedor:

                • Adicionar itens de menu diretamente na Action Bar
                (Action Item);

                • Substituir um Action Item por um Widget, como uma
                caixa de pesquisa (Action View);
API Level 11




                • Adicionar uma ação para o ícone da aplicação bem como
                substituí-lo por um ícone personalizado;

                • Opções de navegação para os fragmentos da Activity;

                • Personalizar a Action Bar com temas e fundos.
System Clipboard
               Área de transferência entre aplicações (texto, endereços, intents)

               • Possibilita acesso a dados que o usuário deseja copiar por meio de um
               Content Provider. Dados complexos como imagens ou estruturas podem
               ser copiados de uma aplicação para outra;

               • Para   obter  o    Clipboard,   usa-se  o   seguinte        método:
               ClipboardManager.getSystemService(CLIPBOARD_SERVICE);

               • Dados são adicionados ao Clipboard por meio de um objeto da classe
API Level 11




               ClipData, que possui métodos como newPlainText(), newUri() e
               newIntent();

               • Através do método setPrimaryClip(), atribui-se um ClipData a um
               Clipboard. O conteúdo pode ser obtido através do getPrimaryClip();

               • O Clipboard armazena possui apenas um objeto ClipData mas esse
               objeto pode ser composto por vários itens (ClipData.Item).
Drag and Drop
               Dados podem ser transferidos de um lugar para outro


               • Traduzindo para o desenvolvedor: objetos ClipData podem ser movidos
               de uma View para outra;

               • Cada operação Drag and Drop é definida por um objeto DragEvent, com
               estados como ACTION_DRAG_STARTED, ACTION_DRAG_ENTERED e
               ACTION_DROP definindo seu ciclo de vida;
API Level 11




               • O método startDrag() pode ser chamado em uma View provendo um
               ClipData que representa a informação a ser transferida;

               • O método setOnDragListener() permite que a View registre um
               OnDragListener que permitirá a recepção de objetos Drag and Drop. O
               listener obriga a implementação do método onDrag().
Framework de Animação
               Novo e flexível framework de animação para objetos como
               Fragment, View e Drawable.



                • Pode-se definir duração, quantidade de repetições, taxa de
                atualização, atraso, etc;

                • Através da classe LayoutTransition é possível estabelecer animações
API Level 11




                automáticas para mudanças que foram realizadas no layout da Activity;

                • Para definir animações personalizadas, usa-se o método
                setAnimation() de LayoutTransition, passando-se um animador
                personalizado (objeto da classe ValueAnimator ou ObjectAnimator).
Framework estendido de UI
               Diversas novidades para o framework de interface gráfica


                • Seleção múltipla para ListView e GridView através do método
                setChoiceMode() e o modo CHOICE_MODE_MULTIPLE_MODAL, além
                de registrar-se um MultiChoiceModeListener;

                • Novas APIs para transformar Views 2D e 3D, através de métodos
                como setAlpha(), setPivotX(), setRotationX() e setScaleX();
API Level 11




                • Novos temas holográficos que são atribuídos como base padrão
                quando android:minSdkVersion ou android:targetSdkVersion estão
                setados para “11” no AndroidManifest.xml;

                • Novos widgets como AdapterViewAnimation, AdapterViewFlipper,
                CalendarView, ListPopupWindow, NumberPicker, PopupMenu,
                SearchView e StackView.
Suporte aprimorado ao JSON
               Classes JsonReader e JsonWriter adicionados ao pacote org.json.




                • Cria-se  uma   instância  de    JsonReader         passando       um
                InputStreamReader como parâmetro;

                • A leitura começa com beginObject() e o nome da chave é lido com
API Level 11




                nextName(). O valor é lido de acordo com o tipo, ex: nextInt(),
                nextString(), etc;

                • Esse processo é repetido enquanto hasNext() retorna verdadeiro.
Pacotes adicionados




               • android.animation – Novo framework de animação;

               • android.drm – API para gerenciamento de direitos digitais;

               • android.renderscript – engine para renderização 3D.
API Level 11
Otimizando Apps para o Android 3.0
                          Qualquer aplicação, por padrão, é compatível com dispositivos que
                         rodam Android 3.0, uma vez que as aplicações Android são “forward-
                                                    compatible”.
                        • Ambiente de desenvolvimento
Otimizando aplicações


                           • SDK Platform Android 3.0
                           • Android SDK Tools r10
                           • Android SDK Platform-Tools r3
                           • Documentação do Android SDK, API Level 11
                           • Exemplos do Android SDK, API Level 11
                           • Criar AVD com Android 3.0 e skin WXGA

                        • Aplicar o novo tema holográfico – Defina o
                        android:sdkTargetVersion=“11”      no    AndroidManifest,
                        fazendo com que a aplicação use o novo tema holográfico
                        quando estiver rodando em dispositivos Android 3.0. Não é
                        necessário alterar o android:minSdkVersion.
Otimizando Apps para o Android 3.0

                        • Prover layouts alternativos para telas extra-grandes
                        (xlarge)
Otimizando aplicações


                           • Certificar-se que existe um layout otimizado na aplicação para
                           orientação landscape (considerada normal nos tablets);

                           • Usa-se o qualificador xlarge para telas extra-grandes (tablets) e
                           land para a orientação landscape. Pode-se prover imagens, por
                           exemplo, para res/layout-xlarge-land/;

                           • Reconsiderar posicionamento dos botões para adequar-se ao
                           usuário que está segurando o tablet com as duas mãos;

                           • Tamanhos de fonte devem usar unidades “sp”. Em alguns casos,
                           pode-se usar fontes maiores para xlarge. Certificar-se de usar as
                           melhores práticas para independência de tela.
Atualizando ou desenvolvendo uma nova
Desenvolvendo para Android 3.0   aplicação para Android 3.0
                                 • Declarar  android:minSdkVersion=“11”     na    tag     <uses-sdk>    do
                                 AndroidManifest.xml, habilitando o novo tema holográfico e Action Bar nas
                                 Activities;

                                 • Usar a Action Bar;

                                 • Dividir as Activities em Fragments;

                                 • Usar o novo framework de animação para as transições;

                                 • Habilitar aceleração por hardware com android:hardwareAccelerated=“true”
                                 para cada <activity> ou para a <application> no AndroidManifest.xml;

                                 • Aprimorar os widgets com os novos recursos;

                                 • Usar os novos recursos (Drag and Drop), nova API de Bluetooth, sistema de
                                 Clipboard, Renderscript, etc;

                                 • Publicar a aplicação para telas extra grandes (xlarge), decidindo se a mesma
                                 será portável para smartphones ou funcionará apenas nos tablets.
AndroidManifest.xml
Desenvolvendo para Tablets




                                      Versão mínima do SDK: API Level 11 (Android 3.0)




                                           Suportar apenas telas extra grandes
Gráficos e Animações



          Property Animation e Renderscript
Property Animation X View Animation
                     Property Animation foi introduzido no Android 3.0 e é mais
                     poderoso e flexível que o View Animation.
                     • View Animation é capaz apenas de animar objetos View em certos aspectos
                     como escala e rotação. A cor de fundo da View, por exemplo, não poderia ser
                     alterada;
Property Animation



                     • Property Animation é capaz de animar qualquer objeto e, como o próprio
                     nome diz, modifica uma propriedade (atributo) desse objeto de acordo com o
                     tempo;

                     • Assim, Property Animation permite que se defina:

                         • Duração: pode-se especificar a duração da animação;
                         • Interpolação de tempo: como os valores da propriedade são calculados
                         em termos de uma função do tempo corrente de animação;
                         • Contador de repetições e comportamento: repetir a animação uma
                         determinada quantidade de vezes. Pode-se executar de trás para frente;
                         • Conjuntos de animações: agrupar animações em conjuntos lógicos que
                         são executados em conjunto ou sequencialmente após certos atrasos;
                         • Taxa de atualização: com que frequência os frames da animação são
                         atualizados.C
Como funciona
Property Animation   Utilizando o framework Property Animation para fazer animações




                                             Animação linear




                                           Animação não-linear
Como funciona
                     ValueAnimator rastreia o tempo de animação e o valor da
                     propriedade que está sendo animada.
                                         No exemplo da Animação Não-Linear

                     TimeInterpolator : AccelerateDecelerateInterpolator
Property Animation


                     TypeEvaluator : IntEvaluator

                     Para iniciar uma animação, cria-se um objeto ValueAnimator passando os
                     valores inicial e final da animação, bem como sua duração. Em seguida, invoca-
                     se o método start() para que a animação possa começar.
Classes que compõem o framework
                     ValueAnimator – calcula os valores da animação e contém detalhes do tempo
                     de cada animação, informação sobre quando a animação se repete, listeners
                     que recebem eventos de atualização e possibilidade de atualização da
                     propriedade por tipo.

                     É importante notar que o ValueAnimator não modifica o valor da propriedade
Property Animation


                     que está sendo animada, apenas calcula os valores de acordo com o tempo.
                     Para isso, deve-se implementar o método de atualização para modificar a
                     propriedade de acordo com a lógica desejada.

                     ObjectAnimator – herda de ValueAnimator e permite
                     definir um objeto e propriedade para animar. Ao contrário
                     do ValueAnimator, essa classe atualiza a propriedade assim
                     que computa um novo valor para a animação. Usa-se
                     ObjectAnimator na maior parte do tempo, por questões de
                     facilidade.
                     AnimatorSet – agrupa animações e permite que possam ser executadas
                     sequencialmente ou com atrasos específicos.
Evaluators e Interpolators
Property Animation
Animando com ValueAnimator



                       No exemplo abaixo, calcula valores entre 0 e 1 durante 1000 milisegundos
                                       quando o método start() é executado.
Property Animation




                            No exemplo abaixo, calcula valores entre startPropertyValue e
                     endPropertyValue, usando a lógica provida por MyTypeEvaluator durante 1000
                                 milisegundos quando o método start() é executado.
Animando com ValueAnimator
                     • Animator.AnimatorListener
                         • onAnimationStart() – chamado quando a animação começa.
                         • onAnimationEnd() – chamado quando a animação termina.
                         • onAnimationRepeat() – chamado quando a animação se repete.
                         • onAnimationCancel() – chamado quando a animação é
Property Animation


                         cancelada.

                     • ValueAnimator.AnimatorUpdateListener
                          • onAnimationUpdate() – chamado em cada frame da animação.
                          Pode-se capturar o valor calculado através do método
                          getAnimatedValue() e atualizar a propriedade de acordo.
                          Implementar esse listener é obrigatório se usar o ValueAnimator.


                     Exemplo de uso: objeto newBall, propriedade “alpha”, variando de 1 a 0 durante
                              250ms. Ao término da animação, objeto é removido da lista.
Animando com ObjectAnimator
                        ObjectAnimator facilita para o desenvolvedor que não é mais obrigado a
                     implementar o AnimatorUpdateListener, uma vez que a propriedade animada é
                                              atualizada automaticamente.


                      No exemplo abaixo, calcula valores entre 0 e 1 para a propriedade “alpha” do
Property Animation



                      objeto foo durante 1000 milisegundos quando o método start() é executado.




                     • Getter e Setter da propriedade que está sendo animada
                     (“alpha”) precisam existir e devem ser do mesmo tipo que
                     o especificado no ObjectAnimator. No exemplo acima,
                     teríamos na classe do objeto foo:

                         • public void setAlpha(Float alpha);
                         • public Float getAlpha();
Múltiplas animações com AnimatorSet
Property Animation
Animando Views

                     • Propriedades da classe View que facilitam
                     animações:

                       • translationX e translationY;
Property Animation




                       • rotation, rotationX e rotationY;
                       • scaleX e scaleY;
                       • pivotX e pivotY;
                       • x e y;
                       • alpha.

                          Exemplo de uso: rotacionar a View “myView” em 360 graus.
Declarando as Animações em XML
Property Animation
Veja também…

                   • Renderscript – Oferece alto desempenho 3D em nível nativo.
                   Disponível        a        partir       do         Android         3.0.
                   http://developer.android.com/guide/topics/graphics/renderscript.html;

                   • OpenGL ES API – Android suporta OpenGL ES 1.0, equivalente a versão
                   1.3      do      OpenGL.     Muito       utilizado    para      jogos.
View Animation
Gráficos 2D e 3D




                   http://developer.android.com/guide/topics/graphics/opengl.html;

                   • Gráficos 2D – Atráves de objetos Drawable, é possível desenhar na tela
                   do     dispositivo   Android,    bem    como      adicionar    imagens.
                   http://developer.android.com/guide/topics/graphics/2d-graphics.html;

                   • View Animation - Permite animar objetos View com operações como
                   escala e rotação. No Android 3.0 pode ser substituído pelo framework de
                   Property                                                      Animation.
                   http://developer.android.com/guide/topics/graphics/view-
                   animation.html
Tendências



             Tendências do mundo mobile
Android Market oferece serviço de In-App Billing
                 Pode-se vender conteúdo digital dentro do aplicativo, como
                 itens ou fases de jogos e funcionalidades extras para
                 aplicativos. O share é de 70% para o desenvolvedor e 30% para
                 a Google em cima do valor da venda.
In-App Billing
Como funciona
                  Aplicação envia requisição de pagamento para a aplicação do
                  Android Market via IPC e recebe respostas na forma de
                  Broadcast Intents.
                  A implementação do serviço de In-App Billing se baseia, de modo geral, em
                                            três componentes:

                 • Um Service que processa as requisições de pagamento da aplicação e repassa
                 essas requisições para o serviço de In-App Billing;

                 • Um BroadcastReceiver que recebe as respostas de pagamento da aplicação
In-App Billing




                 Android Market;

                 • Um componente de segurança que realiza tarefas relacionadas a segurança
                 do processo, como verificação da assinatura.

                  Opcionalmente, pode-se adicionar mais dois componentes para melhorar a
                                               experiência:

                 • Um Handler que processa notificações da compra, erros e status;
                 • Um Observer que envia callbacks para a aplicação para atualizar a interface
                 com o andamento da compra e informaçòes extras.
Como funciona
                   Aplicação envia requisição de pagamento para a aplicação do
                   Android Market via IPC e recebe respostas na forma de
                   Broadcast Intents.




                 • Aplicação chama o método IPC
In-App Billing




                 sendBillingRequest(), disponível na
                 interface       MarketBillingService,
                 passando um Bundle como parâmetro;

                 • O Bundle contém vários pares de
                 chave-valor contendo informações
                 como tipo de requisição, item que está
                 sendo comprado e aplicação que está
                 fazendo a requisição.
Como funciona
                 In-App Billing Requests: cada Bundle precisa ter uma chave
                 BILLING_REQUEST que especifica o tipo de requisição que está
                 sendo feita. São cinco tipos suportados:
In-App Billing
Como funciona
                 In-App Billing Responses: a resposta síncrona é um Bundle com
                 as seguintes chaves:
In-App Billing




                 As mensagens de resposta assíncronas são enviadas na forma de Broadcast
                                     Intents e incluem as seguintes:
Como funciona
                 O intent ACTION_PURCHASE_STATE_CHANGED provê para a
                 sua aplicação detalhes de uma ou mais transações. Eis um
                 exemplo da string JSON que é enviada:
In-App Billing
Sequências de mensagens
                 Exemplos de requisições realizadas pela aplicação e respostas
                 que são enviadas pela aplicação Android Market.
In-App Billing
NFC (Near Field Communication)
                                 Pacote android.nfc
                                 Permite a comunicação entre dispositivos (iniciador e alvo) com
                                 distância de centímetros. O alvo é uma tag RFID ou peer-to-peer.
                                 É uma das tecnologias mais promissoras no mundo mobile.




                                                        Pagamento pelo celular
NFC (Near Field Communication)
                                 Casos de Uso




                                                Troca de informações
NFC (Near Field Communication)
                                 Casos de Uso




                                                Ingressos para shows
NFC (Near Field Communication)
                                   Casos de Uso




Chaves
SIP (Session Initiation Protocol)
                                    Pacote android.net.sip
                                    Android provê uma API que permite a realização de chamadas
                                    através do protocolo SIP. Pode ser usado para videochamadas
                                    ou mensageiros instantâneos.



                                    • Para desenvolver uma aplicação SIP, é necessário que o
                                    dispositivo esteja com o Android 2.3 ou superior;

                                    • SIP roda sobre uma conexão de dados, seja Wi-Fi ou 3G.
                                    Não há como testar SIP em um AVD;

                                    • Cada participante em uma aplicação que se comunica
                                    por SIP deve possuir uma conta SIP. Existem muitos
                                    provedores SIP que oferecem planos diversos.
What’s Your Message?
OBRIGADO!

More Related Content

What's hot

Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3Jose Berardo
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Matheus Calegaro
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Afonso Machado
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de AndroidEdgar Eler
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Tchelinux
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Horacio Diamante Mondlane
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Rudson Lima
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidWsdevs Desenvolvedores
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneHenrique Perticarati
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRodolfo Faquin Della Justina
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Matheus Calegaro
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidCaelum
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Jose Berardo
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidWilliam Higino
 

What's hot (20)

Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google Android
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para Android
 

Viewers also liked

Iniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidIniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidDiemesleno Souza Carvalho
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptTutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptWillys Campos
 
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)Anderson Sa
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidAntonio Marin Neto
 
Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de PersistênciaÉdipo Souza
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...Adriel Café
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidJavier Muñoz
 
Google Android - WTJatai
Google Android - WTJataiGoogle Android - WTJatai
Google Android - WTJataiCaelum
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - PersistênciaArthur Emanuel
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Fabio Spanhol
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniLuis Borges Gouveia
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidFernando Anselmo
 

Viewers also liked (18)

Iniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidIniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para android
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Android Aula 1
Android Aula 1Android Aula 1
Android Aula 1
 
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptTutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
 
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
 
2 Informix Introduction
2 Informix Introduction2 Informix Introduction
2 Informix Introduction
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações Android
 
Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de Persistência
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en Android
 
Google Android - WTJatai
Google Android - WTJataiGoogle Android - WTJatai
Google Android - WTJatai
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - Persistência
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumni
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Boas Práticas em Android
Boas Práticas em AndroidBoas Práticas em Android
Boas Práticas em Android
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o Android
 

Similar to Android Aula 5

Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo OliveiraRonildo Oliveira
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma AndroidÉdipo Souza
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, ActivityArthur Emanuel
 
Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidTiago Bencardino
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMAlisson Solitto
 
Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Computação Móvel: Perspectivas, Oportunidades e DesenvolvimentoComputação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Computação Móvel: Perspectivas, Oportunidades e DesenvolvimentoJosé Alexandre Macedo
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao androidPaulo Remoli
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaMessias Batista
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Androidjgbirk
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma androidJuarez Junior
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google AndroidIury Teixeira
 
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteWindows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteComunidade NetPonto
 

Similar to Android Aula 5 (20)

O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo Oliveira
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, Activity
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Apresentação Google Android
Apresentação Google AndroidApresentação Google Android
Apresentação Google Android
 
Android
AndroidAndroid
Android
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Computação Móvel: Perspectivas, Oportunidades e DesenvolvimentoComputação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao android
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma android
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteWindows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
 

More from Erisvaldo Junior

Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java meErisvaldo Junior
 
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...Erisvaldo Junior
 

More from Erisvaldo Junior (20)

A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java me
 
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
 

Android Aula 5

  • 1. Erisvaldo Gadelha Saraiva Júnior Faculdade de Tecnologia de João Pessoa (FATEC-JP) Especialização em Desenvolvimento para Dispositivos Móveis Disciplina: Tecnologias para Dispositivos Móveis Android (Parte 5) E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: @erisvaldojunior
  • 2. Roteiro da Aula ANDROID GRÁFICOS E TENDÊNCIAS 3.0 ANIMAÇÕES Introdução ao Android 3.0, UI avançada e Tendências do mundo mobile
  • 3. ANDROID 3.0 Visão geral e recursos do Android 3.0
  • 4. Novos recursos para o Usuário Novidades do Android 3.0 Nova interface, otimizada para os tablets • System Bar • Action Bar • 5 Homes Customizáveis • Aplicações recentes
  • 5. Novos recursos para o Usuário Novidades do Android 3.0 • Novo Teclado • Manipulação de Textos • Mais conectividade • Aplicações-chave melhores
  • 6. Novos recursos para o Usuário Novidades do Android 3.0 Aplicações-chave foram aperfeiçoadas
  • 7. Novos recursos para o Desenvolvedor Novo framework de UI, refinado para tablets • Activity Fragments Novidades do Android 3.0 • Widgets remodelados • Action Bar customizável • Notificações mais ricas • Seleção múltipla, clipboard e recurso de drag-and-drop
  • 8. Novos recursos para o Desenvolvedor • Novo e flexível Framework de animação Novidades do Android 3.0 • Aceleração gráfica 2D por hardware • Renderscript (engine 3D) • Suporte a múltiplos processadores • HTTP Live streaming (M3U) • Framework de DRM • Transferência de arquivos de mídia (MTP/PTP) • Mais opções de conectividade • Segurança para ambientes corporativos • Compatibilidade com aplicações existentes
  • 9. Fragments Componente que permite a separação de elementos distintos de uma Activity em módulos com interfaces e ciclos de vida próprios. Pode-se combinar múltiplos fragmentos em uma única Activity para construir uma interface de vários painéis na qual cada painel gerencia seu próprio ciclo de vida e entradas do usuário. • Fragments podem ser reusados em múltiplas Activitys; • Pode-se adicionar, remover, substituir API Level 11 e animar Fragments dentro de uma Activity; • Por meio de layouts alternativos, pode-se combinar Fragments baseado no tamanho e orientação da tela; • Fragments tem acesso direto a sua Activity e pode acessar a Action Bar da Activity.
  • 10. Loaders Permitem, de maneira assíncrona, facilmente carregar dados em um Activity ou Fragment. • Estão disponíveis em qualquer Activity ou Fragment; • Provêem carregamento assíncrono de dados; API Level 11 • Monitoram a fonte dos dados e entregam novos resultados a medida que o conteúdo muda; • Reconectam-se automaticamente ao último cursor do Loader quando são recriados após uma mudança de configuração. Assim, não necessitam reconsultar os dados.
  • 11. Action Bar Substitui a barra de título na parte superior da Activity. Mostra o ícone da aplicação e provê uma nova interface para os itens do menu de opções. Além disso, permite ao desenvolvedor: • Adicionar itens de menu diretamente na Action Bar (Action Item); • Substituir um Action Item por um Widget, como uma caixa de pesquisa (Action View); API Level 11 • Adicionar uma ação para o ícone da aplicação bem como substituí-lo por um ícone personalizado; • Opções de navegação para os fragmentos da Activity; • Personalizar a Action Bar com temas e fundos.
  • 12. System Clipboard Área de transferência entre aplicações (texto, endereços, intents) • Possibilita acesso a dados que o usuário deseja copiar por meio de um Content Provider. Dados complexos como imagens ou estruturas podem ser copiados de uma aplicação para outra; • Para obter o Clipboard, usa-se o seguinte método: ClipboardManager.getSystemService(CLIPBOARD_SERVICE); • Dados são adicionados ao Clipboard por meio de um objeto da classe API Level 11 ClipData, que possui métodos como newPlainText(), newUri() e newIntent(); • Através do método setPrimaryClip(), atribui-se um ClipData a um Clipboard. O conteúdo pode ser obtido através do getPrimaryClip(); • O Clipboard armazena possui apenas um objeto ClipData mas esse objeto pode ser composto por vários itens (ClipData.Item).
  • 13. Drag and Drop Dados podem ser transferidos de um lugar para outro • Traduzindo para o desenvolvedor: objetos ClipData podem ser movidos de uma View para outra; • Cada operação Drag and Drop é definida por um objeto DragEvent, com estados como ACTION_DRAG_STARTED, ACTION_DRAG_ENTERED e ACTION_DROP definindo seu ciclo de vida; API Level 11 • O método startDrag() pode ser chamado em uma View provendo um ClipData que representa a informação a ser transferida; • O método setOnDragListener() permite que a View registre um OnDragListener que permitirá a recepção de objetos Drag and Drop. O listener obriga a implementação do método onDrag().
  • 14. Framework de Animação Novo e flexível framework de animação para objetos como Fragment, View e Drawable. • Pode-se definir duração, quantidade de repetições, taxa de atualização, atraso, etc; • Através da classe LayoutTransition é possível estabelecer animações API Level 11 automáticas para mudanças que foram realizadas no layout da Activity; • Para definir animações personalizadas, usa-se o método setAnimation() de LayoutTransition, passando-se um animador personalizado (objeto da classe ValueAnimator ou ObjectAnimator).
  • 15. Framework estendido de UI Diversas novidades para o framework de interface gráfica • Seleção múltipla para ListView e GridView através do método setChoiceMode() e o modo CHOICE_MODE_MULTIPLE_MODAL, além de registrar-se um MultiChoiceModeListener; • Novas APIs para transformar Views 2D e 3D, através de métodos como setAlpha(), setPivotX(), setRotationX() e setScaleX(); API Level 11 • Novos temas holográficos que são atribuídos como base padrão quando android:minSdkVersion ou android:targetSdkVersion estão setados para “11” no AndroidManifest.xml; • Novos widgets como AdapterViewAnimation, AdapterViewFlipper, CalendarView, ListPopupWindow, NumberPicker, PopupMenu, SearchView e StackView.
  • 16. Suporte aprimorado ao JSON Classes JsonReader e JsonWriter adicionados ao pacote org.json. • Cria-se uma instância de JsonReader passando um InputStreamReader como parâmetro; • A leitura começa com beginObject() e o nome da chave é lido com API Level 11 nextName(). O valor é lido de acordo com o tipo, ex: nextInt(), nextString(), etc; • Esse processo é repetido enquanto hasNext() retorna verdadeiro.
  • 17. Pacotes adicionados • android.animation – Novo framework de animação; • android.drm – API para gerenciamento de direitos digitais; • android.renderscript – engine para renderização 3D. API Level 11
  • 18. Otimizando Apps para o Android 3.0 Qualquer aplicação, por padrão, é compatível com dispositivos que rodam Android 3.0, uma vez que as aplicações Android são “forward- compatible”. • Ambiente de desenvolvimento Otimizando aplicações • SDK Platform Android 3.0 • Android SDK Tools r10 • Android SDK Platform-Tools r3 • Documentação do Android SDK, API Level 11 • Exemplos do Android SDK, API Level 11 • Criar AVD com Android 3.0 e skin WXGA • Aplicar o novo tema holográfico – Defina o android:sdkTargetVersion=“11” no AndroidManifest, fazendo com que a aplicação use o novo tema holográfico quando estiver rodando em dispositivos Android 3.0. Não é necessário alterar o android:minSdkVersion.
  • 19. Otimizando Apps para o Android 3.0 • Prover layouts alternativos para telas extra-grandes (xlarge) Otimizando aplicações • Certificar-se que existe um layout otimizado na aplicação para orientação landscape (considerada normal nos tablets); • Usa-se o qualificador xlarge para telas extra-grandes (tablets) e land para a orientação landscape. Pode-se prover imagens, por exemplo, para res/layout-xlarge-land/; • Reconsiderar posicionamento dos botões para adequar-se ao usuário que está segurando o tablet com as duas mãos; • Tamanhos de fonte devem usar unidades “sp”. Em alguns casos, pode-se usar fontes maiores para xlarge. Certificar-se de usar as melhores práticas para independência de tela.
  • 20. Atualizando ou desenvolvendo uma nova Desenvolvendo para Android 3.0 aplicação para Android 3.0 • Declarar android:minSdkVersion=“11” na tag <uses-sdk> do AndroidManifest.xml, habilitando o novo tema holográfico e Action Bar nas Activities; • Usar a Action Bar; • Dividir as Activities em Fragments; • Usar o novo framework de animação para as transições; • Habilitar aceleração por hardware com android:hardwareAccelerated=“true” para cada <activity> ou para a <application> no AndroidManifest.xml; • Aprimorar os widgets com os novos recursos; • Usar os novos recursos (Drag and Drop), nova API de Bluetooth, sistema de Clipboard, Renderscript, etc; • Publicar a aplicação para telas extra grandes (xlarge), decidindo se a mesma será portável para smartphones ou funcionará apenas nos tablets.
  • 21. AndroidManifest.xml Desenvolvendo para Tablets Versão mínima do SDK: API Level 11 (Android 3.0) Suportar apenas telas extra grandes
  • 22. Gráficos e Animações Property Animation e Renderscript
  • 23. Property Animation X View Animation Property Animation foi introduzido no Android 3.0 e é mais poderoso e flexível que o View Animation. • View Animation é capaz apenas de animar objetos View em certos aspectos como escala e rotação. A cor de fundo da View, por exemplo, não poderia ser alterada; Property Animation • Property Animation é capaz de animar qualquer objeto e, como o próprio nome diz, modifica uma propriedade (atributo) desse objeto de acordo com o tempo; • Assim, Property Animation permite que se defina: • Duração: pode-se especificar a duração da animação; • Interpolação de tempo: como os valores da propriedade são calculados em termos de uma função do tempo corrente de animação; • Contador de repetições e comportamento: repetir a animação uma determinada quantidade de vezes. Pode-se executar de trás para frente; • Conjuntos de animações: agrupar animações em conjuntos lógicos que são executados em conjunto ou sequencialmente após certos atrasos; • Taxa de atualização: com que frequência os frames da animação são atualizados.C
  • 24. Como funciona Property Animation Utilizando o framework Property Animation para fazer animações Animação linear Animação não-linear
  • 25. Como funciona ValueAnimator rastreia o tempo de animação e o valor da propriedade que está sendo animada. No exemplo da Animação Não-Linear TimeInterpolator : AccelerateDecelerateInterpolator Property Animation TypeEvaluator : IntEvaluator Para iniciar uma animação, cria-se um objeto ValueAnimator passando os valores inicial e final da animação, bem como sua duração. Em seguida, invoca- se o método start() para que a animação possa começar.
  • 26. Classes que compõem o framework ValueAnimator – calcula os valores da animação e contém detalhes do tempo de cada animação, informação sobre quando a animação se repete, listeners que recebem eventos de atualização e possibilidade de atualização da propriedade por tipo. É importante notar que o ValueAnimator não modifica o valor da propriedade Property Animation que está sendo animada, apenas calcula os valores de acordo com o tempo. Para isso, deve-se implementar o método de atualização para modificar a propriedade de acordo com a lógica desejada. ObjectAnimator – herda de ValueAnimator e permite definir um objeto e propriedade para animar. Ao contrário do ValueAnimator, essa classe atualiza a propriedade assim que computa um novo valor para a animação. Usa-se ObjectAnimator na maior parte do tempo, por questões de facilidade. AnimatorSet – agrupa animações e permite que possam ser executadas sequencialmente ou com atrasos específicos.
  • 28. Animando com ValueAnimator No exemplo abaixo, calcula valores entre 0 e 1 durante 1000 milisegundos quando o método start() é executado. Property Animation No exemplo abaixo, calcula valores entre startPropertyValue e endPropertyValue, usando a lógica provida por MyTypeEvaluator durante 1000 milisegundos quando o método start() é executado.
  • 29. Animando com ValueAnimator • Animator.AnimatorListener • onAnimationStart() – chamado quando a animação começa. • onAnimationEnd() – chamado quando a animação termina. • onAnimationRepeat() – chamado quando a animação se repete. • onAnimationCancel() – chamado quando a animação é Property Animation cancelada. • ValueAnimator.AnimatorUpdateListener • onAnimationUpdate() – chamado em cada frame da animação. Pode-se capturar o valor calculado através do método getAnimatedValue() e atualizar a propriedade de acordo. Implementar esse listener é obrigatório se usar o ValueAnimator. Exemplo de uso: objeto newBall, propriedade “alpha”, variando de 1 a 0 durante 250ms. Ao término da animação, objeto é removido da lista.
  • 30. Animando com ObjectAnimator ObjectAnimator facilita para o desenvolvedor que não é mais obrigado a implementar o AnimatorUpdateListener, uma vez que a propriedade animada é atualizada automaticamente. No exemplo abaixo, calcula valores entre 0 e 1 para a propriedade “alpha” do Property Animation objeto foo durante 1000 milisegundos quando o método start() é executado. • Getter e Setter da propriedade que está sendo animada (“alpha”) precisam existir e devem ser do mesmo tipo que o especificado no ObjectAnimator. No exemplo acima, teríamos na classe do objeto foo: • public void setAlpha(Float alpha); • public Float getAlpha();
  • 31. Múltiplas animações com AnimatorSet Property Animation
  • 32. Animando Views • Propriedades da classe View que facilitam animações: • translationX e translationY; Property Animation • rotation, rotationX e rotationY; • scaleX e scaleY; • pivotX e pivotY; • x e y; • alpha. Exemplo de uso: rotacionar a View “myView” em 360 graus.
  • 33. Declarando as Animações em XML Property Animation
  • 34. Veja também… • Renderscript – Oferece alto desempenho 3D em nível nativo. Disponível a partir do Android 3.0. http://developer.android.com/guide/topics/graphics/renderscript.html; • OpenGL ES API – Android suporta OpenGL ES 1.0, equivalente a versão 1.3 do OpenGL. Muito utilizado para jogos. View Animation Gráficos 2D e 3D http://developer.android.com/guide/topics/graphics/opengl.html; • Gráficos 2D – Atráves de objetos Drawable, é possível desenhar na tela do dispositivo Android, bem como adicionar imagens. http://developer.android.com/guide/topics/graphics/2d-graphics.html; • View Animation - Permite animar objetos View com operações como escala e rotação. No Android 3.0 pode ser substituído pelo framework de Property Animation. http://developer.android.com/guide/topics/graphics/view- animation.html
  • 35. Tendências Tendências do mundo mobile
  • 36. Android Market oferece serviço de In-App Billing Pode-se vender conteúdo digital dentro do aplicativo, como itens ou fases de jogos e funcionalidades extras para aplicativos. O share é de 70% para o desenvolvedor e 30% para a Google em cima do valor da venda. In-App Billing
  • 37. Como funciona Aplicação envia requisição de pagamento para a aplicação do Android Market via IPC e recebe respostas na forma de Broadcast Intents. A implementação do serviço de In-App Billing se baseia, de modo geral, em três componentes: • Um Service que processa as requisições de pagamento da aplicação e repassa essas requisições para o serviço de In-App Billing; • Um BroadcastReceiver que recebe as respostas de pagamento da aplicação In-App Billing Android Market; • Um componente de segurança que realiza tarefas relacionadas a segurança do processo, como verificação da assinatura. Opcionalmente, pode-se adicionar mais dois componentes para melhorar a experiência: • Um Handler que processa notificações da compra, erros e status; • Um Observer que envia callbacks para a aplicação para atualizar a interface com o andamento da compra e informaçòes extras.
  • 38. Como funciona Aplicação envia requisição de pagamento para a aplicação do Android Market via IPC e recebe respostas na forma de Broadcast Intents. • Aplicação chama o método IPC In-App Billing sendBillingRequest(), disponível na interface MarketBillingService, passando um Bundle como parâmetro; • O Bundle contém vários pares de chave-valor contendo informações como tipo de requisição, item que está sendo comprado e aplicação que está fazendo a requisição.
  • 39. Como funciona In-App Billing Requests: cada Bundle precisa ter uma chave BILLING_REQUEST que especifica o tipo de requisição que está sendo feita. São cinco tipos suportados: In-App Billing
  • 40. Como funciona In-App Billing Responses: a resposta síncrona é um Bundle com as seguintes chaves: In-App Billing As mensagens de resposta assíncronas são enviadas na forma de Broadcast Intents e incluem as seguintes:
  • 41. Como funciona O intent ACTION_PURCHASE_STATE_CHANGED provê para a sua aplicação detalhes de uma ou mais transações. Eis um exemplo da string JSON que é enviada: In-App Billing
  • 42. Sequências de mensagens Exemplos de requisições realizadas pela aplicação e respostas que são enviadas pela aplicação Android Market. In-App Billing
  • 43. NFC (Near Field Communication) Pacote android.nfc Permite a comunicação entre dispositivos (iniciador e alvo) com distância de centímetros. O alvo é uma tag RFID ou peer-to-peer. É uma das tecnologias mais promissoras no mundo mobile. Pagamento pelo celular
  • 44. NFC (Near Field Communication) Casos de Uso Troca de informações
  • 45. NFC (Near Field Communication) Casos de Uso Ingressos para shows
  • 46. NFC (Near Field Communication) Casos de Uso Chaves
  • 47. SIP (Session Initiation Protocol) Pacote android.net.sip Android provê uma API que permite a realização de chamadas através do protocolo SIP. Pode ser usado para videochamadas ou mensageiros instantâneos. • Para desenvolver uma aplicação SIP, é necessário que o dispositivo esteja com o Android 2.3 ou superior; • SIP roda sobre uma conexão de dados, seja Wi-Fi ou 3G. Não há como testar SIP em um AVD; • Cada participante em uma aplicação que se comunica por SIP deve possuir uma conta SIP. Existem muitos provedores SIP que oferecem planos diversos.