Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

J2ME CLDC Midlet Manager s podporou volitelných JSR

t.prochazka (125)|24.6.2007 11:04
Již dělší dobou se aktivně zabývám situací ohledně podpory Javy a především J2ME midletů na Windows Mobile Platformě. Našel jsem několik poměrně funkčních řešení, ale problém je v tom, že žádné z nich nepodporuje volitelná JSR, která umožňují například přístup ke kartě, přístup k bluetooth, přístup k GPS a pod. Bez toho jsou midlety jen hodně omezené.

Jako velice nadějný se jeví projekt https://phoneme.dev.java.net/, ale to je zatím spíše budoucnoust, nenašel jsem ani port pro Pocket PC, podporuje v současnosti jen Linux a Windows.

Jediný opravdu kvlaitní midler manager, jaký jsem našel je Esmertec Jeode Advanced. V PDF popisujícím vlastnostmi se chlubí podporou snad všech volitelných JSR. Jenže jej nelze nikde sehnat a to ani legálně. Dodávají jen výrobcům. Já v mém Asus P535 tento midlet manager mám, ale bohužel jde o nějakou očesanou verzi, která nepodporuje vůbec nic navíc.


Chtěl bych se vás proto zeptat na zkušenosti z jiných značek. Chcete-li ověřit, co vaš midlet manager umí, nahrajte do něj tohle: FPC.jar a po spuštění vyberte z menu "Info Tool", zobrazí se výpis, který obsahuje mimo jiné výpis všech volitelných JSR a u každé je vždy číslo verze nebo null pokud jej zařízení nepodporuje vůbec.
xtonda (811)|26.6.2007 20:52
Tak sem to zkusil v IBM WEME 6.1.1 a všude krom JSR 118 Info API je null. TAO Intent Midlet Manageru verze 10.1.2.76 to nezjistím nic, nejde se dotat přes ten úvodní obrázek.

Na telefonu SonyEricsson K551 je tak v polovině pozitivní výsledek.

Problém vidím v to, že ta volitelná api jsou závislá na konkrétním HW a platformě nad kterou JVM běží, prostě pro každé zařízení se to musí minimálně upravit extra, takže universální JVM jako IBM to nemají.

TAO a Esmertec to dávají jen výrobcům a mělo by to být uděláno tak, aby to nešlo přenést na jiné zařízení, někde jsem našel zveřejněnou jejich odpověď individuálnímu zájemci, že je k tomu zavazuje licence asi od Sunu, to už si přesně nepamatuju.

No a co je v konkrétním zařízení záleží jen na výrobci toho zařízení, co si zaplatí. A protože na Windows Mobile je spousta efektivnějších způsobů jak vyvíjet aplikace, než je J2ME CLDC, tak tomu výrobci zařízení asi nedávají takovou důležitost.

V podstatě jediné, proč sem si sehnal podporu midletů do svého zařízení, je Opera Mini a T-Mobile Surf+.

Tady http://www.avetana-gmbh.de/avetana-gmbh/produkte/jsr82.eng.xml sem našel JSR82 (Bluetooth) pro Windows, Windows Mobile, MacOS X a Linux. Je to za prachy.
t.prochazka (125)|27.6.2007 13:32
Díky za odpověď.

Sun postupně celou mobilní Javu opensourcuje, tak snad se změní i přístup firem jako Esmertec. Podle mě by se našlo plno lidí, kteří by si lepší verzi sami koupili. Minimálně tedy dokud nebude stejně kvalitní OpenSource řešení.

Osobně vkládám velké naděje do projektu https://phoneme.dev.java.net/, zatím tedy není k dispozici verze pro WM. Je tam tedy pro WM Advanced, což je ale CDC platforma, pro což jsem zatím nikde nenašel žádný soft. Zatímco pro CDLC je plno docela užitečných aplikací. Navíc jsem sám Java programátor a jinak než v Javě do PDA nic nenapíšu.

To, co jsi poslal jako JSR82, docela nechápu, jak to dostanu do třeba do toho IBM WEME. Podle mě to bude java knihovna implementující JSR82 a přes JNI bude přistupovat k HW. Takže to je použitelné vlastně jen na JVM, které mají podporu JNI. Tedy u WM například Mysafu, nebo možná i CDC verze JVM od IBM.
xtonda (811)|27.6.2007 16:02
Pokud jde o Avetana, tak v Readme píší:
[QUOTE]
On Windows Mobile 2003 (PocketPC) you will need NSICom's CrEme 3.25 or CrEme 4.0 VM available through www.nsicom.com. You need to have Widcomm BTW-CE 1.4.1.60 or newer as your Bluetooth Stack on the device.
Some PocketPC devices need to additional DLLs for avetanaBluetooth to work. If you are having trouble getting avetanaBluetooth to work on your PDA, please download BtSdkCE30.dll and BtCoreIf.dll and place them in the \Windows directory.
AvetanaBluetooth also works with IBMs J9 VM on PocketPC.
On all systems, Java 1.1.8 or later supporting JNI is required.[/QUOTE]

