J2ME v kostce – jak dostat aplikaci do telefonu

5. listopadu 2002

V předchozím článku jsme vytvořili jednoduchý midlet a vyzkoušeli si ho v emulátoru. Teď už jen zbývá nahrát ho do telefonu. Jenže to není často tak jednoduché, jak by si člověk přál a představoval. Tento článek se vás pokusí provést všemi zákrutami, které vás na cestě midletu do telefonu mohou potkat.

Zabalení aplikace – teorie

Aplikace se skládá ze dvou základních souborů, které mají strukturu danou specifikací profilu MIDP. Jsou to deskriptor aplikace a JAR soubor. Této dvojici souborů se říká sada midletů (midlet suite).

JAR soubor

V JAR souboru je zabalen jeden či více midletů. Tento soubor obsahuje:

  • Manifest soubor
  • Java třídy pro midlety
  • Ostatní zdroje jako například obrázky

Manifest soubor se v JAR souboru nachází v adresáři META-INF (ta velká písmena jsou důležitá) a jmenuje se manifest.mf. Má, stejně jako deskriptor aplikace, formát jméno_atributu: hodnota atributu a musí obsahovat všechny povinné atributy. Pokud některý z nich nebude obsahovat, některé telefony tuto sadu midletů odmítnou nainstalovat. Povinné atributy jsou:

  • MIDlet-Name
  • MIDlet-Version
  • MIDlet-Vendor
  • MIDlet-<n> pro každý MIDlet
  • MicroEdition-Profile
  • MicroEdition-Configuration

Přehled všech předdefinovaných atributů sady midletů s jejich popisem najdete v následující tabulce:

Název atributu Popis atributu
MIDlet-Name Název sady midletů, kterým se identifikuje uživateli.
MIDlet-Version Číslo verze sady midletů používané manažerským softwarem v telefonu při aktualizaci.
MIDlet-Vendor poskytovatel sady midletů
MIDlet-Icon Jméno png souboru uvnitř JAR souboru. Tento obrázek by měl být použit jako ikona identifikující tuto sadu midletů.
MIDlet-Description popis sady midletů
MIDlet-Info-URL URL, kde je možné najít dalčí informace o této sadě midletů.
MIDlet-<n> jméno, ikona a název hlavní třídy n-tého midletu oddělené čárkami
MIDlet-Jar-URL URL, odkud je možné stáhnout jar soubor této sady midletů.
MIDlet-Jar-Size velikost JAR souboru
MIDlet-Data-Size Minimální velikost paměti, kterou tato sada midletů potřebuje pro uložení trvalých dat. Výchozí hodnota je 0.
MicroEdition-Profile požadovaný J2ME profil, např. MIDP-1.0
MicroEdition-Configuration požadovaná J2ME konfigurace, např. CLDC-1.0

Přehled všech předdefinovaných atributů souboru manifest.mf a deskriptoru aplikace

Deskriptor aplikace

Deskriptor aplikace je textový soubor, který má stejný formát jako manifest soubor. Jmenuje se jmeno_sady_midletu.jad. Při instalaci sady midletů se nejprve do telefonu přenese deskriptor aplikace a JAR soubor se nahrává podle atributů v něm obsažených. Následující atributy jsou povinné:

  • MIDlet-Name
  • MIDlet-Version
  • MIDlet-Vendor
  • MIDlet-Jar-URL
  • MIDlet-Jar-Size

Kromě povinných atributů může deskriptor obsahovat další libovolné atributy, které nezačínají řetězcem MIDlet. K těmto atributům má programátor přístup přes metodu getAppProperty(String key) třídy MIDlet. Ale pozor, telefony značky Siemens umějí načíst atribut maximálně 255 znaků dlouhý, delší ořezávají. Také není úplně dobrý nápad vkládat do manifestu české znaky. I když je telefon zvládá (pokud je deskriptor v kódování UTF-8), přes některé brány nedorazí na telefon v pořádku.

Zabalení aplikace – praxe

Posledně jsme pomocí KToolbar aplikace z J2MEWTK spustili midlet HelloWorld v emulátoru. Ta samá aplikace nám pomůže tento midlet zabalit do sady midletů. Stačí si v ní otevřít projekt HelloWorld a vytvořit balíček, jak ukazuje obrázek.

Zabalení midletu
J2MEWTK – výroba balíčku

Deskriptor HelloWorld.jad a příslušný JAR soubor HelloWorld.jar najdete v adresáři J2MEWTK_HOME/apps/HelloWorld/bin. Deskriptor aplikace bude vypadat asi takto:

MIDlet-1: HelloWorld, HelloWorld.png, HelloWorld
MIDlet-Jar-Size: 1263
MIDlet-Jar-URL: HelloWorld.jar
MIDlet-Name: HelloWorld
MIDlet-Vendor: Sun Microsystems
MIDlet-Version: 1.0

Kudy do telefonu

Existuje několik způsobů, jak nahrát aplikaci do telefonu, z nichž každý telefon podporuje odlišnou podmnožinu. Které způsoby konkrétní telefon podporuje, si musíte zjistit na stránkách jeho výrobce, několik odkazů uvádím na konci článku. Možnosti jsou následující:

  • Kabel
  • Infrared port
  • Bluetooth
  • OTA (Over The Air neboli vzduchem) – wap

Pokud váš telefon podporuje některou z prvních tří možností, je velmi pravděpodobné, že k němu máte potřebný specializovaný software i s návodem k použití. Proto se budu věnovat univerzálnímu způsobu, wapu.

Použití wapu

Abyste mohli stáhnout aplikaci do telefonu „vzduchem“, potřebujete ji nejprve umístit na http server. Na tomto serveru musí být správně nastavený MIME typ pro .jad a .jar soubory, aby je software v telefonu dokázal rozpoznat. Nastavení je:

Přípona souboru MIME typ
.jad text/vnd.sun.j2me.app-descriptor
.jar application/java-archive

Různé telefony stahují aplikace ze serverů různým způsobem. Uvedu dva příklady. Telefony od firmy Nokia stahují JAR soubor přes wap, takže jim stačí v atributu MIDlet-Jar-URL relativní adresa, jak ji vygeneroval KToolbar. Pokud byste se ovšem tento deskriptor pokoušeli použít beze změny pro telefony od firmy Siemens, dozvěděli byste se, že soubor JAR nebyl nalezen. Tyto telefony přes wap stáhnou pouze deskriptor aplikace a pro stažení JAR souboru si otevřou přímé spojení podle hodnoty v atributu MIDlet-Jar-URL, je proto potřeba vyplnit sem absolutní adresu. Takže univerzální poučka zní: Vyplňte do atributu MIDlet-Jar-URL absolutní adresu, ušetří vám to problémy.

Teď už jen stačí zkopírovat deskriptor a JAR na váš server, zadat do telefonu adresu deskriptoru a můžete svůj telefon nechat pozdravit celý svět.

Stránky výrobců telefonů s podporou javy

Na těchto stránkách najdete nástroje k vývoji aplikací, technické údaje o konkrétních zařízeních, články a diskusní fóra. Obvykle mohou všechny služby využívat až registrování uživatelé, ovšem registrace bývá bezplatná.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *