1 名前:デフォルトの名無しさん [05/02/19 11:51:16 ] J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。 質問でも議論でも何でもこい、と。 前スレ: CLDC+MIDP+携帯電話用Javaスレッド part 3 pc5.2ch.net/test/read.cgi/tech/1091798483/ 過去スレ 携帯JAVAのスレッド pc2.2ch.net/test/read.cgi/tech/1011977260/ (DAT落ち) CLDC+MIDP+携帯電話用Javaスレッド part 2 pc5.2ch.net/test/read.cgi/tech/1070858996/ -- Java一般に関しては: 【初心者】Java質問・相談スレ51【大歓迎】 pc5.2ch.net/test/read.cgi/tech/1091770298/ NTT DoCoMoのiモード携帯電話用Java(iアプリ)については: iモード携帯電話用Java(iアプリ) Part 6 pc5.2ch.net/test/read.cgi/tech/1091286071/ >>2-5 あたりにリンク集
2 名前:デフォルトの名無しさん [05/02/19 11:52:17 ] 調べものはまずGoogleへ www.google.co.jp/ Java 2 Platform, Micro Edition (J2ME) java.sun.com/j2me/ Reference Documentation(仕様書やAPIリファレンス) java.sun.com/j2me/docs/ J2ME Wireless Toolkit java.sun.com/products/j2mewtoolkit/ EZアプリ技術情報 www.au.kddi.com/ezfactory/tec/spec/ezplus.html Vアプリ技術情報(Vodafone Developers Support Site) www.dp.j-phone.com/dp/
3 名前:デフォルトの名無しさん mailto:sage [05/02/19 15:44:03 ] >>1 乙! Vodafone 3GのVアプリ仕様公開マダ〜?
4 名前:デフォルトの名無しさん mailto:sage [05/02/19 16:19:40 ] >>1 乙 developers.vodafone.jp/dp/
5 名前:デフォルトの名無しさん mailto:sage [05/02/19 18:21:56 ] >>1 乙。 現行スレに修正。それと、スレ立ててもらった後で言うのもなんだがアオリ追加案。 -- Java一般に関しては: 【初心者】Java質問・相談スレ62【大歓迎】 pc5.2ch.net/test/read.cgi/tech/1108389742/ NTT DoCoMoのiモード携帯電話用Java(iアプリ)については: iモード携帯電話用Java(iアプリ) Part 7 pc5.2ch.net/test/read.cgi/tech/1102844217/ -- J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。 質問でも議論でも何でもこい、と。質問は公式資料をよく読んでからにしましょう。
6 名前:追加案 mailto:sage [05/02/19 18:38:46 ] EZアプリ(BREW(R))については: BREW(Binary Runtime Environment for Wireless) 3 pc5.2ch.net/test/read.cgi/tech/1096006023/
7 名前:デフォルトの名無しさん mailto:sage [05/02/19 22:29:43 ] >>1-6 超乙彼夏 前スレでVのバージョンを変えろと教えてくださった方ありがとう。
8 名前:デフォルトの名無しさん [05/02/20 01:33:26 ] P6型で3Dアプリを作っているのですが、1〜2秒おきに処理がとまってしまいます。 これって何が原因かわかりますか?(ウェイトをはずしても変わらない)
9 名前:デフォルトの名無しさん mailto:sage [05/02/20 01:34:27 ] sage
10 名前:デフォルトの名無しさん [05/02/22 02:23:49 ] すごい基本的なことかもしれないんだけど。。 JSCL1.2を使ってるアプリって、JSCL1.1しか対応してない端末でもロードできるの? もちろん最初に機種判定して、JSCL1.1端末の場合は、 JSCL1.2の固有機能を使うルーチンは呼ばないようにはするけど、そもそもロードできるの?
11 名前:デフォルトの名無しさん [05/02/22 02:45:56 ] V601SHを使っています。 timer.scheduleAtFixedRate(task, 1000, 1000); このようにタイマーをセットして、 taskのrun()で経過時間をカウントして経過時間を描画しています。 1秒おきに経過時間が1ずつ増えていくのですが、 たまに2秒増えるときがあります。 どのようにしたら解決できるのでしょうか?
12 名前:デフォルトの名無しさん mailto:sage [05/02/22 03:38:05 ] >>10 「ロード」ってのが何を示しているのかは知らんが、実行時エラーになるんじゃないかと思う。 MIDlet-OCLなりアプリゲット登録時の端末チェックなりをしとけば、ダウンロード時にはじいてくれると思う。 プログラムの組みようによっては混在もできると思うけど。 >>11 「1秒後に呼んでくれ」とタイマーに頼んでも、1秒後きっかりに呼んでくれる保証はないぞ。 説明読む限り、scheduleAtFixedRateは呼ぶ回数と長期的な時間のずれは問題ないようにしてくれるが、 常に1秒きっかりで毎回呼んでくれる保証はない。(gcにとられる時間など)
13 名前:デフォルトの名無しさん mailto:sage [05/02/22 09:56:47 ] >>9 メモリの使い方が悪かったみたいです。JAVAの基礎からやりなおしかな・・・。
14 名前:デフォルトの名無しさん mailto:sage [05/02/22 14:04:05 ] P5型用の画像を表示するVアプリを作成しています。 とりあえず画像(JPEG、PNG)をそのまま表示する所 までは作れました。そこで、表示した画像を自由に拡大、 縮小できるようにしたいのですが、JPEG画像を簡単に 拡大、縮小する方法はないですか? BMPならデータ構造が単純だから拡大、縮小する処理 ぐらい自力で作れそうですけど、やはりJPEGはそんな 簡単に拡大などできませんか?
15 名前:デフォルトの名無しさん mailto:sage [05/02/22 14:08:49 ] Vで質問です。 アプリのバージョンアップで、前のセーブデータを引き継がない場合、どうすればいいんでしたっけ・・? Midlet Data Size を変えれば良かったんだっけなって思って増やしてみたけど引き継いじゃいました。
16 名前:デフォルトの名無しさん [05/02/22 15:23:23 ] EZアプリの質問です。 Javaアプリが走る携帯で、アプリを使っての通信と その携帯に搭載されているブラウザを使っての通信とを 見分ける方法はありますか?お分かりになる方おられましたら ご回答、よろしくお願いいたします。
17 名前:15 mailto:sage [05/02/22 15:26:39 ] すいません、減らしたらできました。
18 名前:デフォルトの名無しさん mailto:sage [05/02/22 17:20:35 ] >>16 サーバ側の話だよね。ヘッダ見て判断して。詳しくは>>2 のEZアプリ技術情報
19 名前:デフォルトの名無しさん mailto:sage [05/02/22 17:44:45 ] >>14 その質問はP5のVアプリとかそういうの関係なしに、画像加工の面から調べることだな。 携帯アプリの画像の変形について一般に言えることは次の通り。 1.まず画像の変形用のAPIがあるか確認し、あれば使う。 2.任意サイズの拡大縮小や任意角度の回転といった場合も、 そういったAPIがあるか確認し、あれば使う。 上記2つがない場合 3.描画済みの画像に対してピクセル単位で色情報を取得できるAPIがあれば それを使って色を取得しながら、自力で変形や色計算を行う。とても遅い。 4.元にする画像ファイルのフォーマットが簡単なピクセル並びの色情報で できているなら、3.の方法が使える。3.より速い。 5.変形後の画像をあらかじめ用意しておいてそれを描画する。 --- P5のVアプリでJPEGの任意サイズの拡大縮小は「3.」。自分は実際にやった。
20 名前:デフォルトの名無しさん mailto:sage [05/02/22 18:02:33 ] >>16 ,18 今の開発ガイド読んだら「ブラウジングと同一」って書いてるよね。 実際自分でやってみたら(5403)少なくともUser-Agentは同じだった。 自分で作るアプリならヘッダに適当なパラメータつければいいけど 多分アプリで設定するヘッダが優先されるから、偽装可能な希ガス。 まぁ普通そこまで(端末毎のパラメータを用意)しないかもしんないけど。 ・・もしかして僕勘違いしてます?
21 名前:デフォルトの名無しさん [05/02/22 18:18:21 ] >>18 , 20 ご回答ありがとうございます。 サーバー側の問題なんですが、Javaアプリで定期的にアクセスされて アタックのような状態で困ってるんです。それでもしJavaアプリ のアクセスならはじければありがたいんですが・・・。
22 名前:デフォルトの名無しさん [05/02/22 18:22:37 ] 追記です。 技術情報にはそれらしいことは何ものっていませんでした。 KDDIにも聞いてみたのですが、技術的な事はお答えできないと 言われました。質問した部署が悪いのかもしれませんが・・・。
23 名前:14 mailto:sage [05/02/22 18:59:04 ] >>19 ご回答ありがとうございます。 やはりP5のVアプリでJPEG画像を素早く 拡大、縮小することはできないんですね。 3.の方法でとりあえず試してみます。
24 名前:20 mailto:sage [05/02/22 19:10:27 ] >>21 アプリの話じゃなくなるんだけど、ブラウザにしろアクセス集中は困るわけだから 鯖で同一アドレスからのアクセス回数に制限かけたら? ApacheならMaxKeepAliveRequestsとか。
25 名前:デフォルトの名無しさん [05/02/22 19:16:52 ] >>24 うーん、そうするとほかの携帯ユーザーにも迷惑がかかるので それは避けたいんです・・・。
26 名前:20 mailto:sage [05/02/22 20:18:11 ] >>25 いや、他のユーザーはアドレス違うじゃん。 携帯は固定IP(ネットは)だったとおもうけど・・。
27 名前:デフォルトの名無しさん mailto:sage [05/02/22 20:44:02 ] 「Javaアプリからアクセスされて」ってのは本当か?どうやって確認したんだ? アプリなのかブラウザなのかは区別できないんだろ?
28 名前:18 mailto:sage [05/02/22 20:57:11 ] >>16 =21 >>20 説明不足スマン。 ブラウザからのアクセスはリクエストヘッダにサブスクライバIDが含まれる。 Javaアプリでは含まれず、プログラム内部で付与することもできない。 これで判定できると思う。具体的なやり方は公式サイトになかった、これもスマン。 「サブスクライバID」でググるといくつも出てくる。
29 名前:デフォルトの名無しさん [05/02/22 21:12:44 ] >>27 ログを見るとアクセスのタイミングがずっと同じなんです。 (セッションIDで確認しています)人間の手でやるには少し 無理があります。ほぼ24時間動いてますし・・・。
30 名前:デフォルトの名無しさん [05/02/22 21:16:48 ] >>28 サブスクライバIDを利用して対策をしたところ、一時期アクセスが 減ったのですが少しすると対処されたのか同じようにアクセスされる ようになりました。 サブスクライバIDも、Ezアプリの中で設定でき詐称できるようです。
31 名前:18=28 mailto:sage [05/02/22 22:19:24 ] >>16 =30 >サブスクライバIDを利用して対策をしたところ、一時期アクセスが あのさ、そういうことは最初に言うことでしょ。 今までどんな対策してきたのか挙げたうえで質問しなよ。 サブスクライバID(以下、ID)を取得するAPIはない。 プログラム内で付与してるとすればそれはでっち上げたID。 リクエストヘッダを編集して偽IDを付与してるってこと。 乱数で毎回異なる偽IDを作ってるようなアプリからのアタックで 困っているというなら(そこまでして狙われるサイトって何なのさ)、 メールアドレスや電話番号を登録してもらうような、厳密で明示的に 会員管理するサイトにするしかないだろうね。
32 名前:20 mailto:sage [05/02/23 00:01:33 ] >>28 なるほど。知らなかった・・。勉強しとこ・・メモメモ。 >>16 とか またオイラが無知なだけかも知れんが、ちょっと気になったので・・ そもそも携帯からかどうか、ってのはどう判断してるの? ヘッダが偽装可能なのでそこで判断してるってのなら実はPCかも知れないでしょ? っていうか携帯から何度もアクセスなんか出来ない(WINは回数制限がある)ので PCで偽装(エミュorシュミレータとか?)っていう可能性の方が高い気がする・・。
33 名前:デフォルトの名無しさん mailto:sage [05/02/23 01:01:43 ] >>20 PCを弾くには>>2 のEZアプリ技術情報のIPアドレス帯域のページを参考に。
34 名前:デフォルトの名無しさん [05/02/23 02:44:10 ] >>12 常に1秒きっかりで毎回呼んでくれる保証はないのは分かるんですけど、 1, 2, 3, 4, 5, 6, 8, 9のように、7が飛ばされちゃったりするんです。 時計の秒針と見比べていると、たまにきっかり1秒早くなっているんです。 20秒後に1秒早くなるとか、40秒後に1秒早くなるとかで、再現性が無いのです。 schedule()を使うとどんどんずれていくし、 scheduleAtFixedRate()を使うとたまにきっかり1秒早くなるしで困ってます。 DateのgetTime()を使うしかないんですかね。
35 名前:デフォルトの名無しさん mailto:sage [05/02/23 03:00:31 ] >>34 「1秒置き」というのは大げさに言うと「1.1秒置き」なんだよ。 1.0→2.1→3.2→4.3→5.4→6.5→7.6→8.7→9.8→10.9→★12.0 上記だと11が飛ぶわけ。 つまりgetTime()使おうが結果は同じ。 「1秒置き」というところを「0.1秒置き」とかにしてあとは工夫すべし。
36 名前:20 mailto:sage [05/02/23 06:30:44 ] >>33 いや、まぁ確かにそうなんですけども 僕が言いたいのは、「携帯の貧弱な通信網でアタックが可能なのか?」ってことで、 それが事実なら納得するしかないですが、どこかで勘違いしてる気がします。 例えば 1.判断をIPで行ってないので、実はPC 2.本当に携帯だけど、実はアタックというほどの頻度ではない 3.単に接続失敗して再接続したみたいなログが残ってるだけ みたいな。 31でも書かれているように、現状がハッキリしないと判断しにくいし、 わざわざそんなアプリ作る物好きがいるとも思えない・・。
37 名前:デフォルトの名無しさん mailto:sage [05/02/23 10:15:08 ] 今Phase3専用のEZアプリを作成中なのですが、 ユーザーに文字入力をさせ、その文字列を使いたい場合、どうすればいいのでしょうか?
38 名前:デフォルトの名無しさん mailto:sage [05/02/23 10:18:42 ] なんかちょっとだけスレが進んだと思ったら電波系質問者の登場ですか? >サブスクライバIDも、Ezアプリの中で設定でき詐称できるようです ?(゚_゚)(。_。)(゚_゚)(。_。)? そもそもの話の前提の「アタック」て何よ?携帯1台に「アタック」されて何が困るの? 携帯1台に「アタック」されて困るサーバーてどんなんだよ
39 名前:デフォルトの名無しさん mailto:sage [05/02/23 11:12:27 ] 読み直したらすごいこと書いてるよこの人 >タイミングがずっと同じなんです。人間の手でやるには少し無理があります。ほぼ24時間動いてますし・・・。 だったら携帯と違うじゃん。携帯のアプリは人間の手で携帯を操作するんですよ。 アプリと名前が付いてるからパソコンのアプリケーションのようなイメージでいるんかな? auはサブ巣クライバが強制送信だから(※注:不正請求詐欺対策で任意送信に変わるらしい)「.htaccess」で個別denyが一番容易な端末なんですよ。 アクセスしたIPがau端末のIP帯域に該当しないはずですよ、たぶん。 だれかがPCのダウンロード支援ソフトのUserAgentに冗談でKDDIの携帯のUserAgentを入力して時刻設定の自動運転してるだけだろうが。 うまくダウンロード出来ないから自動で再トライをしてるだけだよ。 ダウンロードが目的じゃなくてもアクセスログにエラーを出して相手をびびらせようとしてるだけかも。 どっちにしても「.htaccess」で弾くか、無視して何もしないかですよ、たいした話じゃない。 アクセスカウンタが進むだけで実害ゼロ。
40 名前:37 mailto:sage [05/02/23 12:45:45 ] すみません。 やり方がわかりましたので、>>37 は無視してください。
41 名前:デフォルトの名無しさん mailto:sage [05/02/23 17:14:58 ] vodafoneのeclipseプラグインを使ってるんですが、 antでのproguard連携がうまくいきません。The <proguard> task dosen't support the nested "injar"elementとでます。 どこがおかしいのでしょうか? <taskdef resource="proguard/ant/task.properties" /> <target name="obfuscate" > <proguard overloadaggressively="on" defaultpackage="" allowaccessmodification="on" printseeds="on"> <injar file="${basedir}/${bin}/${jarname}.jar"></injar> <outjar file="${basedir}/${bin}/${jarname}_s.jar" /> <libraryjar file="${classpath}" /> <keep access="public" extends="javax.microedition.midlet.MIDlet" /> <keepclasseswithmembernames> <method access="native" /> </keepclasseswithmembernames> </proguard> </target>
42 名前:デフォルトの名無しさん mailto:sage [05/02/23 18:37:01 ] 素人目で見ると ><injar file="${basedir}/${bin}/${jarname}.jar"></injar> ><outjar file="${basedir}/${bin}/${jarname}_s.jar" /> 対になるこの2行で行末が違うなーと
43 名前:43 mailto:sage [05/02/23 19:01:28 ] <injar file="${basedir}/${bin}/${jarname}.jar" />に直しました。 その後、antを最新版の1.62にしたところproguardが動くところまではいけましたが、 下のようなエラーが出ました。 [proguard] Warning: DatViewText: can't find superclass or interface java.lang.Object [proguard] You may need to specify additional library jars (using '-libraryjars'), [proguard] or perhaps the '-dontskipnonpubliclibraryclasses' option. [proguard] If you are sure the mentioned classes are not used anyway, [proguard] you could try your luck using the '-ignorewarnings' option.
44 名前:43 mailto:sage [05/02/23 19:24:14 ] stubclasses.zipをstubclasses.jarにしてから設定したら成功しました。 [proguard] ProGuard, version 3.2 [proguard] Reading program jar [C:\eclipse\workspace\TextMemo\bin\TextMemo.jar] [proguard] Reading library jar [C:\V-appli_SDK_122\lib\stubclasses.jar] [proguard] TextMemo [proguard] Preparing output jar [C:\eclipse\workspace\TextMemo\bin\TextMemo_s.jar] [proguard] Copying resources from program jar [C:\eclipse\workspace\TextMemo\bin\TextMemo.jar]
45 名前:43 mailto:sage [05/02/23 19:38:06 ] 連投すみません。zipとかjarとかは関係なくてただ設定が間違ってただけでした。
46 名前:デフォルトの名無しさん mailto:sage [05/02/23 20:31:11 ] VODAFONE3Gはいつ仕様公開されるんですか?
47 名前:デフォルトの名無しさん [05/02/23 20:54:53 ] >>35 説明が悪くて申し訳ないです。 scheduleAtFixedRate()で指定するtaskのrun()で、 count++;のように1ずつカウントしているので、 1.1秒おきにrun()が実行されたとしても、 1, 2, 3, 4, 5, 6, 7と表示されていくと思います。 なのに、たまに5, 6, 8, 9のようにひとつ飛ばされちゃうのです。 0.1秒おきにgetTime()することにします。
48 名前:12 mailto:sage [05/02/24 04:48:59 ] >>47 話聞いてる限り、プログラム側のバグじゃないかと思えてきてしまう。 マルチスレッド考えずに値をいじってるとか。 いずれにしても0.1秒おきにSystem#currentTimeMillis() して毎回差分を計算するのが常套手段だとは思う。
49 名前:デフォルトの名無しさん mailto:sage [05/02/24 14:11:21 ] 256kアプリで使える、テクスチャーフォーマットの詳細を知っている人が いたら教えてください。(bmpだとサイズが・・)
50 名前:デフォルトの名無しさん mailto:sage [05/02/24 17:05:23 ] >>49 フォーマットがBMP(256色無圧縮256×256)だろ? そのサイズがバイト数を表すのなら、bmpもgifもjarにしたらそう変らんよ。 BMPがどんなフォーマットになってるかってこと?自分で作るの? 僕は下のサイト参考にImageからgetPixelしてBMPバイト列→テクスチャ作れたよ。 www.kk.iij4u.or.jp/~kondo/bmp/
51 名前:デフォルトの名無しさん [05/02/24 17:34:46 ] リソースフォルダに格納されているjarファイル(txtが圧縮されてます)を レコードストアに保存したいのですが、どなたか教えてください。 簡単なソースでも、書いていただけると嬉しいです お願いします。
52 名前:デフォルトの名無しさん mailto:sage [05/02/25 00:35:18 ] >>50 そういうやり方があるのね・・。確かにjarにするからたいして変わらないのかも とりあえず、あり
53 名前:デフォルトの名無しさん mailto:sage [05/02/25 01:48:29 ] BMPのランレングス圧縮にすればそれなりに小さくなる
54 名前:デフォルトの名無しさん mailto:sage [05/02/25 13:14:35 ] >>51 バリナリとして読み出して、バイナリでレコードストアに書き出せばいいよ。 でもresにjarを入れてビルドすると2重で圧縮かけてことになるよ? それたっだたtxtのまま入れたほうが面倒でないぞ。
55 名前:51 [05/02/25 15:41:02 ] >>54 ありがとうございます。 なんとかできそうです。 ちなみにresにjarを入れてるのは、テスト用だからです。 実際は、通信から取得する予定です。
56 名前:デフォルトの名無しさん mailto:sage [05/02/25 20:26:46 ] jargとか使うとstatic final int TEISU = 3;とかは定数に置き換えてくれますか?
57 名前:デフォルトの名無しさん mailto:sage [05/02/25 20:49:59 ] >>56 意味がわからない。static final intはSunのコンパイラなら 最初からインライン展開してくれるけど?
58 名前:56 mailto:sage [05/02/25 22:35:10 ] >>57 それを聞いて安心しました。
59 名前:デフォルトの名無しさん mailto:sage [05/02/26 00:24:05 ] おれは不安になったw
60 名前:デフォルトの名無しさん mailto:sage [05/02/26 02:10:52 ] >59 でーじょーぶだそ。いくつものファイルに渡ってその定数を参照してるならともかく、 MIDPの世界でMIDletのサブクラスとCanvasのサブクラスの二つ以外に クラスなんて作るはず……ないよな? orz
61 名前:デフォルトの名無しさん mailto:sage [05/02/26 02:14:40 ] 結構それの他のクラス作ったことあるけど意外と平気みたい
62 名前:デフォルトの名無しさん mailto:sage [05/02/26 05:36:44 ] 昔public static finalそのままでjavac通すとclassファイルがやたらでかくなった記憶が・・・ それでjavacを信用せず自分でプリプロセッサ通してたんだけど、最近のは大丈夫になったの? 定数展開されるなら、今度は逆に、 TEISU=3でコンパイルしたclassとTEIS=4でコンパイルしたclassを混ぜれないことになるのか。 依存関係をいちいち書くのもめんどいんで、毎回全部リコンパイルしなきゃいけなくなるなぁ、まぁ知れてるけど。
63 名前:デフォルトの名無しさん mailto:sage [05/02/26 07:37:05 ] インライン展開されるが、クラスファイル中にstatic final intは残る static final int a=1; System.out.println(a); ↓ static final int a=1; System.out.println(1); だめじゃんw
64 名前:デフォルトの名無しさん mailto:sage [05/02/26 11:39:03 ] Vodafone用のJAVAアプリについて質問です。 携帯折り畳み時、スリープ等を用いて電池の消耗を 防ごうと思ったのですが、携帯を折り畳むと自動的に JAVAアプリが停止する(※携帯電話自体の仕様)ので、 携帯折り畳み時に電池の消耗を防ぐようなプログラムを 作成しても無駄ということですか?
65 名前:デフォルトの名無しさん mailto:sage [05/02/26 11:47:32 ] >>64 JAVAアプリを動かすより動かさない方が電池の消耗を防げる。
66 名前:デフォルトの名無しさん [05/02/26 12:14:23 ] >>65 え? というか、JAVAアプリの停止中(※再び再開可能な状態)って、 JAVAアプリは動いていない(全てのスレッドが停止状態)と 考えてよいのですか?
67 名前:デフォルトの名無しさん mailto:sage [05/02/26 13:59:05 ] 携帯に既に一時中断する機能があるのに何を作りたいって? それとvodafone用ならVアプリと表記しろよ。名前が変わってどれだけたってんのよ
68 名前:デフォルトの名無しさん mailto:sage [05/02/26 18:03:49 ] >>64 Thread.sleep()で電池が持つようになるわけない VM上で動いてるということを理解すべし
69 名前:デフォルトの名無しさん mailto:sage [05/02/26 21:12:24 ] みんな親切だな こういうのは一言でいいんだよ >無駄ということですか? Yes
70 名前:デフォルトの名無しさん mailto:sage [05/02/26 22:07:23 ] >>69 おまえのような奴ばっかだったら何の発展もしない罠
71 名前:デフォルトの名無しさん mailto:sage [05/02/26 22:26:22 ] 70=質問者
72 名前:デフォルトの名無しさん mailto:sage [05/02/27 00:03:24 ] みなさん、「System.gc()」は使用してますか?
73 名前:デフォルトの名無しさん mailto:sage [05/02/27 00:21:48 ] Runtime.getRuntime().gc()ならたまに使うけど
74 名前:デフォルトの名無しさん mailto:sage [05/02/27 00:30:20 ] 同じ事
75 名前:デフォルトの名無しさん mailto:sage [05/02/27 10:10:48 ] >73 CLDC の API 見ると、すぐにGCしてくれるんじゃないかって 期待したくはなるがな。
76 名前:デフォルトの名無しさん mailto:sage [05/02/27 11:54:09 ] GCって自分である程度の間隔でコールした方がいいの? APIリファレンスとか見てると、Java Virtual Machineが自動的に やってくれるという事が書いてあったのだが。
77 名前:デフォルトの名無しさん mailto:sage [05/02/27 12:21:43 ] GCの話はこのスレやiアプリ開発のスレでもよく出てくる もし暇があるならこのスレpart1からざっと眺めてみるといいかも
78 名前:76 mailto:sage [05/02/27 14:56:04 ] >>77 他のスレも見てみます。 ↓それと、GCに関して詳しく書いてあるページもありました。 www.netgene.co.jp/java/technicalTerms.html
79 名前:デフォルトの名無しさん [05/02/27 21:22:28 ] 先生方頼みがある。 WTK2.2でRecordStoreに200KBのデータを書き込んでみるアプリを 作ってデバグしているんだけど、RecordStore#closeRecordStoreで 170秒も止まっちゃう。ハードディスクのアクセスランプはその間真っ赤。 まあ200KB書き込みを見直せというのは置いといて、対処法とか知ってる 人頼む。ほんとどうしたもんか。
80 名前:デフォルトの名無しさん mailto:sage [05/02/27 23:10:39 ] >>79 普通に実行する分には大丈夫なんすか? デバッガに問題ありそうな気がするので、その辺の環境書いてホスィ。 って自分今始めてWTK22で試してみようと思ったけど KToolBarのDebugの使い方ワカンネェ・・。Eclipseでブレイク置いてとかしか・・。
81 名前:デフォルトの名無しさん mailto:sage [05/02/27 23:20:15 ] MIDlet-Data-Size:はちゃんとしてる?
82 名前:デフォルトの名無しさん mailto:sage [05/02/28 05:58:54 ] >>81 してなかったらしてなかったで、例外吐くだけのような気が。 >>76 ガベコレタイミングの問題だと思う。 ガベコレ始まると最悪数秒くらいスレッドが止まっちゃうので、 「んなタイミングですんなボケ」という要求があるときはこまめにgc、 そうじゃないならほっときゃいい、必要なときにやってくれる。 でもgcを記述しても本当にガベコレしてくれるかどうかは結局VM次第。 確実なのはガベコレが必要ないように、 つまりインスタンスはかならず使い回し不必要に新しく作らない、 てな対処しかない。 関係ないかも知れないけど、VのC4型の場合コンパクションしないとか明示されてるんで、 ガベコレでメモリ回収の必要があるようなプログラムを書いてると、 そのうちメモリが足りなくなってしまう可能性があるわな。 まぁそこまで継続して動くアプリなんてケータイじゃほとんどないけどね。 最悪Vアプリを再起動すればおしまいだし。
83 名前:デフォルトの名無しさん [05/02/28 13:29:41 ] J-PHONEのコンパイルでこんなエラーが出たのですが対処方法がわかりません ご教授お願いいたします C:\mobiledev\VAppli\test>preverify -d classes -classpath c:\J-PHONE-SDK\stubclasses.zip tmpclasses Error preverifying class test1 java/lang/NoClassDefFoundError: javax/microedition/lcdui/Canvas
84 名前:デフォルトの名無しさん mailto:sage [05/02/28 15:30:48 ] >対処方法 1.訳す 2.意味を考える 3.調べる これで解決 原因不明のエラーじゃないんだからさ ご丁寧にエラーメッセージ出てくんだからさ
85 名前:デフォルトの名無しさん [05/02/28 16:19:10 ] 英語なんかよめるかボケ
86 名前:デフォルトの名無しさん mailto:sage [05/02/28 17:51:09 ] >>85 ほんならおまいは一生「なでしこ」でも使ってろ! 83のエラーなんか初心者がよくやる 1.J2SEかV開発ツールのパスの設定間違い(見た感じ怪しい 2.プロジェクト名とかクラス名とか良く分かってない だと思うわけで、もう初歩中の初歩で無視されても仕方ないレベル。 何を読みながら作ってるのか知らんが、その過程が分からんと こっちもどう説明していいものやら。
87 名前:デフォルトの名無しさん [05/02/28 18:34:48 ] すいませんありがとうございます。 C:\mobiledev\VAppli\test>javac -d tmpclasses -bootclasspath C:\V-appli_SDK_121\lib\stubclasses.zip src\*.java C:\mobiledev\VAppli\test>preverify -d classes -classpath C:\V-appli_SDK_121\lib\stubclasses.zip -d classes tmpclasses C:\mobiledev\VAppli\test>jar cmf C:\mobiledev\VAppli\test\bin\test.jar C:\mobiledev\VAppli\test\bin\MANIFEST.MF -C classes . java.io.IOException: invalid header field at java.util.jar.Attributes.read(Attributes.java:383) at java.util.jar.Manifest.read(Manifest.java:167) at java.util.jar.Manifest.<init>(Manifest.java:52) at sun.tools.jar.Main.run(Main.java:124) at sun.tools.jar.Main.main(Main.java:904) で、こうなったわけで、、、、、教えてくださいエロい人 正直これは英語斜め読みしてもまったくわかりません。。
88 名前:86 mailto:sage [05/02/28 19:08:50 ] >>87 とりあえず3つ確認しておきたいのだが、 1. 83=85=87 なのか 2. 1だとすれば83とパスが違う気がするが気のせいなのか 3. 2だとすれば87は何を説明してるつもりなのか の3つにまず納得のいく説明しろ。 んで、 オイラが86で挙げた原因の2点を確認するために 1. 開発環境(使用ツール、パス)と、それをどのサイト・ガイドを参考に設定したのか 2. 作ろうとしているアプリのプロジェクト名・全クラス名 を書け。話はそれからだ。 これも書けない(書きたくない)っていうならカエレ。
89 名前:デフォルトの名無しさん [05/02/28 19:27:26 ] 1.はいそうです。 2.えっと実際にはアプリの名前が入っているパスなのですが恥ずかしいので testに変換して書き込んでます、test1とtestの実際の差異はありません、すいません 3.javacでclassファイルを作れて、それをpreverifyして携帯用のclassを作成できました ですが、その事前検証済みのclasファイルからjarファイルを生成できません ということを言いたかったのです。 1.開発環境はj2sdk1.4.2_04です javaコンパイラのパスは C:\j2sdk1.4.2_04\bin\javac.exe jarのパスは C:\j2sdk1.4.2_04\bin\jar.exe stubclasses.zipのパスは C:\V-appli_SDK_121\lib\stubclasses.zip 2.プロジェクト名はtestで統一させてください、すいません、クラス名は test.class gameselect.class getNetData.class MainMenu.class Texts.class bet0.class bet1.class bet2.class bet3.class bet4.class bet5.class bet6_7.class です、お願いします
90 名前:デフォルトの名無しさん [05/02/28 19:28:26 ] 追記 test.classの部分に実際のプロジェクト名が入ります
91 名前:86 mailto:sage [05/02/28 20:30:19 ] >>89 88で聞いたのは、V-appli_SDKに_121が付いてるとか、 そもそも83ではpreverifyなのに87で「jarでエラー」になってる所だ。 同一人物なら何で違うのかなってな。はじめから変えたって書けよ。 で、 開発環境はj2se1.4.2_04,Vツール121,コマンドプロンプト,でいいか? 多分preverifyの記述が87はおかしい。83が○( _121 が無いが)。 そこでちゃんとclassesにクラスが作れてない気がするので classes、ついでにtmpclassesにちゃんとファイル出来てるか確認して。 あと、 なんやらクラスが多い(通常は2個程度)が、MIDPは素人じゃないの? とりあえず初歩的なプログラムで環境確認してからの方が楽だと思うよ。
92 名前:デフォルトの名無しさん [05/02/28 20:36:30 ] すいませんありがとうございました tmpclassesとclassesを確認して jarのパスをいじったらjarファイル作成されてました、お手数おかけしました MANIFESTファイルの設定がどうのってエミュレーターに怒られますが そんくらい自分で調べてアレします、ありがとうございました、エロい人
93 名前:デフォルトの名無しさん mailto:sage [05/02/28 20:45:40 ] 俺クラス12個も作ってた ora
94 名前:デフォルトの名無しさん mailto:sage [05/02/28 21:21:08 ] 最終的に容量が収まるなら何ら問題ない。 作業効率が上がるなら10個でも20個でも作る。 それこそ class Point { int x, y; } でも作る。 開発半ばを越えて容量が気になりだしたり、不要かなと思った時点で クラスをまとめたり配列に置き換える。こんな方針でやってる。
95 名前:92 [05/02/28 21:26:05 ] でもコンスタントプール幾らなんでも取りすぎですよね 容量気になりだしたらクラスをくっつけてお引越し
96 名前:86 mailto:sage [05/02/28 21:42:48 ] >>93 いや別にクラス多いのがダメだと言うつもりは無かったッス。自分も最近は多い。 ただ、Vアプリの開発環境を整えてる段階っぽかったので そこで複雑なアプリはどうよ?っていう意味です。 あと91でpreverifyおかしいかもとか書いたが別に問題ないかも。 -dが2個あるのが正直アレって感じに見えた。 自分はこの辺ツール(kjxツールとかEclipse)に任せてるからホントは良くシラネ。 とりあえず自分で調べてみる事はすごく重要。超がんがって!
97 名前:76 mailto:sage [05/02/28 22:08:01 ] >>82 詳しく解説していただきありがとうございます。 できるだけガベコレが必要ないような作りに して行きたいと思います。
98 名前:デフォルトの名無しさん mailto:sage [05/03/01 00:15:40 ] Vアプリ(JSCL1.2)には、JpegPlayerというクラスがありますが、 このクラスを使うメリットって何ですか? JPEG画像を表示するだけなら、とりあえず「Image.createImage」を 使っておけばいいと思うですが。
99 名前:デフォルトの名無しさん mailto:sage [05/03/01 09:51:45 ] Vアプリ(JSCL1.2)でFormにChoiceGroupを乗っけて使ってるんですが V602SH、603SHで(256kVer.2から)挙動が変わって困っています。 具体的にはChoiceGroupにフォーカスがくるとListの一番下がされるようになり Listの先頭にあるカーソルが消えた(実際には画面外の上部にある)ように見えて しばらく↓ボタンを押さないとカーソルが画面に出てきません。 ChoiceGroupの項目数が少ない場合はOKなんですが、項目数が増えて画面に全てが 表示しきれない場合に挙動が変わってしまいます。 601SHまではフォーカスがくるとListの先頭からの表示になっていたので全然 問題なかったので、どう対処したらよいのか… 何か対処法はありますでしょうか?複数のうちから1つだけ選択するインタフェース にしたかっただけなので特にChoiceGroupにこだわってはいません。 アドバイス等よろしくお願い致します。
100 名前:デフォルトの名無しさん mailto:sage [05/03/01 10:56:31 ] >>99 256kVer.2てP6型のことか?だったらSystem.getProperty("microedition.profiles") でJSCL-1.2.2かどうか見て処理を分ければいいんじゃないかな。 それと「ありますでしょうか?」なのに「致しますです」ではないんだな。