SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
Motorola Mobility


                                               Anna Schaller
                              Evangelistas da tecnologia Android
                    Plataformas e serviços para desenvolvedores




Desenvolvimento de aplicativos para o
tablet Motorola XOOM
Bem-vindo

 01 Antes e agora
    Design do smartphone versus design do tablet

 02 Mudanças no design da IU de aplicativos
    Introdução aos recursos de IU do Android 3.0

 03 Mudanças nos gráficos e na mídia
    Atualizações, aprimoramentos e informações sobre suporte a 
    gráficos e mídia

 04 Recursos de hardware
    Suporte ao Android no hardware do XOOM

 05 10 coisas……
    10 Passos fáceis para colocar o seu aplicativo no XOOM
                                                             © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                             Página 3




Apresentação do tablet
• Tela: 10,1 polegadas diagonal (xlarge),
  WXGA (1280 x 800), 160 dpi (mdpi)
• Memória: 32 GB de armazenamento flash
• Processador: nVidia Tegra 2 dual core
• Sensores: acelerômetro, barômetro,
  giroscópio, bússola, luz ambiente, GPS, sem
  proximidade ou vibração, rotação 4 direções
• Conectividade: 802.11 a/b/g/n, Bluetooth,     • Plataforma: Android 3.0
  HDMI                                            (Honeycomb)
• Câmera: 2 mp foco fixo dianteira / 5 mp       • Ambientes de aplicativo:
  autofoco traseira                               Adobe AIR 2.6, Android,
                                                  NDK, Flash 10.1
• Mídia: gravação em vídeo HD 720p,
  reprodução HD 1080p                           • Muitas alterações de
                                                  software……..
• Armazenamento externo: cartão SD de 32
  GB post-launch
                                                                 © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                     Página 4




Para onde foi tudo?

                                                           Botão liga/desliga
                Barra de status


                                                             Teclas
                                                             Teclas de
                                                             (para cima/baixo)




            Tecla de menu
                                                              Botão de bônus
                                                              (geralmente pesquisa)

                          Tecla de início   Botão Voltar
                                                                         © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                      Página 5




Interação com o tablet




Volume
Teclas
(para cima/baixo)

                                 liga/desliga
                                 Botão




                          © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                         Página 6




Interação (cont.)




Não é
um
botão
de
menu




                           Barra de sistema   © 2010 Motorola Mobility, Inc.
Página 7




                        • Tema holográfico
                        • Escurecimento da barra de
                          sistema
Mudanças no design      • Barra de ações
 da IU de aplicativos   • Fragmentos
                        • Novos widgets
                        • Notificações atualizadas
                        • Área de transferência do
                          sistema
                        • Arrastar e soltar

                                       Título da apresentação   Versão 1.0   02.24.09
MOTODEV App Summit 2011                                                              Página 8




Tema holográfico

• Herdado por todos os aplicativos compilados com o Android 3.0
   – minSdkVersion ou targetSdkVersion = 11 *e* ativar aceleração de hardware
     (android:hardwareAccelerated=”true”)
   – Se a versão do SDK <= 9, o seu a”plicativo usa os designs de widget do
     Android 2.3 e não herda o tema holográfico

• Existem duas versões
   – Padrão: fundo azul com letras brancas
     @android:style/Theme.Holo
   – Invertido: branco holográfico com
     letras pretas
     @android:style/Theme.Holo.Light



                                                                   © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                               Página 9




Escurecimento da barra de sistema

• Modo Lights out (apagar a luz)
   – Escurece a barra de sistema substituindo os ícones por “pontos”
     holográficos (a barra de sistema não é removida)


        View v = findViewById(R.id.view_id);
        v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
        v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE);




                                                                   © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                              Página 10




Barra de ações – simples
• Substitui a barra de título tradicional no canto superior do aplicativo



• Ícone do aplicativo com título
• Menu Overflow
   – A criação de menus não mudou


       public boolean onCreateOptionsMenu(Menu menu) {…}
       public boolean onOptionsItemSelected(MenuItem item) {
                          case R.id.menu_item …}


       /res/menu/menu_definitions.xml
                                                                  © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                               Página 11




Barra de ações – Abas com itens de ação
“acionável”
                       Abas                                  Itens de ação
   Ícone




• O ícone do aplicativo pode ser acionável
• Interface com abas na barra de ações
• Itens de ação individuais, em vez de listados no menu overflow
   – Com ou sem texto; com ou sem ícone
• Para gerenciar a barra de ações
       ActionBar actionBar = getActionBar();
       actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

   – Consulte android.app.actionbar                                 © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                         Página 12




Com tela cheia – remoção da barra de ações

• Você pode ocultar a barra de ações, *mas* o aplicativo perderá o
  acesso ao menu
    <activity android:theme="@android:style/Theme.NoTitleBar">
• Outra forma de ocultar a barra de ações é com programação, e então
  deixar o usuário alternar



           ActionBar bar = getActionBar();
           if (bar != null) {
              if (bar.isShowing()) bar.hide();
               else bar.show();
           }


                                                             © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                          Página 13




Menus

• Para aceitar compatibilidade retroativa, o botão de menu de software foi
  adicionado junto à barra de sistema
   – minSdkVersion e targetSdkVersion < 11




                                                              © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                        Página 14




Fragmentos

• Possibilita que um aplicativo seja dividido em subcomponentes que
  possam ser gerenciados individualmente e combinados de várias
  formas, como a criação de uma IU com diversos painéis.




                                                            © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                        Página 15




Fragmentos (cont.)

• Um fragmento deve estar sempre incluído em uma Atividade

Atividade




Lista
Fragmento




Fragmento




                                                             © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                           Página 16




Fragmentos (fragmento de base)
                                     Fragmento (base)
• Crie classe que estenda
  Fragments
• Exibe conteúdo semelhante a
  uma Atividade (imagens, texto,
  widgets de aplicativo)
• Pode ser vinculado a outro
  fragmento ou aba
• Pode adicionar itens ao menu
  overflow da Atividade (barra de
  ações)
• Não precisa ser visível (pode
  trabalhar nos bastidores)
• Se for visível, precisará de seu
  próprio arquivo de layout
                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                          Página 17




Fragmentos (adição a uma atividade)


XOOM_hc_app
 /res/layout/main.xml

    Layout da atividade


    (Lista)                                  PictureList.java
    Fragmento


    (Conteúdo)
    Fragmento
    com inclusão de
    imagem
                                      ContentFragment.java

                                              © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                             Página 18




Fragmentos (cont.)
 • Instruções no Guia do desenvolvedor do 3.0 sobre fragmentos
 • Consulte referência 3.0 sobre APIs
     – android.app.Fragment
     – android.app.ListFragment
          • Exibe uma lista semelhante a ListActivity
     – android.app.DialogFragment
          • Exibe uma caixa de diálogo flutuante
     – android.app.FragmentManager
          • Interface para interação com o fragmento (findFragmentById)
     – android.app.FragmentTransaction
          • APIs para operações de fragmento (adicionar, remover, substituir,
            ocultar, mostrar)
 • Post no blog The Android 3.0 Fragments API
     – mais detalhes sobre Fragmentos para todas as versões de Android 1.6 e Inc.
                                                                 © 2010 Motorola Mobility,


       posterior
MOTODEV App Summit 2011                                                               Página 19




Novos modos de exibição
• Widgets de aplicativo
   – PopupMenu (android.widget.PopupMenu)
         • O menu é vinculado a uma exibição (botão, por exemplo)

• Widgets de tela principal
    – StackView
      (android.widget.StackView)
         • Uma exibição que mostra os filhos
           em uma pilha 3D e deixa que os
           usuários passem os filhos
           separadamente.
• Notificações elaboradas (android.app.Notification.Builder)
    – compilar layouts de notificação

                                                                    © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                            Página 20




Exemplo em funcionamento
• Honeycomb Gallery em amostras de SDK apresenta…..
   – Barra de ações com interface com abas, menu de itens de ação e menu
     overflow
   – FragmentList e fragmento em retrato e paisagem
   – Novo tema
   – Arrastar e soltar
   – Animação
   – Ocultar/mostrar
       Barra de ações
   – Modo de apagar
       a luz


                                                                © 2010 Motorola Mobility, Inc.
• Aceleração de hardware
                          para gráficos 2D

Gráficos e multimídia   • Compressão de texturas
                        • Novo framework de
                          animação
                        • Suporte a mídia




                                      Título da apresentação   Versão 1.0   02.24.09
MOTODEV App Summit 2011                                                         Página 22




