ようやくauも再び勝手アプリに対応してくれた,ってことでオープンアプリでも作ってみる気になった.
au
Docomo
作ろうiモードコンテンツ:iアプリ | サービス・機能 | NTTドコモ
Softbank
Softbank Developer Support Site
S!アプリ
基本的にMIDP 2.0準拠.ドコモはDoJa.
オープンアプリは通信の度に確認が出て来るのがウザい.CLDCの類には非対応.
WirelessなんとかっていうIDEっぽいのがJ2MEに付いているけど,そんなもん使いたくないんです.
やっぱmake一発で全部やって欲しいでしょ,ってことでJavaだからAnt使おう.
SDN Managing Wireless Builds with Ant
MacでMIDPのビルドを作る方法
SDN Do-It-Yourself MIDP on Mac OS X
あと,DoJaのキビシイ容量制限をくぐりぬけるコツ
とんでもないハマりポイントがあった.
ビルドしてemulatorに食わせてもスタックダンプみたいなものを吐いて動いてくれない.
ためしにjava.netのチュートリアルJ2ME Tutorial, Part 1: Creating MIDletsで試してみてもおんなじ.
c:\java\WTK25\bin\emulator.exe -Xdescriptor DateTimeApp.jad
Running with storage root DefaultColorPhone
Running with locale: Japanese_Japan.932
Method............: 10221664 'com/sun/midp/midlet/MIDletState.createMIDlet (static)'
Stack Chunk.......: 22700ac
Frame Pointer.....: 2270104
Current IP........: 10327513 = 103274f6 + offset 29
Previous Frame....: 22700cc
Previous IP.......: 103bb579 (offset 22)
Frame size........: 7 (1 arguments, 6 local variables)
Argument[0].......: 22708a4
Local[1]..........: 0
Local[2]..........: 23eef98
Local[3]..........: 227ff2c
Local[4]..........: 23eefac
Local[5]..........: 10263184
Local[6]..........: 23eef78
Operand[1]........: 22708a4
Method............: 10283b04 'com/sun/midp/midlet/Selector.run (virtual)'
Stack Chunk.......: 22700ac
Frame Pointer.....: 22700cc
Current IP........: 103bb579 = 103bb563 + offset 22
Previous Frame....: 0
Previous IP.......: 1
Frame size........: 6 (1 arguments, 5 local variables)
Argument[0].......: 2270a30
Local[1]..........: 2280008
Local[2]..........: 22708a4
Local[3]..........: 0
Local[4]..........: 0
Local[5]..........: 0
Operand[1]........: 2280008
VM status:
Instruction pointer.: 10327513 (offset within invoking method: 29)
Next instruction....: 0x4c
Frame pointer.......: 2270104
Local pointer.......: 22700e8
Stack size..........: 128; sp: 227011c; ranges: 22700b4-22702b4;
Contents of the current stack frame:
22700e8: 22708a4 (lp)
22700ec: 0
22700f0: 23eef98
22700f4: 227ff2c
22700f8: 23eefac
22700fc: 10263184
2270100: 23eef78
2270104: 22700cc (fp)
2270108: 103bb579
227010c: 22700e4
ALERT: java/lang/ClassFormatError: Bad version information.
2270110: 10221664
2270114: 22700ac
2270118: 0 (end of frame)
227011c: 22708a4 (sp)
Execution stack contains 108 items:
2270a30
2280008
22708a4
0
0
0
0
1
23eef7c
10283b04
22700ac
0
2280008
22708a4
0
23eef98
227ff2c
23eefac
10263184
23eef78
22700cc
103bb579
22700e4
10221664
22700ac
0
22708a4
Execution completed.
3421368 bytecodes executed
112 thread switches
1647 classes in the system (including system classes)
17687 dynamic objects allocated (529024 bytes)
2 garbage collections (459024 bytes collected)
Execution completed.
3421368 bytecodes executed
112 thread switches
1647 classes in the system (including system classes)
17687 dynamic objects allocated (529024 bytes)
2 garbage collections (459024 bytes collected)
こんな感じで.
running the first MIDlet
ここに,-souce 1.4 -target 1.5を追加すれば桶と書いてある.
やってみると実際うまくいった.
MIDPでハイスコアの保存が面倒くさい.
パッケージjavax.microedition.rms
ただただ面倒くさい
参考
http://urana.info/mobile/midp/index.html