Home
nuevos apis de programación - Departamento de Ingeniería
Contents
1. CONSEJOS DE PROGRAMACI N P g 24 Uso de Threads Contexto e El contexto del thread mantiene informaci n como Direcci n de la instrucci n actual Almacenamiento para variables locales Estado del thread e El estado del thread puede ser Running en ejecuci n Ready listo para ejecutar Suspended esperando a un evento externo Terminated finalizada la ejecuci n e Thread scheduling planificaci n de hilos Cambio de contexto context switching puede suceder en cualquier momento Controlado por el sistema el programador s lo puede indicar un nivel de prioridad con mayor prioridad se ejecutar m s frecuentemente que con menor prioridad CONSEJOS DE PROGRAMACI N P g 25 E AAA AKAK lt K lt K lt lt lt lt lt lt lt lt AK 0 A A A A A A A A A A A A A A A A A A A A AA AA A AAA AA A AAAA A A A A A A A A Uso de Threads Clase Thread e Java lang Thread e Dos versiones en J2ME CDC compatible con J25E CLDC versi n reducida e activeCount e CurrentThread e getPriority e isAlive join e run e setPriority e sleep e start e yield CONSEJOS DE PROGRAMACI N P g 26 Uso de Threads Arranque e Para arrancar un nuevo thread hace falta Un objeto que implemente el
2. DEPARTAMENTO DE INGENER A TELEM TICA UNIVERSIDAD CARLOS lll DE MADRID NUEVOS APIS DE PROGRAMACI N Celeste Campo celestefiit uc3m es Parte de este material se basa en transparencias de Natividad Mart nez Madrid nati Vit uc3m es NUEVOS APIS DE PROGRAMACI N P g 1 WM aaa 2 E y INDICE e Mobile Media API MMAPI e Nuevas APIs y extensiones de MIDP BIBLIOGRAF A e J2ME Java 2 micro edition manual de usuario y tutorial Froufe Agust n y Jorge Patricia Ra Ma 2004 L S 004 438 JAVA FRO L D 004 438 JAVA FRO e http developers sun com techtopics mobility apis articles mmapiovervie w NUEVOS APIS DE PROGRAMACI N P g 2 MMAPI Mobile Media API e Paquete opcional que proporciona soporte para la generaci n reproducci n y grabado de datos multimedia audio o video e Definido en el JSR 135 Tres nuevos paquetes Jjavax microedition media Jjavax microedition media control javax microedition media protocol MIDP 2 0 soporta un subconjunto de este API e Reproducci n de audio e Principales caracter sticas Footprint reducido puede ejecutarse en dispositivos con restricciones de memoria dispositivos CLDC Independiente del tipo de contenido o del protocolo utilizado Extensible Puede soportar s lo un subconjunto por ejemplo audio b sico Facilita a los que implementan el API incluir s lo determinada funcionalidad
3. N P g 31 E Uso de Threads Espera suspendida e El mismo monitor que se usa para la sincronizaci n se puede usar para la suspensi n M todos wait notify y notifyAll de Object e Elthread se suspende a s mismo llamando al m todo wait del objeto monitor synchronized ob3 comprueba el estado del objeto try ob3 wait catch InterruptedException e e Opcionalmente se puede especificar un timeout en wait en mseg CONSEJOS DE PROGRAMACI N P g 32 Uso de Threads Espera suspendida import java util Vector public class Worker implements Runnable private boolean quit false private Vector queue new Vector public Worker new Thread this start CONSEJOS DE PROGRAMACI N P g 33 Uso de Threads Espera suspendida public void run Object o while quit o null synchronized queue if queue size gt 0 o queue elementat 0 queue removeElementaAt 0 else tryl queue wait catch InterruptedException e if o null do something CONSEJOS DE PROGRAMACI N P g 34 Uso de Threads Espera suspendida public boolean addToQueue Object o synchronized queue if quit queue addElement o queue notify return true return false public void quit synchronized queue quit true queue notify CONSEJ
4. debe garantizarse sincronizaci n para controlar el acceso a datos compartidos Uso de monitores Cualquier objeto Java puede ser un monitor e El mismo objeto this e Utilizaci n de la palabra reservada synchronized public int increment public synchronized int increment synchronized this return counter return counter CONSEJOS DE PROGRAMACI N P g 29 Uso de Threads Sincronizaci n e Sincronizaci n de Threads se puede realizar a trav s de clases que utilizan m todos synchronized e Recomendaciones Utilizar clases inmutables e Su estado no cambia despu s de la inicializaci n String Evitar el deadlock e El thread A bloquea el objeto X e intenta acceder al Y El thread B bloquea el objeto Y e intenta acceder al X e Bloquear los objetos siempre en el mismo orden siempre bloquear X antes de Y CONSEJOS DE PROGRAMACI N P g 30 Uso de Threads Espera y notificaciones e En muchas ocasiones los threads esperan alg n evento antes de acceder a los datos Ej lectura de una cola de mensajes escritos por otros threads e Espera activa busy wait El thread est todo el rato comprobando la aparici n del evento Consume muchos recursos e Espera suspendida suspended walt El thread se suspende hasta que ocurra el evento Se recomienda su uso en J2ME porque consume menos recursos CONSEJOS DE PROGRAMACI
5. interfaz java lang Runnable define run public class DoSomething implements Runnable public void run do something e Con ese objeto se crea un objeto Thread y se invoca su m todo start DoSomething dolt new DoSomething Thread myThread new Thread dolt myThread start e Cuando el thread vuelve del run el sistema termina el thread e Podr a crearse una clase que extienda de Thread pero siguiendo los consejos de uso de memoria en J2ME esto implementar Runnable es m s eficiente CONSEJOS DE PROGRAMACI N P g 27 Uso de Threads Parada e No existe el m todo stop y el m todo interrupt s lo existe en CLDC 1 1 e No se puede parar un thread desde fuera se le puede indicar que pare public class MyThread implements Runnable private boolean quit false public void run while quit do something public void quit quit true e Siel thread usa recursos del sistema conexiones de red o Record Store las debe liberar antes de terminar usar finally Importante tambi n porque en algunos dispositivos se limita el n mero de accesos simult neos a un tipo de recurso e Usode isAlive para comprobar si a n se est ejecutando y de join para activarse cuando el otro termine CONSEJOS DE PROGRAMACI N P g 28 Uso de Threads Sincronizaci n e Como los cambios de contexto pueden ocurrir en cualquier instante
6. lt protocol gt lt content location gt La aplicaci n usa los m todos del Player creado para controlar la descarga y reproducci n del datos multimedia NUEVOS APIS DE PROGRAMACI N P g 6 MMAPI Estados de Player e El ciclo de vida de un Player incluye cinco estados y seis de los m todos de la clase Player controlan las transiciones entre estos estados UNREALIZED e Tras su creaci n REALIZED e Tras llamada a realize inicializa la informaci n para adquirir recursos multimedia PREFETCHED e Tras llamar a prefetch establece la conexi n de red para el streaming de datos y otras inicializaciones STARTED e Tras la llamada a start el player puede procesar los datos e Al acabar el procesado fin del stream multimedia vuelve al estado PREFETCHED CLOSE e Tras la llamada a close NUEVOS APIS DE PROGRAMACI N P g 7 MMAPI Estados de Player closed CLOSED realize UNREALIZEL REALIZED PREFET HED deallocate desllocate stopi NUEVOS APIS DE PROGRAMACI N P g 8 MMAPI Interfaz Control e Un Player proporciona control espec fico para el tipo de medio que procesa getControl para un nico control getControls para un array de controles Ejemplo e Un player de MIDI que invoque getControl1 recibe un MIDIControl NUEVOS APIS DE PROGRAMACI N P g 9 MMAPI Tipos de controles e Tipo
7. AMACI N P g 15 MMAPI WTK mmademo MIDlet Help MIDlet Help MIDlet Help L T iil y sl Sho E 28 Status Playing Rate 100 Long Single Tone e Short MIDI event volume 40 Pos 8 0 MMAPI Drummer 00 02 4 Rate 100 0 NUEVOS APIS DE PROGRAMACI N P g 16 Nuevas APIs y extensiones de MIDP APIs y extensiones existentes Java Technology for the Wireless Industry JSR 185 e Espec fico para tel fonos m viles de siguiente generaci n Wireless Messaging API JSR 120 JSR 205 e Acceso a sistemas de env o de mensajes SMS Security and Trust Services JSR 177 e Mejora la seguridad a adiendo APIs criptogr ficas firmas digitales gesti n de credenciales Web Services APIs JSR 172 e Desarrollo de clientes Web en dispositivos m viles web services Bluetooth API JSR 82 e Desarrollo de aplicaciones que usan Bluetooth Location API JSR 179 e Acceso a informaci n de localizaci n SIP API JSR 180 e Desarrollo de clientes SIP Mobile 3D Graphics JSR 184 e Desarrollo de juegos 3D NUEVOS APIS DE PROGRAMACI N P g 17 E q _ _ _ _ _ _x o A Nuevas APIs y extensiones de MIDP Todas las extensiones de MIDP se definen a trav s de Java Community Process C mo puedo saber si un dispositivo soporta una extensi n Necesario ir a las especificaciones t cnicas de los fabricantes del dispositivo R
8. NUEVOS APIS DE PROGRAMACI N P g 3 MMAPI Procesado multimedia e Partes del procesamiento multimedia Gesti n del protocolo lectura de datos de una fuente como un fichero o un servidor de streaming al sistema de procesado multimedia Gesti n del contenido parseado o decodificaci n de los datos multimedia y reproducci n al dispositivo de salida como altavoz audio o pantalla video e Para facilitar estas operaciones el API proporciona DataSource e Encapsula y abstrae la gesti n del protocolo ocultando los detalles de c mo se leen los datos de la fuente e Permite al objeto Player gestionar el contenido Player e Lee los datos de DataSource e Los procesa e Los manda al dispositivo de salida e Incluye m todos para el control de la reproducci n Manager e Permite crear Players a partir de DataSources NUEVOS APIS DE PROGRAMACI N P g 4 lt gt o o oo e A MMAPI Arquitectura Content Web Server EMs JAR DatasSource NUEVOS APIS DE PROGRAMACI N P g 5 lt IIA MMAPI Clase Manager e Punto de partida para procesar o reproducir datos multimedia Reproducci n de tonos simples Creaci n de objetos Player e Reproducci n de tonos simples playTone int nota int duration int volumen e Clase factor a de Players Player player Manager createPlayer String url URL
9. O C aE E MMAPI Ejemplos e Reproducir un tono Un tono est caracterizado por su frecuencia y su duraci n try reproduce un tono durante 4000 mseg a un volumen 100 Manager playTone IoneControl C4 4000 100 catch MediaException me NUEVOS APIS DE PROGRAMACI N P g 12 Reproducci n MP3 try Player p Manager createPlayer http server somemusic mp3 p setLoopCount 5 p start catch IOException ioe catch MediaException e NUEVOS APIS DE PROGRAMACI N P g 13 MMAPI Ejemplos Reproducci n de MP3 con controles Player p VolumeControl vc try p Manager createPlayer http server somemusic mp3 p realize Obtiene un VolumeControl para el reproductor y pone el volumen al m ximo vc VolumeControl p getControl VolumeControl if vc null vc setVolume 100 El reproductor puede empezar con una peque a latencia p prefetch Arranque no bloqueante p start catch IOException ioe catch MediaException e NUEVOS APIS DE PROGRAMACI N P g 14 MMAPI Ejemplos e Reproducci n de v deo Player p VideoControl vc try p Manager createPlayer http server somemovie mpg p realize obtiene VideoControl vc VideoControl p getControl VideoControl p start catch IOException ioe catch MediaException me NUEVOS APIS DE PROGR
10. OS DE PROGRAMACI N P g 35 E q 00o0KrR oR o o A Uso de Threads Consideraciones e Como regla general no se debe suspender un thread que no ha sido creado por tu aplicaci n Por ejemplo los threads del sistema encargados de la gesti n del interfaz gr fico y de eventos Porque provocar a que la aplicaci n se bloquease e interfiriese en otras aplicaciones
11. a m s memoria se limita la que se puede utilizar para aplicaciones J2ME CONSEJOS DE PROGRAMACI N P g 22 Uso de memoria 1 Eliminar todas las clases que no son necesarias Hemos incluido funcionalidad que no es necesaria 2 Analizar todas las clases internas que utiliza la aplicaci n y reducir su numero Cada clase que se define introduce una sobrecarga 3 Maximizar el uso de clases existentes y no crear clases propias 4 Disminuir los niveles de jerarqu a de clases Compromiso entre modularidad de c digo y tama o 5 Utilizar nombre cortos para los paquetes clases m todos y miembros de clase Intentando no perder la legibilidad del c digo Herramientas que ofuscan el c digo realizan esta tarea autom ticamente 6 Inicializaciones de arrays Introducir datos en un string y convertirlo a un array en tiempo de ejecuci n Obtener los datos desde un fichero binario empaquetado con la aplicaci n CONSEJOS DE PROGRAMACI N P g 23 w R a a aE ASE Uso de Threads e Permiten a la aplicaci n realizar m ltiples actividades simult neamente El interfaz de usuario se mantiene activo mientras se realizan operaciones largas comunicaci n por red o c lculos complicados e Qu es un thread Un flujo de control secuencial individual dentro de un programa Cada aplicaci n en ejecuci n tiene al menos un thread Si tiene m s se llama multithreaded
12. ealizar peque os programas de prueba para saber cuales o qu parte de las extensiones soporta C mo puedo encontrar ejemplos y ayuda para desarrollar un MIDlet utilizando estas extensiones http developers sun com techtopics mobility reterence tech art index html DEPARTAMENTO DE INGENIER A TELEM TICA UNIVERSIDAD CARLOS lll DE MADRID CONSEJOS DE PROGRAMACI N Celeste Campo celestefiit uc3m es CONSEJOS DE PROGRAMACI N P g 19 w _ _ _ _ 4 4 lt A K K y INDICE e Uso de memoria e Uso de threads BIBLIOGRAF A http developers sun com techtopics mobility midp ttips appsize http developers sun com techtopics mobility midp articles threading2 CONSEJOS DE PROGRAMACI N P g 20 Introducci n e Al desarrollar software para dispositivos limitados es muy importante realizar optimizaciones siempre que sea posible e Algunos de consejos de programaci n que vamos a ver se centran en Uso de memoria Uso de threads e Otros consejos de programaci n los pod is obtener en http developers sun com techtopics moblility allttips Hmidp CONSEJOS DE PROGRAMACI N P g 21 E Uso de memoria e Los sistemas J2ME tienen restricciones importantes de memoria para el almacenamiento y ejecuci n de aplicaciones Restricciones por debajo de 50K Aunque el dispositivo tenga much
13. s de controles definidos en Jjavax microedition media control FramePositionControl posici n de un video frame para un Player GUIControl soporte de componentes GUI MetaDataControl para obtener informaci n de metadatos en un stream multimedia MIDIControl acceso a dispositivos de reproducci n y transmisi n de MIDI PitchControl controla pitch de reproducci n de salida audio sin cambiar velocidad de reproducci n RateControl controla la tasa de reproducci n RecordControl controla la grabaci n multimedia StopTimeControl para predeterminar tiempo de parada de un player TempoControl controla el tempo de una canci n en players para ficheros MIDI ToneControl reproducci n de secuencia de tonos predefinidos por el usuario VideoControl controla la reproducci n de video localizaci n relativa al canvas donde se visualiza etc VolumeControl volumen de un Player NUEVOS APIS DE PROGRAMACI N P g 10 MMAPI Consideraciones e MMAPI no obliga a implementar un determinado tipo de medio ni de protocolo cada implementaci n debe decidir cu l de ellos se soporta e Se debe garantizar soporte al menos a un tipo de medio y un protocolo e Para obtener los tipos y protocolos que soporta una implementaci n determinada se proporcionan los m todos Manager getSupportedContentTypes Manager getSupportedProtocols NUEVOS APIS DE PROGRAMACI N P g 11
Download Pdf Manuals
Related Search
Related Contents
User Manual - Witura Technology Sdn Bhd Samsung CS21A550ML User Manual LW−3102J dossier - Région Réunion Velleman CSOL06 wall lighting Installations- und Bedienungsanleitung_AirHP DX300 Operating Manual Notice Pack de vidéosurveillance autonome. Copyright © All rights reserved.
Failed to retrieve file