Aceleração de hardware
 • Suporte integrado para aceleração em um subconjunto de gráficos 2D
   (Canvas API)
 • Globalmente para todo o aplicativo ou atividade individual com
   configuração do nó apropriado no manifesto
      – android:hardwareAccelerated=“true”
 • Localmente em cada atividade e/ou com programação de janela por
   WindowManager.LayoutParams


         Window win = getWindow();
         win.setFlags
          (WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
           WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);


 • Teste para confirmar se o canvas está acelerado por hardware com
   isHardwareAcclerated()
                                                             © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                           Página 23




Compressão de texturas

• Chipsets diferentes aceitam tipos de compressão diferentes
• Formatos para celular:
   – ETC1 aceito por todos os dispositivos Android com OpenGL ES 2.0 mas
     sem canal alfa
   – PVRTC (PowerVR SGX 530 GPU da Imagination Technologies)
   – ATITC (Adreno GPU da Qualcomm)
   – S3TC ou DXT1, 3, 5 (nVidia GPU)
• Solução: filtragem de compressão de texturas
   <supports-gl-textures android:name=“string”>
   onde string é a extensão do OpenGL ES para um tipo de compressão
   por exemplo android:name=“GL_EXT_texture_compression_s3tc”

                                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                           Página 24




Compressão de texturas (cont.)

• Funciona com todo nível de API, não apenas Honeycomb
• Precisa definir uma tag para cada formato aceito
• Lista de tipos de compressão aceitos no Guia do desenvolvedor do
  Android - Tags de manifesto Android
  http://developer.android.com/guide/topics/manifest/supports-gl-texture-
  element.html
• Consulte ferramentas no Artigo técnico do MOTODEV
  http://developer.motorola.com/docstools/library/understanding-texture-
  compression/




                                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                          Página 25




Animação
Dois sistemas de animação para escolher:
1.       Animações de exibição (android.view.animation)
     –    Animações com Tween
          •   Cria uma série de transformações simples no conteúdo de um objeto de exibição
              View.
          •   As transições básicas incluem rotação, esmaecimento, movimento e ampliação
              em um gráfico.
     –    Animações com quadros
          •   Com as animações quadro a quadro (frame-by-frame), você carrega uma série
              de recursos Drawable, um após o outro, para criar uma animação.
2.       Animações de propriedade (android.animation         // novo no honeycomb)
     –    Pode animar quase qualquer coisa (não apenas exibições como drawables!)
     –    Aumenta o conjunto de propriedades que podem ser animadas (grupo e reprodução)
     –    As animações de exibição são mais simples e rápidas, as animações de propriedade
          fazem mais
     –    Consulte http://developer.android.com/guide/topics/graphics/animation.html
                                                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                    Página 26




Suporte a mídia -- Como pôr conteúdo ao dispositivo
       • Transferência de arquivo de mídia digital
            – Suporte integrado ao protocolo MTP/PTP (protocolo de transporte de
              mídia/imagem).
            – O usuário conecta o cabo USB e o aplicativo Android File Transfer é
              iniciado.
            – Os usuários podem copiar imagens, filmes, vídeos, toques, podcasts e
              mais em pastas predefinidas ou criar novas pastas para outro conteúdo.




                                                                        © 2010 Motorola Mobility, Inc.
• Sensores
Hardware   • Câmera
           • Tela de toque
           • Telefonia
MOTODEV App Summit 2011                                                                    Página 28




Sensores

• Acelerômetro, giroscópio, magnetômetro, barômetro, bússola, luz
  ambiente, GPS, sem sensor de proximidade, sem vibração
• Orientação do dispositivo
     – A orientação natural é paisagem (landscape) com rotação em 4 direções

      +ye                        +x

                                                                           +z
                                                         +yes

                           +ye                -ye
-x                   +x                                                                            +x
                                                    -x

                                         -x
               -ye                                                                       -ye
      Rotação 0                  Rotação 90                     Rotação 02010 Motorola Mobility, Inc.
                                                                        ©
MOTODEV App Summit 2011                                                           Página 29




Sensores (cont.)

• Use android.view.Display.getRotation() para ver a direção
  atual
• Ajuste os valores x/y para os quatro tipos de rotação
   – ROTATION_0
   – ROTATION_90
   – ROTATION_180
   – ROTATION_270
• Consulte a amostra AccelerometerPlay no SDK
• Mais detalhes no post do blog do Android One Screen Turn Deserves
  Another
• Se você precisar impedir a rotação do aplicativo, trave-o na orientação
  natural com
        <activity android:orientation=“nosensor” />
                                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                    Página 30
                                                                                              Página




 Sensores -- leitura do sensor de barômetro
// www.engineeringtoolbox.com/air-altitude-pressure-d_462.html
//~1.2 gm/cm2 mais baixo para cada 10 metros de ganho em elevação




                                                  © 2010 Motorola Mobility, Inc. Motorola Mobility, Inc.
                                                                          © 2010 Versão 1.0
MOTODEV App Summit 2011                                                           Página 31




Câmeras

• 2 câmeras disponíveis – dianteira e traseira
   – Traseira: 5 mp, autofoco
   – Dianteira: 2 mp, foco fixo
• Suporte adicionado para câmeras duplas no Gingerbread (2.3)
• A câmera traseira é primária e, portanto, a filtragem é feita com base
  nos recursos da câmera traseira (por exemplo
  android.hardware.camera.autofocus)


  <uses-permission android:name=”android.permission.CAMERA” />
  <uses-feature android:name=”android.hardware.camera.front”
                android:required=<true or false> />




                                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                           Página 32




Câmera (cont.)
import android.hardware.Camera;
import android.hardware.Camera.CameraInfo;

[…]

public void toggleCamera() {
   Camera mCamera;
   int numberOfCameras = Camera.getNumberOfCameras();
   CameraInfo cameraInfo = new CameraInfo();
   for (int i = 0; i < numberOfCameras; i++) {
      Camera.getCameraInfo(i, cameraInfo);
      if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) {
             mCamera = Camera.open(i);
             // fazer algo com a câmera dianteira

        } else if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {
              mCamera = Camera.open(i);
              // fazer algo com a câmera traseira
        }
    }
}
                                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                           Página 33




Tela de toque
• android.hardware.touchscreen.multitouch                (API nível 7)
   – Aceita toque com 2 dedos
• android.hardware.touchscreen.distinct                  (API nível 8)
   – Aceita detecção de 2 ou mais dedos de forma completamente independente
• android.hardware.touchscreen.multitouch.jazzhands      (API nível 9)

    – Aceita detecção de 5
      ou mais dedos de
      forma completamente
      independente (toque
      com 10 dedos)
    – Defina a tag <uses-
      feature> para filtrar
      dispositivos que
      aceitam isso (como o
      XOOM)                                                    © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                       Página 34




Tela de toque (cont.)

• Como não há teclado físico no XOOM, a superfície sensível ao toque
  passa a ser o ponto primário de contato para os usuários
      • Confirme seu entendimento sobre toque
• Continue usando o event listener onTouch com MotionEvents
      • MotionEvent.getPointerCount() retorna o número de
        pontos de toque
      • MotionEvent.getPointerId() possibilita detectar dedos
        separadamente
• Consulte o post do blog de Adam Powell Making Sense of Multitouch




                                                           © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                              Página 35




Telefonia
• Perspectiva do dispositivo
   – Dispositivos CDMA, UMTS/GMS têm um rádio para suporte a redes 4G/LTE
   – Com suporte a um subconjunto de framework de telefonia
     (android.telephony.TelephonyManager)
• Perspectiva do aplicativo
   – Sem suporte a recurso de telefonia
   <uses-feature android:name=“android.hardware.telephony
                 android:required=“true”/>
• Várias configurações para o XOOM
   – Somente WiFi, UMTS/GSM, CDMA
   – TelephonyManager.getDeviceId() as informações não serão as
     mesmas
   – Geralmente retorna IMEI ou MIED: dispositivo WiFi retorna nulo
                                                                  © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                                      Página 36




Telefonia (cont.)
• Obtenção de identificadores exclusivos: pense em por que você está obtendo os dados.
  Você está tentando rastrear o hardware ou o aplicativo?
    –   O hardware de rastreamento precisa que ele seja mantido na redefinição de fábrica.
    –   O aplicativo de rastreamento precisa que o valor seja redefinido na redefinição de fábrica.
• MAC Address (não recomendado)
    –   Nem todos os dispositivos têm WiFi. Além disso, se o WiFi não estiver ativado, o hardware pode
        não reportar o MAC address.
• Número de série (não recomendado)
    –   Somente garantido em dispositivos sem telefonia.
• ANDROID_ID (talvez)
    –   Gerada e armazenada quando o dispositivo é iniciado pela primeira vez. É redefinida quando o
        dispositivo é apagado.
    –   Não garantido em dispositivos anteriores ao Android 2.2
