De Gaetano Andrea JAVA 4 EMBEDDED

Documenti analoghi
Programmazione J2ME. Lezione 1. Le MIDlet. Di Blasi Gianpiero - D.M.I. - Università di Catania

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Panoramica: che cosa è necessario

Programmazione ad Oggetti. Java Parte I

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Installazione e caratteristiche generali 1

IRSplit. Istruzioni d uso 07/10-01 PC

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Approccio stratificato

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

COSTER. Import/Export su SWC701. SwcImportExport

Ambienti di Sviluppo

J2ME Platform. Symbian OS. Nokia property platform: Series 60. Microsoft Windows CE.NET Microsoft Windows Mobile Mobile client-server communication

Programmare in Java. Olga Scotti

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

System Center Virtual Machine Manager Library Management

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

CAPITOLO 1 PREREQUISITI DI INSTALLAZIONE SOFTWARE RICAMBI CAPITOLO 2 PROCEDURA

JUG Sardegna Java Summer Meeting 16 Luglio

Corso Eclipse. Prerequisiti. 1 Introduzione

2015 PERIODO D IMPOSTA

Sharpdesk V3.3. Guida all installazione Versione

Dichiarazione di conformità Noi dichiariamo sotto la nostra esclusiva responsabilità che il prodotto è conforme alle disposizioni della

Scrivere un programma in Java

View Mobile User s Guide

Sistemi Mobili e Wireless Android Primi passi

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

File, Modifica, Visualizza, Strumenti, Messaggio

Motorola Phone Tools. Guida rapida

Non sono supportate reti peer to peer, è necessario avere un server dedicato.

GUIDA AL PRONTUARIO MOBILE

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18

Registratori di Cassa

Configurare TPTP in Eclipse e testare un applicazione

Il web server Apache Lezione n. 3. Introduzione

Corso basi di dati Installazione e gestione di PWS

Creare un sito Multilingua con Joomla 1.6

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Introduzione. Installare EMAS Logo Generator

Dispensa di Informatica I.1

Sharpdesk V3.3. Guida all installazione Versione

Architetture Applicative

bmooble INFOMOBILITY demo environment

CONSOLLE AVVOCATO e dintorni. Istruzioni per l installazione e la configurazione

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Introduzione. Descrizione. FRITZ!APP Fon

- Guida a VMware - Guida a VMware. Questa guida vi aiuterà passo passo nell installazione e la configurazione di VMware.

F-Secure Mobile Security per Nokia E51, E71 ed E75. 1 Installazione ed attivazione Client 5.1 F-Secure

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

G l o b a l C o n n e c t i o n S i s t e m a d i t e l e c o n t r o l l o G S M / G P R S

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Esercitazione 4 JDBC

Tale attività non è descritta in questa dispensa

L ambiente di sviluppo Android Studio

Installazione del Software. per lo Sviluppo di Applicazioni Java

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27

Il Software. Il software del PC. Il BIOS

Avvio di Internet ed esplorazione di pagine Web.

Configurazione di Outlook Express

Guida all installazione di Easy

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Il computer: primi elementi

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Istruzioni per l installazione

Virtualizzazione VirtualBox su Host Windows

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Istruzioni per creare un file PDF/A tramite software PDFCreator

DINAMIC: gestione assistenza tecnica

Eclipse e Subversion

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

GESGOLF SMS ONLINE. Manuale per l utente

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

DOCUMENTAZIONE POISSON

Istruzioni per l utilizzo di file KML (Google Earth) con Software dei navigatori satellitari TELE System

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

I satelliti. Accesso Remoto

ENTRATEL - Installazione

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Estensioni e modelli. Ancora poco conosciuti, consentono di estendere la suite per l ufficio. Ecco come servirsene

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11 SP1

Application Server per sviluppare applicazioni Java Enterprise

Collegamento remoto vending machines by do-dots

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

Tecniche di progettazione e sviluppo di applicazioni mobile

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

(Tasto Svuota file) Il tasto Svuota file elimina tutti i record presenti nel database.

JUMP THE UNIFIED MAPPING PLATFORM

knfbreader Mobile kreader Mobile

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

DBMS e Linguaggi di programmazione nell'era di Internet

Virtualizzazione VirtualBox su Host Linux

FRANCESCO MARINO - TELECOMUNICAZIONI

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

GROUP POLICY MANAGEMENT CONSOLE (ACTIVE DIRECTORY)

