ANDROID
Mercado mobile e visão geral da plataforma
JONAS ALVES
   Mobile Tech Lead
   Android, iOS, Ruby
      na Gonow

        @jonas_alves
 http://github.com/jonasfa
jonas.alves@gonow.com.br
    jonasfa@gmail.com
DESENVOLVI
VEREMOS

• História

• Mercado    mobile

• Características   da plataforma

• Novidades

• Futuro
HISTÓRIA
http://www.youtube.com/watch?v=89xc_1Vv69k




Vic Gundotra
  Senior VP

        MAIS UM SO MOBILE!?
Andy Rubin
          Senior VP

UM SO ABERTO
ABERTO PARA A INOVAÇÃO
ABERTO PARA A INOVAÇÃO




        Com teclado
ABERTO PARA A INOVAÇÃO




        Sem teclado
ABERTO PARA A INOVAÇÃO




        Tela grande
ABERTO PARA A INOVAÇÃO




        Tela pequena
ABERTO PARA A INOVAÇÃO




       Interface exclusiva
ABERTO PARA A INOVAÇÃO




       iDEN (Push to Talk)
ABERTO PARA A INOVAÇÃO




        Filma em 3D
ABERTO PARA A INOVAÇÃO




       Leitor de livros
ABERTO PARA A INOVAÇÃO




         HSDPA
ABERTO PARA A INOVAÇÃO




     Long Term Evolution (LTE)
ABERTO PARA A INOVAÇÃO




         WiMAX
ABERTO PARA A INOVAÇÃO




         Tablet
ABERTO PARA A INOVAÇÃO




        Conversível?
ABERTO PARA A INOVAÇÃO




        Tela curva
ABERTO PARA A INOVAÇÃO
O CONSUMIDOR ESCOLHE




   http://www.flickr.com/photos/tfrancis/2558039735/
“SEM O ANDROID

•1   homem de

•1   empresa com

•1   aparelho em

•1   operadora (até então, nos EUA)


         seria a única opção” - Andy Rubin
MERCADO MOBILE
COM O ANDROID
                        2011                                            2010
   • 310      modelos                                   • 60     modelos

   • 36     fabricantes                                 • 21     fabricantes

   • 215      operadoras                                • 59     operadoras



   • 112      países                                    • 48     países
http://googleblog.blogspot.com/2011/05/android-momentum-mobile-and-more-at.html
ATIVAÇÕES
            (NOVOS APARELHOS USADOS PELA 1A VEZ)

                        2011                                            2010



   • 500.000          / dia                                • 100.000          / dia



   +100.000.000 dispositivos no mundo atualmente

http://googleblog.blogspot.com/2011/05/android-momentum-mobile-and-more-at.html
ATIVAÇÕES
           (NOVOS APARELHOS USADOS PELA 1A VEZ)




Google’s Android Runs 50% of New Smartphones,
                  Nielsen Says

http://www.businessweek.com/news/2011-04-26/google-s-android-runs-50-of-new-smartphones-nielsen-says.html
ANDROID MARKET
                   Mai / 2011                                     Ago / 2010




   • 200.000          aplicativos                             • 80.000        aplicativos




http://googleblog.blogspot.com/2011/05/android-momentum-mobile-and-more-at.html
MERCADO
                                             Aquecido!

“Mobile App Talent Pool is Shallow” - The Wall Street Journal
    http://online.wsj.com/article/SB10001424052748704547604576263200170918660.html?mod=WSJ_Tech_LEFTTopNews
Steve Jobs: “TweetDeck reported it was a
daunting challenge to contend with more
   than 100 different versions of Android
       software on 244 different handsets.”
Steve Jobs: “TweetDeck reported it was a
daunting challenge to contend with more
   than 100 different versions of Android
       software on 244 different handsets.”
Steve Jobs: “TweetDeck reported it was a
daunting challenge to contend with more
   than 100 different versions of Android
       software on 244 different handsets.”
http://developer.android.com/sdk/index.html
2009   Fev: Android 1.1
       Abr: Android 1.5         On-screen keyboard
       Set: Android 1.6         +Screen sizes/dens.
       Out: Android 2.0         Multitouch


2010   Jan: Android 2.1
       Mai: Android 2.2         JIT, Push(C2DM)
       Dez: Android 2.3         NFC



2011   Fev: Android 3.0         para tablets
       Mai: Android 3.1         improved USB
MITOS


• Fragmentação

 http://developer.android.com/resources/articles/backward-
 compatibility.html

• Task   killer
CARACTERÍSTICAS DA
   PLATAFORMA
GERENCIAMENTO DE
    MEMÓRIA
    Garbage Collector
GERENCIAMENTO DE
    MEMÓRIA
   Memória livre é desperdício
