59
Anna Schaller Android Technology Evangelists Plataformas y servicios para desarrolladores Motorola Mobility Diseñando aplicaciones para el Motorola XOOM

Diseñando aplicaciones para el Motorola XOOM

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Diseñando aplicaciones para el Motorola XOOM

Anna Schaller Android Technology Evangelists

Plataformas y servicios para desarrolladores

Motorola Mobility

Diseñando aplicaciones para el Motorola XOOM

Page 2: Diseñando aplicaciones para el Motorola XOOM

Bienvenido

© 2010 Motorola Mobility, Inc.

01  Antes  y  ahora    Diseño  de  smartphone  vs.  diseño  de  tablet  

02  Cambios  de  diseño  en  la  interfaz  gráfica  de  la  aplicación    Introducción  a  las  caracterís9cas  de  la  interfaz  gráfica  de  Android  3.0  

03  Cambios  en  gráficos  y  medios    Actualizaciones,  mejoras  e  información  relacionadas  con  el  soporte  de  gráficos  y  medios  

04  CaracterísAcas  de  hardware    Soporte  de  Android  en  el  hardware  de  XOOM  

05  10  cosas  ……    Pasos  fáciles  diseñados  para  adaptar  su  aplicación  al  XOOM.    

Page 3: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 3 Page

© 2010 Motorola Mobility, Inc.

Presentación de la tableta

•  Pantalla: 10,1” diagonales (extra grande), WXGA (1280 x 800), 160 dpi (mdpi)

•  Memoria: 32 GB de almacenamiento flash

•  Procesador: Doble núcleo nVidia Tegra 2

•  Sensores: acelerómetro, barómetro, giroscopio, brújula, luz ambiente, GPS, sin proximidad o vibración, rotación en 4 direcciones

•  Conectividad: 802.11 a/b/g/n, Bluetooth, HDMI

•  Cámara: 2mp con enfoque fijo en la parte frontal / 5mp con enfoque automático en la parte posterior

•  Medios: grabación de video HD 720p, reproducción de HD 1080p

•  Almacenamiento externo: tarjeta SD de 32 GB posterior al lanzamiento

•  Plataforma: Android 3.0 (Honeycomb)

•  Entornos de aplicación: Adobe AIR 2.6, Android, NDK, Flash 10.1

•  Numerosos cambios en el software……..

Page 4: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 4 Page

© 2010 Motorola Mobility, Inc.

¿Adónde se fue todo?

Barra de estado

Tecla Menú

Tecla Inicio Botón Atrás

Botón de bono (comúnmente Buscar)

Teclas de Volumen (arriba/abajo)

Botón de encendido/apagado

Page 5: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 5 Page

© 2010 Motorola Mobility, Inc.

Interacción con la tableta

Teclas de Volumen (arriba/abajo) Botón

Encendido/ apagado

Page 6: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 6 Page

© 2010 Motorola Mobility, Inc.

Interacción (continuación)

Barra del sistema

No hay botón de menú

Page 7: Diseñando aplicaciones para el Motorola XOOM

Página 7

Título de presentación Versión 1.0 24.02.09

Cambios en el diseño de la

interfaz gráfica de la aplicación

•  Tema holográfico

•  Atenuación de la barra del sistema

•  Barra de acciones

•  Fragmentos

•  Nuevos widgets

•  Notificaciones actualizadas

•  Portapapeles del sistema

•  Arrastrar y soltar

Page 8: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 8 Page

© 2010 Motorola Mobility, Inc.

Tema holográfico

•  Heredado por todas las aplicaciones construidas para Android 3.0

•  minSdkVersion o targetSdkVersion = 11 *y* habilita aceleración por hardware (android:hardwareAccelerated="true")

–  Si la versión de SDK <= 9, entonces su aplicación utiliza los diseños de widget de Android 2.3 y no hereda el tema holográfico

•  Existen dos versiones

