Contenu connexe Similaire à Diseñando apps para Motorola XOOM Similaire à Diseñando apps para Motorola XOOM (20) Plus de Motorola Mobility - MOTODEV Plus de Motorola Mobility - MOTODEV (20) Diseñando apps para Motorola XOOM1. Motorola Mobility
Anna Schaller
Android Technology Evangelists
Plataformas y servicios para desarrolladores
Diseñando aplicaciones para el
Motorola XOOM
2. Bienvenido
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.
© 2010 Motorola Mobility, Inc.
3. MOTODEV App Summit 2011 Page 3
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 • Plataforma: Android 3.0
(Honeycomb)
• Conectividad: 802.11 a/b/g/n, Bluetooth,
HDMI • Entornos de aplicación:
Adobe AIR 2.6, Android,
• Cámara: 2mp con enfoque fijo en la parte
NDK, Flash 10.1
frontal / 5mp con enfoque automático en la
parte posterior • Numerosos cambios en el
software……..
• Medios: grabación de video HD 720p,
reproducción de HD 1080p
• Almacenamiento externo: tarjeta SD de 32
GB posterior al lanzamiento © 2010 Motorola Mobility, Inc.
4. MOTODEV App Summit 2011 Page 4
¿Adónde se fue todo?
Botón de encendido/apagado
Barra de estado
Teclas de Volumen
(arriba/abajo)
Tecla Menú
Botón de bono
(comúnmente Buscar)
Tecla Inicio Botón Atrás
© 2010 Motorola Mobility, Inc.
5. MOTODEV App Summit 2011 Page 5
Interacción con la tableta
Teclas de
Volumen
(arriba/abajo) Botón
Encendido/
apagado
© 2010 Motorola Mobility, Inc.
6. MOTODEV App Summit 2011 Page 6
Interacción (continuación)
No hay
botón
de
menú
Barra del sistema © 2010 Motorola Mobility, Inc.
7. Página 7
• Tema holográfico
Cambios en el diseño • Atenuación de la barra del
de la sistema
interfaz gráfica de la • Barra de acciones
aplicación • Fragmentos
• Nuevos widgets
• Notificaciones actualizadas
• Portapapeles del sistema
• Arrastrar y soltar
Título de presentación Versión 1.0 24.02.09
8. MOTODEV App Summit 2011 Page 8
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
© 2010 Motorola Mobility, Inc.
9. MOTODEV App Summit 2011 Page 9
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);!
© 2010 Motorola Mobility, Inc.
10. MOTODEV App Summit 2011 Page 10
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!
© 2010 Motorola Mobility, Inc.
11. MOTODEV App Summit 2011 Page 11
Barra de acciones – Dividida en fichas con elementos de
acción
Icono
Fichas Elementos de acción
“Accionable”
• 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! © 2010 Motorola Mobility, Inc.
12. MOTODEV App Summit 2011 Page 12
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();!
}!
© 2010 Motorola Mobility, Inc.
13. MOTODEV App Summit 2011 Page 13
Menús
• Para respaldar la compatabilidad con versiones anteriores, se agregó
botón de menú en la barra del sistema
– minSdkVersion y targetSdkVersion < 11
© 2010 Motorola Mobility, Inc.
14. MOTODEV App Summit 2011 Page 14
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.
© 2010 Motorola Mobility, Inc.
15. MOTODEV App Summit 2011 Page 15
Fragmentos (continuación)
• Un fragmento siempre debe estar incrustado en una Actividad
Actividad
Fragmento
de lista
Fragmento
© 2010 Motorola Mobility, Inc.
16. MOTODEV App Summit 2011 Page 16
Fragmentos (fragmento base)
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 © 2010 Motorola Mobility, Inc.
17. MOTODEV App Summit 2011 Page 17
Fragmentos (adición a una actividad)
XOOM_hc_app
/res/layout/main.xml
Diseño de la Activity
Fragmento PictureList.java
(de lista)
Fragmento
(de contenido)
con imagen
incrustada
ContentFragment.java
© 2010 Motorola Mobility, Inc.
18. MOTODEV App Summit 2011 Page 18
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
© 2010 Motorola Mobility, Inc.
19. MOTODEV App Summit 2011 Page 19
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 © 2010 Motorola Mobility, Inc.
20. MOTODEV App Summit 2011 Page 20
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
© 2010 Motorola Mobility, Inc.
21. • Aceleración por hardware
para gráficos 2D
Gráficos y multimedia • Compresión de textura
• Nueva estructura de
animaciones
• Soporte de medios
Título de presentación Versión 1.0 24.02.09
22. MOTODEV App Summit 2011 Page 22
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()!
© 2010 Motorola Mobility, Inc.
23. MOTODEV App Summit 2011 Page 23
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"!
© 2010 Motorola Mobility, Inc.
24. MOTODEV App Summit 2011 Page 24
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/
© 2010 Motorola Mobility, Inc.
25. MOTODEV App Summit 2011 Page 25
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
© 2010 Motorola Mobility, Inc.
26. MOTODEV App Summit 2011 Page 26
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.
© 2010 Motorola Mobility, Inc.
28. MOTODEV App Summit 2011 Page 28
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 +x
+z
+yes
+ye -ye
-x +x +x
-x
-x
-ye -ye
Rotación 0 Rotación 90 Rotación © 2010 Motorola Mobility, Inc.
0
29. MOTODEV App Summit 2011 Page 29
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" />!
© 2010 Motorola Mobility, Inc.
30. MOTODEV App Summit 2011 Página30
Page
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!
© 2010 Motorola Mobility, Inc. Versión 1.0
© 2010 Motorola Mobility, Inc.
31. MOTODEV App Summit 2011 Page 31
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> /> !
© 2010 Motorola Mobility, Inc.
32. MOTODEV App Summit 2011 Page 32
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!
}!
}!
}!
© 2010 Motorola Mobility, Inc.
33. MOTODEV App Summit 2011 Page 33
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) © 2010 Motorola Mobility, Inc.
34. MOTODEV App Summit 2011 Page 34
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
© 2010 Motorola Mobility, Inc.
35. MOTODEV App Summit 2011 Page 35
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
© 2010 Motorola Mobility, Inc.
– Normalmente devuelve IMEI o MIED: el dispositivo WiFi devuelve null
36. MOTODEV App Summit 2011 Page 36
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
© 2010 Motorola Mobility, Inc.
37. • SDK de Honeycomb
• targetSdkVersion
• Diseños
• Manejo de excepciones
10 cosas…….. • Modo de compatibilidad
• Drawables
• Texto
• Permisos y funciones
• Mantenimiento de la base de
códigos
• SDK de Honeycomb
38. MOTODEV App Summit 2011 Page 38
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” © 2010 Motorola Mobility, Inc.
39. MOTODEV App Summit 2011 Page 39
10 cosas que puede hacer (continuación)
– Establezca targetSdkVersion >= “4” y construya para SDK >= 1.6
© 2010 Motorola Mobility, Inc.
40. MOTODEV App Summit 2011 Page 40
10 cosas que puede hacer de inmediato (continuación)
6. Vuelva a ver sus gráficos en /res/drawable-<density>.
© 2010 Motorola Mobility, Inc.
41. MOTODEV App Summit 2011 Page 41
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" />
© 2010 Motorola Mobility, Inc.
42. MOTODEV App Summit 2011 Page 42
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" />!
© 2010 Motorola Mobility, Inc.
43. MOTODEV App Summit 2011 Page 43
10 cosas que puede hacer de inmediato (continuación)
• 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!
© 2010 Motorola Mobility, Inc.
44. MOTODEV App Summit 2011 Page 44
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
© 2010 Motorola Mobility, Inc.
45. MOTODEV App Summit 2011 Page 45
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>!
© 2010 Motorola Mobility, Inc.
46. MOTODEV App Summit 2011 Page 46
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" />!
lica * <uses-permission android:name="WRITE_APN_SETTINGS" />!
*imp <uses-permission android:name="WRITE_SMS" />!
! ! <uses-feature ! ! ! !
! ! !android:name="android.hardware.telephony"!
! ! !android:required="true"/> © 2010 Motorola Mobility, Inc.
47. MOTODEV App Summit 2011 Page 47
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/ © 2010 Motorola Mobility, Inc.
48. MOTODEV App Summit 2011 Page 48
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.
© 2010 Motorola Mobility, Inc.
49. MOTODEV App Summit 2011 Page 49
• Widgets de tamaño variable
• Entrada y Movimiento
Android 3.1 • API de USB
API Nivel 12 • Soporte a MTP/PTP
• Real-time Transport Protocol
(RTP)
• API Fragment Breadcrumbs
© 2010 Motorola Mobility, Inc.
50. MOTODEV App Summit 2011 Page 50
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>!
© 2010 Motorola Mobility, Inc.
51. MOTODEV App Summit 2011 Page 51
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()!
© 2010 Motorola Mobility, Inc.
52. MOTODEV App Summit 2011 Page 52
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 © 2010 Motorola Mobility, Inc.
53. MOTODEV App Summit 2011 Page 53
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
© 2010 Motorola Mobility, Inc.
55. MOTODEV App Summit 2011 Page 55
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/
© 2010 Motorola Mobility, Inc.
56. MOTODEV App Summit 2011 Page 56
¿Desea
formular
alguna
pregunta?
Brasil - #appsum11br
Argentina - #appsum11ar
México - #appsum11mx
community.developer.motorola.com
© 2010 Motorola Mobility, Inc.
57. MOTODEV App Summit 2011 Page 57
gracias
horario
comercial
XXX
junio
?,
??horario
a.m.
de
la9noamérica
moto.ly/officehours/???
© 2010 Motorola Mobility, Inc.
58. MOTODEV App Summit 2011 Page 58
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/).
© 2010 Motorola Mobility, Inc.