• Nova recomendação é criar seu próprio ID único e gravá-lo em seu arquivo compartilhado
  de preferências
    –   Por exemplo: uniqueID = UUID.randomUUID.toString()                                © 2010 Motorola Mobility, Inc.
• SDK Honeycomb
                • targetSdkVersion
                • Layouts
                • Tratamento de exceções
10 coisas……..   • Modo de compatibilidade
                • Drawables
                • Texto
                • Permissões e features
                • Mantendo a base de código
                • SDK Honeycomb
MOTODEV App Summit 2011                                                                 Página 38




10 coisas que você pode fazer agora mesmo

1. Baixar o SDK Honeycomb (e ferramentas atualizadas) e testar o
   seu aplicativo no emulador.
2. Alterar o targetSdkVersion para “11” e ver o que muda.
3. Adicionar as pastas /res/layout-xlarge e /res/layout-
   xlarge-port ao seu projeto com layouts otimizados para a tela
   maior.
4. Atualizar a manipulação de erros para fechar gentilmente em vez
   de padronizar com ANRs ou deixar o usuário "pendurado".
5. Verificar se o aplicativo está em “modo de compatibilidade”.
     a.    minSdkVersion=“3” no targetSdkVersion; compilar com 1.5
     b.    minSdkVersion=“3” and targetSdkVersion=“3”; compilado com
           qualquer SDK > 1.5
     c.    Efeito “Shadowbox”
                                                                     © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                  Página 39




10 coisas que você pode fazer (cont.)




        – Definir targetSdkVersion >= “4” e compilar com SDK >= 1.6
                                                                      © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                           Página 40




10 coisas que você pode fazer agora mesmo (cont.)
6. Rever gráficos em /res/drawable-<density>




                                               © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                            Página 41




10 coisas que você pode fazer agora mesmo (cont.)

• Usar a ferramenta 9-patch para criar uma região “ampliável”


• Pôr fundo da tela em ImageView e definir scaleType=centerCrop


     <ImageView
        android:src="@drawable/background”
        android:layout_width="match_parent”
        android:layout_height="match_parent”
        android:scaleType="centerCrop" />




                                                                © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                        Página 42




10 coisas que você pode fazer agora mesmo (cont.)
•    Imagens padronizadas podem ser colocadas lado a lado

    – /res/layout/main.xml

       <LinearLayout
                android:background=“@drawable/background”

    – /res/layout/background.xml

       <bitmap
         xmlns:android=
                "http://schemas.android.com/apk/res/android”
         android:src="@drawable/baseimage”
         android:tileMode="repeat”
         android:filter="true”
         android:dither="true" />


                                                            © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                 Página 43




10 coisas que você pode fazer agora mesmo (cont.)

•    Ler em createScaledBitmap() usando as dimensões de
     DisplayMetrics


     BitmapDrawable backgroundImage =
           (BitmapDrawable)getResources().getDrawable
           (R.drawable.background);
     Bitmap backgroundBitmap = backgroundImage.getBitmap();
     backgroundBitmap = Bitmap.createScaledBitmap
               (backgroundBitmap,
                dm.widthPixels,    // exibir largura de métrica
                dm.heightPixels,   // exibir altura de métrica
                true);             // ativar filtragem




                                                     © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                             Página 44




10 coisas que você pode fazer agora mesmo (cont.)
7. Verificar se o texto está legível e flui bem na tela maior.
    – Otimizar o texto para aproveitar o espaço (1280 x 800)




                                                                 © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                            Página 45




10 coisas que você pode fazer agora mesmo (cont.)

   – Criar 2 tags <dimens> diferentes em /res/values e /res-values-
     xlarge com 2 tamanhos de fonte diferentes (os dois em unidades de sp)




   – Adicionar @dimen/<variable> à propriedade <style> textSize

   <style name=’readText" parent="@android:style/TextAppearance">
      <item name="android:textSize">@dimen/font_size</item>
      <item name="android:textColor">#000000</item>
   </style>


                                                                © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                      Página 46




 10 coisas que você pode fazer agora mesmo (cont.)
 8. Verificar suas permissões e a tag <uses-feature> que pode filtrar o
    seu aplicativo do mercado.
     – Permissões não filtram o aplicativo, a tag <uses-feature> filtra.
     – O XOOM não tem telefonia… mais ou menos.
               <uses-permission   android:name=“CALL_PHONE” />
               <uses-permission   android:name=“CALL_PRIVILEGED” />
               <uses-permission   android:name=“MODIFY_PHONE_STATE”
               <uses-permission   android:name=“PROCESS_OUTGOING_CALLS” />
               <uses-permission   android:name=“READ_SMS” />
               <uses-permission   android:name=“RECEIVE_SMS” />
               <uses-permission   android:name=“RECEIVE_MMS” />
               <uses-permission   android:name=“RECEIVE_WAP_PUSH” />
               <uses-permission   android:name=“SEND_SMS” />
       a*      <uses-permission   android:name=“WRITE_APN_SETTINGS” />
*implic        <uses-permission   android:name=“WRITE_SMS” />

              <uses-feature
                    android:name=“android.hardware.telephony”
                    android:required=“true”/>                              © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                Página 47




10 coisas que você pode fazer agora mesmo (cont.)
    – Você deve explicitamente definir android:required="false” se
      quiser ver o aplicativo no XOOM
    – Executar a ferramenta aapt no seu apk para mostrar recursos
      explícitos
          $ aapt dump badging <path_to_exported_.apk>

    $ ./aapt dump badging BTExample.apk
       package: name='com.example.android.btexample' versionCode=''
       versionName=''
       uses-permission:'android.permission.BLUETOOTH_ADMIN'
       uses-feature:'android.hardware.bluetooth'
       sdkVersion:'3'
       targetSdkVersion:'5’
       <. . .>

    – Executar o MOTODEV App Validator para mostrar recursos implícitos
       • http://developer.motorola.com/testing/app-validator/
                                                                    © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                      Página 48




10 coisas que você pode fazer agora mesmo (cont.)

9. Determinar como gerenciar a sua base de código. A
   recomendação oficial é manter uma abordagem binária única.
   Lembre-se de que, com a biblioteca de compatibilidade, você
   pode usar fragmentos até o 1.6.
10. Baixar o SDK Honeycomb (e ferramentas atualizadas) e testar o
    seu aplicativo no emulador.




                                                          © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                     Página 49




                                   • Widgets redimensionáveis

                                   • Entrada e movimento

                     Android 3.1   • USB APIs
                    API Level 12   • Suporte a MTP/PTP

                                   • Real-Time Transport
                                     Protocol (RTP)

                                   • Fragment Breadcrumbs




                                                         © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                        Página 50




Widgets Redimensionáveis
• Widgets da Homescreen podem ser redimensionados
   – horizontalmente, verticalmente, ou em ambos os eixos
• Defina um atributo resizemode nas propriedades do widget
  AppWidgetProviderInfo


 <appwidget-provider xmlns:android="http://schemas.android.com/apk/
       res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="86400000"
   android:previewImage="@drawable/preview"
   android:initialLayout="@layout/example_appwidget”
   android:configure="com.example.android.ExampleAppWidgetConfigure"
   android:resizeMode="horizontal|vertical" >
 </appwidget-provider>

                                                            © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                             Página 51




Tipos de Entrada e Eventos de Movimento
• Sistema de eventos de entrada foi extendido para suportar uma
  variedade de novas fontes de entrada e de movimento, em todas as
  views e janelas
• Para entradas via mouse e trackball, a plataforma suporta dois novos
  eventos de movimento
   – ACTION_SCROLL (horizontal ou vertical) provê a localização de onde o
     movimento de rolamento aconteceu, como por exemplo de um botão de
     rolagem do mouse
   – ACTION_HOVER_MOVE reporta a localização do mouse quando nenhum
     botão foi pressionado
• Eventos de movimento de joysticks, gamepads, mouse e trackballs não
  são considerados eventos de toque
   – Novo método de callback para que estes sejam passados para Views como
     eventos de movimento “genéricos” através de uma chamada para
     onGenericMotionEvent(), ao invés de onTouchEvent()
                                                                 © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                             Página 52




USB APIs
• Suporte embutido da plataforma para USB em modo servidor que
  oferece um API aos desenvolvedores que permite que os aplicativos
  gerenciem periféricos conectados
   – Modo servidor confia no controlador apropriado de hardware do USB
     presente no seu device Android
   – Nos dispositivos que suportam “modo servidor”, como o XOOM, aplicativos
     podem usar a API para identificar e se comunicar com os dispositivos
     conectados