–  Fondo azul con letras blancas predeterminado @android:style/Theme.Holo

–  Holográfico inverso blanco con letras oscuras @android:style/Theme.Holo.Light

Page 9: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 9 Page

© 2010 Motorola Mobility, Inc.

Atenuación de la barra del sistema

•  Modo de luces apagadas

–  Atenúa la barra del sistema al reemplazar los iconos por “puntos” holográficos (no se elimina la barra del sistema)

! View v = findViewById(R.id.view_id);!

! v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);!

! v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE);!

Page 10: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 10 Page

© 2010 Motorola Mobility, Inc.

Barra de acciones - Simple •  Reemplaza la barra de título tradicional en la parte superior de la

aplicación

•  Icono de aplicación con título •  Menú de desborde

•  La creación de menús no ha cambiado!

public boolean onCreateOptionsMenu(Menu menu) {...}!

!public boolean onOptionsItemSelected(MenuItem item) {!

! ! !case R.id.menu_item ...}!

!/res/menu/menu_definitions.xml!

Page 11: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 11 Page

© 2010 Motorola Mobility, Inc.

Barra de acciones – Dividida en fichas con elementos de acción

•  Se puede hacer que el icono de aplicación cause una acción específica

•  Interfaz dividida en fichas en la barra de acciones

•  Elementos de acción individuales en lugar de aparecer en el menú de desborde

–  Con o sin texto; con o sin icono •  Para administrar la barra de acciones

!ActionBar actionBar = getActionBar();!

!actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);!

•  Consulte android.app.actionbar!

Icono “Accionable” Fichas Elementos de acción

Page 12: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 12 Page

© 2010 Motorola Mobility, Inc.

Cambiando al modo de pantalla completa - quitando la barra de acciones

•  Puede ocultar la barra de acciones; *sin embargo,* su aplicación perderá acceso a su menú

<activity android:theme="@android:style/Theme.NoTitleBar">!

•  Otra manera de ocultar la barra de acciones es programáticamente, permitiendo que el usuario alterne

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

Page 13: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 13 Page

© 2010 Motorola Mobility, Inc.

Menús

•  Para respaldar la compatabilidad con versiones anteriores, se agregó botón de menú en la barra del sistema

–  minSdkVersion y targetSdkVersion < 11

Page 14: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 14 Page

© 2010 Motorola Mobility, Inc.

Fragmentos

•  Permite que una aplicación sea dividida en subcomponentes que se pueden administrar individualmente y combinar de diferentes maneras, como crear una interfaz de usuario de múltiples secciones.

Page 15: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 15 Page

© 2010 Motorola Mobility, Inc.

Fragmentos (continuación)

•  Un fragmento siempre debe estar incrustado en una Actividad

Fragmento de lista

Fragmento

Actividad

Page 16: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 16 Page

© 2010 Motorola Mobility, Inc.

Fragmentos (fragmento base)

•  Crear clase que extienda el Fragment!

•  Muestra contenido similar a una Activity (imágenes, texto, widgets de aplicación)

•  No se puede adjuntar a otro fragmento o ficha

•  Puede agregar elementos al menú de desborde de la Activity (barra de acciones)

•  No tiene que estar visible (puede funcionar como proceso de fondo)

•  Si está visible, requerirá su propio archivo de diseño

Fragmento (base)

Page 17: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 17 Page

© 2010 Motorola Mobility, Inc.

Fragmentos (adición a una actividad)

XOOM_hc_app /res/layout/main.xml

Fragmento (de lista)

Diseño de la Activity

Fragmento (de contenido) con imagen incrustada

PictureList.java

ContentFragment.java

Page 18: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 18 Page

© 2010 Motorola Mobility, Inc.

Fragmentos (continuación) •  Información práctica sobre los Fragmentos en la Guía del desarrollador 3.0

•  Consulte la Referencia de 3.0 para las API

•  android.app.Fragment!

•  android.app.ListFragment!

