Desenvolvimento de aplicativos para o tablet Motorola XOOM

Post on 27-May-2015

4691 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

Transcript

Anna SchallerEvangelistas da tecnologia Android

Plataformas e serviços para desenvolvedores

Motorola Mobility

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

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……..

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

MOTODEV App Summit 2011 5Página

© 2010 Motorola Mobility, Inc.

Interação com o tablet

Volume Teclas(para cima/baixo)

liga/desligaBotão

MOTODEV App Summit 2011 6Página

© 2010 Motorola Mobility, Inc.

Interação (cont.)

Barra de sistema

Não éumbotão de menu

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

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

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

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

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

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

}

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

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.

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

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)

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

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

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

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

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

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

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”

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/

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

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.

Hardware• Sensores

• Câmera

• Tela de toque

• Telefonia

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

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

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

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

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

}}

}

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)

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

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

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

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

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”

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

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

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

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

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

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)

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>

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*

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

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.

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

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>

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

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

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

MOTODEV App Summit 2011 54Página

© 2010 Motorola Mobility, Inc.

DEMO

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/

MOTODEV App Summit 2011 56Página

© 2010 Motorola Mobility, Inc.

Perguntas?

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

community.developer.motorola.com

MOTODEV App Summit 2011 57Página

© 2010 Motorola Mobility, Inc.

Obrigada!!

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

top related