1 名前:デフォルトの名無しさん [2007/08/21(火) 15:32:26 ] NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。 ※DoCoMo以外は下記スレへ。 CLDC+MIDP+携帯電話用Javaスレッド part 7 ttp://pc11.2ch.net/test/read.cgi/tech/1180010672/ ■ iアプリ特有ではなくJava一般に関する質問はこちらへ 【初心者】Java質問・相談スレッド104【大歓迎】 ttp://pc11.2ch.net/test/read.cgi/tech/1185493592/ ■ iモード携帯電話用Java(iアプリ)まとめサイト ttp://ton.my-sv.net/ ■関連スレ 【日本携帯】Mascot Capsule/Micro3D【標準】 ttp://pc8.2ch.net/test/read.cgi/tech/1117773530/
231 名前:229 [2007/09/26(水) 23:31:03 ] >>230 予想通りのエラーですね。 ということで、対策デバッグ版アップしました。(同ページにて) ・System.gc()を初期化後に実行する:WaterP3 ・定期的に実行する:WaterP4
232 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:20:56 ] processEventにsynchronized付けるとキー入力が遅くなると思うんだが。 processEventにはsynchronizedをつける必要ない設計するのがセオリーなんじゃないの? と公式アプリつくってる者の意見でした。
233 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 02:32:44 ] paintをsynchronizedする人なら見たことあるけど、processEventはないな。
234 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 03:13:02 ] >>216-218 何か話が噛み合ってない気が… 以下2メソッドは同意。 public synchronized void processEvent(){ //... } public void processEvent() { synchronized(this) { //... } } synchronizedを指定したオブジェクトに対して、別スレッドから参照が行われた場合、 synchronized対象のロックが切れるまで、別スレッドは待ち状態になる。 2つのスレッドからprocessEventが呼び出されたとして、 先に呼び出されたほうがthisをロックする。 後から呼ばれたほうはthisのロックが解除されるまで待ち。 thisのロックが解除されるのはsynchronizedスコープの後なので、 その間呼び出されるメソッドもロック中と同等の動作になる。 >processEvent()から呼んでるメンバは全てsynchronizedである必要がある これはちとオーバーじゃないかね(´・ω・`)
235 名前:デフォルトの名無しさん [2007/09/27(木) 18:05:22 ] ちょっと教えてください iアプリを作って配付する場合 microSDに入れて配付とかした場合、アプリを起動できないですよね? ネット上から落としてもらうしかダメなんですかね?
236 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 18:16:55 ] うん、そう。
237 名前:デフォルトの名無しさん [2007/09/27(木) 18:29:16 ] なんとかやり方ないのかねえ まあネット上に置いてあったからってだれかれ構わず見つけて落とされることはないと思うけど できれば配付した人を特定しておきたいからminiSDなりmicroSDなりで配付したいんだけどなあ
238 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 18:31:25 ] DL時に特定できるように会員認証でもつければ良いんでないの? それくらいのCGIは書けるでしょ
239 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 19:08:26 ] >>231 WaterP3は5秒でOutOfMemoryだが、WaterP4は落ちなくなってた。 ただ、2〜5秒ほど動いては1秒以上停止(おそらくGC)するので、 アニメーションがウリのアプリとしては致命的だろうな。
240 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 19:24:33 ] > それくらいのCGIは書けるでしょ
241 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 19:50:56 ] >>219 doja.exeをダブルクリック等で直接起動させたときに動かないのか? それとも、バッチファイルやコマンドプロンプトから -i や -j などの オプションをつけて起動したときに動かないのか?
242 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 20:59:42 ] >>237 先に配布予定者の端末IDを聞いておいて、それに適合する場合のにDL可能ってどうよ?
243 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 21:48:11 ] じゃあ白ロムにアプリを移すのも無理なんですか?
244 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 22:33:41 ] 配布した人を特定したいのにminiSDで配布出来たら、その時点で意味ないだろ。 やるならシリアルナンバーでも配るしかないな。
245 名前:デフォルトの名無しさん [2007/09/27(木) 22:37:13 ] >>237 SDにキーデータファイルを入れて、 それがなければ初回起動できないようにするとか。
246 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:08:37 ] >245 何も知らなければ全部コピーすると思わないのかい。
247 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:45:20 ] >>245 そこまで自由度のあるSDへのアクセスそのものをiアプリからはできないわけだが まぁ実用的に落とした人を断定しておきたかったら落とす場所を 携帯でアクセスしか出来ないようにした上にBASIC認証にでもして 落とせる人、一人一人にIDとパスを割り振った上でアクセスログを取って 明らかに不特定多数からそのIDとパスが使われてたらそのIDとパスを停止する形にするとかかな むしろSDに入れて配布なんて方法の方が中身の全ファイルをzipで固めてどこかにアップされれば 完璧アウトな上に流通を止める手段がないよ
248 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 23:52:10 ] >>242 に一票
249 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 00:49:01 ] 質問させてください。 iアプリでソケット通信をする事は可能ですか? 調べていると出来ないように感じたのですが、その場合自前で用意したサーバにアクセスするにはHTTPで接続しにいくしかないですかね?
250 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 01:06:57 ] >>219 関係あるかどうか判らないけど。 うちは1.4.2でDoJa入れたら駄目で、 今は1.5.0_12でチャンと動いてる。
251 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 02:36:14 ] >>249 はい
252 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 03:15:00 ] ttp://www.mitsubishielectric.co.jp/giho/0502/0502110.pdf DってJITしてあの速度? 冗談はよしてくれ。
253 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 03:38:31 ] >>251 やっぱりそうですか。 ソケットを使って書いていたので、何かいい方法がないか、それともCGIやJSP等の方がいいのか検討してみます。 ソケット通信でも自分でHTTPヘッダを処理してやれば大丈夫なのかなぁ・・・。 色々調べてみます、ありがとうございました。
254 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 04:12:32 ] >>252 これは嘘じゃね?
255 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 07:52:02 ] >>249 iモードはソケット通信できないよ HTTP通信はOK HttpConnectorとか読んでみ
256 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 11:51:23 ] >>252 ほかの機種もJITなんじゃね?
257 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 13:51:48 ] まさか
258 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 14:06:27 ] >>252 >D505 i,D505 iS,D506 i,D900 iに実装している。 全部糞端末じゃねぇかw
259 名前:231 [2007/09/28(金) 20:54:05 ] >>239 ありがとうございます。 もしかすると、メモリ使用量増加の原因が分かったかもしれません。 ↓WaterP5で落ちるかどうか試してみてください。 www.i-paradise6.jp/~physics/test/test.html (サイトがちょっとトラブっているので、別の所にアップしました。)
260 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 23:00:46 ] >>259 WaterP5でもOutOfMemoryだった。 計算して線を描くだけならメモリ食わないと思うんだが。。。
261 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 23:55:16 ] すみません、Eclipse3.2、または3.3にて、エミュレータが起動した瞬間に落ちてしまうようになりました。 ビルドでエラーは出ず、JARファイルは生成されています。 DoJa5.0ツールで直接ビルド、起動した場合は正常に起動、動作します。j2sdkはは1.42です。 Eclipseを介してビルドした物はDoja5.0ツールから起動しても落ちます。 また少し前まではEclipseでも正常に起動していました。(ただし途中で落ちてました。) 何か設定を弄ってしまったのかもしれませんが、Eclipseに明るくなく、対処方法がわりませぬ。 思い当たる節があれば是非教えてください。
262 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:00:15 ] Stringの中身を消すとき str="";とstr=null; ってどっちの方がメモリ節約できますか?
263 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 00:58:55 ] 消すという概念自体がjavaに当てはまらない気がするが ガベコレに拾ってもらう上で""(空文字)オブジェクトが生成されない str=null;の方が節約って意味では確実なんじゃない? str="";は結局str=new String("");って事だから古いstrの中身は消えるだろうけど 新しいStringオブジェクトが生まれてるよ
264 名前:259 [2007/09/29(土) 01:13:49 ] >>260 そうでしたか。 getImageでImageをpaint内で生成しているのが原因かと思ったのですが・・・。 (描画の重ね合わせに、Graphics2.setRenderMode()と合わせて使用) 色々調べてみたところ、 さらにImageをdisposeしていないのがまずいような気がしたので、 getImage前にdisposeするようにしてみました。(WaterP6)どうでしょう。 あと、このgetImageをスイッチできるようにしました。
265 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 01:40:57 ] >>263 文字列リテラルはクラスがロードされたときに生成されて、 str = ""; は str がそれを指すようになるだけ。 そのたびに新しい String オブジェクトが生成されたりはしない。
266 名前:261 mailto:sage [2007/09/29(土) 02:06:39 ] すみません、自己解決しました。 デバッグの仕方を勉強して実行したたところ、 ALERT: java/lang/ClassFormatError: Bad version information. が出てて、JRE1.5でビルドされているのが問題のようでした。コンパイル設定変えたら動きました。 1.4のbinフォルダにパス通したのはエミュレータ動作用だったのかな。 スレ汚しすまそ
267 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 02:07:10 ] >>261 3、4回、マイナーバージョンの違うDoJaを交互にインストール・アンインストールして直ったことがある Eclipse 3.2.0 + Windows Vista + JDK 1.6
268 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 02:46:53 ] >>264 D902iでWaterP6テスト。 blurをonにした瞬間、NullPointerExceptionで落ちることがあるのはご愛嬌として、 OutOfMemoryは起きなくなったみたい。 たしかに毎フレームGraphics2#getImage()はメモリ食いそうだなぁ。
269 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 03:46:10 ] >さらにImageをdisposeしていないのがまずいような気がしたので、 脱力系のオチかよ
270 名前:264 [2007/09/29(土) 09:01:18 ] >>268 よかった。 getImageで上書きされるものと考えていたのが問題でした。 普通の使い方ならば、ガーベージ自動処理のタイミング的に大丈夫なのでしょうね。 他のアプリにも同様の処理をしているものがあるので、 アプリの機種違いによるエラーは、これで解決しそうです。 (アプリ_FallSのエラーは、現行ver.では起きないようなのでOKです。) お手伝いいただき、ありがとうございました。
271 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 13:53:15 ] 毎回getImageするより、オフスクリーンバッファを2枚用意したほうがいいんじゃないか? Imageの描画コンテキストはGraphics2にキャストできないんだっけ?
272 名前:デフォルトの名無しさん [2007/09/29(土) 14:42:06 ] Imageに対して直接Graphics2の描画(加算レンダリング)をするって事ですよね? 確かにその方法は良いと思います。 できるのであれば、どなたか教えてください。
273 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 15:29:39 ] >>272 確かにその方法は良いと思ったんなら、まず自分でやってみろよ。 良いと思うほどなんだから実現の可能性があることは自分でも分かってるんだろ? 教えてくださいじゃなくて、コード書くのが面倒なのでかわりに書いてくださいじゃないのか?
274 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 18:36:19 ] ってか、いきなりレベル低くなったな
275 名前:272 [2007/09/29(土) 19:26:02 ] >>273 こうすれば良いのですね。 Graphics gi=image.getGraphics(); Graphics2 g2=(Graphics2)gi;//簡単な事なのに、これを思い付けませんでした。 で、この方法で組み直したところ、1つ問題が出てきました。 drawLine((i+1)*d,y[i+1],i*d,y[i]);//(d:1ラインの横方向の大きさ) 曲線を連続したラインで表現するため、↑のようにしていたのですが、 これだと、隣のラインと1ドット重なってしまい、 当然、加算していくとそこだけ色が変わって ・・・ 1ドットずれた位置の変位yを計算する方法↓で自己解決しました。 drawLine((i+1)*d,y[i+1]+(y[i+1]-y[i])/d,i*d,y[i]); (厳密には変位が大きくなるとラインが途切れることになりますが) これでgetImage()よりは軽くなったはず。(多謝)
276 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 02:24:48 ] 他人のアプリのそんな細かい部分を語られても さっぱり分からないが、動いたのならおめでとう。 それにしてもモーションブラーが実装できる時代になったんだなぁ。
277 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:08:11 ] 最近JAVAプログラムを始めた初心者です。 リアルタイムなゲームを作ってみようと思って色んなサイトを参考にしながら作ろうとしています。 で、現在はスレッドを一つ作ってその中で無限ループさせているのですが、一つ疑問が浮かびました。 スレッドの入り口(無限ループの外)にSystem.out.println("スレッド実行");と書いた場合、ひたすら"スレッド実行" という文字が出力されていました。これはスレッド自体が無限ループのように呼び出されている、という事 なのでしょうか? ソースの例は以下のような感じです…。 public class applitest extends IApplication{ public static testCanvas a_test; public void start(){ a_test = new testCanvas(); Display.setCurrent(a_test); a_test.start(); } class testCanvas extends Canvas{ public void start() { System.out.println("スレッド実行中"); while(true){ //メインループ try{ Thread.sleep(30); } catch(Exception e){ } repaint(); } } } }
278 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:10:25 ] うん?どこでスレッドを作ってるんだ?スレッドを作ってるようには見えないが・・・
279 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:31:08 ] >>277 スレッドが作れて無いようだが? 基本的にThreadクラスから継承するんじゃないならRunnableインタフェースを実装しなきゃだし スレッド実行開始はThreadクラスのstart()だがスレッドの実体はどっち方法で実装してもrun()だぞ? 後Canvasのpaint()はabstractだから省略できんだろ、例として書くならそこも簡単でイイから書きなさい 一応IApplicationのstart()とCanvasのイベントメソッドが別スレッドになるかも?というのを使って IApplicationのstart()でCanvas内の無限ループメソッドを使ったメインループ作成方法はあるけど これはスレッドを自分で作ってるとは言わないし機種に依存するはず(動く場合が多いけど)
280 名前:277 mailto:sage [2007/10/01(月) 17:35:39 ] あれっ、本当だ…。Runnableが実装されてませんね…。 よく考えたらスレッドを作成して動かしてるのはVアプリ用の方でした。 こちらの方法はスレッドじゃないですね…失礼しました。 しかも279さんの仰る通り簡略化しすぎてました…。 とは言えせっかくなので教えて頂ければ幸いなのですが (改行エラーが出たのでソースは次に書きます) →ソース という感じで作っています。この場合、自分は a_test.start(); によってtestCanvas内のstart()メソッド が一回だけ実行され、その中の無限ループでグルグル処理をするっていうイメージで作ったんです。 しかし実際にはtestCanvas内のstart()メソッドが何度も実行されているようなのです。 物凄い勢いで”実行中”というトレースを吐き出します…。 質問自体分かりづらくて申し訳ないのですが、なぜtestCanvas内のstart()メソッドが何度も呼び出される のか、ご教授願えれば幸いです。
281 名前:277 mailto:sage [2007/10/01(月) 17:36:30 ] public class applitest extends IApplication{ public static testCanvas a_test; public void start(){ a_test = new testCanvas(); Display.setCurrent(a_test); a_test.start(); } class testCanvas extends Canvas{ public void start() { System.out.println("実行中"); while(true){ //メインループ repaint(); try{ Thread.sleep(30); } catch(Exception e){ } } } testCanvas(){ //色々処理 } public void paint(Graphics g){ //描画 } } }
282 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 17:38:37 ] >IApplicationのstart()でCanvas内の無限ループメソッドを使ったメインループ作成方法 Fの505,506,900でこれやると、processEventとmediaActionに処理こねぇ(ノд`)
283 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 17:41:25 ] Eclipseのデバッグモードで確認すれば一発
284 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 17:58:10 ] >>280 これ実機の話か? 取り敢えずDoJa5.0のエミュ上だと"実行中"は1度出力されるだけだ a_test = new testCanvas(); の前に System.out.println("起動"); a_test = new testCanvas(); ってやるとどうなる? IApplicationのstart()がループしてるのか、Canvasのstart()がループさせられてるのか切り分けてみ
285 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:02:28 ] あ、後当然ながらstart()とprocessEvent()の両方からアクセスしてるメンバは全部synchronizedになってるよな?
286 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 23:20:27 ] >>282 マジ? ずばりこのやり方で作りまくりなんだけど、、 Fの901以上とか700は大丈夫なの?
287 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 00:09:24 ] >>286 この手法って機種依存じゃないの? IApplication.start()がCanvas.processEvent()とは必ず別スレッドで呼ばれることが保証されてるってどっかドキュメントに書いてある?
288 名前:282 [2007/10/02(火) 02:51:23 ] >>286 実は端末がなくて、そこまで調べていない。 とりあえずデバッグ時に、手元にあった上記の三つは動作しなかったので 直した。その他の端末は、修正後に検証センターで端末チェックしたので その他のF機についてはわからない。
289 名前:286 mailto:sage [2007/10/02(火) 06:45:39 ] >>282 >>287 10K制限の時から気にせずやってたけど、 今は容量制限もゆるいし普通のやり方が一番安全ですね。
290 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 11:26:51 ] 俺もstart()で無限ループやりまくってるw リリース前にゃ全端末チェックして貰った事もあるけど 問題なかったなぁ。ユーザからクレームも上がってない。 んまぁ音鳴らすアプリが殆どない上processEvent使ってないし 気づかなかっただけかもだけど。
291 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 11:45:28 ] 過疎ってる(゜Д゜)
292 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 14:12:31 ] おうよ
293 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 20:59:45 ] ネット上のAPIリファレンスの見方を教えて下さい 全然分かりません
294 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 10:43:16 ] ネット上にDojaのAPIリファレンスなんてあったっけ? ここからダウンロードして使ってえば。 ttp://www.nttdocomo.co.jp/service/imode/make/content/iappli/about/index.html
295 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 01:17:55 ] このHPなんだけど(Doja5.0) www.rcdtokyo.com/man/doja/api/index.html 例文が全然ないから書式が全然分かりません できるだけ詳しく教えてください
296 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 01:20:24 ] それはまず Java の勉強をするべきでは?
297 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 03:16:15 ] >>295 まず初心者用のjavaの勉強から始めるべきだし もしjavaの勉強のためにDoJaを使おうとしてるなら奨めはしないが どうしてもというならiアプリ開発解説系サイトの初心者講座を見てhello worldからはじめるべきかな その上でまずDevGuide.pdfとjguidefordoja5_x_070423.pdfを内容覚えるぐらいに読んでおく APIリファレンスはリファレンス(参考書)であって入門書ではないからリファレンスだけを見ても iアプリは作れるようにはならないよ? もちろんjavaの事を既によく知っていてSwingとは言わんからAWTでいいから使ったことがあるとかなら DevGuide.pdfとjguidefordoja5_x_070423.pdfを適当に流し読みした後にAPIリファレンスだけあれば iアプリは作れるだろうけどね
298 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 22:08:04 ] 初心者用のjavaの勉強は5年もしました しかしDojaのAPIリファレンスは難解すぎて理解できません もうやめます
299 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 22:59:52 ] Java で5年間何をやってたのか気になるところだな。
300 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 00:44:16 ] 5年間ずっとjava初心者用HPのサンプルコードのコピペを続けてたのだろうか? それはそれで根気があるが……
301 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 00:45:41 ] ネタだろ。 数年前に一週間程度java勉強しただけの俺でも何とか分かる。
302 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 21:54:18 ] しかしそれは本来のJavaでなく携帯向けJavaだったのだ
303 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 02:10:42 ]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」 ―――――――――――――‐┬┘ | ____.____ | | | | | | | ∧_∧ | | | |( ´∀`)つ ミ | | |/ ⊃ ノ | |  ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | ミ [本来の Java]
304 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 03:35:34 ] >302 携帯向けのJavaが偽物みたいにいうな禿
305 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 03:57:13 ] 携帯向けのJavaなんて存在しないんだけど?w
306 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 05:14:54 ] JavaME
307 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 07:53:16 ] CLDCとMIDPの立場って一体……
308 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 07:53:21 ] 携帯向けのJavaってソースに #ifdefとか#defineとか入ってる奴?w
309 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 08:02:59 ] 無知だな
310 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 08:36:07 ] >>308 30Kに収めようと思ったり機種依存APIを使うために場合分けが必要な場合(Unable to load class回避)には 必要に応じてプリプロセッサも使うけどな まぁそれも初心者にはあまり関係ない話だ
311 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 08:53:40 ] >>307 世界で使われている
312 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 12:13:12 ] プリプロセスできれば、と思うことは何回もあった
313 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 12:19:52 ] 30KiBの壁にあたったとき、プリプロセッサ使って3KiBくらいちんまく なったときには、純粋なJavaと決別しようと思ったさ。
314 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 12:48:26 ] KIBだんご
315 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 00:05:44 ] プリプロセッサってクラスファイルを小さくしてくれるの? あ、でもなんか単位が違うなぁ
316 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 01:53:14 ] Kを1000じゃなくて1024であることを明確に示したいときにはKiって書くのよ。
317 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 01:59:05 ] それ何業界で使われてるの? ストレージ関連? こっちでは単に KB て入ったら 1024 bytes 以外の可能性はないなあ。 M が 1000^2 じゃなく 1024^2 であると示したい場合は MeB?
318 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 01:59:33 ] でもあんまり浸透してないよなぁそれ・・・ キビバイトとかメビバイトとか言いにくいからかな
319 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 02:05:58 ] >>317 ja.wikipedia.org/wiki/2%E9%80%B2%E6%8E%A5%E9%A0%AD%E8%BE%9E
320 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 02:20:10 ] KIBだんごが正しくてワロタ
321 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 03:32:02 ] 純粋なJavaなんてこだわってるのは信者だけ そろ信者と頭の古いsunのせいでそれはいるだろって機能でさえ C#がでるまで入れようとしなかったくらいだから迷惑な話だよな
322 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 03:35:49 ] いきなりどうした?
323 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 03:48:33 ] つまり、プリプロセッサを公式にサポートしろと言いたいのですよw
324 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 04:01:43 ] >>315 組み方によるがプリプロセッサに頼った方が小さくなる 例えばstatic finalは#defineに置き換えれば大抵の場合クラスファイルを縮小できる まぁ色々あるんで一概にどうこうとは言いにくいんだが読みやすさを損なわないレベルで小さくなる場合が多いのは事実だな ただ初心者にはお奨めはしないけどな Obfuscatorを2〜3個と7Zipも使ってもどうにもならない場合の最後の最後の手段だな
325 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 04:06:34 ] >318 言いにくいからというより、単純に通じないからだろうな。 メディアや様々なドキュメント類が一斉に変えない限り普及しないんじゃないだろうか。 現状、ドキュメントなら大抵「1キロバイト=1024バイト」とか注意書きがあるんで混乱しないし、 1キロバイトが1024バイトなのはファイルサイズやメモリ容量、 1000バイト(というか1メガバイト=1*1000*1000バイト)なのはストレージ(大抵HDDを指して)、 としてまず問題なく会話できるし。
326 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 07:31:01 ] 最近の人は「キロ」と「ケー」の区別をつけないのか
327 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 07:45:38 ] HDDさえ1024単位にしてくれりゃ会話でまぎらわしいことは かなり減ると思うけどな。
328 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 18:14:45 ] 通信速度が10進数だから,そっちを基本にするしかないだろ
329 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 19:38:04 ] 10進数で通信速度を測定するのって何の通信?
330 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 21:29:29 ] 話切って申し訳ないですが、質問させてください。。 904iシリーズで追加されたオプションAPI、 「動作認識」を実装しようとしてるのですが上手くいかず困ってます。。 最初はとりあえず、ケータイの傾き(rolldata)を取得し、 その値を画面に表示させるコードを書こうとしています。 プログラミング初心者のため、かなり汚いコードだとは思いますが、 指摘いただけるとうれしいです。
331 名前:330 mailto:sage [2007/10/14(日) 21:33:46 ] public class Gesture1 extends IApplication { public void start() { GestureCanvas c = new GestureCanvas(); Display.setCurrent(c); c.exe(); }