Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Slides:



Advertisements
Ähnliche Präsentationen
Tuning Tools für Windows
Advertisements

Softwareentwicklung für Android
Ruhr-Universität Bochum Der Umstieg von XP auf Vista: Marcel Wrede Lehrstuhl für Kryptologie und IT-Sicherheit Lehrstuhl für Stochhastik Im Irrgarten.
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Aktuelle Java-Trends, Norbert Schuler1 Jini Java im Netz.
Wird euch präsentiert von Ben Polidori
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Neuerungen in PalmOS® 5 Florian Schulze (SS 2003).
Windows auf öffentlichen PCs
Betriebssysteme für mobile Endgeräte
Palm OS Project Martin Ochs Palm OS Project Inhalt Hardware Schnittstellen Die serielle Schnittstelle Entwicklungsumgebung Test-Programm Hardware-Test.
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
ilmenau.de Exploiting Pocket PC. ilmenau.de Exploiting Pocket PC PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10)
Introducing the .NET Framework
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
PDA 1 Präsentation von Özgür Akyildiz
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Portierung von Java nach C
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Visual Extend Was ist wo? deutschsprachige FoxPro User Group Rainer Becker VFXWASWO.
Marcus Haller & René Schulze
Referat zum Thema „DLL“
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Linux auf iSeries und pSeries Beat Rubischon Informatiksupport Departement Physik ETH Zürich.
„Küsse deine Freunde“ – FlexKom-App teilen
Performance-Steigerung durch schnelle Festplatten Ulrich Dinger.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Simple Programmierung
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Einführung in die Programmiersprache Java
Eine Präsentation von Dario Müller © 2012
JavaScript.
Mensch-Maschine-Interaktion bei mobilen Endgeräten Bernhard Huber Peter Weichenberger TKS-B
Präsentation von Alexander Schönfeld
Basic Input/Output System
Service Computing   Prof. Dr. Ramin Yahyapour IT & Medien Centrum 19. Januar 2010.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
Spring Framework.
CGI (Common Gateway Interface)
Java Server Pages Sergej Keterling
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Textverarbeitungsprogramme
Von Isabelle Spörl und Simon Schausberger
Übersicht: Hardware Zentraleinheit EVA-Prinzip
Oliver Lietz – Mobile Software Mobile Software Ausgewählte Themen Software (ATS) Beuth-Hochschule SS 2010 Oliver Lietz Dipl.-Ing.
Embedded Linux Portierung auf mobiles Datenerfassungsterminal
Version X des Programms: Datenaustausch-Probleme % ( ) (WIRBEL-BASISTEIL GR. 52) N1G29X150Y85I150J25 N2G0X150Y25 Version Y des Programms:
Jonas Rüttimann 2. Juni Motivation Was ist RAP? Schnellstart: Wir bringen RAP zum Laufen! Technologie: Wie funktioniert RAP? Konsequenzen für die.
PC Club Zürich 28. März 2011 Herzlich willkommen Roger Furter.
Effizienz durch VIRTUALISIERUNG
© Zühlke 2012 Oliver Brack Romano Roth iOS, Android, WP7: Alle nativ auf einen Streich Fragenkatalog zu umgesetzten Apps 27. September 2012 Folie 1.
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
Fingerprint Matching On Card
10. Januar Entwicklungsumgebungen unter Windows (und Unix) Was ist eine IDE (=Integrated Development Environment) Welche Ansprüche stellt man an.
1 Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Hacks Daniel Schweighart
1 Palmpilot und Handspring Anwendungsprogrammierung Am Beispiel „Schiffeversenken“ Andreas Scholz.
Benutzerumgebung auf der PC Seite Motivation Benutzerumgebung unter Windows Benutzerumgebung unter Linux.
BIOS/UEFI Joschka Mick.
Die gemeinsame Datenbank Die Forschungsgemeinschaft Eisenbahngeschichte betreibt eine Datenbank im Internet, die nur für die Mitglieder der Forschungsgemeinschaft.
8. Juni 2005Autor: Walter Leuenberger Computeria Urdorf Treff vom 8. Juni 2005 CDs & DVDs Brennen.
© Zühlke 2013 Romano Roth Workshop 6 (ws6C) native Entwicklung für mobile Geräte Lektion 5-6: Mega CRM 25. Februar 2013 Folie 1 von 10.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Anwendertreffen DPV 2015 Andreas Hungele DPV-Software 2015.
Title of OpenOffice.org Slide Presentation Presentation Author Title Company Name.
Workshop 1 Getting Started 2016 Boris Wylutzki
Gaming unter Linux Voraussetzungen Varianten Beispiele Lösungen
Checkliste für den Referenten
Coden mit Python Was sind deine Erfahrungen mit Programmieren?
 Präsentation transkript:

Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator, Gerät Besonderheiten Beschränkungen Ein Beispiel

