Programmieren mobiler Geräte

Werbung
Programmieren mobiler Geräte
Vorlesung WS 03/04
Dr. Martin Guggisberg und Dr. Christian Wattinger
Vorkenntnisse:
4 Java
Vorlesung:
4 Zeit: Pharmazentrum HS 2
4 Ort: DO 13 - 15
4 3 Kreditpunkte
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
1
Programmieren mobiler Geräte
Praktikumsangebot:
4 U1075 PC-Labor
4 Do 15.00 - 16.00 / 16.00 - 17.00 Uhr
4 Registrieren für Praktikum mit unibas-email + passwort:
4 http://courses.cs.unibas.ch
4 Anschluss für eigenes Notebook
4 Testatbedingung für Kreditpunkte: Mitarbeit im Praktikum + Projektarbeit mit
Präsentation
Vorlesungs-ZIEL:
4 einen guten Überblick über mobile Technologien gewinnen
4 programmieren eigener Anwendungen mit mobilem Client-Teil und
Serveranbindung
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
2
Programmieren mobiler Geräte
WERKZEUG
Vorlesungs-Homepage:
4 http://www.informatik.unibas.ch/lehre
4 Teilnehmerliste mit Natelnr.
4 Übungen
4 Unterlagen
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
3
Ressourcen
http://www.joller-voss.ch/
JAVA Skripte (deutsch)
http://www.mindview.net/
Free Java Books
http://java.sun.com/
JAVA Home
http://wireless.java.sun.com/
J2ME Home
http://jakarta.apache.org/
Open Source Portal
http://www.rfc-editor.org/
Computer Standarts
http://www.servlets.com/
Beispiel Sourcecode
http://www.oreilly.com/
Beispiel Sourcecode
http://www.w3.org/
Internet Richtlinien
http://www.alphaworks.ibm.com/xml
Entwickler Seite von IBM
http://www.xml.com/
XML Portal
http://sourceforge.net/
Open Source Portal
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
4
Literatur
B. Eckel, “Thinking in Java”, Second Edition, New Jersey, 2000
S. Allamaraju et al., "Professional Java Server Programming J2EE Edition", Wrox Press, 2000
Andrew S. Tanenbaum, "Computer Networks", Prentice Hall, 1996
L. Eilebrecht, "Apache Web-Server", MITP-Verlag Bonn, 2000
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
5
Technologie
Entwicklung
Werkzeug
Übung
23.10.2003 Organisation, Überblick, Einführung
Ant
Compilieren mit Ant
30.10.2003 Motivation/Markt, Übertragungs-Technologien
Eclipse 1
Projektverwaltung mit Eclipse
Eclipse 2
Debuggen mit Eclipse
Mobile Geräte und Netzwerke
6.11.2003 Hardware, drahtlose Netze
13.11.2003 WAP2.0, XHTMLMP, WML, WMLScript, WTAI, WAE
XML-Crash-Kurs
Nokia WAP Toolkit (?)XHTMLMP + SMiL
JAVA im mobilen Umfeld
20.11.2003 J2xE -> MIDP, KVM, GUI 1
Eclipse + J2ME ToolkitHello World + GUI
27.11.2003
4.12.2003
J2ME: GUI 2 + Graphik
Graphik
J2ME: RMS + IO
PalmOS Emulator
RMS
Tomcat
Servlet
Kannel
SMS mit Kannel
11.12.2003
MIDP 2.0 -> Media
18.12.2003
MIDP 2.0 -> Game
Vernetzte Systeme mit mobilen Komponenten
8.1.2004 Grundlagen Netzwerk Protokolle, HTTP, Servlet
15.1.2004 Projektarbeitenvergabe
SMS / MMS
22.1.2004 mobile Client - Server 1
Web Scraping
Servlet mit Midlet
29.1.2004 mobile Client - Server 2
Web Service
Projektarbeit
5.2.2004 mobile P2P
Cocoon
Projektarbeit
12.2.2004 Präsentation Arbeiten, Ausblick, Evaluation
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
6
Übersicht
Java Basis Technologien
Entwicklungs-Werkzeuge
Ant
Eclipse
Wireless Toolkit
Nokia WAP Toolkit
PalmOS Emulator
J2SE
Java Archive ( JAR ) file format
J2ME
Mobile Information Device Profile (MIDP)
J2EE
Servlets
Cocoon
Übertragungs - Technologien
Hardware
Drahtlose Netze
WAP 2.0
SMS / MMS
Departement Informatik
Universität Basel
Mobile Geräte
http://www.informatik.unibas.ch/lehre
Programmieren mobiler Geräte
Lektion 1: Übersicht
7
TECHNOLOGIE
Überblick
Mobile Geräte
4 Laptop/Notebook
4 Subnotebooks
4 PDA
4 Smart Phones
4 Mobiltelefone
4 ...
4 Embedded Systems
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
8
TECHNOLOGIE
Einschränkungen
kleines Display
monochrom (?)
limitierte Eingabemöglichkeiten
(Tastatur oder Stift)
langsame DatenVerbindung
teure
Daten-Verbindung
VORTEIL:
immer dabei
günstiger Preis
Departement Informatik
Universität Basel
langsame Rechengeschwindigkeit
wenig Speicherkapazität
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
9
TECHNOLOGIE
Nutzer weltweit
Millionen Nutzer
Million Subscribers
Mobil-Telefone
•Mobile phone
Festnetz-Telefone
•Fixed-line
phone
1.400
1.200
1.000
•TV
households
Fernseh-Geräte
800
600
•PCs
PC
400
200
0
1998
1999
2000
2001
2002
2003
2004
2005
Quelle: McKinsey
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
10
Mobiler Handel: m-Commerce
Mobile
Commerce
Electronic
Commerce
everywhere
& anytime
Zu jeder Zeit
Zeitgebunden
Ortsgebunden
Departement Informatik
Universität Basel
TECHNOLOGIE
Traditional
Commerce
Programmieren mobiler Geräte
Lektion 1: Übersicht
An jedem Ort
http://www.informatik.unibas.ch/lehre
11
Mobile Kommunikation Medien
TECHNOLOGIE
• Rahmenbedingungen (Reichweite, Bandbreite, Kosten)
führen zu einem Mix an mobilen Kommunikationsformen.
Reichweite
500-1000
km
Satellitenfunk
10-50 km
1-6 km
10-500 m
GSMFunkmodem
UMTS
DECT
5-15 m
1-1,5 m
GPRS
IEEE802.11b/g
Bluetooth
IrDA
Kilobit - Bereich
Departement Informatik
Universität Basel
Megabit - Bereich
Programmieren mobiler Geräte
Lektion 1: Übersicht
Bandbreite
http://www.informatik.unibas.ch/lehre
12
Kommunikation – Zonen
TECHNOLOGIE
IrDA
• sehr geringer Stromverbrauch
• keine Interferenz
GSM, GPRS, UMTS...
• Wide Area Network
• universeller Zugriff
Bluetooth
• sehr kleine Zellen
• ad-hoc Networking
• klein und stromsparend
• geringe Übertragungsleistung
802.11,
HiperLAN...
Wireless
LAN
• Wireless LAN
• hohe Datenraten
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
13
WERKZEUG
IDEs (Entwicklungsumgebungen)
http://www.netbeans.org/
Departement Informatik
Universität Basel
http://www.borland.com/
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.eclipse.org
http://www.informatik.unibas.ch/lehre
14
Werkzeuge
WERKZEUG
Werkzeuge
- Beispiele von Informatik Webserver download
- Verzeichnis / Package Strukture von JAVA
- Java Archive Repository JAR
- Compilieren mit J2SE SDK
- Automatisertes Compilieren mit ANT
- JAVA Security Tools
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
15
Vorlesungen in Informatik
WERKZEUG
http://www.informatik.unibas.ch/lehre/
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
16
Vorlesungen in Informatik
WERKZEUG
http://www.informatik.unibas.ch/lehre/
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
17
Unterlagen zur Vorlesung
WERKZEUG
http://fgb.informatik.unibas.ch/fgb/lectures/aktuelle_vorlesungen/Mobil/online
zu den Übungen
Vorlesung als
PDF
Beispiele
ZIP
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
18
Code Snippets
WERKZEUG
http://www.acknowledge.co.uk/snippets
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
19
Package Struktur von JAVA
WERKZEUG
import jax.ws2002.eigenesObjekt
...
Klassen Verzeichnis
../classes/jax/ws2002/eigenesObjekt.class
Quellen Verzeichnis
../src/jax/ws2002/eigenesObjekt.java
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
20
Compilieren mit J2SE SDK
WERKZEUG
cd com
cd ack
cd date
[jax:com/ack/date] g% ls
BasicDateFormatting.java GetTheCurrentTime.java
[jax:com/ack/date] g% javac *.java
[jax:com/ack/date] g% ls
BasicDateFormatting.class GetTheCurrentTime.class
BasicDateFormatting.java GetTheCurrentTime.java
java com.ack.date.GetTheCurrentTime
Mon Oct 06 23:56:40 CEST 2003
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
21
Java Archive Repository JAR
WERKZEUG
Archiv erstellen:
jar -cvf snippsets.jar src
Manifest wurde hinzugefügt.
Hinzufügen von: src/(ein = 0) (aus= 0)(gespeichert 0 %)
Hinzufügen von: src/.DS_Store(ein = 6148) (aus= 222)(komprimiert 96 %)
Hinzufügen von: src/com/(ein = 0) (aus= 0)(gespeichert 0 %)
...
Archiv auspacken:
jar -xvf snippsets.jar
-c create
-x extract
-f file
-v verbose
-t topics
Inhalt anschauen:
jar -tf snippsets.jar
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
22
1.5 ANT - Make Tool für Java
http://jakarta.apache.org/
WERKZEUG
Download
Unzip
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
23
Automatisierte Compilierung
WERKZEUG
ant
Buildfile: build.xml
prepare:
compile:
[javac] Compiling 52 source files to .../snippsets/build
BUILD SUCCESSFUL
Total time: 8 seconds
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
24
ANT - Make Tool für Java
Targets
<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C"/>
WERKZEUG
Automatisierte
Ausführung nach
Abhängigkeiten:
Bsp: >ant D
Tasks
<name attribute1="value1" attribute2="value2" ... />
Property
<property name="src" value="src"/>
<property name=“dist" value=“dist"/>
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
25
WERKZEUG
Core Tasks
<mkdir dir="${dist}"/>
<tstamp>
<format property="TODAY_UK" pattern="d-MMMM-yyyy" locale="en"/>
</tstamp>
<delete>
<fileset dir="." includes="**/*.bak"/>
</delete>
<copy todir="../backup/dir" >
<fileset dir="src_dir" />
</copy>
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
26
WERKZEUG
Core Tasks II
<java classname="test.Main" >
<arg value="Hans"/>
<classpath>
<pathelement location="../test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
<javac destdir="${build}" classpath="xyz.jar" debug="on">
<src path=”../src"/>
<src path="../src2"/>
<include name="mypackage/p1/**"/>
<exclude name="mypackage/p1/testpackage/**"/>
</javac>
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
27
WERKZEUG
Bsp: build.xml
<?xml version="1.0" ?>
<!-- Lektion 1
Programmierung Mobiler Geraete
-->
<!-- ===========================================================-->
<project name="mobil1" default="compile" basedir=".">
<!-- Prepares the build directory
-->
<!-- ======================================= -->
<target name="prepare">
<mkdir dir="build" />
</target>
<!-- Compiles the source code
-->
<!-- ======================================== -->
<target name="compile" depends="prepare">
<javac srcdir="src" destdir="build">
</javac>
</target>
<!-- Cleans up generated stuff
-->
<!-- ======================================= -->
<target name="clean">
<delete dir="build" />
</target>
</project>
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
28
WERKZEUG
ANT Demo
cd <<Projekt Verzeichniss>>
ant
Buildfile: build.xml
prepare:
[mkdir] Created dir: .../prakt_v1/snippsets/build
compile:
[javac] Compiling 52 source files to .../prakt_v1/snippsets/build
BUILD SUCCESSFUL
Total time: 8 seconds
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
29
WERKZEUG
javadoc generieren
<!-- =================================================================== -->
<!-- Creates the API documentation
-->
<!-- =================================================================== -->
<target name="javadocs" depends="prepare">
<mkdir dir="doc" />
<javadoc packagenames="com.ack.*" sourcepath="src"
destdir="doc" author="true" version="true"
windowtitle="Snippset API" doctitle="Vorlesung Programmierung Mobiler Geraete"
footer="Copyright © 2000-2002 Uni Basel.
See <a href="http://fgb.informatik.unibas.ch">
fgb.informatik.unibas.ch</A> for rights granted." />
</target>
javadocs:
[javadoc] Generating Javadoc
[javadoc] Javadoc execution
[javadoc] Loading source files for package com.ack.awt...
[javadoc] Loading source files for package com.ack.awt.examples...
...
[javadoc] Loading source files for package com.ack.xsl.jaxp...
[javadoc] Constructing Javadoc information...
[javadoc] Standard Doclet version 1.4.1
[javadoc]
[javadoc] Building tree for all the packages and classes...
[javadoc] Building index for all the packages and classes...
[javadoc] Building index for all classes...
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
30
WERKZEUG
weiteres:
Unified Resource Locator URL
Syntax:
<prot.>//<user>:<password>@<host>:<port>/<url-path>
telnet://eudora.ifi.unibas.ch:19
ftp://[email protected]/
http://www.google.ch/search?q=Uni+Basel
Departement Informatik
Universität Basel
Programmieren mobiler Geräte
Lektion 1: Übersicht
http://www.informatik.unibas.ch/lehre
31
Herunterladen