GERENCIAMENTO DE
           MEMÓRIA


•OSO fecha e restaura aplicativos automaticamente, conforme
necessário

•O desenvolvedor não precisa não deve finalizar manualmente
os aplicativos
O FRAMEWORK

• Views

• Content    Providers

• Resource    Manager

• Notification   Manager

• Activity   Manager
VIEWS


• Desenham     seu conteúdo em um canvas

• Eventos   (touch, keys, focus)

• Temas   e estilos

• Layouts
LAYOUTS
• FrameLayout           • RelativeLayout



• LinearLayout          • TableLayout




                 LayoutParams
CONTENT PROVIDER

• Contatos                  • query()

• Mídia                     • insert()

• Despertador               • update()

• Histórico   de ligações   • delete()

• Live   Folders

• Configurações
RESOURCE MANAGER
ACTIVITY


• (Geralmente)   é uma tela do aplicativo

• Carrega   a hierarqia de views que será exibida na tela

• Recebe    alguns eventos
CICLO DE
VIDA DA
ACTIVITY
SEGURANÇA


• Permissões   no AndroidManifest.xml

• Antes de instalar, o usuário é avisado de tudo que o aplicativo
 terá acesso

• Linux: UID
NOVIDADES
HONEYCOMB

• Interface   otimizada para tablets

• Notificações    mais ricas

• Aceleração    de hardware para APIs de views

• Fragments    (+ compatibility package)

• Renderscript
HONEYCOMB
  Fragments
HONEYCOMB
  Fragments
ANDROID OPEN ACCESSORY
      Periféricos USB <=> SO e Apps
          Compatível com Arduino
   Gingerbread (2.3.4) e Honeycomb (3.1)

       http://www.youtube.com/watch?v=OxzucwjFEEs
ANDROID@HOME
                     Rede de periféricos.
Encontrar, conectar e se comunicar com outros dispositivos na
       sua casa, como equipamento sonoro, luzes, etc

               http://www.youtube.com/watch?v=OxzucwjFEEs
GOOGLE TV
 Android na sala
GOOGLE TV
Tela grande + GPU + internet + periféricos USB/Bluetooth = ?
GOOGLE TV
Tela grande + GPU + internet + periféricos USB/Bluetooth = ?



                    JOGOS!
FUTURO
ICE CREAM SANDWICH
Um só SO para todos os tipos de dispositivos




       http://www.youtube.com/watch?v=OxzucwjFEEs
ICE CREAM SANDWICH
            Interface refinada




   http://www.youtube.com/watch?v=OxzucwjFEEs
ICE CREAM SANDWICH
Framework avançado que simplifica cross-device




        http://www.youtube.com/watch?v=OxzucwjFEEs
ICE CREAM SANDWICH
   API de reconhecimento de faces




   http://www.youtube.com/watch?v=OxzucwjFEEs
MATERIAL DE ESTUDO

• http://developer.android.com

• Google   Groups

 • android-developers   (oficial)

 • androidbrasil

 • androidbrasil-dev

• http://stackoverflow.com/questions/tagged/android
PERGUNTAS?
OBRIGADO!

Android: mercado mobile e visão geral da plataforma

