24. listopadu 2007
V nedávném článku jsem popisoval své první uživatelské dojmy z mobilního telefonu Sony Ericsson K850i. Dnes si na toto povídání dovolím lehce navázat, a to zevrubným popisem podporovaných Java Specification Requests (JSR, podrobný popis naleznete v angličtině na stránkách JCP).
Zatímco prodejci mobilních telefonů často končí pouze označením MIDP profilu (MIDP 1.0, MIDP 2.0,...), v praxi uživatele i programátory víceméně limituje právě to, zda daný telefon podporuje určitý JSR nebo nikoli. Absence podpory některých JSR je známá například u modelu K700i - přestože měl telefon v sobě zabudované bluetooth, díky absenci JSR 82 (Bluetooth API pro javu) nebylo možné spustit žádné "bluetooth" java aplikace (např. BT Explorer, Blueroom apod). Následující řádky tedy nemusí být zajímavé pouze pro programátory, ale také pro běžné uživatele, kteří chtějí na mobil nainstalovat některé specifické java aplikace a nejsou si jistí, zda to bude fungovat.
Tento JSR popisuje základní javovské balíčky, třídy a vlastnosti. Jedná se tedy o jakési společné minimum funkcí, které musí telefony s označením MIDP 2.1 podporovat (jak jsem psal v úvodu - právě profil MIDP bývá často to jediné, co se lidé od prodejců dozvědí; všechny ostatní JSR jsou víceméně navíc).
Samotné MIDP 2.1 není zase tolik zajímavé, osobně nevidím žádný významný přínos oproti staršímu MIDP 2.0, což dokazují tyto klíčové vlastnosti (vybírám to nejzajímavější z JSR 118):
MIDP 2.1 zaručuje podporu základních javovských tříd (řetězce, čísla, čísla s plovoucí desetinnou čárkou, systémové třídy,...), utilit (datum, matematické funkce, časovače,...), IO spojení (včetně socketů), nízkoúrovňové i vysokoúrovňové grafiky, herních tříd (zejména co se grafiky týče - jedná se o různé textury, animace apod), multimediálních tříd (přehrávání hudby, ovládání hlasitosti,...), tříd pro správu certifikátů (pro HTTPS) a RMS databáze.
Přináší podporu pro čtení a zapisování souborů na file system mobilního telefonu (interní paměť nebo pamětová karta) a s tím spojené funkce (např. zobrazení volného místa, vytváření adresářů, nastavování práv a podobně).
Bluetooth API - možnost nastavení bezpečnostních politik, zobrazení seznamu okolních zařízení, zobrazení seznamu známých zařízení, spárování dvou přístrojů, OBEX, ...
Podpora posílání a přijímání SMS zpráv (vč. binárních). Ve specifikaci není žádná zmínka o tom, že by šlo číst zprávy z paměti telefonu. Cílem tohoto JSR je, aby bylo možné poslat SMS zprávu a přijmout odpověď (která přijde během puštěné aplikace). Dokážu si představit, že by se to dalo použít například ke zpoplatnění provozu aplikace pomocí Premium SMS.
JSR 135
Přehrávání a nahrávání multimédií dle možností telefonu. Podpora posouvání skladeb a nastavení rychlosti přehrávání.
Podpora webových služeb a RPC. Nejzajímavější na tomto ne moc zajímavém balíku je podpora parsování XML souborů, ale i tak si myslím, že je XML pro mobily až příliš ukecaný a příliš složitý formát.
JSR 177
Bezpečnostní služby, zejména související s HTTPS.
Podpora protokolu SIP, který se používá zejména pro internetová volání. Pokud to dobře chápu, tak bychom se časem mohli dočkat verze programu Skype pro mobilní telefony (K850i již podporuje dostatečně rychlé internetové připojení).
Podpora 3D grafiky.
JSR 120 + podpora MMS zpráv.
Content Handler. Funkce tohoto API jsou poněkud různorodé a zároveň poměrně složité. Jednou z možných aplikací je například online nákup hudby s DRM nebo stahování dalších levelů java hry.
2D grafika - SVG animace.
Podpora platebních transakcí (nevím, jestli v ČR operátoři něco takového nabízejí, v podstatě by přes to šlo platit na vrub účtu za telefon).
Pokročilé multimediální API - k JSR 135 přidává například audio efekty (reverb, ekvalizér, chorus, flanger), ovládání fotoaparátu / kamery (překvapivě mnoho možností nastavení), grafické efekty (úprava fotek) a také ovládání rádia a RDS. Dovoluji si poznamenat, že s pomocí tohoto API by se dal z K850i vytvořit extrémně funkčně silný multimediální přehrávač.
Podpora vícejazyčnosti java aplikací.
OpenGL grafika.
API pro různé mobilní sensory (pohybový, alkoholový,...). K850i má pouze jeden sensor - Akcelerometr, který umožňuje zjistit pozici telefonu vůči zemi (pro každý směr v rozsahu od -2,3 G do +2,3 G). Běžné využití tohoto sensoru je například pro automatické otáčení displeje po otočení telefonu nebo krokoměr, nicméně mě napadají minimálně tyto další možnosti:
Zaručí kompatibilitu se staršími MIDP 1.0 aplikacemi pro mobilní telefony Nokia (pro MIDP 2.0 aplikace se již Nokia UI API nepoužívá).
Publikováno dne 24. 11. 2007 v kategorii Programování
Odhadnutá klíčová slova BETA: K850i | java | aplikace | k850i aplikace | hry na K850i | K850i hry | midp | java hry na k850i | aplikace na k850i
Mohlo by Vás zajímat BETA: iPad 2 po třech týdnech a tipy na zajímavé aplikace
O kategorii Programování
V nejodbornější kategorii tohoto blogu jsou zařazeny články s mými programátorskými zkušenostmi získanými několikaletou praxí tvorby stránek a java aplikací pro mobilní telefony.
Otakar Doležal (dne 11. 12. 2007 v 11.11)
Dobrý článek! Děkuji.
Pro mě jako vývojáře java aplikací pro mobilní telefony je k rychlé orientaci určitě přínosem. Nicméně vývojáři většinou potřebují sdělit potenciálním uživatelům, zda aplikace bude chodit právě na jejich telefonu. Například aplikace pracující s příjmem a odesíláním SMS bude fungovat na mobilech s JSR 120. Tato informace je sice pro potenciálního uživatele dostatečná, nicméně spoustě z nich se nechce v manuálu nebo na webu dále hledat, zda právě jejich telefon tuto JSR obsahuje.
Nevíte, zda existuje, nebo podle čeho by se dal takový seznam vytvořit? Ideální by byla možnost filtrace podle více JSR. Například filtr pro JSR 82 a JSR 120 by zobrazil seznam mobilních zařízení s podporou SMS a zároveň Bluetooth.
Marekzprahy (dne 11. 12. 2007 v 19.06)
Otakar Doležal: Jo, taková stránka by se šikla. Bohužel jsem nic moc vhodného nenašel, docela dobré je toto: http://validator.openmobilealliance.org/cgi/
Programátor, samozvaný hodnotitel a zejména kritik.
Pan Vyplňto.cz a tvůrce několika webových stránek.