donderdag 9 december 2010

Smartphone emulators


Voor m'n werk ben ik momenteel bezig aan een website die moet toegankelijk zijn voor de meest gebruikte smartphones: de iPhone (Apple), de Android toestellen (Google), de Symbian toestellen (waaronder Nokia), het nieuwe Windows Mobile 7 (Microsoft) en de Blackberry's (van Research In Motion). Je kunt natuurlijk naar de winkel hollen en deze toestellen kopen om de website er op te testen, maar het kan makkelijker door emulators te gebruiken die je gewoon op je pc kunt installeren.

Het minst voor de hand liggend om aan de praat te krijgen is de iPhone emulator. Deze werkt immers enkel op een Mac en is ook niet gratis: je moet een developer account hebben bij Apple. De simulator is gekoppeld aan de ontwikkelingsomgeving XCode - een soort van Eclipse. Eens je een developer account hebt, is de SDK gratis te downloaden. Het grootste probleem is het draaien van een Mac machine met OSX op een PC. Ik heb dit aan de praat gekregen met de virtualisatieoplossing VirtualBox in combinatie met een Intel image van OSX. Alleen voor de fun, want legaal is dit niet vrees ik, en er zijn ook wat hacks nodig om voorbij het installatieproces te raken. Als je in OSX bent geraakt, moet je Xcode opstarten, een nieuw iPhone project aanmaken (File, New Project) en daarna 'Build and Go' aanklikken. Er wordt dan een lege applicatie opgestart, maar met de menu-toets op het virtuele iPhone toestel kun je Safari opstarten. De internetverbinding werkt out-of-the-box.

Voor Android is het gelukkig wat makkelijker. Je kunt de laatste SDK downloaden op de website van de ontwikkelaars. De Android emulator heeft een Java JDK nodig (hier te vinden). Verder werkt alles zonder verdere ingrepen.

De Symbian toestellen kunnen ook geëmuleerd worden met de zogenaamde PDK toolkit, maar hier is echt een gigantische download voor nodig EN de 7Zip ontzipper (met de standaard Winzip lukt het niet). Je gaat naar de website van Symbian (registratie nodig) en je zoekt daar naar binaries_epoc.7z, binaries_winscw_lib.7z, binaries_winscw_udeb.7z, binaries_winscw_urel.7z en tools_epoc.7z. Al deze bestanden ontzip je in de directory C:\Symbian\S3PDK. Verder heb je ook WinPcap nodig, omdat dit programma de brug verzorgt tussen de telefoon en je internet aansluiting. Bij het openen van een pagina in de mobiele browser kies je dan ook Winsock als verbindingstype.

Run deze batch file om de koppeling te maken tussen de emulator en je internet connectie:
subst k: C:\Symbian\S3PDK
k:
set EPOCROOT=\
set path=%path%;\epoc32\tools
EnableLanConnection.cmd

Maak tenslotte een shortcut op je desktop naar C:\Symbian\S3PDK\epoc32\release\winscw\urel\epoc.exe om de emulator makkelijker op te starten.

Ook de download voor Windows Mobile 7 is gigantisch, omwille van het hele framework dat mee in de SDK zit. Het pakket is echter eenvoudig te installeren en werkt zonder omkijken.

De laatste noot om te kraken is RIM's BlackBerry. Er bestaan simulators voor zowat elk type toestel. Ik heb de versie gedownload voor de 9800. Dat is een recent toestel uitgerust met versie 6 van het besturingssysteem. Het probleem van deze emulator is dat er standaard geen internet connectie is voorzien. Hiervoor moet je de BlackBerry MDS/email server downloaden en installeren. Zorg ervoor dat de environment setting JAVA_HOME verwijst naar de plaats waar je de Java JDK hebt geïnstalleerd.

Je moet de MDS server opstarten vóór de emulator. In Windows 7 moet dit met verhoogde rechten. Open een CMD prompt als Administrator en tik dan CD "C:\Program Files\Research In Motion\BlackBerry Email and MDS Services Simulators 4.1.4\MDS". Vervolgens lanceer je run.bat en daarna de emulator.

Al bij al ben ik drie dagen zoet geweest om alles aan de praat te krijgen. Wat opvalt is dat alle SDK's zo groot zijn - in totaal enkele gigabytes. Dit komt omdat geen enkele emulator wordt geleverd zonder alle tools om zelf programma's te maken.

Geen opmerkingen: