Your SlideShare is downloading. ×
Diseñando aplicaciones para el Motorola XOOM
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Diseñando aplicaciones para el Motorola XOOM

1,236
views

Published on

Published in: Technology, News & Politics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,236
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Motorola Mobility Anna Schaller Android Technology Evangelists Plataformas y servicios para desarrolladoresDiseñando aplicaciones para elMotorola 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 5Interacción con la tabletaTeclas deVolumen(arriba/abajo) Botón Encendido/ apagado © 2010 Motorola Mobility, Inc.
  • 6. MOTODEV App Summit 2011 Page 6Interacción (continuación)No haybotóndemenú Barra del sistema © 2010 Motorola Mobility, Inc.
  • 7. Página 7 •  Tema holográficoCambios 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 8Tema 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 9Atenuació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 10Barra 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 11Barra de acciones – Dividida en fichas con elementos deacció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 12Cambiando al modo de pantalla completa - quitando labarra 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 13Menú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 14Fragmentos•  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 ActividadFragmentode listaFragmento © 2010 Motorola Mobility, Inc.
  • 16. MOTODEV App Summit 2011 Page 16Fragmentos (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 17Fragmentos (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 18Fragmentos (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 19Nuevas 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 20Ejemplo 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 2DGrá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 22Aceleració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 23Compresió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 24Compresió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 25AnimaciónDos 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 26Soporte de medios -- Colocando contenido en eldispositivo •  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.
  • 27. •  SensoresHardware •  Cámara •  Pantalla táctil •  Telefonía
  • 28. MOTODEV App Summit 2011 Page 28Sensores•  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 29Sensores (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 PageSensores -- 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 31Cá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 32Cá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 33Pantalla 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 34Pantalla 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 35Telefoní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 36Telefoní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 excepciones10 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 3810 cosas que puede hacer de inmediato1.  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 3910 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 4010 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 4110 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 4210 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 4310 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 4410 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 4510 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 4710 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 4810 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 50Widgets 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 51Eventos 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 52API 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 53Soporte 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.
  • 54. MOTODEV App Summit 2011 Page 54 DEMO © 2010 Motorola Mobility, Inc.
  • 55. MOTODEV App Summit 2011 Page 55Má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 58LEGALINFORMACIÓN DE LA LICENCIACon 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.0Copyright © 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 LicensePartes 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.
  • 59. MOTODEV App Summit 2011 Page 59 © 2010 Motorola Mobility, Inc.