1 / 27

Softwareentwicklung für Palm OS Vortrag zu PUM 2008

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++.

sancha
Download Presentation

Softwareentwicklung für Palm OS Vortrag zu PUM 2008

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Vorwort • Warum ich? • Fast alles ist machbar! • FAQ

  3. 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)

  4. 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)

  5. 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)

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

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

  8. 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.)

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

  10. 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)

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

  12. 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)

  13. Besonderheiten • Creator ID: 4-stellige Buchstaben/Zahlenkombination. Wichtig eine je Anwendung, Registrieren auf www.developerpavilion.com

  14. 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

  15. 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

  16. 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...

  17. Infos, Webseiten, Foren, Links • Palm OS SDK, Docs (API Reference, Companion 1 & 2) und Creator ID bei www.accessdevnet.com • 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. www.flippinbits/twiki)

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

  19. 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.

  20. Ein Beispiel: Start und Stop • Start: • PrefGetAppPreferences • FrmGotoForm • Stop: • FrmCloseAllForms • PrefSetAppPreferences

  21. 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

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

  23. 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

  24. Ein Beispiel: Test

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

  26. Ein Beispiel: Das Ergebnis

  27. Nachwort Alles nochmal zum Nachlesen, die Beispielanwendung und der Sourcecode auf • http://www.metaviewsoft.de/PUM-2008

More Related