desenvolvimento de aplicativos para o tablet motorola xoom

58
Anna Schaller Evangelistas da tecnologia Android Plataformas e serviços para desenvolvedores Motorola Mobility Desenvolvimento de aplicativos para o tablet Motorola XOOM

Upload: motorola-mobility-motodev

Post on 27-May-2015

4.691 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Desenvolvimento de aplicativos para o tablet Motorola XOOM

Anna SchallerEvangelistas da tecnologia Android

Plataformas e serviços para desenvolvedores

Motorola Mobility

Desenvolvimento de aplicativos para o tablet Motorola XOOM

Page 2: Desenvolvimento de aplicativos para o tablet Motorola XOOM

Bem-vindo

© 2010 Motorola Mobility, Inc.

01 Antes e agoraDesign do smartphone versus design do tablet

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

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

04 Recursos de hardwareSuporte ao Android no hardware do XOOM

05 10 coisas……10 Passos fáceis para colocar o seu aplicativo no XOOM

Page 3: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 3Página

© 2010 Motorola Mobility, Inc.

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, HDMI

• Câmera: 2 mp foco fixo dianteira / 5 mpautofoco traseira

• Mídia: gravação em vídeo HD 720p, reprodução HD 1080p

• Armazenamento externo: cartão SD de 32 GB post-launch

• Plataforma: Android 3.0 (Honeycomb)

• Ambientes de aplicativo: Adobe AIR 2.6, Android, NDK, Flash 10.1

• Muitas alterações de software……..

Page 4: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 4Página

© 2010 Motorola Mobility, Inc.

Para onde foi tudo?

Barra de status

Tecla de menu

Tecla de início Botão Voltar

Botão de bônus(geralmente pesquisa)

Teclas Teclas de(para cima/baixo)

Botão liga/desliga

Page 5: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 5Página

© 2010 Motorola Mobility, Inc.

Interação com o tablet

Volume Teclas(para cima/baixo)

liga/desligaBotão

Page 6: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 6Página

© 2010 Motorola Mobility, Inc.

Interação (cont.)

Barra de sistema

Não éumbotão de menu

Page 7: Desenvolvimento de aplicativos para o tablet Motorola XOOM

Página 7

Título da apresentação Versão 1.0 02.24.09

Mudanças no designda IU de aplicativos

• Tema holográfico

• Escurecimento da barra de sistema

• Barra de ações

• Fragmentos

• Novos widgets

• Notificações atualizadas

• Área de transferência do sistema

• Arrastar e soltar

Page 8: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 8Página

© 2010 Motorola Mobility, Inc.

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

Page 9: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 9Página

© 2010 Motorola Mobility, Inc.

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);

Page 10: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 10Página

© 2010 Motorola Mobility, Inc.

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

Page 11: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 11Página

© 2010 Motorola Mobility, Inc.

Barra de ações – Abas com itens de ação

• 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

“acionável”Ícone Abas Itens de ação

Page 12: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 12Página

© 2010 Motorola Mobility, Inc.

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();

}

Page 13: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 13Página

© 2010 Motorola Mobility, Inc.

Menus

• Para aceitar compatibilidade retroativa, o botão de menu de software foi adicionado junto à barra de sistema

– minSdkVersion e targetSdkVersion < 11

Page 14: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 14Página

© 2010 Motorola Mobility, Inc.

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.

Page 15: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 15Página

© 2010 Motorola Mobility, Inc.

Fragmentos (cont.)

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

ListaFragmento

Fragmento

Atividade

Page 16: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 16Página

© 2010 Motorola Mobility, Inc.

Fragmentos (fragmento de base)

• Crie classe que estendaFragments

• 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

Fragmento (base)

Page 17: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 17Página

© 2010 Motorola Mobility, Inc.

Fragmentos (adição a uma atividade)

XOOM_hc_app/res/layout/main.xml

(Lista)Fragmento

Layout da atividade

(Conteúdo)Fragmentocom inclusão deimagem

PictureList.java

ContentFragment.java

Page 18: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 18Página

© 2010 Motorola Mobility, Inc.

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 posterior

Page 19: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 19Página

© 2010 Motorola Mobility, Inc.

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

Page 20: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 20Página

© 2010 Motorola Mobility, Inc.

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

Page 21: Desenvolvimento de aplicativos para o tablet Motorola XOOM

Título da apresentação Versão 1.0 02.24.09

Gráficos e multimídia

• Aceleração de hardware para gráficos 2D

• Compressão de texturas

• Novo framework de animação

• Suporte a mídia

Page 22: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 22Página

© 2010 Motorola Mobility, Inc.

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 comisHardwareAcclerated()

Page 23: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 23Página

© 2010 Motorola Mobility, Inc.

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 massem 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”

Page 24: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 24Página

© 2010 Motorola Mobility, Inc.

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/

Page 25: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 25Página

© 2010 Motorola Mobility, Inc.

Animaçã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

Page 26: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 26Página

© 2010 Motorola Mobility, Inc.

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.

Page 27: Desenvolvimento de aplicativos para o tablet Motorola XOOM

Hardware• Sensores

• Câmera

• Tela de toque

• Telefonia

Page 28: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 28Página

© 2010 Motorola Mobility, Inc.

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

+yes

+x

-x

+z