Vorwort Warum ich? Fast alles ist machbar! FAQ

Programmiersprachen: C/C++ PODS (Freeware, Eclipse + gcc, ACCESS) prc-tools (Freeware, gcc, keine IDE) CodeWarrior ($399, ) Pocket C (ab $18,50, auch auf Palm) OrbForms (ab $55) OnBoard-C (Freeware, auf Palm) Palmphi (Freeware)

Programmiersprachen: Basic HotPaw Basic (16,95, auf Palm) NS Basic (ab $149,95, ähnlich VB) AppForge ($$, VB AddOn, nicht mehr verfügbar?) SmallBasic (Freeware) HB++ (ab 149 ) iziBasic ($25, auf Palm)

Programmiersprachen: Weitere RAD (Rapid Application Dev.)-Tools Satellite Forms ($795) CASL ($299, Anwendung auch auf Pocket PC und Windows) Pascal HS Pascal (Spendenbasis) PocketStudio (ab $69,99) PPCompiler (Freeware, auf Palm) Java SuperWaba (Freeware/$495, Anwendungen laufen auch auf Pocket PC und Windows)

Tipps Programmieranfänger? Basic oder RAD, Freeware Umsteiger? Abhängig von bestehender Erfahrung Für mich? C mit CodeWarrior oder prc-tools

Tools PILRC Standard Resourcecompiler PRC-Explorer Aufbau der PRC- Datei Reporter Ausgabekonsole für Emulator oder Simulator

Testen: Emulator Emulator bis OS < 5 emuliert Prozessor + Hardware (VM) sehr robust braucht Original-ROM vom Gerät (beim ADN nur spezielle 2 ROMs) alte ROM-Dateien wegen Graffiti 1 Patent nicht mehr erhältlich download beim AccessDeveloperNetwork, spezielle Versionen bei den jeweiligen Herstellern der Geräte (Sony, Handera usw.)

Emulator bemängelt mehr Fehler als das echte Gerät kein Hires(+), keine moderne Sound-API...

Testen: Simulator Simulator ab OS 5 OS 5 als Windowsanwendung compiliert Nur m68k Code, ARMlets für Intel compiliert Wenn Anwendungsfehler, dann meistens Absturz (Debugversion manchmal robuster) Erhältlich beim ADN, spezielle Versionen bei den jeweiligen Herstellern der Geräte (Palm) oder verschollen (Sony, Tapwave)

Simulator selbst die Gerätesimulatoren funktionieren manchmal etwas anders, als das richtige Gerät

Debuggen Mit Emulator oder Simulator: In CodeWarrior geht's prima... mit PODS geht's auch... mit prc-tools ist es schwierig. Auf dem Gerät: von brauchbar (m68k Code) bis katastrophal (ARM Code)

Besonderheiten Creator ID: 4-stellige Buchstaben/Zahlenkombination. Wichtig eine je Anwendung, Registrieren auf