Notas do Editor

  • #2 \n
  • #3 \n
  • #4 \n
  • #5 \n
  • #6 \n
  • #7 No Google I/O do ano passado, Vic Gundotra disse que questionou o Android quando chegou no Google.\n
  • #8 \n
  • #9 \n
  • #10 \n
  • #11 \n
  • #12 \n
  • #13 \n
  • #14 \n
  • #15 \n
  • #16 \n
  • #17 \n
  • #18 \n
  • #19 \n
  • #20 \n
  • #21 \n
  • #22 \n
  • #23 \n
  • #24 \n
  • #25 O consumidor escolhe seu aparelho preferido na sua operadora preferida\n
  • #26 Nessa mesma ocasi&amp;#xE3;o, Andy Rubin disse que se o Android n&amp;#xE3;o existir...\n\n... dos consumidores\n
  • #27 \n
  • #28 E o Android conseguiu impedir que isso acontecesse.\nHoje, o Android est&amp;#xE1; em...\n\n
  • #29 \n
  • #30 Nos EUA, nos 6 meses que antecederam Abril/2011\n
  • #31 \n
  • #32 \n
  • #33 Apple&amp;#x2019;s earnings call\ndesespero\n
  • #34 Apple&amp;#x2019;s earnings call\ndesespero\n
  • #35 2.2: JIT, Push (explicar), salvar aplicativos no cart&amp;#xE3;o de mem&amp;#xF3;ria\n2.3: Concurrent Garbage Collection\n Diversas melhorias para NDK(C/C++): acesso direto a resources, file system, etc\n\n3.0: para tablets, veremos mais a seguir\n2.3.4, 3.1: Perif&amp;#xE9;ricos: camera, mouse, teclado, joystick. Android Host\n Android Open Accessory: veremos mais adiante\n\nTodas as vers&amp;#xF5;es tiveram avan&amp;#xE7;os significativos em performance: Dalvik amadurecendo.\n
  • #36 Antes de entrar na parte t&amp;#xE9;cnica\nTask killer: bloqueado no 2.2\nFragmenta&amp;#xE7;&amp;#xE3;o\n*Todos* os grandes SOs tem fragmenta&amp;#xE7;&amp;#xE3;o.\nWindows XP foi lan&amp;#xE7;ado h&amp;#xE1; 10 anos atr&amp;#xE1;s, j&amp;#xE1; foram lan&amp;#xE7;adas 2 vers&amp;#xF5;es mais novas, e mesmo assim cada um de voc&amp;#xEA;s ainda conhece algu&amp;#xE9;m que usa o Windows XP.\nApesar de existir, a fragmenta&amp;#xE7;&amp;#xE3;o n&amp;#xE3;o torna a vida do desenvolvedor absurdamente mais dificil, como a m&amp;#xED;dia &amp;#x201C;especializada&amp;#x201D; gosta de dizer por a&amp;#xED;.\nQuando se come&amp;#xE7;a um novo aplicativo, deve se escolher a vers&amp;#xE3;o mais antiga na configura&amp;#xE7;&amp;#xE3;o do seu projeto e aument&amp;#xE1;-la s&amp;#xF3; se for necess&amp;#xE1;rio. Isso garante que o maior n&amp;#xFA;mero de usu&amp;#xE1;rios poss&amp;#xED;vel vai poder usar seu aplicativo. E mesmo que voc&amp;#xEA; precise de um recurso que s&amp;#xF3; existe no Android 2.2, ainda assim &amp;#xE9; poss&amp;#xED;vel oferecer o aplicativo para vers&amp;#xF5;es anteriores do Android. Para isso, basta verificar em tempo de execu&amp;#xE7;&amp;#xE3;o se o ambiente oferece a funcionalidade que voc&amp;#xEA; precisa e, caso n&amp;#xE3;o ofere&amp;#xE7;a, desabilitar/esconder a funcionalidade.\n
  • #37 \n
  • #38 \n
  • #39 Ter aplicativos na mem&amp;#xF3;ria n&amp;#xE3;o deixa o aparelho lento e nem gasta mais bateria.\nTirar aplicativos da mem&amp;#xF3;ria faz eles demorarem pra abrir na pr&amp;#xF3;xima utiliza&amp;#xE7;&amp;#xE3;o e, por causa disso, gasta mais bateria.\n
  • #40 Na primeira utiliza&amp;#xE7;&amp;#xE3;o de um aplicativo, o SO o carrega na mem&amp;#xF3;ria e antes, caso n&amp;#xE3;o tenha mem&amp;#xF3;ria dispon&amp;#xED;vel, o SO finaliza o aplicativo que est&amp;#xE1; mais tempo sem ser utilizado\n\nDesenv. n&amp;#xE3;o devem finalizar manualmente aplicativos. Nem os seus, nem os de terceiros.\nFinalizar aplicativos manualmente, al&amp;#xE9;m de deixar o aparelho mais lento e gastar mais bateria, pode fazer os aplicativos finalizados ter comportamento inexperado.\n
  • #41 Views: componentes visuais. Exibem texto, imagens, listas, grids, bot&amp;#xF5;es, etc\nContent Providers: &amp;#xE9; o que permite que um aplicativo troque dados com outro\nResource Manager: carrega imagens, layouts, entr eoutras coisas. Veremos mais a seguir\nNotification manager: exibe alertas na barra de status\nActivity Manager: gerencia o cliclo de vida dos aplicativos\n
  • #42 Recebem eventos, por exemplo do touchscreen e teclas f&amp;#xED;sicas, como volume ou teclado\nTemas e estilos: carregam informa&amp;#xE7;&amp;#xF5;es de estilo e se desenham de acordo com elas\nLayouts: s&amp;#xE3;o views especiais que calculam a posi&amp;#xE7;&amp;#xE3;o e o tamanho das views filhas\n
  • #43 Frame: mais simples. views s&amp;#xE3;o desenhadas uma sobre a outra\nLinear: posiciona as views uma em cima ou ao lado da outra\nRelative: a posi&amp;#xE7;&amp;#xE3;o das views &amp;#xE9; relativa ao layout ou as views irm&amp;#xE3;s\nTable: posiciona as views em linhas e colunas\n\nLayoutParams: &amp;#xE9; poss&amp;#xED;vel influenciar no posicionamento. ex.: width, height, margin, weight, gravity\n
  • #44 SO: dados de contatos, m&amp;#xFA;sica, v&amp;#xED;deos e fotos, hist&amp;#xF3;rido de liga&amp;#xE7;&amp;#xF5;es, configura&amp;#xE7;&amp;#xF5;es de Bluetooth, Wi-Fi, conex&amp;#xE3;o de dados, etc.\n\nquery() retorna um Cursor\n
  • #45 &amp;#xC9; inteligente: seleciona imagens, valores, layouts, cores, estilos, entre outras coisas, de acordo com o estado em que o aparelho se encontra.\nLeva em considera&amp;#xE7;&amp;#xE3;o coisas como o tamanho, resolu&amp;#xE7;&amp;#xE3;o e densidade da tela, idioma, regi&amp;#xE3;o, orienta&amp;#xE7;&amp;#xE3;o da tela (horizontal/vertical), noite ou dia, vers&amp;#xE3;o do Android, entre outros...\n
  • #46 Equivalente a um ViewController do iOS.\nConfigura os callbacks de eventos das views (onClick de bot&amp;#xE3;o)\n\nRecebe alguns eventos: bot&amp;#xF5;es f&amp;#xED;sicos(voltar, menu), mudan&amp;#xE7;as no aparelho(orienta&amp;#xE7;&amp;#xE3;o da tela)\n
  • #47 outro tipo de evento: os do ciclo de vida da Activity.\nS&amp;#xE3;o chamados quando a Activity &amp;#xE9; criada, passa para primeiro plano, outra Activity &amp;#xE9; aberta na frente dela, finalizada, etc\n\n
  • #48 Android tem um modelo r&amp;#xED;gido de seguran&amp;#xE7;a.\n\nPara ter acesso a dados sens&amp;#xED;veis, sensores e outros, o aplicativo deve especificar no seu manifesto o que ir&amp;#xE1; acessar. Caso n&amp;#xE3;o o fa&amp;#xE7;a, ter&amp;#xE1; acesso negado durante sua execu&amp;#xE7;&amp;#xE3;o\n\nLista de contatos, e-mails, outras contas, cadastro de pontos de acesso, etc\n
  • #49 \n
  • #50 \n
  • #51 compatibility package\n
  • #52 \n
  • #53 vers&amp;#xF5;es atuais do Android\nArduino: muita coisa pronta para reutilizar\nEquivalente ao Made For iPod (MFi) da Apple\nN&amp;#xE3;o precisa de aprova&amp;#xE7;&amp;#xE3;o do Google, n&amp;#xE3;o precisa pagar pro Google\n\ncomunica&amp;#xE7;&amp;#xE3;o com dispositivos acoplados, como instrumentos musicais, equipamento de gin&amp;#xE1;stica, via USB. O acess&amp;#xF3;rio &amp;#xE9; o Host\n
  • #54 Luzes, despertadores, termostatos, lavadoras de lou&amp;#xE7;a, etc\n
  • #55 - Integra a televis&amp;#xE3;o com a nuvem\n- Servi&amp;#xE7;os de conte&amp;#xFA;do sob demanda, como Netflix, Youtube, rec&amp;#xE9;m anunciado aluguel de filmes no Android Market\n- Traz pra TV os recursos do Android, como busca por voz\n\n- Central multim&amp;#xED;dia (PS3, XBOX 360, Windows Media Center)\n
  • #56 Uma das coisas que mais chamam minha aten&amp;#xE7;&amp;#xE3;o &amp;#xE9; o potencial dessa combina&amp;#xE7;&amp;#xE3;o.\n\nGoogle TV tem potencial pra bater de frente com \n
  • #57 \n
  • #58 Hoje: 2.3 e 3.1\ne ferramentas para que os desenvolvedores criem aplicativos que rodem muito bem em todos eles\n
  • #59 Trar&amp;#xE1; para o smartphone\n- Novo tema hologr&amp;#xE1;fico\n- Nova tela inicial\n- Widgets melhores\n
  • #60 Diminuir o esfor&amp;#xE7;o necess&amp;#xE1;rio para que os desenvolvedores adaptem seus aplicativos para todos os tipos de dispositivos.\n\nNovas APIs, principalmente de interface. Componentes v&amp;#xE3;o ser mais inteligentes, como a ActionBar(3.0), e v&amp;#xE3;o se adaptar sozinhos para o espa&amp;#xE7;o dispon&amp;#xED;vel.\n
  • #61 - Reconhece a face, posi&amp;#xE7;&amp;#xE3;o dos olhos, nariz, boca, etc\n- roda na GPU para maior performance (500 quadros/seg)\n
  • #62 \n
  • #63 \n
  • #64 \n