• Também suporta dois novos tipos básicos de hardware conectados
  (depende se o dispositivo Android está atuando como servidor)
   – Dispositivo USB : hardware conectado que depende de um dispositivo
     Android atuando como servidor (câmeras, teclado, mouse)
   – Acessório USB: hardware conectado que possui um servidor controlador
     USB (robôs)
• As APIs USB estão disponíveis no pacote android.hardware.usb
                                                                 © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                             Página 53




MTP/PTP Support

• Novo pacote android.mtp
   – Classes MtpDevice, MtpDeviceInfo, MtpConstants
• APIs permitem aos aplicativos interagir diretamente com câmeras
  conectadas e outros dispositivos PTP (Picture Transfer Protocol)
  conectados via USB modo servidor
   – Instancie um objeto MtpDevice referenciando um UsbDevice
   – Abra a conexão e transfira os dados
   – Obtenha informações sobre os dispositivos e os objetos armazenados nele
   – Receba notificações quando os dispositivos forem conectados ou removidos
• O aplicativo Gallery agora suporta PTP, para que usuários possam
  conectar suas câmeras através de portas USB e importem fotos para a
  Gallery em um único toque

                                                                 © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                             Página 54




                          DEMO



                                 © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                Página 55




Mais informações: developer.motorola.com

• Ferramentas
    – MOTODEV Studio: IDE baseado em eclipse com recursos adicionais
      (localização de segmentos, gerenciador de banco de dados)
    – App Validator: ferramenta online para pré-testar a compatibilidade de
      aplicativos Android com dispositivos
• Artigos técnicos
    – Motorola XOOM Programming Tips (Dicas de programação para o
      Motorola XOOM)
    – Understanding Texture Compression (Entendendo a compressão de
      texturas)
• Especificações de produtos
    – http://developer.motorola.com/products/xoom/
• Fóruns de discussão
                                                                    © 2010 Motorola Mobility, Inc.
    - http://community.developer.motorola.com/
MOTODEV App Summit 2011                                                     Página 56




                            Perguntas?
                            Brasil - #appsum11br
                          Argentina - #appsum11ar
                           México - #appsum11mx

                      community.developer.motorola.com


                                                         © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                   Página 57




                          Obrigada!!




                                       © 2010 Motorola Mobility, Inc.
MOTODEV App Summit 2011                                                                                                                                   Página 58




AVISOS LEGAIS
AVISOS SOBRE LICENÇA

Exceto quando indicado, o código-fonte de amostra escrito pela Motorola Mobility Inc. e fornecido para você é licenciado conforme descrito adiante.
Copyright © 2010-2011, Motorola, Inc. Todos os direitos reservados, exceto se indicado explicitamente de outra forma.
•  A redistribuição e utilização nas formas binária e de fonte, com ou sem modificação, são permitidas contanto que as seguintes condições sejam cumpridas:
•  As redistribuições do código-fonte devem manter o aviso de direitos autorais acima, esta lista de condições e a declaração de isenção de responsabilidade a
   seguir.
•  As redistribuições em forma binária devem reproduzir o aviso de direitos autorais acima, esta lista de condições e a declaração de isenção de responsabilidade
   a seguir em sua documentação e/ou outro material fornecido com a distribuição.

O nome da Motorola, Inc. e os nomes de seus contribuidores não podem ser usados para endossar ou promover produtos derivados deste software sem permissão
    específica prévia por escrito.

ESTE SOFTWARE É FORNECIDO PELOS TITULARES DOS DIREITOS AUTORAIS E CONTRIBUIDORES "NA FORMA EM QUE SE ENCONTRA" E QUALQUER
   GARANTIA, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS SEM LIMITAÇÃO A, GARANTIAS IMPLÍCITAS DE COMERCIABILIDADE E ADEQUAÇÃO A UMA
   FINALIDADE ESPECÍFICA, É RENUNCIADA. EM CIRCUNSTÂNCIA ALGUMA O TITULAR DOS DIREITOS AUTORAIS OU CONTRIBUIDORES SERÃO
   RESPONSABILIZADOS POR QUALQUER DANO DIRETO, INDIRETO, INCIDENTAL, ESPECIAL, EXEMPLAR OU CONSEQUENTE (INCLUSIVE, SEM
   LIMITAÇÃO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) SEJA
   QUAL FOR A CAUSA E SOBRE QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE OBJETIVA OU ATO ILÍCITO
   (INCLUSIVE NEGLIGÊNCIA) DE ALGUMA FORMA DECORRENTE DO USO DESTE SOFTWARE, MESMO SE TIVEREM SIDO AVISADOS DA
   POSSIBILIDADE DE TAL DANO.

Outros códigos-fonte exibidos nesta apresentação podem ser oferecidos sob outras licenças.

Apache 2.0
Copyright © 2010, Android Open Source Project. Todos os direitos reservados, a menos se indicado explicitamente de outra forma.
Licenciado segundo a Licença do Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo, exceto em conformidade com a Licença. Uma cópia da
    Licença pode ser obtida em http://www.apache.org/licenses/LICENSE-2.0.
A menos que seja exigido pela lei aplicável ou haja acordo por escrito, o software distribuído sob a Licença é fornecido "NA FORMA EM QUE SE ENCONTRA", SEM
    GARANTIAS OU CONDIÇÕES DE NENHUM TIPO, expressas ou implícitas. Consulte a Licença para saber as permissões e limitações regentes de idiomas
    específicos.

