Motorola Mobility                                               Anna Schaller                              Evangelistas da...
Bem-vindo 01 Antes e agora    Design do smartphone versus design do tablet 02 Mudanças no design da IU de aplicativos    I...
MOTODEV App Summit 2011                                                             Página 3Apresentação do tablet• Tela: ...
MOTODEV App Summit 2011                                                                     Página 4Para onde foi tudo?   ...
MOTODEV App Summit 2011                      Página 5Interação com o tabletVolumeTeclas(para cima/baixo)                  ...
MOTODEV App Summit 2011                                         Página 6Interação (cont.)Não éumbotãodemenu               ...
Página 7                        • Tema holográfico                        • Escurecimento da barra de                     ...
MOTODEV App Summit 2011                                                              Página 8Tema holográfico• Herdado por...
MOTODEV App Summit 2011                                                               Página 9Escurecimento da barra de si...
MOTODEV App Summit 2011                                                              Página 10Barra de ações – simples• Su...
MOTODEV App Summit 2011                                                               Página 11Barra de ações – Abas com i...
MOTODEV App Summit 2011                                                         Página 12Com tela cheia – remoção da barra...
MOTODEV App Summit 2011                                                          Página 13Menus• Para aceitar compatibilid...
MOTODEV App Summit 2011                                                        Página 14Fragmentos• Possibilita que um apl...
MOTODEV App Summit 2011                                                        Página 15Fragmentos (cont.)• Um fragmento d...
MOTODEV App Summit 2011                                           Página 16Fragmentos (fragmento de base)                 ...
MOTODEV App Summit 2011                                          Página 17Fragmentos (adição a uma atividade)XOOM_hc_app /...
MOTODEV App Summit 2011                                                             Página 18Fragmentos (cont.) • Instruçõ...
MOTODEV App Summit 2011                                                               Página 19Novos modos de exibição• Wi...
MOTODEV App Summit 2011                                                            Página 20Exemplo em funcionamento• Hone...
• Aceleração de hardware                          para gráficos 2DGráficos e multimídia   • Compressão de texturas        ...
MOTODEV App Summit 2011                                                         Página 22Aceleração de hardware • Suporte ...
MOTODEV App Summit 2011                                                           Página 23Compressão de texturas• Chipset...
MOTODEV App Summit 2011                                                           Página 24Compressão de texturas (cont.)•...
MOTODEV App Summit 2011                                                                          Página 25AnimaçãoDois sis...
MOTODEV App Summit 2011                                                                    Página 26Suporte a mídia -- Com...
• SensoresHardware   • Câmera           • Tela de toque           • Telefonia
MOTODEV App Summit 2011                                                                    Página 28Sensores• Acelerômetro...
MOTODEV App Summit 2011                                                           Página 29Sensores (cont.)• Use android.v...
MOTODEV App Summit 2011                                                                    Página 30                      ...
MOTODEV App Summit 2011                                                           Página 31Câmeras• 2 câmeras disponíveis ...
MOTODEV App Summit 2011                                                           Página 32Câmera (cont.)import android.ha...
MOTODEV App Summit 2011                                                           Página 33Tela de toque• android.hardware...
MOTODEV App Summit 2011                                                       Página 34Tela de toque (cont.)• Como não há ...
MOTODEV App Summit 2011                                                              Página 35Telefonia• Perspectiva do di...
MOTODEV App Summit 2011                                                                                      Página 36Tele...
• SDK Honeycomb                • targetSdkVersion                • Layouts                • Tratamento de exceções10 coisa...
MOTODEV App Summit 2011                                                                 Página 3810 coisas que você pode f...
MOTODEV App Summit 2011                                                                  Página 3910 coisas que você pode ...
MOTODEV App Summit 2011                                           Página 4010 coisas que você pode fazer agora mesmo (cont...
MOTODEV App Summit 2011                                                            Página 4110 coisas que você pode fazer ...
MOTODEV App Summit 2011                                                        Página 4210 coisas que você pode fazer agor...
MOTODEV App Summit 2011                                                 Página 4310 coisas que você pode fazer agora mesmo...
MOTODEV App Summit 2011                                                             Página 4410 coisas que você pode fazer...
MOTODEV App Summit 2011                                                            Página 4510 coisas que você pode fazer ...
MOTODEV App Summit 2011                                                                      Página 46 10 coisas que você ...
MOTODEV App Summit 2011                                                                Página 4710 coisas que você pode fa...
MOTODEV App Summit 2011                                                      Página 4810 coisas que você pode fazer agora ...
MOTODEV App Summit 2011                                                     Página 49                                   • ...
MOTODEV App Summit 2011                                                        Página 50Widgets Redimensionáveis• Widgets ...
MOTODEV App Summit 2011                                                             Página 51Tipos de Entrada e Eventos de...
MOTODEV App Summit 2011                                                             Página 52USB APIs• Suporte embutido da...
MOTODEV App Summit 2011                                                             Página 53MTP/PTP Support• Novo pacote ...
MOTODEV App Summit 2011                             Página 54                          DEMO                               ...
MOTODEV App Summit 2011                                                                Página 55Mais informações: develope...
MOTODEV App Summit 2011                                                     Página 56                            Perguntas...
MOTODEV App Summit 2011                                   Página 57                          Obrigada!!                   ...
MOTODEV App Summit 2011                                                                                                   ...
Upcoming SlideShare
Loading in …5
×

Desenvolvimento de aplicativos para o tablet Motorola XOOM

4,936 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,936
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
144
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Desenvolvimento de aplicativos para o tablet Motorola XOOM

  1. 1. Motorola Mobility Anna Schaller Evangelistas da tecnologia Android Plataformas e serviços para desenvolvedoresDesenvolvimento de aplicativos para otablet Motorola XOOM
  2. 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. 3. MOTODEV App Summit 2011 Página 3Apresentaçã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. 4. MOTODEV App Summit 2011 Página 4Para 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. 5. MOTODEV App Summit 2011 Página 5Interação com o tabletVolumeTeclas(para cima/baixo) liga/desliga Botão © 2010 Motorola Mobility, Inc.
  6. 6. MOTODEV App Summit 2011 Página 6Interação (cont.)Não éumbotãodemenu Barra de sistema © 2010 Motorola Mobility, Inc.
  7. 7. Página 7 • Tema holográfico • Escurecimento da barra de sistemaMudanç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. 8. MOTODEV App Summit 2011 Página 8Tema 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. 9. MOTODEV App Summit 2011 Página 9Escurecimento 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. 10. MOTODEV App Summit 2011 Página 10Barra 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. 11. MOTODEV App Summit 2011 Página 11Barra 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. 12. MOTODEV App Summit 2011 Página 12Com 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. 13. MOTODEV App Summit 2011 Página 13Menus• 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. 14. MOTODEV App Summit 2011 Página 14Fragmentos• 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. 15. MOTODEV App Summit 2011 Página 15Fragmentos (cont.)• Um fragmento deve estar sempre incluído em uma AtividadeAtividadeListaFragmentoFragmento © 2010 Motorola Mobility, Inc.
  16. 16. MOTODEV App Summit 2011 Página 16Fragmentos (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. 17. MOTODEV App Summit 2011 Página 17Fragmentos (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. 18. MOTODEV App Summit 2011 Página 18Fragmentos (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. 19. MOTODEV App Summit 2011 Página 19Novos 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. 20. MOTODEV App Summit 2011 Página 20Exemplo 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. 21. • Aceleração de hardware para gráficos 2DGrá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. 22. MOTODEV App Summit 2011 Página 22Aceleraçã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. 23. MOTODEV App Summit 2011 Página 23Compressã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. 24. MOTODEV App Summit 2011 Página 24Compressã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. 25. MOTODEV App Summit 2011 Página 25AnimaçãoDois 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. 26. MOTODEV App Summit 2011 Página 26Suporte 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. 27. • SensoresHardware • Câmera • Tela de toque • Telefonia
  28. 28. MOTODEV App Summit 2011 Página 28Sensores• 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. 29. MOTODEV App Summit 2011 Página 29Sensores (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. 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. 31. MOTODEV App Summit 2011 Página 31Câ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. 32. MOTODEV App Summit 2011 Página 32Câ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. 33. MOTODEV App Summit 2011 Página 33Tela 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. 34. MOTODEV App Summit 2011 Página 34Tela 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. 35. MOTODEV App Summit 2011 Página 35Telefonia• 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. 36. MOTODEV App Summit 2011 Página 36Telefonia (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. 37. • SDK Honeycomb • targetSdkVersion • Layouts • Tratamento de exceções10 coisas…….. • Modo de compatibilidade • Drawables • Texto • Permissões e features • Mantendo a base de código • SDK Honeycomb
  38. 38. MOTODEV App Summit 2011 Página 3810 coisas que você pode fazer agora mesmo1. 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. 39. MOTODEV App Summit 2011 Página 3910 coisas que você pode fazer (cont.) – Definir targetSdkVersion >= “4” e compilar com SDK >= 1.6 © 2010 Motorola Mobility, Inc.
  40. 40. MOTODEV App Summit 2011 Página 4010 coisas que você pode fazer agora mesmo (cont.)6. Rever gráficos em /res/drawable-<density> © 2010 Motorola Mobility, Inc.
  41. 41. MOTODEV App Summit 2011 Página 4110 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. 42. MOTODEV App Summit 2011 Página 4210 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. 43. MOTODEV App Summit 2011 Página 4310 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. 44. MOTODEV App Summit 2011 Página 4410 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. 45. MOTODEV App Summit 2011 Página 4510 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. 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. 47. MOTODEV App Summit 2011 Página 4710 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. 48. MOTODEV App Summit 2011 Página 4810 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. 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. 50. MOTODEV App Summit 2011 Página 50Widgets 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. 51. MOTODEV App Summit 2011 Página 51Tipos 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. 52. MOTODEV App Summit 2011 Página 52USB 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. 53. MOTODEV App Summit 2011 Página 53MTP/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. 54. MOTODEV App Summit 2011 Página 54 DEMO © 2010 Motorola Mobility, Inc.
  55. 55. MOTODEV App Summit 2011 Página 55Mais 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. 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. 57. MOTODEV App Summit 2011 Página 57 Obrigada!! © 2010 Motorola Mobility, Inc.
  58. 58. MOTODEV App Summit 2011 Página 58AVISOS LEGAISAVISOS SOBRE LICENÇAExceto 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.0Copyright © 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.0Partes 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.

×