•  Muestra una lista similar a ListActivity

•  android.app.DialogFragment !

•  Muestra un cuadro de diálogo flotante!

•  android.app.FragmentManager

•  Interfaz para interactuar con el fragmento (findFragmentById)

•  android.app.FragmentTransaction !

•  APIs para operaciones con fragmentos (agregar, quitar, reemplazar, ocultar, mostrar)!

•  Publicación en blog The Android 3.0 Fragments API

–  más detalles sobre los Fragmentos para todas las versiones de Android 1.6 y superiores

Page 19: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 19 Page

© 2010 Motorola Mobility, Inc.

Nuevas vistas

•  Widgets de aplicación

•  Menú emergente (android.widget.PopupMenu)

•  El menú se adjunta a una vista (botón por ejemplo)

•  Widgets de la pantalla de inicio

–  Vista de pila (android.widget.StackView)

•  Una vista que muestra sus niveles inferiores en una pila 3D y permite a los usuarios pasar discretamente por los niveles inferiores.

•  Notificaciones enriquecidas (android.app.Notification.Builder)

–  construir diseños de

notificaciones

Page 20: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 20 Page

© 2010 Motorola Mobility, Inc.

Ejemplo de funcionamiento

•  La Galería de Honeycomb en muestras de SDK exhibe…..

–  Barra de acciones con interfaz dividida en fichas, menú de elementos de acción y menú de desborde

–  Lista de fragmentos y fragmento en orientación vertical y horizontal

–  Nuevo tema

–  Arrastrar y soltar

–  Animación

–  Ocultar/Mostrar

Barra de acciones

–  Modo

Luces apagadas

Page 21: Diseñando aplicaciones para el Motorola XOOM

Título de presentación Versión 1.0 24.02.09

Gráficos y multimedia

•  Aceleración por hardware para gráficos 2D

•  Compresión de textura

•  Nueva estructura de animaciones

•  Soporte de medios

Page 22: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 22 Page

© 2010 Motorola Mobility, Inc.

Aceleración por hardware •  Soporte integrado para aceleración en un subconjunto de gráficos 2D

(API Canvas) •  Globalmente para toda la aplicación o para Activity individual al

establecer el nodo apropiado en el manifiesto

•  android:hardwareAccelerated="true"!

•  Localmente en cada Activity y/o ventana programáticamente a través de WindowManager.LayoutParams!

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

•  Realice una prueba para determinar si canvas es acelerado por hardware con isHardwareAcclerated()!

Page 23: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 23 Page

© 2010 Motorola Mobility, Inc.

Compresión de textura

•  Diferentes chipsets admiten diferentes tipos de compresión •  Formatos para móvil:

–  Soporte de ETC1 en todos los dispositivos Android con OpenGL ES 2.0 pero sin canal alfa

–  PVRTC (GPU PowerVR SGX 530 de Imagination Technologies)

–  ATITC (GPU Adreno de Qualcomm)

–  S3TC o DXT1, 3, 5 (GPU nVidia) •  Solución: filtrado de compresión de textura

<supports-gl-textures android:name="string">!

donde string es la extensión de OpenGL ES para un tipo de compresión

por ejemplo android:name="GL_EXT_texture_compression_s3tc"!

Page 24: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 24 Page

© 2010 Motorola Mobility, Inc.

Compresión de textura (continuación)

•  Funciona con todos los niveles de API, no sólo con Honeycomb •  Se debe definir una etiqueta para cada formato admitido •  Lista de tipos de compresión admitidos en la Guía del desarrollador

Android – Tags del Manifiesto de Android http://developer.android.com/guide/topics/manifest/supports-gl-texture-element.html

•  Para las herramientas, consulte el artículo técnico de MotoDev en http://developer.motorola.com/docstools/library/understanding-texture-compression/

Page 25: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 25 Page

© 2010 Motorola Mobility, Inc.