Transcript:

De Gaetano Andrea JAVA 4 EMBEDDED

Cosa e' J2ME? J2me e' la versione per dispositivi portatili di java. Permette di poter programmare midlet, piccoli programmi nell'ordine delle decine di kb, in grado di essere eseguiti su dispositivi che dispongono di una JVM (Java Virtual Machine) adatta, al pari delle applet delle pagine web. Cosa e' una JVM? Java compila i sorgenti dei suoi programmi in Bytecode, mentre linguaggi come il C++ compilano i sorgenti dei programmi in un codice che è il codice della macchina. Il Bytecode java viene interpretato da una JVM che lo esegue sulla macchina ospite. Questo permette di realizzare un codice solo, che puo' essere eseguito su piu' sistemi operativi e macchine diverse senza dover ricompilare il codice e quindi il programma.

L'importanza di usare Java Il fatto proprio di poter scrivere il codice una volta sola e non doverlo riscrivere per i vari dispositivi crea una grande portabilita'. I dispositivi j2me (come ad esempio i cellulari) sono molti differenti tra loro. Hanno caratteristiche diverse come ad esempio: -Sistemi operativi diversi (Symbian, Epoc.. ) -Risorse hardware diverse (diversi processori, ram etc) -Schermi diversi -Tasti differenti -Accesso all'audio differente. -Altre caratteristiche... La jvm sara' ottimizzata per ogni dispositivo e il programma verra' creato una volta, dando la possibilità di girare sui diversi dispositivi.

Configurazioni CDC... Esistono 2 configurazioni j2me che definiscono 2 standard da rispettare per entrare in particolari categorie e implementazioni j2me: CDC e CLDC CDC Progettata per dispositivi con memoria ampia, processori veloci e connessioni alla rete a banda molto estesa come: -TV set-top boxes -sistemi telematici per automobili -PDA di fascia alta. La JVM è una JVM quasi al pari di quella presente nei pc con un sottoinsieme ampio delle API utilizzate per la piattaforma J2SE. I dispositivi devono avere un processore a 32 bit e 2MB di memoria disponibile per la piattaforma Java e le relative applicazioni.

Configurazione CLDC CLDC E' una configurazione che ha richieste più leggere e contenute. E' progettata per quei dispositivi che hanno un collegamento alla rete intermittente (tipicamente gprs), processori lenti e una quantità di memoria limitata. Di solito i dispositivi che utilizzano questa configurazione sono i dispositivi utilizzati per la telefonia mobile e PDA. Il processore in questi casi è spesso a 16 bit, la memoria per Java e le applicazioni relative è compresa tra i 128 e i 512 KB (con il tempo questo valore è aumentato notevolmente). Tutti i cellulari attualmente in commercio hanno una configurazione CLDC.

Limitazioni rispetto J2SE -Gruppi di thread. La JVM non supporta la classe ThreadGroup quindi non si possono lanciare (o fermare) più thread in un colpo solo. -Finalizzazione. finalize() l'implementazione della JVM non supportera' la finalizzazione. -Calcoli a virgola mobile. Non ci sono numeri in virgola mobile ma e' comunque possibile con opportune librerie opensource utilizzarli. -Interfaccia Nativa Java. Non è possibile chiamare funzioni native del sistema operativo ospite per effettuare operazioni. -Caricatore di classi personalizzate. Il caricatore di classi subisce severi controlli e non può essere sostituito, ignorato o modificato. -Reflection. In J2SE si possono usare le classi Reflection per ottenere informazioni sulla JVM in esecuzione.

Sicurezza La configurazione CLDC definisce un modello conosciuto come sandbox che vieta l accesso a tutto quello che è fuori dalla scatola (come nelle applet). Un ultimo aspetto è quello della verifica dell integrità dei file di classe: 1 - PreVerifica: Durante il processo di programmazione, o prima di caricare una classe su di un apparecchio, si esegue un programma per l inserimento di attributi addizionali nel file di classe.necessario per eseguire il punto 2 2 Verifica: carica una classe pre-verificata, il verificatore interno dell apparecchio ne percorre tutte le istruzioni e se non trova inconsuetudini la firma, permettendo qunidi di poter testare o installare l'applicativo sul dispositivo.