+ye

+ye-x +x

-ye

-ye

+x

-x

Rotação 0 Rotação 0Rotação 90

Page 29: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 29Página

© 2010 Motorola Mobility, Inc.

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” />

Page 30: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 30Página

© 2010 Motorola Mobility, Inc.

Página

Versão 1.0© 2010 Motorola Mobility, Inc.

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

Page 31: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 31Página

© 2010 Motorola Mobility, Inc.

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> />

Page 32: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 32Página

© 2010 Motorola Mobility, Inc.

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

}}

}

Page 33: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 33Página

© 2010 Motorola Mobility, Inc.

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)

Page 34: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 34Página

© 2010 Motorola Mobility, Inc.

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

Page 35: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 35Página

© 2010 Motorola Mobility, Inc.

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

Page 36: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 36Página

© 2010 Motorola Mobility, Inc.

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 compartilhadode preferências

– Por exemplo: uniqueID = UUID.randomUUID.toString()

Page 37: Desenvolvimento de aplicativos para o tablet Motorola XOOM

10 coisas……..

• SDK Honeycomb

• targetSdkVersion

• Layouts

• Tratamento de exceções

• Modo de compatibilidade

• Drawables

• Texto

• Permissões e features

• Mantendo a base de código

• SDK Honeycomb

Page 38: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 38Página

© 2010 Motorola Mobility, Inc.

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”

Page 39: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 39Página

© 2010 Motorola Mobility, Inc.

10 coisas que você pode fazer (cont.)

– Definir targetSdkVersion >= “4” e compilar com SDK >= 1.6

Page 40: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 40Página

© 2010 Motorola Mobility, Inc.

6. Rever gráficos em /res/drawable-<density>

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

Page 41: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 41Página

© 2010 Motorola Mobility, Inc.

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

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

Page 42: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 42Página

© 2010 Motorola Mobility, Inc.

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

• Imagens padronizadas podem ser colocadas lado a lado

– /res/layout/main.xml

<LinearLayoutandroid:background=“@drawable/background”

– /res/layout/background.xml

<bitmapxmlns:android=

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

Page 43: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 43Página

© 2010 Motorola Mobility, Inc.

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étricadm.heightPixels, // exibir altura de métricatrue); // ativar filtragem

Page 44: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 44Página

© 2010 Motorola Mobility, Inc.

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)

Page 45: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 45Página

© 2010 Motorola Mobility, Inc.

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>

Page 46: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 46Página

© 2010 Motorola Mobility, Inc.

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” /><uses-permission android:name=“WRITE_APN_SETTINGS” /><uses-permission android:name=“WRITE_SMS” />

<uses-feature android:name=“android.hardware.telephony”android:required=“true”/>

*implica*

Page 47: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 47Página

© 2010 Motorola Mobility, Inc.

– 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.apkpackage: 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/

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

Page 48: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 48Página

© 2010 Motorola Mobility, Inc.

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.

Page 49: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 49Página

© 2010 Motorola Mobility, Inc.

Android 3.1API Level 12

• Widgets redimensionáveis

• Entrada e movimento

• USB APIs

• Suporte a MTP/PTP

• Real-Time Transport Protocol (RTP)

• Fragment Breadcrumbs

Page 50: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 50Página

© 2010 Motorola Mobility, Inc.

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>

Page 51: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 51Página

© 2010 Motorola Mobility, Inc.

Tipos de Entrada e Eventos de Movimento

• Sistema de eventos de entrada foi extendido para suportar umavariedade de novas fontes de entrada e de movimento, em todas as views e janelas

• Para entradas via mouse e trackball, a plataforma suporta dois novoseventos 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 nenhumbotão foi pressionado

• Eventos de movimento de joysticks, gamepads, mouse e trackballs nãosão considerados eventos de toque

– Novo método de callback para que estes sejam passados para Views comoeventos de movimento “genéricos” através de uma chamada paraonGenericMotionEvent(), ao invés de onTouchEvent()

Page 52: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 52Página

© 2010 Motorola Mobility, Inc.

USB APIs• Suporte embutido da plataforma para USB em modo servidor que

oferece um API aos desenvolvedores que permite que os aplicativosgerenciem 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, aplicativospodem usar a API para identificar e se comunicar com os dispositivosconectados

• 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 dispositivoAndroid atuando como servidor (câmeras, teclado, mouse)

– Acessório USB: hardware conectado que possui um servidor controladorUSB (robôs)

• As APIs USB estão disponíveis no pacote android.hardware.usb

Page 53: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 53Página

© 2010 Motorola Mobility, Inc.

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

Page 54: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 54Página

© 2010 Motorola Mobility, Inc.

DEMO

Page 55: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 55Página

© 2010 Motorola Mobility, Inc.

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

- http://community.developer.motorola.com/

Page 56: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 56Página

© 2010 Motorola Mobility, Inc.

Perguntas?

Brasil - #appsum11brArgentina - #appsum11arMéxico - #appsum11mx

community.developer.motorola.com

Page 57: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 57Página

© 2010 Motorola Mobility, Inc.

Obrigada!!

Page 58: Desenvolvimento de aplicativos para o tablet Motorola XOOM

MOTODEV App Summit 2011 58Página

© 2010 Motorola Mobility, Inc.

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.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/).