Animación Dos sistemas de animación entre los que puede elegir:

1.  Animaciones de vistas (android.view.animation)

–  Animaciones de interpolaciones •  Realiza una serie de transformaciones simples en el contenido de un objeto View. •  Las transiciones básicas incluyen rotación, desvanecimiento, movimiento y ampliación en un

gráfico. –  Animaciones en cuadros

•  La animación cuadro por cuadro le permite cargar una serie de recursos Drawables uno tras otro para crear una animación.

2.  Animaciones de propiedades (android.animation // nuevo en honeycomb)

–  Puede animar casi todo (¡como los drawables, no solamente vistas!)

–  Extiende el conjunto de propiedades que se pueden animar (agrupar y reproducir)

–  Las animaciones de vistas son más sencillas y rápidas, las animaciones de propiedades hacen más

–  Consulte http://developer.android.com/guide/topics/graphics/animation.html

Page 26: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 26 Page

© 2010 Motorola Mobility, Inc.

Soporte de medios -- Colocando contenido en el dispositivo

•  Transferencia de archivos de medios digitales

–  Soporte integrado para el Protocolo de transporte de medios/imágenes (MTP/PTP).

–  El usuario conecta el cable USB y se inicia la aplicación Transferencia de archivos de Android.

–  Los usuarios pueden copiar fotografías, películas, videos, tonos de timbre, podcasts y más en carpetas predefinidas, o crear nuevas carpetas para otros contenidos.

Page 27: Diseñando aplicaciones para el Motorola XOOM

Hardware •  Sensores

•  Cámara

•  Pantalla táctil

•  Telefonía

Page 28: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 28 Page

© 2010 Motorola Mobility, Inc.

Sensores

•  Acelerómetro, giroscopio, magnetómetro, barómetro, brújula, luz ambiente, GPS, sin sensor de proximidad, sin vibración

•  Orientación del dispositivo

–  La orientación natural es horizontal con rotación en 4 direcciones

-ye

+yes

+x

-x

+z

+ye

+ye -x +x

-ye

-ye

+x

-x

Rotación 0 Rotación 0 Rotación 90

Page 29: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 29 Page

© 2010 Motorola Mobility, Inc.

Sensores (continuación)

•  Utilice android.view.Display.getRotation() para obtener la dirección actual

•  Adjust x/y values for all four rotation types

–  ROTATION_0

–  ROTATION_90

–  ROTATION_180

–  ROTATION_270 •  Consulte la muestra AccelerometerPlay en el SDK •  Más detalles en la publicación del blog de Android

One Screen Turn Deserves Another •  Si necesita evitar que su aplicación gire, bloquéela en orientación

natural con

<activity android:orientation="nosensor" />!

Page 30: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 30 Page

© 2010 Motorola Mobility, Inc.

Página

Versión 1.0 © 2010 Motorola Mobility, Inc.

Sensores -- lectura del sensor de barómetro // www.engineeringtoolbox.com/air-altitude-pressure-d_462.html!// reducir en ~ 1,2 gm/cm2 por cada ganancia de 10 metros!// en la elevación!

Page 31: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 31 Page

© 2010 Motorola Mobility, Inc.

Cámaras

•  2 cámaras disponibles – parte frontal y parte posterior

–  5 mp, enfoque automático en la parte posterior

–  2 mp, enfoque fijo en la parte frontal •  Se agregó soporte para dos cámaras en Gingerbread (2.3) •  La cámara posterior es la principal, de modo que el filtrado se basa en

las funciones de la cámara posterior (por ejemplo 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: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 32 Page

© 2010 Motorola Mobility, Inc.

Cámara (continuación) 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);!! ! // hacer algo con cámara frontal!

} else if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {! mCamera = Camera.open(i);!! ! // hacer algo con cámara posterior! }! }!}!

Page 33: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 33 Page

© 2010 Motorola Mobility, Inc.

Pantalla táctil •  android.hardware.touchscreen.multitouch (API nivel 7)

–  Admite toque con 2 dedos •  android.hardware.touchscreen.distinct (API nivel 8)

–  Admite el rastreo de 2 o más dedos completamente independiente •  android.hardware.touchscreen.multitouch.jazzhands (API nivel 9)

–  Admite el rastreo de 5 o más dedos completamente independiente (toque de 10 dedos)

–  Establezca la etiqueta <uses-feature> para filtrar en dispositivos que admitan esto (como el XOOM)

Page 34: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 34 Page

© 2010 Motorola Mobility, Inc.

Pantalla táctil (continuación)

•  Debido a que el XOOM no tiene un teclado físico, la superficie táctil es el principal punto de contacto para los usuarios

•  Asegúrese de entender cómo funcionan los toques •  Siga utilizando el escuchador de eventos onTouch con MotionEvents

•  MotionEvent.getPointerCount() devuelve el número de puntos de toque

•  MotionEvent.getPointerId() le permite rastrear dedos individuales •  Consulte la publicación de blog de Adam Powell en

Making Sense of Multitouch

Page 35: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 35 Page

© 2010 Motorola Mobility, Inc.

Telefonía

•  Perspectiva del dispositivo

–  Los dispositivos CDMA, UMTS/GMS tienen un radio para admitir redes 4G/LTE

•  Se admite subconjunto de la estructura de telefonía (android.telephony.TelephonyManager)

•  Perspectiva de la aplicación

–  No se admite la función de telefonía <uses-feature android:name="android.hardware.telephony"! ! ! !android:required="true"/>!

•  Múltiple configuraciones para XOOM

–  CDMA, UMTS/GSM, WiFi-only

•  La información de TelephonyManager.getDeviceId() no será igual

–  Normalmente devuelve IMEI o MIED: el dispositivo WiFi devuelve null

Page 36: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 36 Page

© 2010 Motorola Mobility, Inc.

Telefonía (continuación) •  Obtención de identificadores únicos: Piense en para qué obtendrá los datos. ¿Intenta

llevar un registro del hardware o de la aplicación?

–  El rastreo de hardware necesita que sean persistentes ante un restablecimiento de fábrica.

–  El rastreo de aplicación necesita restablecimiento de valores cuando hay un restablecimiento de fábrica.

•  Dirección Mac (no recomendado)

–  No todos los dispositivos tienen WiFi. Además, si el WiFi no está activado, el hardware podría no reportar la dirección Mac.

•  Número de serie (no recomendado)

–  Sólo se garantiza en dispositivos sin telefonía.

•  ANDROID_ID (probablemente su mejor opción para el rastreo de aplicación)

–  Se genera y almacena cuando el dispositivo se inicializa por primera vez. Se restablece cuando el dispositivo se borra.

–  No se garantiza en dispositivos anteriores a Android 2.2

•  Planifique para contingencia

Page 37: Diseñando aplicaciones para el Motorola XOOM

10 cosas……..

•  SDK de Honeycomb

•  targetSdkVersion

•  Diseños

•  Manejo de excepciones

•  Modo de compatibilidad

•  Drawables

•  Texto

•  Permisos y funciones

•  Mantenimiento de la base de códigos

•  SDK de Honeycomb

Page 38: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 38 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato

1.  Descargar el SDK de Honeycomb (y las herramientas actualizadas) y realizar un recorrido de prueba para su aplicación en el emulador.

2.  Cambiar targetSdkVersion a “11” y ver lo que cambia. 3.  Agregar las carpetas /res/layout-xlarge y /res/layout-

xlarge-port a su proyecto con diseños optimizados para la pantalla más grande.

4.  Actualizar el manejo de errores para salir honrosamente en lugar de mostrar "la aplicación no responde" por opción predeterminada o dejar colgado al usuario.

5.  Verificar si la aplicación se está ejecutando en el “modo de compatibilidad”.

a.  minSdkVersion=“3” sin targetSdkVersion; construir para 1.5

b.  minSdkVersion=“3” y targetSdkVersion=“3”; construido para cualquier SDK > 1.5

c.  “Efecto shadowbox”

Page 39: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 39 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer (continuación)

–  Establezca targetSdkVersion >= “4” y construya para SDK >= 1.6

Page 40: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 40 Page

© 2010 Motorola Mobility, Inc.

6.  Vuelva a ver sus gráficos en /res/drawable-<density>.

10 cosas que puede hacer de inmediato (continuación)

Page 41: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 41 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato (continuación)

•  Utilice la herramienta 9-patch para crear una región “ampliable”

•  Coloque el fondo en ImageView y establecer scaleType=centerCrop!

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

Page 42: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 42 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato (continuación)

•  Las imágenes basadas en patrón se pueden mostrar en mosaico

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

Page 43: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 43 Page

© 2010 Motorola Mobility, Inc.

•  Leer createScaledBitmap() utilizando las dimensiones de DisplayMetrics!

!BitmapDrawable backgroundImage = !! ! (BitmapDrawable)getResources().getDrawable ! !

! (R.drawable.background);!!Bitmap backgroundBitmap = backgroundImage.getBitmap();!!backgroundBitmap = Bitmap.createScaledBitmap ! !

! ! !(backgroundBitmap,!! ! ! dm.widthPixels,    // mostrar ancho de métricas!! ! ! dm.heightPixels,   // mostrar alto de métricas!

  ! ! ! true);             // habilitar filtrado!

10 cosas que puede hacer de inmediato (continuación)

Page 44: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 44 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato (continuación)

7.  Verificar que su texto sea legible y fluya adecuadamente en la pantalla más grande.

–  Con más definición (1280 x 800), optimice el texto para aprovechar el espacio

Page 45: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 45 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato (continuación)

•  Cree 2 etiquetas <dimens> diferentes en /res/values y /res-values-xlarge con 2 tamaños de fuente diferentes (ambas en unidades de sp)

•  Agregue @dimen/<variable> a la propiedad <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: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 46 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato (continuación) 8.  Verificar sus permisos y la etiqueta <uses-feature> que podría filtrar

su aplicación del mercado.

–  Los permisos no filtran su aplicación, la etiqueta <uses-feature> sí.

–  El XOOM no tiene telefonía…bueno, relativamente. <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: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 47 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato (continuación)

•  Debe establecer explícitamente android:required="false" si desea ver la aplicación en el XOOM

–  Ejecute la herramienta aapt en su apk para mostrar funciones explícitas

$ 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’ <. . .>

–  Ejecute MOTODEV App Validator para mostrar funciones implícitas. •  http://developer.motorola.com/testing/app-validator/

Page 48: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 48 Page

© 2010 Motorola Mobility, Inc.

10 cosas que puede hacer de inmediato (continuación)

9.  Determinar cómo administrar su base de códigos. La recomendación oficial es mantener un enfoque binario individual. Recuerde que la biblioteca de compatibilidad le permite usar fragmentos hasta en 1.6.

10.  Descargar el SDK de Honeycomb (y las herramientas actualizadas) y realizar un recorrido de prueba para su aplicación en el emulador.

Page 49: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 49 Page

© 2010 Motorola Mobility, Inc.

Android 3.1 API Nivel 12

•  Widgets de tamaño variable

•  Entrada y Movimiento

•  API de USB

•  Soporte a MTP/PTP

•  Real-time Transport Protocol (RTP)

•  API Fragment Breadcrumbs

Page 50: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 50 Page

© 2010 Motorola Mobility, Inc.

Widgets de tamaño variable •  Los widgets de Homescreen tienen tamaño variable

–  horizontalmente, verticalmente, o en los dos ejes •  Define un atributo resizemode en el metadato AppWidgetProviderInfo de los widgets

<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: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 51 Page

© 2010 Motorola Mobility, Inc.

Eventos de Entrada y de Movimiento

•  El sistema de eventos de entrada fue extendido para soportar una variedad de fuentes de entrada nuevas y eventos de movimiento, a través de todas las vistas e ventanas

•  Para entrada del mouse y de dispositivos apuntadores, la plataforma soporta dos nuevos eventos de movimiento

•  ACTION_SCROLL (horizontal o vertical) proporciona la ubicación del puntero adonde el movimiento de scroll ocurrió, cómo de un scrollwheel

•  ACTION_HOVER_MOVE informa la ubicación del mouse cuándo no se pulsan los botones

•  Eventos de movimiento de joysticks, gamepads, mouse y trackballs no son eventos táctiles

–  Nuevo método de retrollamada pasándolos a una vista (“View “) como eventos “genéricos” de movimiento a través de una llamada a onGenericMotionEvent(), en vez de llamar a onTouchEvent()!

Page 52: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 52 Page

© 2010 Motorola Mobility, Inc.

API de USB •  Compatibilidad integrada con la plataforma para USB “host mode” y

expone una API que permite que aplicaciones manegen los periféricos conectados –  El “host mode” se basa en el controlador de hardware USB adecuado en el

dispositivo Android

–  En dispositivos que soportan “host mode”, como el XOOM, las aplicaciones pueden utilizarse de la API para identificar y comunicarse con los dispositivos conectados

•  También existe soporte para dos tipos básicos de hardware conectados (depende se el dispositivo Android está actuando como host) –  dispositivo USB: hardware conectado que depende del dispositivo Android

para servir como host (cámaras, teclados, mouse)

–  accesorio USB: hardware conectado que tiene un USB “host controller” (robótica)

•  Las API de USB APIs están disponibles en el paquete android.hardware.usb

Page 53: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 53 Page

© 2010 Motorola Mobility, Inc.

Soporte a MTP/PTP

•  Nuevo paquete android.mtp

–  Clases MtpDevice, MtpDeviceInfo, MtpConstants!•  Las API permiten que aplicaciones interactúen directamente con

cámaras y otros dispositivos PTP (“Picture Transfer Protocol”) conectados en el USB “host bus”

–  Instancie un objeto MtpDevice referenciando un UsbDevice conectados!

–  Abre la conexión y transfiere los datos

–  Obtiene información sobre el dispositivo e objetos almacenados en él

–  Recibe notificaciones cuándo dispositivos estén conectados o quitados!•  La aplicación Gallery ahora soporta PTP, para que los usuarios puedan

conectar sus cámaras a través de USB e importar imágenes para el Galery con un solo toque

Page 54: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 54 Page

© 2010 Motorola Mobility, Inc.

DEMO

Page 55: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 55 Page

© 2010 Motorola Mobility, Inc.

Más información: developer.motorola.com

•  Herramientas

–  MOTODEV Studio: IDE basado en eclipse con funciones adicionales (localización de cadenas de texto, administrador de base de datos)

–  App Validator: herramienta en línea para las pruebas previas de las aplicaciones Android para verificar su compatibilidad con los dispositivos

•  Artículos técnicos

–  Motorola XOOM Programming Tips (Consejos prácticos de programación para Motorola XOOM)

–  Understanding Texture Compression (Entendiendo la compresión de textura)

•  Especificaciones del producto

–  http://developer.motorola.com/products/xoom/ •  Paneles de discusión

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

Page 56: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 56 Page

© 2010 Motorola Mobility, Inc.

¿Desea  formular  alguna  pregunta?

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

community.developer.motorola.com

Page 57: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 57 Page

© 2010 Motorola Mobility, Inc.

gracias

horario  comercial  XXX  junio  ?,  ??horario  a.m.  de  la9noamérica    

moto.ly/officehours/???

Page 58: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 58 Page

© 2010 Motorola Mobility, Inc.

LEGAL INFORMACIÓN DE LA LICENCIA

Con excepción de dónde se especifique, el código de fuente de muestra escrito por Motorola Mobility Inc. y a usted suministrado tiene la licencia que a continuación se describe.

Copyright © 2010-2011, Motorola, Inc. Todos los derechos reservados, salvo que se indique explícitamente lo contrario. •  Se permite la redistribución y el uso en forma de fuente o binaria, con o sin modificación, siempre y cuando se cumplan las siguientes condiciones: •  Las redistribuciones del código fuente deben conservar el aviso de derechos de autor arriba mencionado, la presente lista de condiciones y el siguiente

descargo de responsabilidad. •  Las redistribuciones en forma binaria deben reproducir el aviso de derechos de autor arriba mencionado, la presente lista de condiciones y el siguiente descargo

de responsabilidad en la documentación y/u otros materiales suministrados con la distribución.

Ni el nombre de Motorola, Inc. ni los nombres de sus distribuidores pueden usarse para avalar o promover productos que deriven de este software sin previa autorización específica por escrito.

EL PRESENTE SOFTWARE SE SUMINISTRA POR LOS TITULARES Y CONTRIBUYENTES DE LOS DERECHOS DE AUTOR EN EL ESTADO EN QUE SE ENCUENTRA Y SE EXCLUYE CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA, INCLUIDAS, A TÍTULO ENUNCIATIVO, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD Y APTITUD PARA UN FIN PARTICULAR. EN NINGÚN CASO PODRÁ EL TITULAR DE LOS DERECHOS DE AUTOR O LOS CONTRIBUYENTES SER RESPONSABLE POR NINGÚN DAÑO Y PERJUICIO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, PUNITIVO, O CONSECUENCIAL (A TÍTULO ENUNCIATIVO DE ABASTECIMIENTO DE BIENES O SERVICIOS DE SUSTITUCIÓN; PÉRDIDA DE USO, DATOS O GANANCIAS O INTERRUPCIÓN DE ACTIVIDADES) INDEPENDIENTEMENTE DE SU ORIGEN Y DE TODA TEORÍA DE RESPONSABILIDAD, YA SEA EN EL CONTRATO, LA RESPONSABILIDAD ESTRICTA O POR LESIÓN JURÍDICA (INCLUSO NEGLIGENCIA O DE OTRO MODO) QUE SURJA DE ALGUNA MANERA DEL USO DE ESTE SOFTWARE, INCLUSO SI SE ADVIRTIÓ DE LA POSIBILIDAD DE DICHO DAÑO.

Otro código fuente mostrado en la presentación podrá ofrecerse bajo otras licencias.

Apache 2.0 Copyright © 2010, Proyecto Código Abierto Android. Todos los derechos reservados, salvo indicación expresa en contrario. Con licencia de Apache, Versión 2.0 (la "Licencia"); no podrá usar este archivo, salvo que cumpla con lo que establece la licencia. Puede obtener una copia de la

licencia en http://www.apache.org/licenses/LICENSE-2.0. Salvo que lo exija la legislación vigente o se preste conformidad por escrito, el software distribuido bajo licencia, se distribuye "EN EL ESTADO EN QUE SE

ENCUENTRA" SIN GARANTÍAS DE NINGÚN TIPO, explícitas o implícitas. Consulte la Licencia para ver los permisos y las limitaciones que rigen para la Licencia según el idioma específico.

Creative Commons 3.0 Attribution License Partes de esta presentación se reprodujeron de un trabajo creado y compartido con Google (http://code.google.com/policies.html) y se usaron conforme a los

términos descritos en Creative Commons 3.0 Attribution License (http://creativecommons.org/licenses/by/3.0/).

Page 59: Diseñando aplicaciones para el Motorola XOOM

MOTODEV App Summit 2011 59 Page

© 2010 Motorola Mobility, Inc.