Profilo MIDP MIDP, è un profilo che definisce un insieme di librerie create sulla base delle varie configurazioni. Attualmente esistono 2 versioni di midp: 1.0 e 2.0 (più recente). Midp 2.0 e' un estensione delle librerie midp 1.0. Contiene classi particolari per la gestione di audio,video,fotocamera,connessioni seriali bluetooth etc... MIDP 1.0 è formata in totale da sette package: -java.io Classi che forniscono sistemi di input ed output attraverso stream -java.lang Classi di sistema derivate dalla J2SE -java.util Classi di utilità derivate da J2SE (random,hastable,calendar, date etc) -javax.micoredition.io Supporto per le connessioni wireless e gli stream (siano file,piuttosto che connessioni verso server) -javax.microedition.lcdui Supporto per l'interfaccia utente -javax.microedition.midlet Classi di base per le MIDlet -javax.microedition.rms Supporto per la memorizzazione di dati

Ecco un elenco di alcune librerie presenti in midp 2.0: -javax.microedition.lcdui.game Un set di api per i videogiochi (sprite, tiled layer etc) -javax.microedition.media e javax.microedition.media.control servono per controllare e riprodurre suoni, filmati, utilizzare la fotocamera (suonare mp3 riprodurre filmati etc) -javax.microedition.pki Certificati per connessioni sicure Altre librerie presenti midp 2.0 che non sono necessariamente presenti: -WMA 1.0 per gestire l'invio e la ricezione degli sms, possibilità di risvegliare una midlet -WMA 2.0 aggiornamento con inclusione al supporto mms -Java APIs for Bluetooth per connessioni bluetooth -Mobile 3D Graphics librerie per gestire il 3D

Distribuzione delle applicazioni Una volta terminato lo sviluppo di un'applicazione, per poterla distribuire è necessario creare un file che contenga tutte le classi e le risorse (midi png etc). Il file che si andrà a creare è un file JAR (pari di un archivio zip o tar). Questo file JAR oltre alle classi Java ed alle risorse ha anche al suo interno un particolare file, manifest.mf, che si trova nella cartella META-INF dell'archivio. In questo file si trovano tutta una serie di attibuti molto importanti per la definizione della MIDlet: MIDlet-Name Nome della MIDlet che apparirà nell'elenco delle applicazioni MIDlet-Version Numero di versione del MIDlet MIDlet-Vendor Autore della MIDlet MicroEdition-Profile MIDP-1.0/MIDP-2.0 MicroEdition-Configuration (CLDC-1.0/CDC) MIDlet-Icon Icona MIDlet-Info-URL URL per le info supplementari

Jar & Jad Oltre al jar con il manifest e' necessario (almeno in midp 1.0) fornire anche un file jad contenente parametri necessari al dispositivo per per localizzare e installare la midlet. MIDlet-Name Nome della MIDlet che verrà visualizzato MIDlet-Version Numero di versione del MIDlet MIDlet-Vendor Autore della MIDlet MIDlet-Jar-URL URL del file JAR (assoluto) MIDlet-Jar-Size Dimensione del file JAR in byte Ve ne sono altri ma questi sono essenziali per fare installare la midlet. Le midlet generalmente sono installate via OTA (Over The Air) e ospitate su un webserver con determinate impostazioni (Vedremo nelle slide piu' avanti).

Tool e programmi di sviluppo Software necessario: -j2se scaricabile da java.sun.com -Wireless Toolkit sempre su java.sun.com -Un editor di testo qualsiasi (nedit,vi,emacs,gedit,kwrite, etc) Questo e' il software minimo per programmare in j2me. J2SE dovra' essere installato prima del wireless toolkit e sara' necessario ai fini dell'installazione e della compilazione delle midlet. Il wireless toolkit contiene un compilatore e un set di emulatori (standard) per testare le applicazioni. E' inoltre possibile da questo settare i vari parametri su cui dovra' essere compilata l'applicazione (midp 1.0/2.0 CLDC 1.0/1.1)

Wireless Toolkit da vicino

Creazione di un nuovo Progetto

Settings della midlet

Cosa succede ora... A questo punto il nostro Toolkit ha creato diverse cartelle del progetto che troverete nella directory dove avete installato il toolkit, sotto apps, ci sara' il nome del vostro progetto. All'interno di queste troverete altre 4 o 5 cartelle: SRC dove metterete i sorgenti (file.java) RES dove solitamente risiedono i file audio e i file di testo o le immagini CLASSES conterra' le classi compilate TMPCLASSES directory temporanea per i class BIN conterra' manifest.mf,il jad e il jar, quest'ultimo una volta scelto di creare il pacchetto selezionando Create Package dal menu' del programma.