Dle FAQ BT stack je pak požadován Widcomm >= 1.4.1.60 nebo Microsoft (WM5) a Java IBM's J9 >= 5.1.7 nebo NSICom's CrE-ME 3.25.

Dle toho to IMHO je pro J2ME CDC.

Já tedy u toho phoneME nemůžu najít verzi pro WM ani u jedné varianty.

Já taky programuju v Javě. ale spíš J2SE a J2EE, takže mi je bližší CDC, což je vlastně J2SE bez javax baličků a deprecated funkcí. Až budu mít někdy náladu, tak si s tím chci pohrát. Je ale pravda, že je podstatně více aplikací pro CLDC MIDP, než pro CDC PP.
xtonda (811)|27.6.2007 16:12
A pokud jde o Mysaifu, tak to je sice zajímavá věc, ale kompletní J2SE na Windows Mobile IMHO už není reálné, běžně dostupná zařízení jsou přeci jen HW dost omezená, a aplikace psané v J2SE pro normální počítače na tom prostě nepoběží.

Navíc Mysaifu vypadá jako one man show, rok a půl autor vydával verze i několikrát měsíčně a teď už je půl roku ticho po pěšině.

Takže pro mě je momentálně nejzajímavější INM WEME, je to jediná mě známá implementace CDC 1.1 pro WM.
t.prochazka (125)|28.6.2007 10:49
Mrkni na tohle:

http://forums.java.net/jive/thread.jspa?messageID=224058&

Odkaz na CDC verzi PhoneME pro WM tam je taky.

Jen se musí najít někdo, kdo se toho ujme ;-)

Já taky nechápu, proč nejdou CDLC aplikace spouštět i na CDC, když je to vlastně vyšší úroveň.
xtonda (811)|28.6.2007 12:46
Jo, návod jak to ze zdrojáků zkompilovat pomocí MS nástrojů, které nemám, do toho nejdu. V čem vlastně má být přínos této implementace proti té od IBM? Širší škála podporovaných API?

Mě zase přijde docela zajímavé toto:
http://www.eclipse.org/ercp/
http://www.eclipse.org/dsdp/mtj/

eRCP vypadá zajímavě, MTJ ještě není hotové, takže vývoj asi zatím nebude moc komfortní, mělo by vyjít do konce roku a protože se nějak zasekl vývoj Webspehre Studio Device Developer, žekl bych že MTJ tlačí i IBM jako náhradu WSDD.

Pro klasické CDC s GUI v AWT se dá vyvíjet přes NetBeans Mobility Pack, tam je i vizuální návrhář.

CLDC aplikace nejdou na vyšším, protože to je takový krok stranou, právě aby to bylo úsporné byl tuším modifikován i jazyk a zprimitivněny některé konstrukce způsobem, který nemá ve vyšších verzích obdoby.

J2ME CDC má jen ořezané API, klidně mi na IBM J9 CDC běží věci kompilované Sunovským kompilerem z J2SE, jen se nesmí použít nepodporované API. CLDC bylo redukováno a uzpůsobeno pro mobily nekompatibilním způsobem aby mohlo být úsporné.
t.prochazka (125)|29.6.2007 12:46
O mobilním eRCP jsem slyšel zrovna tento týden ve středu na CZJugu, to by mohlo být docela zajímavé. Jen to bude asi chtít používat Netbeans.

Sun, jak to tak vypadá chce vydat vlastní telefon kompletně postavený na Javě, takže ten se asi momentálně o podporu pro WM5/6 nijak moc angažovat nebude.

Jinak v tuto chvíli mi jde hlavně o to, abych na MDA rozběhal již existující CDLC aplikace a potřebui hlavně přístup k flash disku a ke GPS modulu. Chtěl bych to hlavně pro Handy Geocaching a pro Operu Mini. A je těch aplikací určitě více.

CDC je asi opravdu lepší cesta. Nevidím do toho tak moc do hloubky. Ale patrně na tom něco bude, protože jinak by CDLC WirelessToolkit od Sunu neměl 15MB a tolik binárních souborů, kdyby stačilo k JSE dodat jen nějaký jar s podporou CDLC midletů.

Otázkou ale je, zda to CDC od Sunu nebo to PhoneME umí takové věci jako přístup k integrovanému GPS? Nevíš? Přístup k disku asi bude samozřejmost.

Najít zkompilované to PhoneME Advanced taky není problém:
http://www.cs.kuleuven.be/~davy/phoneme.php
Jen nevím, jak je to stará verze.