Beschränkungen limitierter Arbeitsspeicher (wird aber von Gerät zu Gerät besser) Segmentierung (32KB große Codesegmente im m68k Code -> MultiSegmentApp) Keine C-lib vorhanden, aber API hat viele ähnliche Aufrufe (strlen() -> StrLen() usw.) Tastenbelegung und Anordnung bei jedem Gerät anders: JogDial, 5-Way (Nav oder Rocker), Page Up/Down, Tastatur

Display-Auflösung bis OS < 5: 160x160 Standard (Lowres) ab OS 5: 320x320 (Double Density, Hires) und 320x480 (Hires+) Wegen Kompatibilität normalerweise immer alle Koordinaten in Lowres spezielle APIs für OS < 5 von z.B. Sony und Handera

Prozessor Geräte mit OS < 5 haben m68k: Motorola Dragonball Prozessor Geräte ab OS 5 haben ARM Prozessor mit m68k Emulation im ROM Anwendungen sind weiterhin im m68k Code, spezielle ARMlets (oder PNOlets) laufen auf direkt auf dem ARM Prozessor, werden aber gewöhnlich von einem m68k Launcher gestartet (siehe PalmPDF) ARM ist schneller, keine Segmentierung, ideal für Portierungen...

Infos, Webseiten, Foren, Links Palm OS SDK, Docs (API Reference, Companion 1 & 2) und Creator ID bei SDK zu Palm Geräten (Zire, Tungsten, Treo) bei pdn.palm.com SDK zu anderen Geräten auf den Herstellerseiten oder teilweise verschollen (Sony, Tapwave) News-Foren auf news.palmos.com Foren auf pdn.palm.com Wikis, Tutorials (z.B.

Ein Beispiel: Übersicht PilotMain (Test sysAppLaunchCmdNormalLaunch ) StartApplication (enthält FrmGotoForm ) EventLoop (bis appStopEvent ) Event-Handler StopApplication

Ein Beispiel: The Main UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 flags); cmd - LaunchCode vom System cmdPBP - Argumente je nach LaunchCode flags - Anwendung läuft bereits, Anwendung hat Zugriff auf globale Variablen usw.

Ein Beispiel: Start und Stop Start: PrefGetAppPreferences FrmGotoForm Stop: FrmCloseAllForms PrefSetAppPreferences

Ein Beispiel: Warten auf Godot EventLoop: Schleife bis appStopEvent kommt EvtGetEvent (Wartet auf Event, mit TimeOut) SysHandleEvent (Event nur für System?) Form wird geladen ( frmLoadEvent ): FrmInitForm, FrmSetActiveForm und FrmSetEventHandler Sonst einfach: FrmDispatchEvent

Ein Beispiel: Oberfläche PILRC übersetzt.rcp-Datei: FORM ID MainForm AT ( ) BEGIN TITLE "Nexave.de" BUTTON "Enable" ID EnableBtn AT ( ) BUTTON "Disable" ID DisableBtn AT ( PREVLEFT PREVTOP+30 PREVWIDTH PREVHEIGHT) LABEL "Palm User Meeting 2008" AUTOID AT ( 113 ) END

Ein Beispiel: Makefile all: nexave.prc nexave.prc: main main.ro m68k-palmos-obj-res main build-prc -o nexave.prc -n "Nexave" -c NxVe *.grc *.ro main: main.o main.o: main.c main.h Main_Rsc.h Main_Rsc.h: main.rcp pilrc -ro main.rcp

Ein Beispiel: Test

Ein Beispiel: Launchcodes, Events, Notifications LaunchCodes: NormalLaunch, Reset, Find, GoTo... Events: frmOpenEvent, ctlSelectEvent, appStopEvent... Notifications: sysNotifyVirtualCharHandlingEvent, sysNotifyLateWakeupEvent

Ein Beispiel: Das Ergebnis

Nachwort Alles nochmal zum Nachlesen, die Beispielanwendung und der Sourcecode auf