Un applicazione di esempio import javax.microedition.lcdui.*; import javax.microedition.midlet.*; //le librerie utilizzate per lo sviluppo di questa applicazione public class Hello extends MIDlet { //creiamo una classe HelloWorld che estenda (sia una ) MIDlet Display display; /*creiamo un Display ovvero il gestore di schermo su cui disegneremo o inseriremo form*/ Form form; Image tux = null; public void destroyapp(boolean unconditional) { NotifyDestroyed(); /* metodo utilizzato per distruggere e quindi uscire dalla midlet*/ }

public void pauseapp() { Un applicazione di esempio (2) }/*questo metodo viene invocato dalla midlet e gli si predispone le cose da fare quando si ritorna da un evento come: ricezione di un messaggio, una chiamata,l'applicazione non e' piu' attiva o per qualche motivo si e' sospesa l'applicazione.*/ public void startapp() {/* e' il metodo principale (un po' il main del C o l'init delle applet java) chiamato al lancio della midlet*/ display = Display.getDisplay(this); //istanziamo il gestore di display form = new Form("LINUXDAY2K4"); //creiamo il form passandogli un titolo StringItem sitem = new StringItem(null,"Hello World!"); //creiamo una stringa la solita helloworld form.append(sitem); //aggiungiamo l'oggetto in coda al form form.append ("Questo e' l'output restituito dal dispositivo"); //appendiamo un altra stringa

Un applicazione di esempio (3) try{ tux = Image.createImage("/tux.png"); /*carichiamo l'immagine che dovremo inserire in RES del progetto */ }catch (Exception e) {}; form.append (new ImageItem("LinuxDay2k4!",tux,ImageItem.LAYOUT_CENTER,"testo alternativo")); /*Appendiamo un oggetto ImageItem ovvero un oggetto costituito da un immagine con un testo*/ display.setcurrent(form); //diciamo al display di visualizzare il form } }

Risultato sull'emulatore

Installazione sul dispositivo Il modo piu' sicuro per testare la vostra midlet e' via OTA (over the air). Depositare JAR e JAD su un webserver settando opportunamente i mime types nel file.htaccess. #MIME Types for MIDLETS AddType application/java-archive.jar AddType text/vnd.sun.j2me.app-descriptor.jad A questo punto se avete settato correttamente il jad e il jar vi bastera' collegarvi via cellulare (wap/gprs) all'url del jad.il vostro cellulare o dispositivo si colleghera' e installera' la midlet. Esistono altri modi per installare le midlet: via bluetooth (bluez.sourceforge.net), via irda e cavo. Per il bluetooth come per l'irda bastera' inviare la midlet dal computer al cellulare/dispositivo.. Non tutti i cellulari/dipositivi nonostante abbiano irda e bluetooth dispongono di installazioni del genere (Es. Nokia,SonyEricsson si, siemens, nec no).

Panoramica sui vari IDE Eclipse ME Plugin per sviluppare applicazioni j2me con eclipse Features -Supporto multiplo dei vari toolkit -Creazione della Suite di un Progetto (jar jad etc) -Creazione nuova Midlet -JAD editor -Preverifica -Eclipse supporto per il lancio dell' Emulatore -Midlet debugging -JAR pacchetto e offuscamento -Server per il test OTA -Esportazione dei file per Antenna (porting mobile di ant)

Panoramica sui vari IDE (2) Netbeans Netbeans è un ottimo ide java oltre che j2me, e' possibile includere i plugin per J2ME scaricando direttamente dall'update center del programma i plugin necessari. Features -Supporta tutte le versioni di WTK (1.0 2.0 2.1 2.2) -Creazione della Suite di un Progetto (jar jad etc) anche direttamente offuscata. -Utilizza Ant come motore per compilare con la possibilità di adattare l'xml usato dal progetto a seconda delle esigenze -Debugging -Organizzazione in progetti -JAD editor e suite editor -Integrazione con diversi emulatori (nokia, sony ericsson etc) -Server Tomcat già configurato per il test OTA

Link J2ME http://java.sun.com http://www.netbeans.org http://eclipseme.sourceforge.net/ http://www.wmlscript.it http://www.java2me.org http://dega1999.altervista.org/j2me/

Link utili per bluetooth http://www.bluez.org/ http://openobex.sourceforge.net/ USSP-PUSH