Este documento describe los sistemas operativos para dispositivos móviles y la programación de aplicaciones para estos. Explica conceptos como Java ME, CLDC, CDC y el uso de applets. También incluye código de ejemplo que crea una aplicación bancaria móvil con funciones como ingresar el número de cuenta, ver saldo e historial de movimientos.
Introducción.
● Herramientas necesarias.
– Editor de texto.
– Ambiente de desarrollo (J2SDK).
– Java Wireless Toolkit (JWTK).
● Instalación de las herramientas.
● Creación del proyecto.
● Configuración del proyecto.
● Estructura de los directorios generados.
● Edicion del código fuente del midlet.
● Compilación.
● Ejecución (emulación).
● Despliegue del midlet.
● Archivos generados.
– Archivo JAD.
– Archivo JAR.
Introducción.
Arquitectura de la plataforma J2ME.
Configuraciones.
CDC.
CLDC.
Diferencias entre J2SE y CLDC.
Perfiles.
MIDP.
Requisitos de hardware.
Requisitos de software
Paquetes opcionales.
Máquinas virtuales.
Características.
Introducción.
● Herramientas necesarias.
– Editor de texto.
– Ambiente de desarrollo (J2SDK).
– Java Wireless Toolkit (JWTK).
● Instalación de las herramientas.
● Creación del proyecto.
● Configuración del proyecto.
● Estructura de los directorios generados.
● Edicion del código fuente del midlet.
● Compilación.
● Ejecución (emulación).
● Despliegue del midlet.
● Archivos generados.
– Archivo JAD.
– Archivo JAR.
Introducción.
Arquitectura de la plataforma J2ME.
Configuraciones.
CDC.
CLDC.
Diferencias entre J2SE y CLDC.
Perfiles.
MIDP.
Requisitos de hardware.
Requisitos de software
Paquetes opcionales.
Máquinas virtuales.
Características.
***Proyecto PAPIIT IN102210***
UNAM. Facultad de Ingeniería.
Integrantes:
JUAN JOSE CARREON
J. ULISES GONZALEZ MEDINA
ANA LAURA GARCÍA ACOSTA
OMAR SIBAJA BAUTISTA
ROBERTO SOSA HIGAREDA
Android es un sistema operativo creado y mantenido por Google, basado en software GNU (open
source). Podría decirse que es una derivación de Linux y uso programación nativa está basada en
Java. También es posible programarlo desde híbridos tales como Ionic o PhoneGap; incluso con
C/C++ como Unity.
Android, en contraste a otros sistemas operativos como iOS o Windows Phone que son aún más
cerrados incluido al hardware específico del dispositivo, se trabaja abiertamente (mediante Open
Source). De ello se deriva que sea tan popular en los fabricantes de hardware móvil, porque lo
pueden integrar sin costo.
CakePHP es un marco de desarrollo [framework] rápido para PHP, libre, de código abierto. Se trata
de una estructura que sirve de base a los programadores para que éstos puedan crear aplicaciones
Web. Nuestro principal objetivo es que puedas trabajar de forma estructurada y rápida, sin pérdida
de flexibilidad.
Con CakePHP el desarrollo web ya no es monótono porque ofrecemos las herramientas para que
empieces a escribir el código que realmente necesitas: la lógica específica de tu aplicación. Consigue
una copia de CakePHP, empieza con lo verdaderamente importante y no reinventes la rueda cada vez
que te incorpores a un nuevo proyecto.
***Proyecto PAPIIT IN102210***
UNAM. Facultad de Ingeniería.
Integrantes:
JUAN JOSE CARREON
J. ULISES GONZALEZ MEDINA
ANA LAURA GARCÍA ACOSTA
OMAR SIBAJA BAUTISTA
ROBERTO SOSA HIGAREDA
Android es un sistema operativo creado y mantenido por Google, basado en software GNU (open
source). Podría decirse que es una derivación de Linux y uso programación nativa está basada en
Java. También es posible programarlo desde híbridos tales como Ionic o PhoneGap; incluso con
C/C++ como Unity.
Android, en contraste a otros sistemas operativos como iOS o Windows Phone que son aún más
cerrados incluido al hardware específico del dispositivo, se trabaja abiertamente (mediante Open
Source). De ello se deriva que sea tan popular en los fabricantes de hardware móvil, porque lo
pueden integrar sin costo.
CakePHP es un marco de desarrollo [framework] rápido para PHP, libre, de código abierto. Se trata
de una estructura que sirve de base a los programadores para que éstos puedan crear aplicaciones
Web. Nuestro principal objetivo es que puedas trabajar de forma estructurada y rápida, sin pérdida
de flexibilidad.
Con CakePHP el desarrollo web ya no es monótono porque ofrecemos las herramientas para que
empieces a escribir el código que realmente necesitas: la lógica específica de tu aplicación. Consigue
una copia de CakePHP, empieza con lo verdaderamente importante y no reinventes la rueda cada vez
que te incorpores a un nuevo proyecto.
Diapositivas de mi curso introductorio de Android en 5 horas.
EN EL CONGRESO UNIVERSITARIO MOVIL 2012 SE USÓ ESTA PRESENTACIÓN PARA HABLAR DE ANDROID Y SE HIZO UNA APP PARLANCHINA COMO EJEMPLO DEL CONTENIDO, AQUI ESTÁ EL CODIGO FUENTE https://www.dropbox.com/s/1dbso3rb47be1hj/Hablar.zip?%20m
Un sistema operativo (SO, frecuentemente OS, del inglés Operating System) es u programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes y anteriores próximos y viceversa.
1. ACTIVIDAD 4
DISPOSITIVOS MOVILES
Objetivo: Conocer la importancia del sistema
operativo de un dispositivo móvil
Por Jessika Domínguez
G.
2. 1. ¿Qué es un sistema operativo para un
dispositivo móvil?
• Es un sistema operativo que controla un dispositivo móvil al
igual que los PCs utilizan Windows o Linux entre otros. Sin
embargo, los sistemas operativos móviles son mucho más
simples y están más orientados a la conectividad inalámbrica,
los formatos multimedia para móviles y las diferentes maneras
de introducir información en ellos.
3. 2. ¿Cuáles son las características de un
sistema operativo para un dispositivo móvil?
• determinarán las capacidades
• multimedia de los dispositivos, y la forma de éstas de
interactuar con el usuario.
• Existen multitud de opciones, si bien las más extendidas son
Symbian, BlackBerry
• OS, Windows Mobile, y recientemente iPhone OS y el sistema
móvil de Google,
• Android, además por supuesto de los dispositivos con sistema
operativo Linux.
4. 3. Las características del dispositivo móvil
tienen importancia para el tipo de sistema
operativo a utilizar.
• Dependiendo del tipo del dispositivo móvil a utilizar su
capacidad, tipo de sistema operativo que se utilizara es como
se facilita al usuario o al programador las herramientas e
interfaces adecuadas para realizar sus tareas informáticas,
abstrayéndole de los complicados procesos necesarios para
llevarlas acabo.
5. 4. ¿Qué es programación?
• Es el proceso de diseñar, codificar, depurar y mantener el
código fuente de programas computacionales. El código
fuente es escrito en un lenguaje de programación. El
propósito de la programación es crear programas que exhiban
un comportamiento deseado. El proceso de escribir código
requiere frecuentemente conocimientos en varias áreas
distintas, además del dominio del lenguaje a utilizar,
algoritmos especializados y lógica formal. Programar no
involucra necesariamente otras tareas tales como el análisis y
diseño de la aplicación (pero sí el diseño del código), aunque sí
suelen estar fusionadas en el desarrollo de pequeñas
aplicaciones.
6. 5. Criterios que se necesitan para la
programación de aplicaciones en la tecnología
móvil?
• La generalización en los últimos años de teléfonos móviles,
smartphones, PDAs, etc. ha generado un importante necesidad de
aplicaciones para este tipo de dispositivos
• Las prestaciones de los dispositivos móviles se incrementan día a
día, posibilitando la implementación de aplicaciones muy
interesantes
• Acceso a Internet y conectividad mediante Bluetooth
• Envío de mensajes cortos
• Aceleración 2D y 3D
• Reproducción de video y sonido
• Cámara integrada
• Información de localización GPS
• Sensores de orientación
• etc.
7. 6. ¿A que se refiere Java Mobile Edition?
• La única opción real que permite un desarrollo
• multiplataforma para dispositivos móviles
• Tiene una estructura altamente modular para
• adaptarse a las características de cada dispositivo
8. 7. ¿A que se refiere la configuración
Connected Device Configuration?
• Es un acrónimo inglés que coincide con su traducción al
español, y que hace referencia a Connected Device
Configuration. Esta es una especificación realizada por Sun
dentro del conjunto de tecnologías para computación móvil
conocido como J2ME (Java 2 Mobile Edition).
• Define las capacidades básicas que debe tener un dispositivo
móvil con capacidad de conexión y cuya potencia de
computación se encuentra entre la de un teléfono o PDA y la
de un ordenador de mesa, es decir, va dirigido
fundamentalmente a dispositivos con cierta capacidad como
un sistema de navegación GPS para automóvil, un DVR
(grabador de video digital), PVR (grabador de video personal)
o un aparato para navegar por Internet.
9. 8. ¿A que se refiere la configuración
Connected Limited Device Configuration?
• Define requerimientos mínimos en el propio lenguaje, en las
librerías básicas y en la cantidad de memoria usada por la JVM.
• Además CLDC supone que el dispositivo huésped dispone de un
sistema operativo que puede ejecutar y manejar la maquina virtual.
• Sin embargo CLDC no hace suposiciones sobre muchos otros temas.
Por ejemplo:
• No define el tipo de display.
• No define el mecanismo de entrada tal como teclado o ratón.
• No requiere de algún medio especi-fico de almacenamiento para los
datos de aplicación.
• Sin embargo los perfiles de J2ME, si- que dan requerimientos
adicionales para el rango mas limitado de dispositivos a los que se
dirigen.
10. 9. Explica los Applets en J2ME
• Tipos de datos: J2ME no incluye los tipos float y double, ya que la mayoría
de los dispositivos CLDC no tienen unidad de coma flotante debido
fundamentalmente a que es una operación muy costosa.
• Preverificación: La verificación del código en J2ME se hace fuera del
dispositivo, con objeto de reducir la carga de la máquina.
• Inclusión de los ficheros "descriptor" y "manifiesto" al empaquetar ficheros
J2ME, conteniendo información sobre las aplicaciones que incluyen.
• Nueva biblioteca gráfica adaptada a los dispositivos con memorias de poco
tamaño y pantallas también pequeñas.
• No existe un método main como entrada para la ejecución de la función.
Éste se sustituye por el método "start app".
• La recolección de basura se hace de manera manual y no automática como
en el J2EE. Esta decisión se toma así para reducir la utilización de la
memoria.
11. 10. Del siguiente código explica brevemente la
función que realiza.
• import javax.microedition.midlet.MIDlet;
• import javax.microedition.midlet.*;
• import javax.microedition.lcdui.*; // se empieza con una estructura requiere la implementación de un MIDlet, cuya
estructura recuerda los Applets yvServlets de J2SE.
• import java.util.*;
• public class MidletCuenta extends MIDlet {
• private Cuenta c; //Se crea el comando c
• private Display d;// Se crea el objeto Display d
• private TextField tCodigo; // Texto tCodigo
• private Command cEntrar, cSalir, cVolver, cMovimientos // Se rean los comando cEntrar, cSalir, cVolver, cMovimientos
• private Form fPeticionCodigo, fInfoCuenta; //Se crea la funcion peticion codigo la cual tiene un comando FinforCuenta
• private List lMovCuenta; // Se crea una lista MovCuenta
• public class EjemploMidlet extends MIDlet { // Se crea la clase EjemploMidlet
• public void startApp() {
• }
12. • public void pauseApp() {
• }
• public void destroyApp(boolean unconditional) {
• }
• }
• public MidletCuenta() { // Se crea MidletCuenta
• d = null;
• }
• void crearComandos() { // En este apartado se crean los valores de cada comando que fue
asignado.
• cEntrar = new Command("Entrar", Command.OK, 0);
• cSalir = new Command("Salir", Command.EXIT, 1);
• cVolver = new Command("Volver", Command.BACK, 0);
• cMovimientos = new Command("ver Mov.", Command.SCREEN, 0);
• }
13. • }
• public void startApp() {
• if (d == null) {
• d = Display.getDisplay(this);
• }
• crearComandos(); // Se manda a llamar a la funcion crearComandos
• crearFormPeticionCodigo(); // Se manda a llamar a la funcion
crearFormPeticionCodigo
• d.setCurrent(fPeticionCodigo);
• }
14. • void crearFormPeticionCodigo() { //Funcion crearPeticionCodigo
• fPeticionCodigo = new Form("Información de cuentas"); //Valor que van
tomanado los comandos que se crean al principio
• fPeticionCodigo.append(tCodigo = new TextField("Código de cuenta ",
• null, 10, TextField.NUMERIC));
• fPeticionCodigo.addCommand(cEntrar);
• fPeticionCodigo.addCommand(cSalir);
• fPeticionCodigo.setCommandListener(new listenerPeticionCodigo());
• tCodigo.setLayout(Item.LAYOUT_2 | Item.LAYOUT_CENTER);
• }
15. • void crearFormPeticionCodigo() { // Funcion peticionCodigo
• fPeticionCodigo = new Form("Información de cuentas"); // Valores de los
comanos de la funcion.
• fPeticionCodigo.append(tCodigo = new TextField("Código de cuenta ",
• null, 10, TextField.NUMERIC));
• fPeticionCodigo.addCommand(cEntrar);
• fPeticionCodigo.addCommand(cSalir);
• fPeticionCodigo.setCommandListener(new listenerPeticionCodigo());
• tCodigo.setLayout(Item.LAYOUT_2 | Item.LAYOUT_CENTER);
• }
16. • void crearFormInformacionCuenta() { //Funcion FormlformacionCuenta
• // Crear formulario de información de la cuenta
• fInfoCuenta = new Form("Información de cuenta");
• fInfoCuenta.append(new StringItem("Código:",
• Long.toString(c.leerNumero())));
• fInfoCuenta.append(new StringItem("Titular:",
• c.leerTitular())); //Se ingresan los datos de el titular de la cuenta.
• fInfoCuenta.append(new StringItem("Interés:",
• Float.toString(c.leerInteres())));//se ingresan datos de los intereses
• fInfoCuenta.append(new StringItem("Saldo:",
17. • Float.toString(c.leerSaldo()))); //Se leen el saldo del titular
• fInfoCuenta.addCommand(cMovimientos);
• fInfoCuenta.addCommand(cVolver);
• fInfoCuenta.setCommandListener(new listenerInformacionCuenta());
• // Crear lista de movimientos
• lMovCuenta = new List("Ultimos movimientos", List.IMPLICIT);
• Movimiento m;//Declaracion del comando de la cuncion CommandListener
• int nMov, nm;
• for (nMov = 10, nm = c.numMovimientosHistorico() - 1; nMov > 0
• && nm >= 0; nm--, nMov--) {
• m = c.leerMovimientoHistorico(nm);
• lMovCuenta.append(cadenaDate(m.fecha) + ' ' + m.tipo + ' ' +
• m.importe + ' ' + m.saldo, null);
• }
18. • lMovCuenta.addCommand(cVolver);
• lMovCuenta.setCommandListener(new listenerInformacionMovimientos());// Se llama a la funcion Movimientos
y despues retorna para seguir el proceso
• }
• class listenerInformacionCuenta implements CommandListener {// Se inicia la clase ListenerInformacionCuenta
• public void commandAction(Command cm, Displayable s) {
• if (cm == cVolver) {// Se inicia una condicion de movimientos
• d.setCurrent(fPeticionCodigo);
• }
• else if (cm == cMovimientos) {
• d.setCurrent(lMovCuenta);
• }
• }
• }
19. • class listenerInformacionMovimientos implements //Se llama a la clase
InformacionMovimientos
• CommandListener {
• public void commandAction(Command cm, Displayable s) {
• if (cm == cVolver) {
• d.setCurrent(fInfoCuenta);
• }
• }
• }