Licença Creative Commons Atribuição 3.0
Partes desta apresentação são reproduzidas a partir do trabalho criado e compartilhado pela Google (http://code.google.com/policies.html) e são usadas de acordo
    com os termos descritos na Licença Creative Commons Atribuição 3.0 (http://creativecommons.org/licenses/by/3.0/).



                                                                                                                                        © 2010 Motorola Mobility, Inc.

Más contenido relacionado

La actualidad más candente

Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012guisester
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkEr Galvão Abbott
 
Window Maker
Window MakerWindow Maker
Window Makerang3lus
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Androidilegra
 
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
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 

La actualidad más candente (10)

Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012
 
O que é android
O que é androidO que é android
O que é android
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend Framework
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Window Maker
Window MakerWindow Maker
Window Maker
 
Android
AndroidAndroid
Android
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 
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
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 

Similar a Desenvolvimento de aplicativos para o tablet Motorola XOOM

Como integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesComo integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesMotorola Mobility - MOTODEV
 
Mini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos MóveisMini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos MóveisJane Vita
 
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...Motorola Mobility - MOTODEV
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisÉdipo Souza
 
Mobile Marketing e o jQuery Mobile
Mobile Marketing e o jQuery MobileMobile Marketing e o jQuery Mobile
Mobile Marketing e o jQuery MobileJefferson Souza
 
Introdução Silverlight Windows Phone
Introdução Silverlight Windows PhoneIntrodução Silverlight Windows Phone
Introdução Silverlight Windows PhoneNuno Luz
 
Desenvolvimento Mobile: Android e iOS caminhando juntos
Desenvolvimento Mobile: Android e iOS caminhando juntosDesenvolvimento Mobile: Android e iOS caminhando juntos
Desenvolvimento Mobile: Android e iOS caminhando juntosElo7
 
Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7Pedro Lamas
 
Aplicativos para dispositivos móveis
Aplicativos para dispositivos móveisAplicativos para dispositivos móveis
Aplicativos para dispositivos móveisYgor Castro
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 

Similar a Desenvolvimento de aplicativos para o tablet Motorola XOOM (20)

Introdução a fragmentos
Introdução a fragmentosIntrodução a fragmentos
Introdução a fragmentos
 
Como integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesComo integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testes
 
Mini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos MóveisMini Curso - Design de Interface para Dispositivos Móveis
Mini Curso - Design de Interface para Dispositivos Móveis
 
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
Tirando vantagem do webtop como o html5 aprimora a experiência do usuário de ...
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
Mobile Marketing e o jQuery Mobile
Mobile Marketing e o jQuery MobileMobile Marketing e o jQuery Mobile
Mobile Marketing e o jQuery Mobile
 
Introdução Silverlight Windows Phone
Introdução Silverlight Windows PhoneIntrodução Silverlight Windows Phone
Introdução Silverlight Windows Phone
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Bada OS
Bada OSBada OS
Bada OS
 
App Inventor
App InventorApp Inventor
App Inventor
 
App inventor
App inventorApp inventor
App inventor
 
Desenvolvimento Mobile: Android e iOS caminhando juntos
Desenvolvimento Mobile: Android e iOS caminhando juntosDesenvolvimento Mobile: Android e iOS caminhando juntos
Desenvolvimento Mobile: Android e iOS caminhando juntos
 
PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014
PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014
PhoneGap - Desenvolvimento mobile multiplataforma - SECCOMP 2014
 
Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7
 
Aplicativos para dispositivos móveis
Aplicativos para dispositivos móveisAplicativos para dispositivos móveis
Aplicativos para dispositivos móveis
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 

Más de Motorola Mobility - MOTODEV

HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureMotorola Mobility - MOTODEV
 
Getting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondGetting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondMotorola Mobility - MOTODEV
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Motorola Mobility - MOTODEV
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsMotorola Mobility - MOTODEV
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Motorola Mobility - MOTODEV
 
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioCómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioMotorola Mobility - MOTODEV
 
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptGráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptMotorola Mobility - MOTODEV
 

Más de Motorola Mobility - MOTODEV (20)

HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the Future
 
The Enterprise Dilemma: Native vs. Web
The Enterprise Dilemma: Native vs. WebThe Enterprise Dilemma: Native vs. Web
The Enterprise Dilemma: Native vs. Web
 
Kill the Laptop!
Kill the Laptop!Kill the Laptop!
Kill the Laptop!
 
MOTODEV App Validator
MOTODEV App ValidatorMOTODEV App Validator
MOTODEV App Validator
 
Beautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens TooBeautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens Too
 
Getting the Magic on Android Tablets
Getting the Magic on Android TabletsGetting the Magic on Android Tablets
Getting the Magic on Android Tablets
 
Getting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondGetting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & Beyond
 
Introducing Fragments
Introducing FragmentsIntroducing Fragments
Introducing Fragments
 
Taking Advantage of Webtop
Taking Advantage of WebtopTaking Advantage of Webtop
Taking Advantage of Webtop
 
Building Quality Into Your Apps Through Testing
Building Quality Into Your Apps Through TestingBuilding Quality Into Your Apps Through Testing
Building Quality Into Your Apps Through Testing
 
Top Tips for Android UIs
Top Tips for Android UIsTop Tips for Android UIs
Top Tips for Android UIs
 
Designing Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom TabletDesigning Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom Tablet
 
Diseñando aplicaciones para el Motorola XOOM
Diseñando aplicaciones para el Motorola XOOM Diseñando aplicaciones para el Motorola XOOM
Diseñando aplicaciones para el Motorola XOOM
 
Presentación de los fragmentos
Presentación de los fragmentos Presentación de los fragmentos
Presentación de los fragmentos
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas
 
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioCómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
 
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptGráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
 
Using the NDK and Renderscript
Using the NDK and RenderscriptUsing the NDK and Renderscript
Using the NDK and Renderscript
 

Desenvolvimento de aplicativos para o tablet Motorola XOOM

  • 1. Motorola Mobility Anna Schaller Evangelistas da tecnologia Android Plataformas e serviços para desenvolvedores Desenvolvimento de aplicativos para o tablet Motorola XOOM
  • 2. Bem-vindo 01 Antes e agora Design do smartphone versus design do tablet 02 Mudanças no design da IU de aplicativos Introdução aos recursos de IU do Android 3.0 03 Mudanças nos gráficos e na mídia Atualizações, aprimoramentos e informações sobre suporte a  gráficos e mídia 04 Recursos de hardware Suporte ao Android no hardware do XOOM 05 10 coisas…… 10 Passos fáceis para colocar o seu aplicativo no XOOM © 2010 Motorola Mobility, Inc.
  • 3. MOTODEV App Summit 2011 Página 3 Apresentação do tablet • Tela: 10,1 polegadas diagonal (xlarge), WXGA (1280 x 800), 160 dpi (mdpi) • Memória: 32 GB de armazenamento flash • Processador: nVidia Tegra 2 dual core • Sensores: acelerômetro, barômetro, giroscópio, bússola, luz ambiente, GPS, sem proximidade ou vibração, rotação 4 direções • Conectividade: 802.11 a/b/g/n, Bluetooth, • Plataforma: Android 3.0 HDMI (Honeycomb) • Câmera: 2 mp foco fixo dianteira / 5 mp • Ambientes de aplicativo: autofoco traseira Adobe AIR 2.6, Android, NDK, Flash 10.1 • Mídia: gravação em vídeo HD 720p, reprodução HD 1080p • Muitas alterações de software…….. • Armazenamento externo: cartão SD de 32 GB post-launch © 2010 Motorola Mobility, Inc.
  • 4. MOTODEV App Summit 2011 Página 4 Para onde foi tudo? Botão liga/desliga Barra de status Teclas Teclas de (para cima/baixo) Tecla de menu Botão de bônus (geralmente pesquisa) Tecla de início Botão Voltar © 2010 Motorola Mobility, Inc.
  • 5. MOTODEV App Summit 2011 Página 5 Interação com o tablet Volume Teclas (para cima/baixo) liga/desliga Botão © 2010 Motorola Mobility, Inc.
  • 6. MOTODEV App Summit 2011 Página 6 Interação (cont.) Não é um botão de menu Barra de sistema © 2010 Motorola Mobility, Inc.
  • 7. Página 7 • Tema holográfico • Escurecimento da barra de sistema Mudanças no design • Barra de ações da IU de aplicativos • Fragmentos • Novos widgets • Notificações atualizadas • Área de transferência do sistema • Arrastar e soltar Título da apresentação Versão 1.0 02.24.09
  • 8. MOTODEV App Summit 2011 Página 8 Tema holográfico • Herdado por todos os aplicativos compilados com o Android 3.0 – minSdkVersion ou targetSdkVersion = 11 *e* ativar aceleração de hardware (android:hardwareAccelerated=”true”) – Se a versão do SDK <= 9, o seu a”plicativo usa os designs de widget do Android 2.3 e não herda o tema holográfico • Existem duas versões – Padrão: fundo azul com letras brancas @android:style/Theme.Holo – Invertido: branco holográfico com letras pretas @android:style/Theme.Holo.Light © 2010 Motorola Mobility, Inc.
  • 9. MOTODEV App Summit 2011 Página 9 Escurecimento da barra de sistema • Modo Lights out (apagar a luz) – Escurece a barra de sistema substituindo os ícones por “pontos” holográficos (a barra de sistema não é removida) View v = findViewById(R.id.view_id); v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE); © 2010 Motorola Mobility, Inc.
  • 10. MOTODEV App Summit 2011 Página 10 Barra de ações – simples • Substitui a barra de título tradicional no canto superior do aplicativo • Ícone do aplicativo com título • Menu Overflow – A criação de menus não mudou public boolean onCreateOptionsMenu(Menu menu) {…} public boolean onOptionsItemSelected(MenuItem item) { case R.id.menu_item …} /res/menu/menu_definitions.xml © 2010 Motorola Mobility, Inc.
  • 11. MOTODEV App Summit 2011 Página 11 Barra de ações – Abas com itens de ação “acionável” Abas Itens de ação Ícone • O ícone do aplicativo pode ser acionável • Interface com abas na barra de ações • Itens de ação individuais, em vez de listados no menu overflow – Com ou sem texto; com ou sem ícone • Para gerenciar a barra de ações ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); – Consulte android.app.actionbar © 2010 Motorola Mobility, Inc.
  • 12. MOTODEV App Summit 2011 Página 12 Com tela cheia – remoção da barra de ações • Você pode ocultar a barra de ações, *mas* o aplicativo perderá o acesso ao menu <activity android:theme="@android:style/Theme.NoTitleBar"> • Outra forma de ocultar a barra de ações é com programação, e então deixar o usuário alternar ActionBar bar = getActionBar(); if (bar != null) { if (bar.isShowing()) bar.hide(); else bar.show(); } © 2010 Motorola Mobility, Inc.
  • 13. MOTODEV App Summit 2011 Página 13 Menus • Para aceitar compatibilidade retroativa, o botão de menu de software foi adicionado junto à barra de sistema – minSdkVersion e targetSdkVersion < 11 © 2010 Motorola Mobility, Inc.
  • 14. MOTODEV App Summit 2011 Página 14 Fragmentos • Possibilita que um aplicativo seja dividido em subcomponentes que possam ser gerenciados individualmente e combinados de várias formas, como a criação de uma IU com diversos painéis. © 2010 Motorola Mobility, Inc.
  • 15. MOTODEV App Summit 2011 Página 15 Fragmentos (cont.) • Um fragmento deve estar sempre incluído em uma Atividade Atividade Lista Fragmento Fragmento © 2010 Motorola Mobility, Inc.
  • 16. MOTODEV App Summit 2011 Página 16 Fragmentos (fragmento de base) Fragmento (base) • Crie classe que estenda Fragments • Exibe conteúdo semelhante a uma Atividade (imagens, texto, widgets de aplicativo) • Pode ser vinculado a outro fragmento ou aba • Pode adicionar itens ao menu overflow da Atividade (barra de ações) • Não precisa ser visível (pode trabalhar nos bastidores) • Se for visível, precisará de seu próprio arquivo de layout © 2010 Motorola Mobility, Inc.
  • 17. MOTODEV App Summit 2011 Página 17 Fragmentos (adição a uma atividade) XOOM_hc_app /res/layout/main.xml Layout da atividade (Lista) PictureList.java Fragmento (Conteúdo) Fragmento com inclusão de imagem ContentFragment.java © 2010 Motorola Mobility, Inc.
  • 18. MOTODEV App Summit 2011 Página 18 Fragmentos (cont.) • Instruções no Guia do desenvolvedor do 3.0 sobre fragmentos • Consulte referência 3.0 sobre APIs – android.app.Fragment – android.app.ListFragment • Exibe uma lista semelhante a ListActivity – android.app.DialogFragment • Exibe uma caixa de diálogo flutuante – android.app.FragmentManager • Interface para interação com o fragmento (findFragmentById) – android.app.FragmentTransaction • APIs para operações de fragmento (adicionar, remover, substituir, ocultar, mostrar) • Post no blog The Android 3.0 Fragments API – mais detalhes sobre Fragmentos para todas as versões de Android 1.6 e Inc. © 2010 Motorola Mobility, posterior
  • 19. MOTODEV App Summit 2011 Página 19 Novos modos de exibição • Widgets de aplicativo – PopupMenu (android.widget.PopupMenu) • O menu é vinculado a uma exibição (botão, por exemplo) • Widgets de tela principal – StackView (android.widget.StackView) • Uma exibição que mostra os filhos em uma pilha 3D e deixa que os usuários passem os filhos separadamente. • Notificações elaboradas (android.app.Notification.Builder) – compilar layouts de notificação © 2010 Motorola Mobility, Inc.
  • 20. MOTODEV App Summit 2011 Página 20 Exemplo em funcionamento • Honeycomb Gallery em amostras de SDK apresenta….. – Barra de ações com interface com abas, menu de itens de ação e menu overflow – FragmentList e fragmento em retrato e paisagem – Novo tema – Arrastar e soltar – Animação – Ocultar/mostrar Barra de ações – Modo de apagar a luz © 2010 Motorola Mobility, Inc.
  • 21. • Aceleração de hardware para gráficos 2D Gráficos e multimídia • Compressão de texturas • Novo framework de animação • Suporte a mídia Título da apresentação Versão 1.0 02.24.09
  • 22. MOTODEV App Summit 2011 Página 22 Aceleração de hardware • Suporte integrado para aceleração em um subconjunto de gráficos 2D (Canvas API) • Globalmente para todo o aplicativo ou atividade individual com configuração do nó apropriado no manifesto – android:hardwareAccelerated=“true” • Localmente em cada atividade e/ou com programação de janela por WindowManager.LayoutParams Window win = getWindow(); win.setFlags (WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); • Teste para confirmar se o canvas está acelerado por hardware com isHardwareAcclerated() © 2010 Motorola Mobility, Inc.
  • 23. MOTODEV App Summit 2011 Página 23 Compressão de texturas • Chipsets diferentes aceitam tipos de compressão diferentes • Formatos para celular: – ETC1 aceito por todos os dispositivos Android com OpenGL ES 2.0 mas sem canal alfa – PVRTC (PowerVR SGX 530 GPU da Imagination Technologies) – ATITC (Adreno GPU da Qualcomm) – S3TC ou DXT1, 3, 5 (nVidia GPU) • Solução: filtragem de compressão de texturas <supports-gl-textures android:name=“string”> onde string é a extensão do OpenGL ES para um tipo de compressão por exemplo android:name=“GL_EXT_texture_compression_s3tc” © 2010 Motorola Mobility, Inc.
  • 24. MOTODEV App Summit 2011 Página 24 Compressão de texturas (cont.) • Funciona com todo nível de API, não apenas Honeycomb • Precisa definir uma tag para cada formato aceito • Lista de tipos de compressão aceitos no Guia do desenvolvedor do Android - Tags de manifesto Android http://developer.android.com/guide/topics/manifest/supports-gl-texture- element.html • Consulte ferramentas no Artigo técnico do MOTODEV http://developer.motorola.com/docstools/library/understanding-texture- compression/ © 2010 Motorola Mobility, Inc.
  • 25. MOTODEV App Summit 2011 Página 25 Animação Dois sistemas de animação para escolher: 1. Animações de exibição (android.view.animation) – Animações com Tween • Cria uma série de transformações simples no conteúdo de um objeto de exibição View. • As transições básicas incluem rotação, esmaecimento, movimento e ampliação em um gráfico. – Animações com quadros • Com as animações quadro a quadro (frame-by-frame), você carrega uma série de recursos Drawable, um após o outro, para criar uma animação. 2. Animações de propriedade (android.animation // novo no honeycomb) – Pode animar quase qualquer coisa (não apenas exibições como drawables!) – Aumenta o conjunto de propriedades que podem ser animadas (grupo e reprodução) – As animações de exibição são mais simples e rápidas, as animações de propriedade fazem mais – Consulte http://developer.android.com/guide/topics/graphics/animation.html © 2010 Motorola Mobility, Inc.
  • 26. MOTODEV App Summit 2011 Página 26 Suporte a mídia -- Como pôr conteúdo ao dispositivo • Transferência de arquivo de mídia digital – Suporte integrado ao protocolo MTP/PTP (protocolo de transporte de mídia/imagem). – O usuário conecta o cabo USB e o aplicativo Android File Transfer é iniciado. – Os usuários podem copiar imagens, filmes, vídeos, toques, podcasts e mais em pastas predefinidas ou criar novas pastas para outro conteúdo. © 2010 Motorola Mobility, Inc.
  • 27. • Sensores Hardware • Câmera • Tela de toque • Telefonia
  • 28. MOTODEV App Summit 2011 Página 28 Sensores • Acelerômetro, giroscópio, magnetômetro, barômetro, bússola, luz ambiente, GPS, sem sensor de proximidade, sem vibração • Orientação do dispositivo – A orientação natural é paisagem (landscape) com rotação em 4 direções +ye +x +z +yes +ye -ye -x +x +x -x -x -ye -ye Rotação 0 Rotação 90 Rotação 02010 Motorola Mobility, Inc. ©
  • 29. MOTODEV App Summit 2011 Página 29 Sensores (cont.) • Use android.view.Display.getRotation() para ver a direção atual • Ajuste os valores x/y para os quatro tipos de rotação – ROTATION_0 – ROTATION_90 – ROTATION_180 – ROTATION_270 • Consulte a amostra AccelerometerPlay no SDK • Mais detalhes no post do blog do Android One Screen Turn Deserves Another • Se você precisar impedir a rotação do aplicativo, trave-o na orientação natural com <activity android:orientation=“nosensor” /> © 2010 Motorola Mobility, Inc.
  • 30. MOTODEV App Summit 2011 Página 30 Página Sensores -- leitura do sensor de barômetro // www.engineeringtoolbox.com/air-altitude-pressure-d_462.html //~1.2 gm/cm2 mais baixo para cada 10 metros de ganho em elevação © 2010 Motorola Mobility, Inc. Motorola Mobility, Inc. © 2010 Versão 1.0
  • 31. MOTODEV App Summit 2011 Página 31 Câmeras • 2 câmeras disponíveis – dianteira e traseira – Traseira: 5 mp, autofoco – Dianteira: 2 mp, foco fixo • Suporte adicionado para câmeras duplas no Gingerbread (2.3) • A câmera traseira é primária e, portanto, a filtragem é feita com base nos recursos da câmera traseira (por exemplo android.hardware.camera.autofocus) <uses-permission android:name=”android.permission.CAMERA” /> <uses-feature android:name=”android.hardware.camera.front” android:required=<true or false> /> © 2010 Motorola Mobility, Inc.
  • 32. MOTODEV App Summit 2011 Página 32 Câmera (cont.) import android.hardware.Camera; import android.hardware.Camera.CameraInfo; […] public void toggleCamera() { Camera mCamera; int numberOfCameras = Camera.getNumberOfCameras(); CameraInfo cameraInfo = new CameraInfo(); for (int i = 0; i < numberOfCameras; i++) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) { mCamera = Camera.open(i); // fazer algo com a câmera dianteira } else if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) { mCamera = Camera.open(i); // fazer algo com a câmera traseira } } } © 2010 Motorola Mobility, Inc.
  • 33. MOTODEV App Summit 2011 Página 33 Tela de toque • android.hardware.touchscreen.multitouch (API nível 7) – Aceita toque com 2 dedos • android.hardware.touchscreen.distinct (API nível 8) – Aceita detecção de 2 ou mais dedos de forma completamente independente • android.hardware.touchscreen.multitouch.jazzhands (API nível 9) – Aceita detecção de 5 ou mais dedos de forma completamente independente (toque com 10 dedos) – Defina a tag <uses- feature> para filtrar dispositivos que aceitam isso (como o XOOM) © 2010 Motorola Mobility, Inc.
  • 34. MOTODEV App Summit 2011 Página 34 Tela de toque (cont.) • Como não há teclado físico no XOOM, a superfície sensível ao toque passa a ser o ponto primário de contato para os usuários • Confirme seu entendimento sobre toque • Continue usando o event listener onTouch com MotionEvents • MotionEvent.getPointerCount() retorna o número de pontos de toque • MotionEvent.getPointerId() possibilita detectar dedos separadamente • Consulte o post do blog de Adam Powell Making Sense of Multitouch © 2010 Motorola Mobility, Inc.
  • 35. MOTODEV App Summit 2011 Página 35 Telefonia • Perspectiva do dispositivo – Dispositivos CDMA, UMTS/GMS têm um rádio para suporte a redes 4G/LTE – Com suporte a um subconjunto de framework de telefonia (android.telephony.TelephonyManager) • Perspectiva do aplicativo – Sem suporte a recurso de telefonia <uses-feature android:name=“android.hardware.telephony android:required=“true”/> • Várias configurações para o XOOM – Somente WiFi, UMTS/GSM, CDMA – TelephonyManager.getDeviceId() as informações não serão as mesmas – Geralmente retorna IMEI ou MIED: dispositivo WiFi retorna nulo © 2010 Motorola Mobility, Inc.
  • 36. MOTODEV App Summit 2011 Página 36 Telefonia (cont.) • Obtenção de identificadores exclusivos: pense em por que você está obtendo os dados. Você está tentando rastrear o hardware ou o aplicativo? – O hardware de rastreamento precisa que ele seja mantido na redefinição de fábrica. – O aplicativo de rastreamento precisa que o valor seja redefinido na redefinição de fábrica. • MAC Address (não recomendado) – Nem todos os dispositivos têm WiFi. Além disso, se o WiFi não estiver ativado, o hardware pode não reportar o MAC address. • Número de série (não recomendado) – Somente garantido em dispositivos sem telefonia. • ANDROID_ID (talvez) – Gerada e armazenada quando o dispositivo é iniciado pela primeira vez. É redefinida quando o dispositivo é apagado. – Não garantido em dispositivos anteriores ao Android 2.2 • Nova recomendação é criar seu próprio ID único e gravá-lo em seu arquivo compartilhado de preferências – Por exemplo: uniqueID = UUID.randomUUID.toString() © 2010 Motorola Mobility, Inc.
  • 37. • SDK Honeycomb • targetSdkVersion • Layouts • Tratamento de exceções 10 coisas…….. • Modo de compatibilidade • Drawables • Texto • Permissões e features • Mantendo a base de código • SDK Honeycomb
  • 38. MOTODEV App Summit 2011 Página 38 10 coisas que você pode fazer agora mesmo 1. Baixar o SDK Honeycomb (e ferramentas atualizadas) e testar o seu aplicativo no emulador. 2. Alterar o targetSdkVersion para “11” e ver o que muda. 3. Adicionar as pastas /res/layout-xlarge e /res/layout- xlarge-port ao seu projeto com layouts otimizados para a tela maior. 4. Atualizar a manipulação de erros para fechar gentilmente em vez de padronizar com ANRs ou deixar o usuário "pendurado". 5. Verificar se o aplicativo está em “modo de compatibilidade”. a. minSdkVersion=“3” no targetSdkVersion; compilar com 1.5 b. minSdkVersion=“3” and targetSdkVersion=“3”; compilado com qualquer SDK > 1.5 c. Efeito “Shadowbox” © 2010 Motorola Mobility, Inc.
  • 39. MOTODEV App Summit 2011 Página 39 10 coisas que você pode fazer (cont.) – Definir targetSdkVersion >= “4” e compilar com SDK >= 1.6 © 2010 Motorola Mobility, Inc.
  • 40. MOTODEV App Summit 2011 Página 40 10 coisas que você pode fazer agora mesmo (cont.) 6. Rever gráficos em /res/drawable-<density> © 2010 Motorola Mobility, Inc.
  • 41. MOTODEV App Summit 2011 Página 41 10 coisas que você pode fazer agora mesmo (cont.) • Usar a ferramenta 9-patch para criar uma região “ampliável” • Pôr fundo da tela em ImageView e definir scaleType=centerCrop <ImageView android:src="@drawable/background” android:layout_width="match_parent” android:layout_height="match_parent” android:scaleType="centerCrop" /> © 2010 Motorola Mobility, Inc.
  • 42. MOTODEV App Summit 2011 Página 42 10 coisas que você pode fazer agora mesmo (cont.) • Imagens padronizadas podem ser colocadas lado a lado – /res/layout/main.xml <LinearLayout android:background=“@drawable/background” – /res/layout/background.xml <bitmap xmlns:android= "http://schemas.android.com/apk/res/android” android:src="@drawable/baseimage” android:tileMode="repeat” android:filter="true” android:dither="true" /> © 2010 Motorola Mobility, Inc.
  • 43. MOTODEV App Summit 2011 Página 43 10 coisas que você pode fazer agora mesmo (cont.) • Ler em createScaledBitmap() usando as dimensões de DisplayMetrics BitmapDrawable backgroundImage = (BitmapDrawable)getResources().getDrawable (R.drawable.background); Bitmap backgroundBitmap = backgroundImage.getBitmap(); backgroundBitmap = Bitmap.createScaledBitmap (backgroundBitmap, dm.widthPixels, // exibir largura de métrica dm.heightPixels, // exibir altura de métrica true); // ativar filtragem © 2010 Motorola Mobility, Inc.
  • 44. MOTODEV App Summit 2011 Página 44 10 coisas que você pode fazer agora mesmo (cont.) 7. Verificar se o texto está legível e flui bem na tela maior. – Otimizar o texto para aproveitar o espaço (1280 x 800) © 2010 Motorola Mobility, Inc.
  • 45. MOTODEV App Summit 2011 Página 45 10 coisas que você pode fazer agora mesmo (cont.) – Criar 2 tags <dimens> diferentes em /res/values e /res-values- xlarge com 2 tamanhos de fonte diferentes (os dois em unidades de sp) – Adicionar @dimen/<variable> à propriedade <style> textSize <style name=’readText" parent="@android:style/TextAppearance"> <item name="android:textSize">@dimen/font_size</item> <item name="android:textColor">#000000</item> </style> © 2010 Motorola Mobility, Inc.
  • 46. MOTODEV App Summit 2011 Página 46 10 coisas que você pode fazer agora mesmo (cont.) 8. Verificar suas permissões e a tag <uses-feature> que pode filtrar o seu aplicativo do mercado. – Permissões não filtram o aplicativo, a tag <uses-feature> filtra. – O XOOM não tem telefonia… mais ou menos. <uses-permission android:name=“CALL_PHONE” /> <uses-permission android:name=“CALL_PRIVILEGED” /> <uses-permission android:name=“MODIFY_PHONE_STATE” <uses-permission android:name=“PROCESS_OUTGOING_CALLS” /> <uses-permission android:name=“READ_SMS” /> <uses-permission android:name=“RECEIVE_SMS” /> <uses-permission android:name=“RECEIVE_MMS” /> <uses-permission android:name=“RECEIVE_WAP_PUSH” /> <uses-permission android:name=“SEND_SMS” /> a* <uses-permission android:name=“WRITE_APN_SETTINGS” /> *implic <uses-permission android:name=“WRITE_SMS” /> <uses-feature android:name=“android.hardware.telephony” android:required=“true”/> © 2010 Motorola Mobility, Inc.
  • 47. MOTODEV App Summit 2011 Página 47 10 coisas que você pode fazer agora mesmo (cont.) – Você deve explicitamente definir android:required="false” se quiser ver o aplicativo no XOOM – Executar a ferramenta aapt no seu apk para mostrar recursos explícitos $ aapt dump badging <path_to_exported_.apk> $ ./aapt dump badging BTExample.apk package: name='com.example.android.btexample' versionCode='' versionName='' uses-permission:'android.permission.BLUETOOTH_ADMIN' uses-feature:'android.hardware.bluetooth' sdkVersion:'3' targetSdkVersion:'5’ <. . .> – Executar o MOTODEV App Validator para mostrar recursos implícitos • http://developer.motorola.com/testing/app-validator/ © 2010 Motorola Mobility, Inc.
  • 48. MOTODEV App Summit 2011 Página 48 10 coisas que você pode fazer agora mesmo (cont.) 9. Determinar como gerenciar a sua base de código. A recomendação oficial é manter uma abordagem binária única. Lembre-se de que, com a biblioteca de compatibilidade, você pode usar fragmentos até o 1.6. 10. Baixar o SDK Honeycomb (e ferramentas atualizadas) e testar o seu aplicativo no emulador. © 2010 Motorola Mobility, Inc.
  • 49. MOTODEV App Summit 2011 Página 49 • Widgets redimensionáveis • Entrada e movimento Android 3.1 • USB APIs API Level 12 • Suporte a MTP/PTP • Real-Time Transport Protocol (RTP) • Fragment Breadcrumbs © 2010 Motorola Mobility, Inc.
  • 50. MOTODEV App Summit 2011 Página 50 Widgets Redimensionáveis • Widgets da Homescreen podem ser redimensionados – horizontalmente, verticalmente, ou em ambos os eixos • Defina um atributo resizemode nas propriedades do widget AppWidgetProviderInfo <appwidget-provider xmlns:android="http://schemas.android.com/apk/ res/android" android:minWidth="294dp" android:minHeight="72dp" android:updatePeriodMillis="86400000" android:previewImage="@drawable/preview" android:initialLayout="@layout/example_appwidget” android:configure="com.example.android.ExampleAppWidgetConfigure" android:resizeMode="horizontal|vertical" > </appwidget-provider> © 2010 Motorola Mobility, Inc.
  • 51. MOTODEV App Summit 2011 Página 51 Tipos de Entrada e Eventos de Movimento • Sistema de eventos de entrada foi extendido para suportar uma variedade de novas fontes de entrada e de movimento, em todas as views e janelas • Para entradas via mouse e trackball, a plataforma suporta dois novos eventos de movimento – ACTION_SCROLL (horizontal ou vertical) provê a localização de onde o movimento de rolamento aconteceu, como por exemplo de um botão de rolagem do mouse – ACTION_HOVER_MOVE reporta a localização do mouse quando nenhum botão foi pressionado • Eventos de movimento de joysticks, gamepads, mouse e trackballs não são considerados eventos de toque – Novo método de callback para que estes sejam passados para Views como eventos de movimento “genéricos” através de uma chamada para onGenericMotionEvent(), ao invés de onTouchEvent() © 2010 Motorola Mobility, Inc.
  • 52. MOTODEV App Summit 2011 Página 52 USB APIs • Suporte embutido da plataforma para USB em modo servidor que oferece um API aos desenvolvedores que permite que os aplicativos gerenciem periféricos conectados – Modo servidor confia no controlador apropriado de hardware do USB presente no seu device Android – Nos dispositivos que suportam “modo servidor”, como o XOOM, aplicativos podem usar a API para identificar e se comunicar com os dispositivos conectados • Também suporta dois novos tipos básicos de hardware conectados (depende se o dispositivo Android está atuando como servidor) – Dispositivo USB : hardware conectado que depende de um dispositivo Android atuando como servidor (câmeras, teclado, mouse) – Acessório USB: hardware conectado que possui um servidor controlador USB (robôs) • As APIs USB estão disponíveis no pacote android.hardware.usb © 2010 Motorola Mobility, Inc.
  • 53. MOTODEV App Summit 2011 Página 53 MTP/PTP Support • Novo pacote android.mtp – Classes MtpDevice, MtpDeviceInfo, MtpConstants • APIs permitem aos aplicativos interagir diretamente com câmeras conectadas e outros dispositivos PTP (Picture Transfer Protocol) conectados via USB modo servidor – Instancie um objeto MtpDevice referenciando um UsbDevice – Abra a conexão e transfira os dados – Obtenha informações sobre os dispositivos e os objetos armazenados nele – Receba notificações quando os dispositivos forem conectados ou removidos • O aplicativo Gallery agora suporta PTP, para que usuários possam conectar suas câmeras através de portas USB e importem fotos para a Gallery em um único toque © 2010 Motorola Mobility, Inc.
  • 54. MOTODEV App Summit 2011 Página 54 DEMO © 2010 Motorola Mobility, Inc.
  • 55. MOTODEV App Summit 2011 Página 55 Mais informações: developer.motorola.com • Ferramentas – MOTODEV Studio: IDE baseado em eclipse com recursos adicionais (localização de segmentos, gerenciador de banco de dados) – App Validator: ferramenta online para pré-testar a compatibilidade de aplicativos Android com dispositivos • Artigos técnicos – Motorola XOOM Programming Tips (Dicas de programação para o Motorola XOOM) – Understanding Texture Compression (Entendendo a compressão de texturas) • Especificações de produtos – http://developer.motorola.com/products/xoom/ • Fóruns de discussão © 2010 Motorola Mobility, Inc. - http://community.developer.motorola.com/
  • 56. MOTODEV App Summit 2011 Página 56 Perguntas? Brasil - #appsum11br Argentina - #appsum11ar México - #appsum11mx community.developer.motorola.com © 2010 Motorola Mobility, Inc.
  • 57. MOTODEV App Summit 2011 Página 57 Obrigada!! © 2010 Motorola Mobility, Inc.
  • 58. MOTODEV App Summit 2011 Página 58 AVISOS LEGAIS AVISOS SOBRE LICENÇA Exceto quando indicado, o código-fonte de amostra escrito pela Motorola Mobility Inc. e fornecido para você é licenciado conforme descrito adiante. Copyright © 2010-2011, Motorola, Inc. Todos os direitos reservados, exceto se indicado explicitamente de outra forma. • A redistribuição e utilização nas formas binária e de fonte, com ou sem modificação, são permitidas contanto que as seguintes condições sejam cumpridas: • As redistribuições do código-fonte devem manter o aviso de direitos autorais acima, esta lista de condições e a declaração de isenção de responsabilidade a seguir. • As redistribuições em forma binária devem reproduzir o aviso de direitos autorais acima, esta lista de condições e a declaração de isenção de responsabilidade a seguir em sua documentação e/ou outro material fornecido com a distribuição. O nome da Motorola, Inc. e os nomes de seus contribuidores não podem ser usados para endossar ou promover produtos derivados deste software sem permissão específica prévia por escrito. ESTE SOFTWARE É FORNECIDO PELOS TITULARES DOS DIREITOS AUTORAIS E CONTRIBUIDORES "NA FORMA EM QUE SE ENCONTRA" E QUALQUER GARANTIA, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS SEM LIMITAÇÃO A, GARANTIAS IMPLÍCITAS DE COMERCIABILIDADE E ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA, É RENUNCIADA. EM CIRCUNSTÂNCIA ALGUMA O TITULAR DOS DIREITOS AUTORAIS OU CONTRIBUIDORES SERÃO RESPONSABILIZADOS POR QUALQUER DANO DIRETO, INDIRETO, INCIDENTAL, ESPECIAL, EXEMPLAR OU CONSEQUENTE (INCLUSIVE, SEM LIMITAÇÃO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) SEJA QUAL FOR A CAUSA E SOBRE QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE OBJETIVA OU ATO ILÍCITO (INCLUSIVE NEGLIGÊNCIA) DE ALGUMA FORMA DECORRENTE DO USO DESTE SOFTWARE, MESMO SE TIVEREM SIDO AVISADOS DA POSSIBILIDADE DE TAL DANO. Outros códigos-fonte exibidos nesta apresentação podem ser oferecidos sob outras licenças.
 Apache 2.0 Copyright © 2010, Android Open Source Project. Todos os direitos reservados, a menos se indicado explicitamente de outra forma. Licenciado segundo a Licença do Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo, exceto em conformidade com a Licença. Uma cópia da Licença pode ser obtida em http://www.apache.org/licenses/LICENSE-2.0. A menos que seja exigido pela lei aplicável ou haja acordo por escrito, o software distribuído sob a Licença é fornecido "NA FORMA EM QUE SE ENCONTRA", SEM GARANTIAS OU CONDIÇÕES DE NENHUM TIPO, expressas ou implícitas. Consulte a Licença para saber as permissões e limitações regentes de idiomas específicos. Licença Creative Commons Atribuição 3.0 Partes desta apresentação são reproduzidas a partir do trabalho criado e compartilhado pela Google (http://code.google.com/policies.html) e são usadas de acordo com os termos descritos na Licença Creative Commons Atribuição 3.0 (http://creativecommons.org/licenses/by/3.0/). © 2010 Motorola Mobility, Inc.