Jinak ano, PhoneME podporuje, nebo má alespoň za cíl, podporovat úplně všechna volitelná JSR.
xtonda (811)|29.6.2007 15:04
eRCP je iniciativa Eclipse a i MTJ je projekt na eclipse.org, takže to určitě bude postavené na Eclipse, konečně i WSDD je založené na Eclipse.

Jo, o tom sem slyšel, že Sun koupil SavaJe.

Opera Mini 3.1 mi běhá jak na IBM WEME tak na TAO Intent Midlet Manageru, beta 4.0 mi to TAO shazuje, na IBM jede.

S GPS je problém, v CLDC je extra API pro Bluetooth GPS a extra location API pro vestavěnou GPS, teda jestli to chápu správně, takže aplikace psaná pro BT GPS nebude chodit s vestavěnou a naopak. Geocaching neprovozuji, ale myslím, že by se dala najít nativní aplikace s ekvivalentní funkčností.

CDC od Sunu? On má Sun nějaké CDC pro WM, nebo to myslíš obecně?

Přístup k GPS na WM se vždycky dá řešit přes sériový port - Java Communication API - javax.comm, ale to je taky rozšiřující balíček, a netuším jestli existuje implementace uchoditelná pod IBM javou na WM.

Ještě mě napadlo převést data ze sériového portu do socketu něčím jako GPSGate nebo GPSProxy a ze socektu dál už to zpracovávat Javou.
t.prochazka (125)|29.6.2007 16:11
[QUOTE]Opera Mini 3.1 mi běhá jak na IBM WEME tak na TAO Intent Midlet Manageru, beta 4.0 mi to TAO shazuje, na IBM jede.[/QUOTE]

Ona existuje ještě ruská modifikace Opery Mini, která umí ukládat stránky na flashku, atd. Což bez příslušného JSR nejde. A doufám, že samotná Opera originální Opera Mini bude tohle brzy umět taky.

[QUOTE]S GPS je problém, v CLDC je extra API pro Bluetooth GPS a extra location API pro vestavěnou GPS, teda jestli to chápu správně, takže aplikace psaná pro BT GPS nebude chodit s vestavěnou a naopak. Geocaching neprovozuji, ale myslím, že by se dala najít nativní aplikace s ekvivalentní funkčností.[/QUOTE]

jj, přesně tak. Dopsat ale podporu i pro Location API do stávající CDLC aplikace by asi byla hračka.

[QUOTE]Ještě mě napadlo převést data ze sériového portu do socketu něčím jako GPSGate nebo GPSProxy a ze socektu dál už to zpracovávat Javou.[/QUOTE]

Tohle je hodně dobrý nápad, to by vlastně šlo i pro CDLDC velice snadno. Tím padá nutnost nějakého JSR.

[QUOTE]CDC od Sunu? On má Sun nějaké CDC pro WM, nebo to myslíš obecně?[/QUOTE]

Jo, má WirelessToolkit pro Windows a Linux, pro WM samozřejmě ne.
t.prochazka (125)|28.1.2008 09:08
Zajímavé je tohle:
http://www.cs.kuleuven.ac.be/~davy/phoneme/index.htm
Nicméně spouští se to pomoci .bat soubory a zatím se mi nepodařilo najít něco, co by si s tím poradilo PocketConsole na to nestačila.
t.prochazka (125)|4.4.2008 15:55
Konečně řešení, na XDA fóru se objevila verze Esmertec Jbed midlet manageru, která nejenže funguje stejne rychle jako IBM (porovnávám na základě rychlosti Opera mini), ale podporuje také zápis a čtení s flash paměti

http://forum.xda-developers.com/showpost.php?p=2053333&postcount=564

Testoval jsem Operu mini 4.1, Gmail App 1.5, vše běží skvělě, akurát například Handy Geocaching nenaběgne vůbec, nechápu proč.

Ti co mají v PDA starší verzi Esmertec Jeodek musí počítat s tím, že obě verze sdílí stejnou složku s aplikacema (windows/appdb). Nová verze sice funguje i ze starší, ale při změně (přesun aplikace do jiné složky, instalace nové aplikace) se změní soubor selector.utf a stará verze s tím pak má problémy, spustit aplikaci tam sice jde, ale opět se ten soubor upraví a pak už nefunguje ani ta nová verze :-( Proto doporučuji zálohu.
t.prochazka (125)|17.4.2008 15:01
Zde je ještě upravený instalátor, který neinstaluje do /windows a aplikace nepoužívá /windows/appdb jako základnu zpráv, takže lze provozovat paralelně se starší verzí.

http://forum.xda-developers.com/showpost.php?p=2096566&postcount=33

Aplikace se nainstaluje do "/Esmertec Java" pokud to někomu vadí, stejně jako mě, je možné pomoci WinCE CAB Manageru tuto cestu změnit například do "Program Files"