iモード携帯電話用Java(iアプリ) Part15

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
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/
2デフォルトの名無しさん:2007/08/21(火) 15:35:00
3デフォルトの名無しさん:2007/08/21(火) 15:36:47
■ 開発環境

NTT DoCoMo - iアプリコンテンツの作成について
http://www.nttdocomo.co.jp/service/imode/make/
Java[tm] 2 Platform, Standard Edition v 1.4
http://java.sun.com/j2se/1.4/ja/
CLDC仕様書 日本語版
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip
Eclipse.org
http://www.eclipse.org/

■ 機種依存情報

ん・ぱか工房(iアプリ機種依存情報)
http://www.saturn.dti.ne.jp/~npaka/
NTT DoCoMo - アプリケーション作成上の注意点
http://www.nttdocomo.co.jp/service/imode/make/content/iappli/caution/index.html
Overflow! さかきけいのページ(504iまでの機種依存情報つきAPIリファレンスあり)
http://godwood.allnet.ne.jp/vioret/

■ アプリを省サイズ化するツール(ObfuscatorまたはOptimizer)

Java Blender
http://homepage.mac.com/t.sekiguchi/javablender/
jarg - Java Archive Grinder
http://jarg.sourceforge.net/
4デフォルトの名無しさん:2007/08/21(火) 15:40:38
■ 主なアプリ配布サイト

ギガアプリ
http://g-appli.net/
アプリ★ゲット
http://appget.com/
ゲームチャンネルi
http://appli.channel.or.jp/pc/i/

■ 携帯関連ニュース

ITmedia:モバイル
http://www.itmedia.co.jp/mobile/
ケータイ Watch
http://k-tai.impress.co.jp/
Nekomaru What's New
http://snget.hp.infoseek.co.jp/news/news_index.htm

■ 関連板

携帯・PHS
http://hobby7.2ch.net/phs/

携帯機種
http://hobby7.2ch.net/keitai/

携帯コンテンツ
http://hobby7.2ch.net/chakumelo/

携帯電話ゲー
http://hobby7.2ch.net/appli/
5デフォルトの名無しさん:2007/08/21(火) 21:15:31
>1

6デフォルトの名無しさん:2007/08/22(水) 08:51:26
>>1
乙です。

そして新スレ質問第1号。
自分の美声(歌声)を再生するアプリを作ろうと思っています。
歌は演奏付で約1分30秒くらいです。
でも、3gppは904以降しか再生出来ないんですよね?
という事は従来の端末のユーザにも美声を聞いてもらう為には
mp3→mldかな〜?とも思ったんですが、サイズが…。
これは素直に諦めるか904以降のユーザにのみ美声を届ける
しか方法がないという事でしょうか?
7デフォルトの名無しさん:2007/08/22(水) 12:38:46
音声のみの3gp動画として再生すればいい。
ただヒープの空き容量によっては90秒は無理かもしれない。
8デフォルトの名無しさん:2007/08/22(水) 12:50:32
OpenGL ESを使った携帯アプリの開発方法は公開されているのですか?
9デフォルトの名無しさん:2007/08/22(水) 13:53:54
Mail mail;
try{
// こいつがエラー
mail = MailAgent.getLastIncoming();
}catch(SecurityException e){
mail = null;
}catch(IllegalStateException e){
mail = null;
}

こういう処理を記述したんですが,
getLastIncoming()が実行されたときに
SecurityViolation: 6 getLastIncoming 0
というエラーをコンソールに残してシステムがダウンしてしまいます
(DoJa5.0 Eclipse)

どこかの設定ファイルで許可が足りないのだと思いますが,
どのようにすればいいのでしょうか...?
10デフォルトの名無しさん:2007/08/22(水) 14:53:33
メール関連のメソッドはトラステッドじゃないと呼び出せないけど
その辺は大丈夫?
119:2007/08/22(水) 15:17:51
トラステッドってDXのことですよね...
プログラム組んでると基本的なことほど気付かなくて...

そもそも無理なものに四苦八苦してました...
ありがとうございます.
12デフォルトの名無しさん:2007/08/22(水) 15:28:14
自分はPHPでメールも送れるサーバ用意したお
13デフォルトの名無しさん:2007/08/24(金) 15:44:11
今、外部メディアに画像を保存するiアプリを作っているのだが、案外、読み書きに処理時間がかかるんだよね。

んで、時間がかかるのは仕方ないとして、処理中だという事をユーザに教えてあげたい。
または、進捗状態を表示したいのだが、何か良いアイデアはないものかなぁ。

砂時計もどきとかプログレスバーみたいなのは大変そうだし・・・
14デフォルトの名無しさん:2007/08/24(金) 16:20:23
前スレ乙
15デフォルトの名無しさん:2007/08/24(金) 16:27:33
前レス>>999
DoCoMoのソニー端末以外の端末は、タイマ解像度が10msだから
Thread.sleep(1)ってのはThread.sleep(10)と変わらない。
完全にフレームを固定したいなら、そもそもsleepを入れないほうがいい。
電力消費が激しそうだがな。
1615:2007/08/24(金) 16:30:28
前レス>>993
>実機ではいまいち正確に保ってくれないんだ
たぶん、上で説明したタイマ解像度10msのためだと思われる。
17デフォルトの名無しさん:2007/08/24(金) 16:35:00
俺はsleep入れてるけど結構安定してるよ。
フレーム数をチェックして多かったら少しずつ
sleep時間延ばしてやるとかしてる。

当然毎回sleep時間を大きく変えてると不安定になる。
18デフォルトの名無しさん:2007/08/24(金) 16:39:14
>>15
将来的な事を考えて1を指定しているだけで、
別に10msだろーが20msだろーが問題ないよう書いてあるよ。
滑らかなアニメーションは期待薄かもだけどね。
1915:2007/08/24(金) 16:56:05
>>18
あ、別に>>999を否定するために言ったわけじゃないんだ。
否定するように見えたならあやまるよ。すまんかった。

>>17
sleep入れないって言ったのは、完全にフレームを固定したい場合のみだからね。
10msって0.01秒だから、その範囲で多少誤差が出ても体感として分からないし、sleep入れるのが普通だと思うよ。

ちなみに俺のFPS固定のソースは↓
private long backTime;
private int waitTime = 50;    // 20FPS

public run() {
  backTime = System.currentTimeMillis();
  while (true) {
    // 時間待ち
    {
      Thread.yield();
      long time = waitTime - (System.currentTimeMillis() - backTime);
      if (time > 0) {
        try {
          Thread.sleep(time);
        } catch (InterruptedException e) {
        }
      }
      backTime = System.currentTimeMillis();
    }

    // メインの処理を入れる
  }
}
20デフォルトの名無しさん:2007/08/24(金) 16:59:46
>>15
タイマ解像度1000msの端末が有ったとして、
0.5秒目でsleep(1)したら1.5秒までsleepすると思ってない?
2115:2007/08/24(金) 17:12:04
>タイマ解像度1000msの端末が有ったとして、
>0.5秒目でsleep(1)したら1.5秒までsleepすると思ってない?
やべぇ、ちょっとそう思ってた。


>Thread.sleep(1)ってのはThread.sleep(10)と変わらない。
俺のこの発言間違いだね。無視しちゃってください。
22デフォルトの名無しさん:2007/08/24(金) 17:14:57
>>20>>21
>タイマ解像度1000msの端末が有ったとして、
>0.5秒目でsleep(1)したら1.5秒までsleepすると思ってない?

俺もそう思ってた!
WinAPIのsleepは確かタイマ解像度に依存していたと記憶しているが
Dojaの場合は違うのか
23デフォルトの名無しさん:2007/08/24(金) 17:21:16
ひどい流れだ
24デフォルトの名無しさん:2007/08/24(金) 17:22:06
え、ちょっと意味が解らんのだけど

俺はタイマ解像度1000msだったら、
1000ms以下は入れても無駄というか正確に測れない
ってことだと思ってた
25デフォルトの名無しさん:2007/08/24(金) 17:23:15
ハードが十分に速ければそこまで気にする事じゃないんだろうけどなw
26デフォルトの名無しさん:2007/08/24(金) 17:27:34
>>24
携帯内で1個だけ動いてる解像度1秒の時計をみんなで見てるなら、
秒が切り替わった直後に1秒スリープすると、
次に変わったって気づけるのは約2秒後って話じゃね?

動けば良いやで作ってるから、間違ってたらゴメンw
27デフォルトの名無しさん:2007/08/24(金) 17:29:31
結局sleep関数の精度はタイマ解像度には依存せず全端末1msが保障されてるということでいいの?
2815:2007/08/24(金) 17:33:30
俺もだんだん混乱してきた。

>>20
>タイマ解像度1000msの端末が有ったとして、
>0.5秒目でsleep(1)したら1.5秒までsleepすると思ってない?
この場合は、2.0秒までsleepするであってるよな?
29デフォルトの名無しさん:2007/08/24(金) 17:36:42
>>28
あってるよ
30デフォルトの名無しさん:2007/08/24(金) 17:40:39
え、全然解らん
こういうもんだと理解してたんだけど

sleep( 1000 )で呼び出したとする
 ↓
スリープを開始
 ↓
タイマーを見て現在時刻を取得(多分ミリ秒単位)
 ↓
以降、一定時間ごとに時刻を取得して比較
現在時刻から1000ミリ秒以上経ってたらスリープ解除

この一定時間がタイマ解像度だと思ってた
31デフォルトの名無しさん:2007/08/24(金) 17:43:14
それでいいんじゃね?
32デフォルトの名無しさん:2007/08/24(金) 17:49:15
ということはタイマ解像度が100msの端末の最大FPSは10ということになるんでしょうか
33デフォルトの名無しさん:2007/08/24(金) 17:53:04
え?なんで?
34デフォルトの名無しさん:2007/08/24(金) 18:02:36
>>33
おげ、違うのか・・・?
タイマ解像度=100msとして

0ms(開始)
処理(20msかかった)
20ms
sleep(1)←タイマ解像度100msなので(1)でも100msまで進んでしまう
100ms
処理(50msかかった)
150ms
sleep(1)←タイマ解像度100msなので(1)でも200msまで進んでしまう
200ms

結局10FPSにならんの?
3534:2007/08/24(金) 18:07:35
すまん…sleepの理解は34でいい?として
FPSを上げたければsleepいれなきゃいんだよね
36デフォルトの名無しさん:2007/08/24(金) 18:09:17
あ、なるのかも?
もう混乱してワケワカラン
37デフォルトの名無しさん:2007/08/24(金) 18:31:55
タイマ解像度100msということは、100msに一度タイマ割り込みが
発生するということ。
>>34の例では、20msのあとでsleep(1)をした場合、sleepが終了
するのは、割り込みのタイミングに対してどの時点で命令を発行
したかに依存するので、待ち時間は1〜100msのいずれか。

ごめん、うまく説明できないな。
38デフォルトの名無しさん:2007/08/24(金) 20:16:13
>>35
基本的にはそれでOKだと思う。
ただ、液晶画面の応答速度を考えると
sleepを削除しても、1000FPSとかはでないと思わr。
39デフォルトの名無しさん:2007/08/24(金) 20:16:52
>>34 の例でいうと、開始の時点で携帯のタイマが 0ms にリセットされるわけではないから、

90ms(開始)
処理(20msかかった)
110ms
sleep(1)
200ms

かもしれないし、

40ms(開始)
以下略
処理(20msかかった)
60ms
sleep(1)
100ms

かもしれない。結局10FPSになるのは、まぁたぶんそうかもしれんが、保証はない。
sleep(1) は、最低 1 ミリ秒以上スリープする、というだけで、上限は定められてない。
40デフォルトの名無しさん:2007/08/24(金) 23:12:52
sleepは落ち着いてきたからいいよな。>34が正解。
で、FPSの話に移るとして、大前提。

・FPS固定する理由が端末毎の処理速度差を吸収する目的であるとする。

とした場合、sleepがあろーとなかーと、他の部分を考慮しないとダメ。
他の部分ってのは、『処理が早すぎた場合』と『処理が遅れた場合』。

>>19 と前スレの >>993 のFPSクラスの場合、
早すぎた場合に関してはsleepで待っているので問題ない。
問題なのは『処理が遅れた場合』の方で、
メイン処理や描画が 1000/フレーム数ms 以上の場合に遅れを取り戻せない。
レースゲームなんかじゃ致命的で、
遅い端末と早い端末が同時にレーススタートすると、遅い端末が後でゴールする。

>backTime = System.currentTimeMillis();
ここを
backTime += waitTime;
とすれば軽い時にそのうち追いつくけど、追いかけてる最中高速アニメーションw
まだ遅れっぱなしの方がマシってくらい有り得ない。
41デフォルトの名無しさん:2007/08/24(金) 23:18:06
FPS(あくまで全端末の処理速度)を一定に保つ方法はいくつかあるけど、
ここいくつかのレスを見る限り、
前スレ999のみが早すぎるケースにも、遅すぎるケースにも対応してる。
例え描画が1,2フレーム落ちても、mainLoop関数は秒間平均20フレーム回るので、
pos +=speed; と書いてあっても大丈夫。
ただ、999にも書いてあるけど長時間サスペンドや、
ダイアログでmainLoopを止めると対処がムズイ。

他は遅れっぱなしになるか、以下の制限付ければFPS固定になる。
・どんなに遅い端末でも、1フレームあたり1000/フレーム数ms 以上の時間が
 かからないようにする。(最悪、遅い端末にフレームレートをあわせる)
・座標計算をこんな感じで…かなり面倒。
 pos += (System.currentTimeMillis()-time) * speed / FLAMERATE;
・遅い端末は忘れる


で、話を戻してsleepが有るとか無いとか言ってる人。
タイマ解像度は currentTimeMillis() にも影響するので、実はあまり意味ない。
sleep使わないメリットは、sleepに与えた時間以上に休むのを防ぐことができるくらい。
42デフォルトの名無しさん:2007/08/24(金) 23:55:17
タイマ解像度ってTimer#getResolution()のことで合ってる?
getMinTimeInterval()の話が出ないのも引っかかるんだが、
気にしなくていいのかな。
43デフォルトの名無しさん:2007/08/25(土) 21:51:05
うん、論外。
44デフォルトの名無しさん:2007/08/26(日) 00:33:18
iアプリベンチはgetResolution()の値を取ってなかったっけ?
45デフォルトの名無しさん:2007/08/27(月) 10:54:13
>>44
25msとかで記述するのが面倒だから
1000msなり100msで具体的にどーなるかを議論している訳で、
iアプリベンチの値が実際のタイマ解像度と異なったとして、
上の議論には何の影響も無いでしょ。

どんなタイマ解像度の機種であっても、FPS固定できる事が理想なんだし。
46デフォルトの名無しさん:2007/08/27(月) 14:27:14
>>45
"FPS"って何だか分かってる?
47デフォルトの名無しさん:2007/08/27(月) 15:20:14
流れ切ってすまん。
マスコットカプセルは右、下、奥が正の値の右手座標系って公式資料に書いてるけどこれって一般的?
俺は右手座標系というと右、上、手前が正だと思ってた。
48デフォルトの名無しさん:2007/08/27(月) 15:26:12
それは数学
49デフォルトの名無しさん:2007/08/27(月) 15:39:05
>>47
マスコットカプセルが特殊、あなたが正常
50デフォルトの名無しさん:2007/08/27(月) 15:53:08
>>45
だからその「実際のタイマ解像度」って何かなと思ったのよ。
System#currentTimeMillis()の戻り値が常に一定間隔であることが
すべての機種で確認されてるの?
Thread#sleep(1)を100回繰り返したらタイマ解像度×100の時間が経過するの?

納得して議論してるなら横槍入れてごめん。
51デフォルトの名無しさん:2007/08/27(月) 16:24:58
別にいいじゃん、そんなに厳密じゃなくても動くんだし。

と思ってみたが、それを理由にして
パチスロアプリの仕事を断ったような覚えがあったw

パチスロってボタン押してから何ミリ秒以内に停止しないと
いけないとか法律で決まってるんだよね。
52デフォルトの名無しさん:2007/08/27(月) 18:47:30
そもそもは、前スレ>>999で投下されたソースに対して、ウェイト部分に
sleep(1)=タイマ解像度よりも低い値を指定しているのでは正しく動作
しないのでは?という疑問から始まった話。
実際の動作は、タイマ解像度の性能が許す限り最良の待ち時間だけ待って
くれるので>>999のソースは少なくとも間違っていないっしょ。

で、途中から可変FPSにして見かけ上の動作速度を同じにするような、一昔前の
リフレッシュレートに関する論争みたいな話がでてきてどんどん脱線している
気がする。タイマの説明については>>37の解説がハードウェア的にはあってると
思われ。
53デフォルトの名無しさん:2007/08/27(月) 19:15:05
> タイマ解像度の性能が許す限り最良の待ち時間だけ待って
sleepでしょ?最良ねぇ...
54デフォルトの名無しさん:2007/08/27(月) 21:42:46
タイマー関連について検証アプリを書いてみた。
FPSの議論とは直接関係ないので興味のある人だけどうぞ。
http://akizakura.dyndns.org/i/TimerTest.html
QRコード http://akizakura.dyndns.org/i/TimerTest.png

D902iの場合
Timer#getMinTimeInterval() = 10
Timer#getResolution() = 10

System#currentTimeMillis()の間隔
min=1 max=1 avg=1.0

sleep(1) * 100 = 218ms.
sleep(2) * 100 = 314ms.
sleep(3) * 100 = 412ms.

iアプリベンチのタイマ解像度はTimerクラスを使わないかぎり
気にしなくていいのかもしれない。
55デフォルトの名無しさん:2007/08/28(火) 10:25:14
iアプリでできるチェスってないかな
月額料金を払わなくていい売り切り、または無料で

将棋と比べるとほとんど見かけない
56デフォルトの名無しさん:2007/08/28(火) 10:59:52
>>55
コード組む話じゃないのならその質問は板違い。
57デフォルトの名無しさん:2007/08/28(火) 14:52:16
>>54

俺も試してみたよ。

N903iの場合

Timer#getMinTimeInterval() = 10
Timer#getResolution() = 10

min = 1
max = 10
avg = 1.01000908

sleep(1) * 100 = 100ms.
sleep(2) * 100 = 200ms.
sleep(3) * 100 = 300ms.

何回かやってみたけど、sleep(3) * 100 の結果に少しばらつきが有った。
316ms.とか。

58デフォルトの名無しさん:2007/08/28(火) 18:46:01
>>57
sleep精度がすごくいいね
>>54のはsleep1回につき1ms程度のオーバーヘッドがある感じなのかな
59デフォルトの名無しさん:2007/08/28(火) 19:58:36
だとすればsleepでタイミングを計る場合は
前スレ>>353みたいにするのがいいのかもな
60デフォルトの名無しさん:2007/08/28(火) 20:13:25
sleepも自前waitも使わずタイマーで回してるのは俺だけで良い
61デフォルトの名無しさん:2007/08/29(水) 13:48:39
やっぱタイマー精度もそうだけど全ての端末での動作を確認したい所だよね。
特にサウンド関連なんかはちゃんと鳴るか自分で確かめたいし…。

俺は知り合いから古い携帯をもらって900シリーズはある程度集めたんだけど
901以降ってなかなかくれる人いないんだよね。。
てか、携帯の白ロム?っていうのかな、中身空のやつって店に売ってる?
62デフォルトの名無しさん:2007/08/29(水) 14:00:53
6361:2007/08/29(水) 17:00:50
>>62
サンクス。早速見てみた。
てか、白ロムってこんなに高いの??
てっきりワゴンセールみたいな感じで1000円くらいで売ってるのかと思った…
6462:2007/08/29(水) 17:10:26
白ロム専用の販売サイトはここ以外にもいくつかあるけど
基本的に値段はあまりかわらない。
アプリ開発する会社とかが普通に購入するから
この値段で売っているんだと思うよ。
65デフォルトの名無しさん:2007/08/29(水) 17:54:20
docomo使ってる友人知人に使わない携帯クレクレしてれば案外集まってこない?

NとかPとかNとかPとかn ('Д'#)イラネーヨ
66デフォルトの名無しさん:2007/08/29(水) 20:03:14
>>65
いらないならくれ!
まあヤフオク利用する手もあるわな。
67デフォルトの名無しさん:2007/08/29(水) 21:28:10
ヤフオクって取引の半数が詐欺か犯罪かヤフー社員の息が掛かってる怪しい取引じゃん・・・
68デフォルトの名無しさん:2007/08/29(水) 23:49:01
>>65
最近元カノと出かける用事があって携帯買い換えたらクレって言ったんだけど
「あんたデータ消しても蘇らせそうだから嫌」って言われたw

でも確かにヤフオクは怖いなぁ。。
とりあえず俺が集めたのは…
P900iv N900i D701i
って、3つしかないやんけw
まぁでも、あとSOとSHさえGETすればメーカーごとのwav確認は出来るからよしとしよう。
つーか、秋葉行けば手に入る?1000円くらいで買えるなら上京してでも…
69デフォルトの名無しさん:2007/08/30(木) 02:19:32
>>47
プログラマの常識的には右、上、手前=OpenGLで一般かもしれんが、
これもOpenGL以外にはそうないし一般的かは疑問。
モデルツールはツールで軸方向はいろいろ違うしさ
70デフォルトの名無しさん:2007/08/30(木) 05:44:18
2D画面のX軸とY軸に合わせて、あと画面の奥に向かってZ軸を伸ばしてるんだろ。
ぶっちゃけ発想が古いと思うが、MascotCapsuleの出自を考えるとそんなもんじゃね。

俺はOpenGLが公開されるまで3Dゲーム作らんつもりなのでどうでもいい。
71デフォルトの名無しさん:2007/08/30(木) 09:54:18
>>70
なるほど。
すげー納得した。
その発想は出来なかった。
72デフォルトの名無しさん:2007/08/30(木) 10:28:40
>>67
2chのカキコの半数は嘘と煽りの怪しいサイトでしょw
要は使いよう。
73デフォルトの名無しさん:2007/08/30(木) 11:25:09
>>69
右手座標系の意味をわかってて言ってる?
74デフォルトの名無しさん:2007/08/30(木) 11:37:17
質問させてください。

void send() {
  clearKeyState();
  for (;;) {
    repaint();
    Thread.sleep(50);

    int key = getKeyState();
    if (key == Display.KEY_SOFT2) {
      drawString("認証中", 50, 110);
      //通信処理
      //通信結果表示
    }
  }
}

このような処理を作成したのですが、思い通りに動作しない
場合があります。

やりたいこと:通信処理中はずっと画面に"認証中"と表示させたい。
問題点:たまに(2割位の確立で)"認証中"が表示されるも一瞬で消えてしまう。

・通信処理は実機,エミュレータ共に2秒くらい。
・"認証中"が一瞬で消えてしまったときでも通信処理自体は正常に動作している。
・repaint()ではダブルバッファリングを使用。

お分かりの方おりましたら、アドバイスよろしくお願いします。
75デフォルトの名無しさん:2007/08/30(木) 12:20:57
そもそも、そのコードだとソフト2キーを押してる時だけ認証中って
表示される気がするんだけど
76デフォルトの名無しさん:2007/08/30(木) 12:50:20
"認証中" って描画するための Graphics はどこから?
77デフォルトの名無しさん:2007/08/30(木) 12:53:42
>>75
通信処理のところでブロックして、forループ回らずにいるんじゃないの?
どちらにしろ通信結果表示のところも怪しい。中でループしてんのかな。
それとも画面を背景色とかでフラッシュしてない?

通信が思ったより早く終わったとかそんなんじゃないのかね。
一瞬だけ表示されるのが嫌なら、最低何秒は表示させるって処理を
追加してはどうだろう。
7874:2007/08/30(木) 12:58:15
>>75さん、ご意見ありがとうございます。
すいません、説明不足でした。
getKeyState()等は以下のメソッドを記述していました。

int keyParam = -1;
public void processEvent(int type, int param) {
  if (type == Display.KEY_PRESSED_EVENT) {
  keyParam = param;
  }
}
//キー状態の取得
int getKeyState() {
  int ret = keyParam;
  keyParam = -1;
  return ret;
}
//キー状態のクリア
void clearKeyState() {
  keyParam = -1;
}

申し訳ありませんが、あらためてアドバイスよろしくお願いします。
79デフォルトの名無しさん:2007/08/30(木) 13:13:10
>>78
通信処理は別スレッドで行ってる?
8074:2007/08/30(木) 13:51:36
74です。
皆様からの貴重な意見ありがとうございます。
あきらかに情報不足のようですので、長々となってしまいますが
具体的にコードを乗せさせていただきます。

Graphics g;
//コンストラクタで G=getGraphics()を使用
void send() {
  clearKeyState();
  for (;;) {
    repaint();
    Thread.sleep(50);
    int key = getKeyState();
    if (key == Display.KEY_SOFT2) {
      drawBox("認証中", 30, 100, 120, 60); //通信中
      //通信処理メソッド
      drawBox("結果", 20, 90, 140, 80); //通信結果
      ctl;
    }
  }
}

//ボックス表示
void drawBox(String str, int x, int y, int col, int row) {
  g.setColor(ピンク);
  g.fillRect(x, y, col, row);
  g.setColor(白);
  g.drawString(str, ボックス中央);
  g.setColor(黒);
}
8174:2007/08/30(木) 13:54:40
続きです。

//セレクトキーを押したら終了
void ctl() {
  for (;;) {
    int key = getKeyState();
    if (key == Display.SELECT) {
      return;
    }
  }
}
//ペイント
public void paint(Graphics g) {
  //起動直後にpaintが呼ばれても大丈夫にする
  if (state == 0) {
    return;
  }
  this.g = g;
  g.lock();
  drawhaikei();
  g.unlock(true);
}
//画面描画
void drawhaikei(){
  //画面初期化
  g.setColor(黒);
  g.fillRect(画面全体);
  //以降描画処理
}
だいぶ長々と書いてしまい申し訳ありませんが、よろしくお願いします。
82デフォルトの名無しさん:2007/08/30(木) 14:19:55
描いてないから描かれてないんだろ。

以上。
83デフォルトの名無しさん:2007/08/30(木) 14:24:28
>  this.g = g;

なんだこれは
84デフォルトの名無しさん:2007/08/30(木) 14:26:19
ctl()から抜け出せてないんじゃないの?
85デフォルトの名無しさん:2007/08/30(木) 14:28:21
>>83
それはdrawhaikei()で使うためじゃないかな
引数で渡せばいいと思うけど
86デフォルトの名無しさん:2007/08/30(木) 14:35:11
とりあえずだいぶ設計に問題があるな
87デフォルトの名無しさん:2007/08/30(木) 14:38:20
drawhaikeiで使うだけならいいけど、たしか"認証中"を描画するためにコンストラクタで初期化してるとか言ってなかったか
88デフォルトの名無しさん:2007/08/30(木) 14:47:37
drawBox("認証中", 30, 100, 120, 60);のあと
再描画しないで通信処理開始してるからじゃないの?

2割くらいの確率で描画されることもあるってのは
システム側が通信開始までの微妙なタイミングで(repaint要求なしでも)たまたま描画しただけで。

一瞬描画されても消えるってのは
paint()が実行されたときdrawhaikei(){}内のg.fillRect(画面全体);のとこで消しちゃってるからだろ。


プログラムの構造が変だよ。
drawBox()はdrawhaikei(){}内から呼び出すようにした方が
描画タイミングに一貫性があっていいと思う。
89デフォルトの名無しさん:2007/08/30(木) 14:55:06
1.通信前
 repaint(); ←ここで通信前の画面が描画される

2.通信中、通信直後
 drawString("認証中", 50, 110); ←repaintが呼ばれてないので画面には反映されない。
 //通信処理
 //通信結果表示
 ctl(); ←ここまで、通信前の画面が表示されている。

3.通信完了後
 repaint(); ←ここで「認証中」が描画される
 Thread.sleep(50);
 ・・・

4.次のフレーム
 repaint(); ←「認証中」が消される

どの辺がダブルバッファなのかという質問は無し?
90デフォルトの名無しさん:2007/08/30(木) 14:56:32
もしかして g.lock() → g.unlock(); これだけでダブルバッファリングになることしらない?
91デフォルトの名無しさん:2007/08/30(木) 14:58:28
g.lock()してるあたりじゃまいか
9274:2007/08/30(木) 15:04:07
74です。
皆様からのありがたいお言葉ありがとうございます。
というか毎回情報不足&ダラダラと長文で分かりづらくて申し訳ありません。
明らかに自分の知識および経験が不足しているので、皆様の意見を参考にして
暫くは自力で頑張ってみます。

本当にありがとうございました。
93デフォルトの名無しさん:2007/08/30(木) 21:04:04
3Dのアプリを作ってみたいんだけど、簡単なサンプルみたいなやつって無いですか?
googleで探してもぜんぜん見つからないです
94デフォルトの名無しさん:2007/08/30(木) 22:59:08
俺の親切なアドバイス:やめとけ
95デフォルトの名無しさん:2007/08/31(金) 13:10:42
>>93
とりあえず、んぱか逝っとくといいよ
ttp://www.saturn.dti.ne.jp/~npaka/mascotcapsule/index.html
96デフォルトの名無しさん:2007/08/31(金) 15:13:57
Doja5.0で、エミュ上でOpenGLのFloatMath使ってみたんだけど、
SecurityViolation: 37 <clinit> 0
と言われてしまいました。 エミュでもトラステッドじゃないとやっぱだめ?
97デフォルトの名無しさん:2007/09/01(土) 10:46:46
トラステッド動作設定を忘れてるか
jamファイルにOpenGL使う設定を書くのを忘れてるか

どっちかじゃない?
98デフォルトの名無しさん:2007/09/01(土) 16:52:46
10 print"ばか"
20 goto 10

画面中を「ばか」でいっぱいにするプログラムを組んだのですが
だめみたいです
どうすれば?
99デフォルトの名無しさん:2007/09/01(土) 17:35:46
多分言語の問題。
100デフォルトの名無しさん:2007/09/01(土) 20:25:03
他言語をずっとやってると、新しい言語を覚えてもどうしても前のに引きずられるよね
101デフォルトの名無しさん:2007/09/01(土) 20:47:34
新しい言語に習熟してないうちはそうだね
102デフォルトの名無しさん:2007/09/01(土) 21:27:26
PHP触ったあとにJavaを触ると、無意識のうちに変数に$をつけてしまう
103デフォルトの名無しさん:2007/09/02(日) 00:20:47
if(a==1)を
よくif(a=1)と書いてしまう
104デフォルトの名無しさん:2007/09/02(日) 08:23:21
if(a==1)ではなくて
if(1==a)と書くようにすると間違って
if(1=a)としても文法エラーになるからおk、と書いてある本を見た希ガス
でも著者も変態チックな記述法なので自分もやんないって書いてたな
105デフォルトの名無しさん:2007/09/02(日) 08:34:42
変数同士の比較のつもりで間違えた場合には効果ないしね
106デフォルトの名無しさん:2007/09/02(日) 09:53:04
>>103-104
Javaはそんな変なことをしなくてもif(a=1)の時点でエラーを返すはず
107デフォルトの名無しさん:2007/09/02(日) 12:12:52
>>106
そうそう、ちゃんとエラーになるから大丈夫。
でもVBみたいに文法エラーがあると先に進ませてくれない言語はキツイ…
「後でまとめて直そうと思っとるんじゃぁ!」って画面にツッコミ入れそうになるもの。

ちなみに俺の場合はVBから入ってC++やってJAVAに入ったんだが、もうVB忘れたw
そしてVBに戻って勉強しなおすとJAVAを忘れる事だろう…
108デフォルトの名無しさん:2007/09/02(日) 12:14:42
sony music soundをご覧になるにはUIDの取得が必要とか?
UIDってなんですか??
109デフォルトの名無しさん:2007/09/02(日) 15:34:41
ここはアプリを作る側のスレ。
使う側はスレ違い。
110デフォルトの名無しさん:2007/09/03(月) 10:14:47
ダウンロードした人にjamが置いてあるフォルダを知られたくないんですけど、
jamのアドレスって携帯から調べることできるんですか?
111デフォルトの名無しさん:2007/09/03(月) 10:58:51
>>110
出来る。
112デフォルトの名無しさん:2007/09/03(月) 11:48:35
>>111
どうやって調べるんですか?
アプリの詳細情報だとファイル名しか出てなくて・・・。
113デフォルトの名無しさん:2007/09/03(月) 16:16:48
>>112
機種依存になるが過去の古い機種によっては
jamファイルのアドレスを表示する機種があった。
(503・504時代)
最近の機種はわからない・・自分の機種ではできんな。
114デフォルトの名無しさん:2007/09/03(月) 21:27:16
Nの903、904は見れたはず
115デフォルトの名無しさん:2007/09/03(月) 21:46:12
AppTrace=onなら見れる
offなら見れない
N503, 504は例外
116112:2007/09/03(月) 22:49:33
情報ありがとうございます。
N902iでは見れないみたいです。(AppTrace=off)
903は白ロム買って確かめてみます。
117デフォルトの名無しさん:2007/09/04(火) 02:17:56
jamの置いてあるフォルダを知られたくない理由が知りたいな
DirectoryIndex対策か?
118デフォルトの名無しさん:2007/09/04(火) 12:19:47
>>97
遅レスすまん。
一応、iαppliTool for Doja-5.0 の『設定→トラステッド動作設定』 で、『OpenGl/ES機能の使用許可』をYesにしているけどだめです。
ADF設定のTrustedAPIDを入力しないとエミュでもだめなんですかね?勝手なんで、そんなものもらってないし。

119デフォルトの名無しさん:2007/09/04(火) 12:37:12
エミュのTrustedAPIDは桁数だけ合わせて(11桁?)
適当なの突っ込んどけばOKだった気がする。
120112:2007/09/04(火) 12:44:59
>>117
PCから見られるのが嫌なので。
レンタルサーバでhtaccess使えないんです。
121デフォルトの名無しさん:2007/09/04(火) 14:42:38
>>120
CGIが使えるようならPerlとかPHPでリモートホスト見て
jamを吐き出すスクリプト書けばいいんじゃない?
有料のアプリなんかは課金チェックや機種判別も含めて
そういう手法取ってるから
122デフォルトの名無しさん:2007/09/04(火) 14:55:35
>>119
マジで!?
ちょっと試して見るわ
123デフォルトの名無しさん:2007/09/04(火) 15:04:13
jamのアドレスがバレると、リソースの場所も推測されてしまうことがあるから、見せない方がいい。
某ネットワークRPGアプリがAppTrace=onで出したから、シナリオが丸見えになった。
124デフォルトの名無しさん:2007/09/05(水) 11:28:05
>>119
あ、うごいたっぽい。
ありがとう。
125デフォルトの名無しさん:2007/09/09(日) 04:16:08
RSS読む用のXMLのパーサを今作ってるDoJaアプリにインポートしたいんだけど.
軽くてお勧めなのある?
126デフォルトの名無しさん:2007/09/09(日) 22:31:26
教えてください。
アプリで画像表示中に音楽(3GP)ファイルを再生したいんですが、
AudioTrackPresenterで間違いないですよね?
エミュレータだと代替音楽のような曲が鳴るんですが、
実機だと何も鳴らない…
もちろんマナーモードではないです。
127デフォルトの名無しさん:2007/09/10(月) 01:01:54
AudioTrackPresenterはオプションAPI
SH、D、Fのみ対応
非対応機種はUnsupportedOperationException
128デフォルトの名無しさん:2007/09/10(月) 02:37:48
129デフォルトの名無しさん:2007/09/10(月) 14:06:42
128を見ていて思ったけど、
BSDライセンスの場合は、サイト内のダウンロードページにライセンス条項を載せるだけでいい?
130デフォルトの名無しさん:2007/09/10(月) 22:43:57
「いい」ってのがどういう意味かによる
もっと具体的に
131デフォルトの名無しさん:2007/09/10(月) 23:24:01
>>127

ありがとうございます!
Nで試してました…
VisualPresenterを使うとすると、
ネイティブのプレイヤーが起動するから、
画像のバックで音楽再生はできないんでしょうか?
132デフォルトの名無しさん:2007/09/11(火) 01:35:42
質問させて下さい!
当方ゲームを作っているのですが、サウンドのループでつまずいています。
canvasのクラスにMediaListenerをimplementsしているんですが
曲の再生が終わっても(その他再生を開始たりしても)mediaActionに処理が
飛んでこないんです…。
ソースの概要はこんな感じです。

class game1 extends Canvas implements MediaListener{
各種処理
game1(){
各種処理
オーディオプレゼンター.setMediaListener(this);
}
public void mediaAction(MediaPresenter source,int type,int param){
System.out.println("処理が来た!");
}
}

よろしくお願い致します。
133デフォルトの名無しさん:2007/09/11(火) 01:55:48
>>131
3gp形式などは不可。
機種別のMFi形式を使うしかない。
>>132
参考例
ttp://iappli.kajas.com/sec0205/
134デフォルトの名無しさん:2007/09/11(火) 06:14:37
>>132
audio.setAttribute( AudioPresenter.SYNC_MODE, AudioPresenter.ATTR_SYNC_ON );
audio.setMediaListener( this );

audioは取得したAudioPresenter。
SYNC_MODEを設定しないと同期イベントは発生しないかと。

135デフォルトの名無しさん:2007/09/11(火) 09:59:17
>>134
SYNC_MODEはあくまで同期であって、それを設定しないからといって
mediaActionに処理が来ないわけではない。
>>132はmediaActionに処理が来ないと言っている。
136デフォルトの名無しさん:2007/09/11(火) 10:07:40
大方processEventでループしてたりするんじゃない?
137デフォルトの名無しさん:2007/09/11(火) 12:52:40
サウンドデータの問題かもな
曲が終わってから5分くらいしないとそこに行かないデータが前にあった
138125:2007/09/11(火) 14:19:40
>128

返事遅くて済まん
そのページは知ってたんだが,
2002年の報告だから今はどうなってるのかなぁと思って聞いてみた,
ともかくサンクス
139デフォルトの名無しさん:2007/09/11(火) 22:57:50
>>126さんに便乗して質問なんですが、
ゲームの中で効果音(1秒くらい)として3gpを再生したいのですがなぜか
ap.play();をしてからどうしても1〜2秒のラグが出てしまいます。
携帯はSH903iなんですが、携帯に問題があるのか、ファイルなのか
仕様なのか何なんでしょうか?

にしてもiアプリの音楽再生に関する詳しいページって少ないですね・・・。
140デフォルトの名無しさん:2007/09/12(水) 01:29:15
play(1ミリ秒単位)を入れるのねんのねん。
そうすると()内に入れた秒数から音楽がスタートするから
タイムラグを解消できるのねんのねん。
機種依存命令だけど903シリーズなら大丈夫じゃまいか。
141デフォルトの名無しさん:2007/09/12(水) 01:40:39
>>132
メディアアクションはpublic voidじゃ機能しないよん〜〜〜
だってpublic voidは呼び出して機能させるしかないからねんのねん
public classを作ってメディアアクションさせなきゃだめよ。
つまり別のclassを作るってことよ。わかったかしらあん〜〜〜はあと
142デフォルトの名無しさん:2007/09/12(水) 03:15:57
>>141
言ってる意味がよくわからんが、俺も>>136が怪しいと思う。
あるいは別のAudioPresenterをnewしていて、そっちでplay()してるとか?
143デフォルトの名無しさん:2007/09/12(水) 06:18:58
流れを切ってすみませんが、ご助言願います
以下のように、イメージを右に移動させる処理を組んでいますが、
イメージの移動した跡に残像が残り続けてしまいます。

while(true){
g.lock();
g.drawImage(image, x, y);
g.unlock(true);
x++;
//スリープ処理
}

ループ中に、g.clearRect(0, 0, getWidth(), getHeight());を追加すると解決したのですが、
参考とさせて頂いたこちら(ttp://www.doja-developer.net/_up/features/UE051011/index.php?id=71)の
サンプルソースでは、このような処理は行われていないようです。
サンプルソースでは、特に明示的に画面のリフレッシュを行っていないようなのですが、
同じように組んでも残像が発生してしまう理由を教えてもらえないでしょうか?
よろしくお願いします。
144デフォルトの名無しさん:2007/09/12(水) 06:24:08
>>141
MediaListener実装クラスがpublicじゃないと駄目ってことか?
145デフォルトの名無しさん:2007/09/12(水) 06:28:37
>>143
描画前に画面をクリアないと前の画面にそのまま上書きするからそうなる
サンプルでは68行目のfillrectで画面をクリアしてる

fillrectはsetColorで指定した色で塗りつぶす
clearRectはデフォルトの背景色で塗りつぶす
146デフォルトの名無しさん:2007/09/12(水) 07:25:27
>>145
即レスサンクス!
clearRectの先入観があってfillRectが目に入らなかった様です
要するに、実際のゲームアプリ等で応用する場合には
先に背景を再描画してしまって一度画面をクリアすれば良いわけですね
147デフォルトの名無しさん:2007/09/12(水) 07:49:09
背景が部分描画なら、はみ出した部分クリアしないと残るけど
全画面背景描くならクリアする必要ない

っていうか背景描いた後に画面クリアしたら背景消えちゃうぞ
148デフォルトの名無しさん:2007/09/12(水) 09:26:27
>147 多分意味は通じてると思うぞ
>146の頭の中では 背景を再描画する=画面をクリアする って意味なんだろう
まぁ>146の言い方が悪いんだけど初心者だしな
149139:2007/09/12(水) 19:13:58
>>140
今ちょっと試したんですが、やっぱり開始は遅く音が途中から再生されただけでした。
そもそもこの音はwavで作ってSoundEngineで無音部分を完全に切り取り、
3GP Converterで変換してるので一応ファイルの中にラグは無いはずなんです。
ただ3GP Converterで最初やったときなぜかデータが途中までになってしまい、
しょうがなくwavのケツにちょっとだけ無音を足して、途中で切れても音は聞こえるようにした。
という経緯があるので、ここが怪しいかな・・・?とは思ってるんです。
誰か同じようなことあった人居ますか?
150デフォルトの名無しさん:2007/09/13(木) 04:35:44
便乗で質問させていただきます.
>>128で紹介されているライブラリの
kxml2-min-2.3.0.jar
をDLし既存のDoJaアプリに追加してみたんですが,
追加下だけのときは問題ないのに,
実際参照すると,start()を内包するクラスが見つからないと
実行時エラーが起こり,
携帯のエミュレータが一瞬だけ出現してきえてしまいます.

外部Jarの追加はプロジェクト右クリックの「ビルド・パスの構成」から
外部Jar追加ボタンで参照したのですが.
間違ってたり抜けがありますでしょうか.

どなたかお願いします.
151デフォルトの名無しさん:2007/09/13(木) 10:08:39
答えるわよ―!
152デフォルトの名無しさん:2007/09/13(木) 15:50:53
>>150
DoJaが外部Jarに対応してない気がする
153デフォルトの名無しさん:2007/09/13(木) 15:53:41
ドージョ ドージョ
154デフォルトの名無しさん:2007/09/13(木) 17:43:37
>>149
それは携帯での動作?
エミュだとPCによると思うけど処理速度ムチャクチ遅いときあるわよ
音楽に限らず画像の処理速度も携帯とPCじゃ大違いだわ
155149:2007/09/13(木) 21:08:08
>>154
実機です。エミュだと変なピアノ曲が出るんですよね・・・
156デフォルトの名無しさん:2007/09/14(金) 01:21:15
Eclipse 3.3でも使えてる?
157デフォルトの名無しさん:2007/09/14(金) 17:31:51
>>155
ドコモとしては、効果音はmldを使え、勝手アプリ作者はシラネだろう。
158155:2007/09/14(金) 19:21:57
>>157マジすか・・・
ADPCMだと3gpより容量食うくせに音質死ぬほど悪いんすよね。
Doja5携帯ってADPCM何Hzまで使えるんですか?
159デフォルトの名無しさん:2007/09/14(金) 22:06:10
あくまで携帯なんだから低機能を生かしたアプリ作らんと
160デフォルトの名無しさん:2007/09/15(土) 03:24:00
>>158
ADPCMはたしか音源チップに依存していて、DoJa5.0でここまでという決まりはないはず。
でも勝手アプリなら、wav2mldやYamahaのツールの制限を考えて、モノラル、16bit、16kHzくらいじゃね。
161155:2007/09/15(土) 13:30:59
>>159
とあるスーファミソフトを移植中でして・・・忠実に再現したいんですよ・・・。

>>160
回答ありがとうございます。
そうですか・・・いっそwav2mldを自前で とも思ったんですが、ツールでやってみます。
お世話になりましたm(_ _)m
162デフォルトの名無しさん:2007/09/15(土) 19:13:50
忠実に移植して著作権侵害にならないんですか?
163デフォルトの名無しさん:2007/09/15(土) 20:18:54
AFO?
164デフォルトの名無しさん:2007/09/15(土) 22:22:00
坂田師匠のことかー!
165その1:2007/09/18(火) 12:11:17
エミュ上でOpenGL ESを試しているんですが、なにやってもプリミティブが描画されません。
かといってエラーが出たりはしていません。クリアは指定された色でクリアするんですが。
なんかやんなきゃいけないことあります? 

初期化メソッド内
float[] meshArray = new float[ 5*3 ];
meshArray[0*3+0] = 0; meshArray[0*3+1] = 40.0f; meshArray[0*3+2] = 0;
meshArray[1*3+0] = -40.0f; meshArray[1*3+1] = -40.0f; meshArray[1*3+2] = 0;
meshArray[2*3+0] = 40.0f; meshArray[2*3+1] = -40.0f; meshArray[2*3+2] = 0;
.. VertexBuffer = DirectBufferFactory.getFactory().allocateFloatBuffer( 5*3 );
VertexBuffer.put( 0, meshArray, 0, 5*3 );
...
166その2:2007/09/18(火) 12:12:02
public void paint( Graphics g ) {
GraphicsOGL gl = (GraphicsOGL)g;
gl.beginDrawing();
gl.glViewport( 0, 0, 240, 240 );
gl.glDisable( GraphicsOGL.GL_CULL_FACE );
gl.glDisable( GraphicsOGL.GL_DEPTH_TEST );
gl.glDisable( GraphicsOGL.GL_LIGHTING );
... gl.glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
gl.glClear( GraphicsOGL.GL_COLOR_BUFFER_BIT );
gl.glEnableClientState( GraphicsOGL.GL_VERTEX_ARRAY );
gl.glDisableClientState( GraphicsOGL.GL_NORMAL_ARRAY );
gl.glEnableClientState( GraphicsOGL.GL_COLOR_ARRAY );
gl.glDisableClientState( GraphicsOGL.GL_TEXTURE_COORD_ARRAY );
gl.glVertexPointer( 3, GraphicsOGL.GL_FLOAT, 3*4, VertexBuffer );
gl.glColorPointer( 4, GraphicsOGL.GL_FLOAT, 0, ColorBuffer );
gl.glMatrixMode( GraphicsOGL.GL_PROJECTION );
gl.glLoadIdentity();
gl.glMatrixMode( GraphicsOGL.GL_MODELVIEW );
gl.glLoadIdentity();
gl.glTranslatef( 100, 100, 10 );
gl.glDrawArrays( GraphicsOGL.GL_TRIANGLES, 0, 1 );
gl.glDrawElements( GraphicsOGL.GL_LINES, 2, GraphicsOGL.GL_UNSIGNED_SHORT, IndexBuffer );
gl.endDrawing();

}
167165:2007/09/18(火) 20:12:44
自己解決しました。
168デフォルトの名無しさん:2007/09/18(火) 20:36:40
プリミティブってなんですかぁ?
169デフォルトの名無しさん:2007/09/18(火) 20:39:08
点と線とポリゴンのことです
170デフォルトの名無しさん:2007/09/19(水) 01:28:28
>>167
よく読んでないけど何がどう解決したのか知りたい。
171デフォルトの名無しさん:2007/09/19(水) 01:44:56
どう考えてもこれだろw
>gl.glMatrixMode( GraphicsOGL.GL_PROJECTION );
>gl.glLoadIdentity();
172165:2007/09/19(水) 12:37:32
正解:
・指摘されている通り、射影変換マトリクスが単位行列なら、Viewport変換のためにメッシュデータは[-1,...,1]に正規化されてなければなりません。
・DrawArray() と、DrawElements() の int count パラメータが、プリミティブ数でなく頂点数でした。
ついでにもう一つハマッタのが、glBindTexture, glTexImage2D やっただけではテクスチャーが貼られず、glTexEnvfやTexParameterfでテクスチャーステートを設定しないとだめ。
173デフォルトの名無しさん:2007/09/22(土) 16:53:30
Graphics2 に対応している機種って、もしかして相当少ないんでしょうか。
機種依存ないつもりが、結構起動できない機種があるようなんです。
誰かご存じないですか。

ちなみにこんなアプリです。 ttp://wave.no-blog.jp/iapp.html
174デフォルトの名無しさん:2007/09/22(土) 18:06:06
機種依存のAPIの情報は、公式サイトにあります
175デフォルトの名無しさん:2007/09/22(土) 18:49:49
ありがとうございます。
灯台もと暗しですね。問題はGraphics2ではないみたいですね。
しかし、他に機種依存な部分は見あたらないんですが・・・。
もう少しソースを見直してみます。
176デフォルトの名無しさん:2007/09/22(土) 19:20:08
内容からいっていろいろ計算使ってそうだけど、CLDC1.1の機能使っていながら
1.0機種を対象OKにしてるとかそんなことないの?
つまりfloatとかdoubleとかMath使ってないか、ということだけど
177デフォルトの名無しさん:2007/09/22(土) 20:33:57
いえ、floatもdoubleもMathも使わず、intとlongと自前関数のみで作ってます。
178デフォルトの名無しさん:2007/09/22(土) 20:37:36
なぜだか、P903iはOKで、SO903iやF904iなどでエラーが出るようなんです。
179デフォルトの名無しさん:2007/09/22(土) 21:46:35
東大元暮し
180デフォルトの名無しさん:2007/09/22(土) 21:54:00
// エラー デバッグ ブラウザ ツール
// http://www.mozilla-japan.org/
// シンプル プログミング ツール
// http://proforceone.web.fc2.com/
// 素因数分解サンプルプログラム
// Calculation processing にコピーして[RUN]

MAX=1000;br();
for(x=2;MAX>=x;x++){write(" "+x+" ⇒");
 for(i=2;x>=i;i++){if(0==x%i){k=0;
  for(j=2;(i>=j)&&(1>=k);j++){
   if(0==i%j){k++;}
  } if(1==k){write(" "+i);}
 }} br(); 
} br();
181デフォルトの名無しさん:2007/09/22(土) 23:00:35
182デフォルトの名無しさん:2007/09/23(日) 02:31:41
>>178
勘なんだけど、Javaヒープとネイティブデータヒープにメモリーが分かれてる機種って
リソース不足になりやすくてエラーが出るんじゃないかな?
なぜメモリーに余裕があるはずなのにメモリー不足になるのかは意味不明

考えられる対策は a[50000] まで使う配列なら余裕もって int a[]=new int[60000] と宣言してみるとか
ガーベッジコレクションを使う手とかあるけどこちらは重くなるから実用的じゃない
でもこれらで解決するかは不明

そもそも端末の仕様のバグなのにいつまでも修正しないメーカーが悪い

183デフォルトの名無しさん:2007/09/23(日) 10:19:09
>>174
公式には900の一部の機種までしか情報が開示されてないんだよね
184デフォルトの名無しさん:2007/09/23(日) 11:12:38
>>178
起動エラーとアプリ(aマーク)エラーは別なんじゃない?
プロファイル定義ミスで、ダウンロード対象から外れて怒られるとか
そういう類のエラーを想像してた

まあ173はもうちょっと自分で具体的に何のエラーかぐらいは突き止めんと無理だわな
185デフォルトの名無しさん:2007/09/23(日) 11:13:57
すまん
× >>178
>>182
186デフォルトの名無しさん:2007/09/23(日) 13:06:15
そっか
起動できないってあるからな
だとするとスクラッチパッドにlengthつけてないとかか?
いずれにしてもヒープフラグメントとかいうメモリの問題だけど
187デフォルトの名無しさん:2007/09/23(日) 14:22:35
起動直後に「エラーが発生しました」と表示されるらしいのですが、
この場合、@対応していない命令が含まれていた。
もしくはAヒープメモリ関係。
が原因と言っていいんでしょうか。
188デフォルトの名無しさん:2007/09/23(日) 14:37:49
っ 例外をcatchして表示させてみる
189デフォルトの名無しさん:2007/09/23(日) 15:18:39
catch出来ない部分で落ちてる予感
190デフォルトの名無しさん:2007/09/23(日) 15:33:19
当方の機種(P903i)ではエラーが出ないので、
catchもできないんです。
191デフォルトの名無しさん:2007/09/23(日) 15:40:03
起動できない機種だけでも、もう少し分かるといいのですが・・・。
(SO903i,F904iでは起動時にエラー)
このアプリです。→ ttp://wave.no-blog.jp/FallS.html
192デフォルトの名無しさん:2007/09/23(日) 18:02:21
>>190
そりゃ当然catch入りバージョンをエラーの出る機種で動かさなきゃ意味ないでしょ
193デフォルトの名無しさん:2007/09/23(日) 19:00:34
トレースの結果はどう出てるんだ?
それ次第って気がするが
194デフォルトの名無しさん:2007/09/23(日) 20:44:09
俺の勘がソースを良く読んだら解決しちゃう系
なんじゃねーかと告げてるw
195デフォルトの名無しさん:2007/09/23(日) 20:51:41
コンストラクタかstart()の中で無茶なことしてんじゃねーかなに1票
196デフォルトの名無しさん:2007/09/23(日) 23:00:29
ソースの読みがまだ足らないようです。(反省)
ソースの最初の部分はこんな作りですが、
どこか まずい所があるのでしょうか。
import com.nttdocomo.ui.*;
import com.nttdocomo.io.*;
import java.util.Random;
import javax.microedition.io.*;
import java.io.*;

public final class FallS extends MApplication{
public void start(){
Can ca=new Can();
ca.setSoftLabel(ca.SOFT_KEY_2,"help");
Display.setCurrent(ca);
Thread thread=new Thread(ca);
thread.start();
}
final class Can extends Canvas implements Runnable{
private int 〜;
private int[]x=new int[20];
〜//同様な配列宣言
private Random rnd;

public Can(){
rnd=new Random();
〜//変数初期値代入
load();
if(mem!=1){mem=1;psave=1;bg=1;balln=10;zn=0;}
}
〜〜〜
}}
197デフォルトの名無しさん:2007/09/24(月) 02:17:01
>〜//同様な配列宣言

ここで大きい配列用意してるとか
トータルで大きい容量になっちゃってるとか
198デフォルトの名無しさん:2007/09/24(月) 03:00:45
エラー状況をもっと詳しく調べるんだ!
「起動時にエラー」じゃ曖昧すぎる。
D902iだとFallSは普通に動くが、WaterPが「毎回、起動して5秒後」に落ちる。
199デフォルトの名無しさん:2007/09/24(月) 18:32:51
質問
環境Eclipse3.2.0,Doja5.0
Inputは通常通りに開けるけれども,
try {
  OutputStream out = Connector.openOutputStream("scratchpad:///0");
  DataOutputStream dos = new DataOutputStream(out);
  out.close();
}catch (IOException e) {
}
この処理で
java.lang.NullPointerException
  at ClassName.closeIApplication(+6)
ClassName
ってなるんだが・・
SPsizeの設定とSPファイルの書き込みも許可墨
200デフォルトの名無しさん:2007/09/24(月) 18:54:32
>>199
196もだけど、ちゃんと原因の切り分けをしないとだめ。
ClassName.closeIApplicationのメソッドの中身を確認する。

あと、例のソースでは、outはcloseされるけど、dosがcloseされていないから、リークするかもしれない。
201デフォルトの名無しさん:2007/09/24(月) 19:13:24
アドバイスd,これからはdos閉じてからout閉じるようにします

自分なりに切り分けたつもりで検証した結果
OutputStream out = Connector.openOutputStream("scratchpad:///0");
の時点でぬるぽらしく,そのままcatchされている模様

ClassName.closeIApplicationの中身はすっからかんで
public void closeIApplication(){
  saveIApplicationData();
  IApplication.terminate();
}
という具合です
202199,201:2007/09/24(月) 19:16:05
あ,saveIApplicationDataというのが199で書いたソースのあるメソッドです
203デフォルトの名無しさん:2007/09/24(月) 20:03:26
posやlengthを指定してみるとか。
スクラッチパッドのcloseし忘れがないか確認するとか。
204デフォルトの名無しさん:2007/09/24(月) 20:56:44
closesし忘れてもビルド時にエラー出ないんですか?
205デフォルトの名無しさん:2007/09/24(月) 22:09:52
ロジックの追跡と妥当性を検証してくれるビルドツールか
プログラマは種まいて見てるだけー
206デフォルトの名無しさん:2007/09/24(月) 22:49:18
>>198 「毎回、起動して5秒後」に落ちる。
メモリ周りしかないですかね。
自機でエラーが再現できない以上、とりあえず
白ロム買ってみようかと思います。
207ラgたくまチャン:2007/09/24(月) 23:01:07
簡単簡単
208デフォルトの名無しさん:2007/09/24(月) 23:47:03
つーかそこまでする必要あるか?商売でやってるわけじゃなし
はっきりいって規格を統一しないメーカーが悪いんだし
売り上げに響くからか ろくに機種依存情報も出さないし(901以降は全然出してない)
ハードに問題あるならどうしようもないよ



209198:2007/09/25(火) 03:01:59
>>206
900シリーズとかならともかく、最近の機種でメモリ不足って考えにくくないかな。
例外をcatchするバージョンを実機で試すくらいは手伝うよ。
そもそもD902iでWaterPが落ちるのと、FallSの問題は無関係かもしれないが。
210デフォルトの名無しさん:2007/09/25(火) 04:55:05
>196
Canのコンストラクタにあるload()って何やってるの?
このタイミングでスクラッチパッドにアクセスしちゃダメだよ。
コンストラクタでは通信やリソースへのアクセスとかの複雑な処理をしちゃダメ。
機種依存で上手くいくこともあるけど基本的にはやらない。

コンストラクタはエラー返さないし例外が発生してもcatchしようがないから
これが原因ならシステム側でエラー処理されるよ。
211デフォルトの名無しさん:2007/09/25(火) 10:47:51
>>210
いやコンストラクタの中でだってcatchは出来るだろ
まぁ処理にしくじったら即terminate()呼ぶなり変数で場合わけして内部を状況表示に切り替えるなり色々やりようはある

俺としてはスレッド使ってるからちゃんとsynchronizedするのを忘れてて各種変数が壊れてるってのを予測してるけど
特に特定の割合や特定個所で出るけど例外補足に失敗するってパターンはそれが多いよ
自分ではスレッドを使って無くてもCanvas.processEvent()とかをsynchronizedで括り忘れると
実機ではもうどんなバグが出てもおかしくないし
まぁprocessEvent()系を全く使ってなかったら判らんけど
212199:2007/09/25(火) 15:00:16
>>203
dクス!
read側で201同様DataInputStreamをcloseしてなかったのが原因でした

言い訳するとDoja3.xの頃に作った頃はこれで動いてたんです・・
213デフォルトの名無しさん:2007/09/25(火) 23:32:00
>>209
ありがとうございます。デバッグver.はほんの少し時間を取れたら作ります。
ところで、落ちたのは何か表示がされた後なのでしょうか?

>>210
load()はsaveした変数値を読み込んでいるだけです。(それほどボリュームはないかと。)

>>211
うむむ、key処理でprocessEvent()は使ってますが、synchronizedは全く使ってないですね。
214デフォルトの名無しさん:2007/09/26(水) 00:40:39
>213 load()について。
>saveした変数値を読み込んでいるだけです。

てことはスクラッチパッドにアクセスしてるんだよね?
>210はそれだとダメじゃないかと指摘している。
処理のステップ数や読み込む量は関係ない。

今回の問題の原因ではないかもしれないが、いかなるコンストラクタでも
デバイス機能の操作(スクラッチパッド、通信、音声、カメラ、描画更新など)は
しないのが常識だと自分では思ってたんだけど…どうなのかな。
215デフォルトの名無しさん:2007/09/26(水) 02:22:42
>>213
processEvent()をsynchronizedで括っておくのは基本
processEvent()がイベントごとに別個のスレッドで呼ばれるか同一のスレッドでキュー処理して呼ばれるかは実は機種依存
jguidefordoja5_x_070423.pdfの86ページ
イベントごとに別個のスレッドで呼ばれる機種の場合processEvent()処理中に再突入されることを考慮に入れなければならないし
またCanvasをThreadで処理してる場合processEvent()のスレッドと並走することになるのでprocessEvent()から呼んでるメンバは全て
synchronizedである必要がある(まぁこちらは当然処理してるとは思うが)

>>214
コンストラクタでやるのが悪いんじゃなく初期起動メソッド(start()やstartApp())の記憶違いじゃね?
コンストラクタそのものは何をやろうと関係ないよ
それも短くしなきゃいけないって決まってるのはMIDPの仕様(ディスパッチャ停止を避けるため)だったと思った
DoJaには関係なかったはず
216デフォルトの名無しさん:2007/09/26(水) 04:28:56
> processEvent()をsynchronizedで括っておくのは基本
Javaの基本って事?それとも携帯アプリでの基本って事?
217デフォルトの名無しさん:2007/09/26(水) 10:21:20
>processEvent()から呼んでるメンバは全てsynchronizedである必要がある(まぁこちらは当然処理してるとは思うが)
ちょっと気になったんだけど、processEventがsynchronizedになっている場合
processEventから呼んでいるメンバは自動的にsynchronizedがかかっているのと
同じ挙動にならないの?
218デフォルトの名無しさん:2007/09/26(水) 15:44:51
>>217
ならない。
なぜなら、synchronized修飾子でロックされるのは指定したオブジェクト
(指定しない場合はthis)であって、メソッド本体ではないから
219デフォルトの名無しさん:2007/09/26(水) 16:27:13
iαppli Development Kit for DoJa-5.0(FOMA)をインストールしたのですが、
いざ起動しようとすると、何も反応がありません。
エラーが出るわけでもなく、一瞬砂時計が出て、それっきりです。
誰か解決法のわかる方はいますか?
ちなみに、Doja3.5、Doja4.0は起動します。

java -version
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)

WinXP HomeEdition

220デフォルトの名無しさん:2007/09/26(水) 17:06:03
公式エミュレータ(Doja5.0)でストレージデバイスにデータを保存するアプリをエミュレートした場合
ストレージに保存したデータがどこに在るか知らない?

>>219
Doja3.5,4.0はアンインストール済み?
221デフォルトの名無しさん:2007/09/26(水) 17:31:47
>>220
アンインストール済みです
222デフォルトの名無しさん:2007/09/26(水) 18:04:39
>>219
一端アンインストールして、別ユーザーでログインしてそっちでインストールしてもだめ?
223デフォルトの名無しさん:2007/09/26(水) 18:07:30
>>220
公式資料によると、C:/iDKDoja5.0/lib/storagedevice/xxx
224198:2007/09/26(水) 18:18:40
>>213
波が動き始めて5秒後にαエラー。
その間、helpの表示、設定の変更や保存は正常に機能してるっぽい。
225デフォルトの名無しさん:2007/09/26(水) 18:58:25
あった!ありがとう>>223
226デフォルトの名無しさん:2007/09/26(水) 18:59:40
>>222
別ユーザでやってみましたが、やはりダメですね。
227デフォルトの名無しさん:2007/09/26(水) 19:09:53
javacのバージョンは?
DoJa5.0のマイナーバージョンは?Eclipseの場合だけど、特定のバージョンだけ起動できなかったことがある。
228デフォルトの名無しさん:2007/09/26(水) 19:16:54
>>227
java -version
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)

これではないのですか?

あとDoJa5.0のマイナーバージョンは3.00です。
Eclipseは使ってません。
229213:2007/09/26(水) 19:23:44
>>198
processEventにsynchronizedを付けて、
トレースモードにしたアプリをアップしました。↓
ttp://wave.no-blog.jp/test/test.html
エラー情報頂けるとありがたいです。
(FallSでエラー出る方もいらっしゃれば・・・)
230デフォルトの名無しさん:2007/09/26(水) 20:59:02
>>229
D902iで、WaterP v4、WaterP2ともにαエラー発生。
ALERT: java.lang.OutOfMemoryError

FallS v1は問題なく動きますな。
231229:2007/09/26(水) 23:31:03
>>230
予想通りのエラーですね。
ということで、対策デバッグ版アップしました。(同ページにて)
・System.gc()を初期化後に実行する:WaterP3
・定期的に実行する:WaterP4
232デフォルトの名無しさん:2007/09/27(木) 01:20:56
processEventにsynchronized付けるとキー入力が遅くなると思うんだが。
processEventにはsynchronizedをつける必要ない設計するのがセオリーなんじゃないの?
と公式アプリつくってる者の意見でした。
233デフォルトの名無しさん:2007/09/27(木) 02:32:44
paintをsynchronizedする人なら見たことあるけど、processEventはないな。
234デフォルトの名無しさん: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デフォルトの名無しさん:2007/09/27(木) 18:16:55
うん、そう。
237デフォルトの名無しさん:2007/09/27(木) 18:29:16
なんとかやり方ないのかねえ
まあネット上に置いてあったからってだれかれ構わず見つけて落とされることはないと思うけど
できれば配付した人を特定しておきたいからminiSDなりmicroSDなりで配付したいんだけどなあ
238デフォルトの名無しさん:2007/09/27(木) 18:31:25
DL時に特定できるように会員認証でもつければ良いんでないの?
それくらいのCGIは書けるでしょ
239デフォルトの名無しさん:2007/09/27(木) 19:08:26
>>231
WaterP3は5秒でOutOfMemoryだが、WaterP4は落ちなくなってた。
ただ、2〜5秒ほど動いては1秒以上停止(おそらくGC)するので、
アニメーションがウリのアプリとしては致命的だろうな。
240デフォルトの名無しさん:2007/09/27(木) 19:24:33
> それくらいのCGIは書けるでしょ
241デフォルトの名無しさん:2007/09/27(木) 19:50:56
>>219
doja.exeをダブルクリック等で直接起動させたときに動かないのか?
それとも、バッチファイルやコマンドプロンプトから -i や -j などの
オプションをつけて起動したときに動かないのか?
242デフォルトの名無しさん:2007/09/27(木) 20:59:42
>>237
先に配布予定者の端末IDを聞いておいて、それに適合する場合のにDL可能ってどうよ?
243デフォルトの名無しさん:2007/09/27(木) 21:48:11
じゃあ白ロムにアプリを移すのも無理なんですか?
244デフォルトの名無しさん:2007/09/27(木) 22:33:41
配布した人を特定したいのにminiSDで配布出来たら、その時点で意味ないだろ。
やるならシリアルナンバーでも配るしかないな。
245デフォルトの名無しさん:2007/09/27(木) 22:37:13
>>237
SDにキーデータファイルを入れて、
それがなければ初回起動できないようにするとか。
246デフォルトの名無しさん:2007/09/27(木) 23:08:37
>245
何も知らなければ全部コピーすると思わないのかい。
247デフォルトの名無しさん:2007/09/27(木) 23:45:20
>>245
そこまで自由度のあるSDへのアクセスそのものをiアプリからはできないわけだが

まぁ実用的に落とした人を断定しておきたかったら落とす場所を
携帯でアクセスしか出来ないようにした上にBASIC認証にでもして
落とせる人、一人一人にIDとパスを割り振った上でアクセスログを取って
明らかに不特定多数からそのIDとパスが使われてたらそのIDとパスを停止する形にするとかかな

むしろSDに入れて配布なんて方法の方が中身の全ファイルをzipで固めてどこかにアップされれば
完璧アウトな上に流通を止める手段がないよ
248デフォルトの名無しさん:2007/09/27(木) 23:52:10
>>242 に一票
249デフォルトの名無しさん:2007/09/28(金) 00:49:01
質問させてください。

iアプリでソケット通信をする事は可能ですか?
調べていると出来ないように感じたのですが、その場合自前で用意したサーバにアクセスするにはHTTPで接続しにいくしかないですかね?
250デフォルトの名無しさん:2007/09/28(金) 01:06:57
>>219
関係あるかどうか判らないけど。
うちは1.4.2でDoJa入れたら駄目で、
今は1.5.0_12でチャンと動いてる。
251デフォルトの名無しさん:2007/09/28(金) 02:36:14
>>249
はい
252デフォルトの名無しさん:2007/09/28(金) 03:15:00
ttp://www.mitsubishielectric.co.jp/giho/0502/0502110.pdf
DってJITしてあの速度? 冗談はよしてくれ。
253デフォルトの名無しさん:2007/09/28(金) 03:38:31
>>251
やっぱりそうですか。

ソケットを使って書いていたので、何かいい方法がないか、それともCGIやJSP等の方がいいのか検討してみます。
ソケット通信でも自分でHTTPヘッダを処理してやれば大丈夫なのかなぁ・・・。
色々調べてみます、ありがとうございました。
254デフォルトの名無しさん:2007/09/28(金) 04:12:32
>>252
これは嘘じゃね?
255デフォルトの名無しさん:2007/09/28(金) 07:52:02
>>249
iモードはソケット通信できないよ

HTTP通信はOK
HttpConnectorとか読んでみ
256デフォルトの名無しさん:2007/09/28(金) 11:51:23
>>252
ほかの機種もJITなんじゃね?
257デフォルトの名無しさん:2007/09/28(金) 13:51:48
まさか
258デフォルトの名無しさん:2007/09/28(金) 14:06:27
>>252
>D505 i,D505 iS,D506 i,D900 iに実装している。
全部糞端末じゃねぇかw
259231:2007/09/28(金) 20:54:05
>>239
ありがとうございます。
もしかすると、メモリ使用量増加の原因が分かったかもしれません。
↓WaterP5で落ちるかどうか試してみてください。
http://www.i-paradise6.jp/~physics/test/test.html
(サイトがちょっとトラブっているので、別の所にアップしました。)
260デフォルトの名無しさん:2007/09/28(金) 23:00:46
>>259
WaterP5でもOutOfMemoryだった。
計算して線を描くだけならメモリ食わないと思うんだが。。。
261デフォルトの名無しさん:2007/09/28(金) 23:55:16
すみません、Eclipse3.2、または3.3にて、エミュレータが起動した瞬間に落ちてしまうようになりました。
ビルドでエラーは出ず、JARファイルは生成されています。
DoJa5.0ツールで直接ビルド、起動した場合は正常に起動、動作します。j2sdkはは1.42です。
Eclipseを介してビルドした物はDoja5.0ツールから起動しても落ちます。
また少し前まではEclipseでも正常に起動していました。(ただし途中で落ちてました。)

何か設定を弄ってしまったのかもしれませんが、Eclipseに明るくなく、対処方法がわりませぬ。
思い当たる節があれば是非教えてください。
262デフォルトの名無しさん:2007/09/29(土) 00:00:15
Stringの中身を消すとき
str="";とstr=null;
ってどっちの方がメモリ節約できますか?
263デフォルトの名無しさん:2007/09/29(土) 00:58:55
消すという概念自体がjavaに当てはまらない気がするが
ガベコレに拾ってもらう上で""(空文字)オブジェクトが生成されない
str=null;の方が節約って意味では確実なんじゃない?
str="";は結局str=new String("");って事だから古いstrの中身は消えるだろうけど
新しいStringオブジェクトが生まれてるよ
264259:2007/09/29(土) 01:13:49
>>260
そうでしたか。
getImageでImageをpaint内で生成しているのが原因かと思ったのですが・・・。
(描画の重ね合わせに、Graphics2.setRenderMode()と合わせて使用)

色々調べてみたところ、
さらにImageをdisposeしていないのがまずいような気がしたので、
getImage前にdisposeするようにしてみました。(WaterP6)どうでしょう。
あと、このgetImageをスイッチできるようにしました。
265デフォルトの名無しさん:2007/09/29(土) 01:40:57
>>263
文字列リテラルはクラスがロードされたときに生成されて、
str = "";
は str がそれを指すようになるだけ。
そのたびに新しい String オブジェクトが生成されたりはしない。
266261:2007/09/29(土) 02:06:39
すみません、自己解決しました。
デバッグの仕方を勉強して実行したたところ、
ALERT: java/lang/ClassFormatError: Bad version information.
が出てて、JRE1.5でビルドされているのが問題のようでした。コンパイル設定変えたら動きました。
1.4のbinフォルダにパス通したのはエミュレータ動作用だったのかな。
スレ汚しすまそ
267デフォルトの名無しさん:2007/09/29(土) 02:07:10
>>261
3、4回、マイナーバージョンの違うDoJaを交互にインストール・アンインストールして直ったことがある
Eclipse 3.2.0 + Windows Vista + JDK 1.6
268デフォルトの名無しさん:2007/09/29(土) 02:46:53
>>264
D902iでWaterP6テスト。
blurをonにした瞬間、NullPointerExceptionで落ちることがあるのはご愛嬌として、
OutOfMemoryは起きなくなったみたい。
たしかに毎フレームGraphics2#getImage()はメモリ食いそうだなぁ。


269デフォルトの名無しさん:2007/09/29(土) 03:46:10
>さらにImageをdisposeしていないのがまずいような気がしたので、

脱力系のオチかよ
270264:2007/09/29(土) 09:01:18
>>268
よかった。
getImageで上書きされるものと考えていたのが問題でした。
普通の使い方ならば、ガーベージ自動処理のタイミング的に大丈夫なのでしょうね。

他のアプリにも同様の処理をしているものがあるので、
アプリの機種違いによるエラーは、これで解決しそうです。
(アプリ_FallSのエラーは、現行ver.では起きないようなのでOKです。)

お手伝いいただき、ありがとうございました。
271デフォルトの名無しさん:2007/09/29(土) 13:53:15
毎回getImageするより、オフスクリーンバッファを2枚用意したほうがいいんじゃないか?
Imageの描画コンテキストはGraphics2にキャストできないんだっけ?
272デフォルトの名無しさん:2007/09/29(土) 14:42:06
Imageに対して直接Graphics2の描画(加算レンダリング)をするって事ですよね?
確かにその方法は良いと思います。
できるのであれば、どなたか教えてください。
273デフォルトの名無しさん:2007/09/29(土) 15:29:39
>>272
確かにその方法は良いと思ったんなら、まず自分でやってみろよ。
良いと思うほどなんだから実現の可能性があることは自分でも分かってるんだろ?
教えてくださいじゃなくて、コード書くのが面倒なのでかわりに書いてくださいじゃないのか?
274デフォルトの名無しさん:2007/09/29(土) 18:36:19
ってか、いきなりレベル低くなったな
275272: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デフォルトの名無しさん:2007/09/30(日) 02:24:48
他人のアプリのそんな細かい部分を語られても
さっぱり分からないが、動いたのならおめでとう。
それにしてもモーションブラーが実装できる時代になったんだなぁ。
277デフォルトの名無しさん: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デフォルトの名無しさん:2007/10/01(月) 16:10:25
うん?どこでスレッドを作ってるんだ?スレッドを作ってるようには見えないが・・・
279デフォルトの名無しさん:2007/10/01(月) 16:31:08
>>277
スレッドが作れて無いようだが?
基本的にThreadクラスから継承するんじゃないならRunnableインタフェースを実装しなきゃだし
スレッド実行開始はThreadクラスのstart()だがスレッドの実体はどっち方法で実装してもrun()だぞ?
後Canvasのpaint()はabstractだから省略できんだろ、例として書くならそこも簡単でイイから書きなさい

一応IApplicationのstart()とCanvasのイベントメソッドが別スレッドになるかも?というのを使って
IApplicationのstart()でCanvas内の無限ループメソッドを使ったメインループ作成方法はあるけど
これはスレッドを自分で作ってるとは言わないし機種に依存するはず(動く場合が多いけど)
280277:2007/10/01(月) 17:35:39
あれっ、本当だ…。Runnableが実装されてませんね…。
よく考えたらスレッドを作成して動かしてるのはVアプリ用の方でした。
こちらの方法はスレッドじゃないですね…失礼しました。
しかも279さんの仰る通り簡略化しすぎてました…。

とは言えせっかくなので教えて頂ければ幸いなのですが
(改行エラーが出たのでソースは次に書きます)
→ソース
という感じで作っています。この場合、自分は a_test.start(); によってtestCanvas内のstart()メソッド
が一回だけ実行され、その中の無限ループでグルグル処理をするっていうイメージで作ったんです。
しかし実際にはtestCanvas内のstart()メソッドが何度も実行されているようなのです。
物凄い勢いで”実行中”というトレースを吐き出します…。
質問自体分かりづらくて申し訳ないのですが、なぜtestCanvas内のstart()メソッドが何度も呼び出される
のか、ご教授願えれば幸いです。
281277: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デフォルトの名無しさん:2007/10/01(月) 17:38:37
>IApplicationのstart()でCanvas内の無限ループメソッドを使ったメインループ作成方法
Fの505,506,900でこれやると、processEventとmediaActionに処理こねぇ(ノд`)
283デフォルトの名無しさん:2007/10/01(月) 17:41:25
Eclipseのデバッグモードで確認すれば一発
284デフォルトの名無しさん: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デフォルトの名無しさん:2007/10/01(月) 18:02:28
あ、後当然ながらstart()とprocessEvent()の両方からアクセスしてるメンバは全部synchronizedになってるよな?
286デフォルトの名無しさん:2007/10/01(月) 23:20:27
>>282
マジ?
ずばりこのやり方で作りまくりなんだけど、、
Fの901以上とか700は大丈夫なの?
287デフォルトの名無しさん:2007/10/02(火) 00:09:24
>>286
この手法って機種依存じゃないの?
IApplication.start()がCanvas.processEvent()とは必ず別スレッドで呼ばれることが保証されてるってどっかドキュメントに書いてある?
288282:2007/10/02(火) 02:51:23
>>286
実は端末がなくて、そこまで調べていない。
とりあえずデバッグ時に、手元にあった上記の三つは動作しなかったので
直した。その他の端末は、修正後に検証センターで端末チェックしたので
その他のF機についてはわからない。
289286:2007/10/02(火) 06:45:39
>>282
>>287
10K制限の時から気にせずやってたけど、
今は容量制限もゆるいし普通のやり方が一番安全ですね。
290デフォルトの名無しさん:2007/10/02(火) 11:26:51
俺もstart()で無限ループやりまくってるw

リリース前にゃ全端末チェックして貰った事もあるけど
問題なかったなぁ。ユーザからクレームも上がってない。

んまぁ音鳴らすアプリが殆どない上processEvent使ってないし
気づかなかっただけかもだけど。
291デフォルトの名無しさん:2007/10/09(火) 11:45:28
過疎ってる(゜Д゜)
292デフォルトの名無しさん:2007/10/09(火) 14:12:31
おうよ
293デフォルトの名無しさん:2007/10/09(火) 20:59:45
ネット上のAPIリファレンスの見方を教えて下さい
全然分かりません
294デフォルトの名無しさん:2007/10/10(水) 10:43:16
ネット上にDojaのAPIリファレンスなんてあったっけ?
ここからダウンロードして使ってえば。
ttp://www.nttdocomo.co.jp/service/imode/make/content/iappli/about/index.html
295デフォルトの名無しさん:2007/10/11(木) 01:17:55
このHPなんだけど(Doja5.0)
http://www.rcdtokyo.com/man/doja/api/index.html

例文が全然ないから書式が全然分かりません
できるだけ詳しく教えてください
296デフォルトの名無しさん:2007/10/11(木) 01:20:24
それはまず Java の勉強をするべきでは?
297デフォルトの名無しさん: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デフォルトの名無しさん:2007/10/11(木) 22:08:04
初心者用のjavaの勉強は5年もしました
しかしDojaのAPIリファレンスは難解すぎて理解できません
もうやめます
299デフォルトの名無しさん:2007/10/11(木) 22:59:52
Java で5年間何をやってたのか気になるところだな。
300デフォルトの名無しさん:2007/10/12(金) 00:44:16
5年間ずっとjava初心者用HPのサンプルコードのコピペを続けてたのだろうか?
それはそれで根気があるが……
301デフォルトの名無しさん:2007/10/12(金) 00:45:41
ネタだろ。
数年前に一週間程度java勉強しただけの俺でも何とか分かる。
302デフォルトの名無しさん:2007/10/12(金) 21:54:18
しかしそれは本来のJavaでなく携帯向けJavaだったのだ
303デフォルトの名無しさん:2007/10/13(土) 02:10:42
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   |
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |    ミ [本来の Java]

304デフォルトの名無しさん:2007/10/13(土) 03:35:34
>302
携帯向けのJavaが偽物みたいにいうな禿
305デフォルトの名無しさん:2007/10/13(土) 03:57:13
携帯向けのJavaなんて存在しないんだけど?w
306デフォルトの名無しさん:2007/10/13(土) 05:14:54
JavaME
307デフォルトの名無しさん:2007/10/13(土) 07:53:16
CLDCとMIDPの立場って一体……
308デフォルトの名無しさん:2007/10/13(土) 07:53:21
携帯向けのJavaってソースに
#ifdefとか#defineとか入ってる奴?w
309デフォルトの名無しさん:2007/10/13(土) 08:02:59
無知だな
310デフォルトの名無しさん:2007/10/13(土) 08:36:07
>>308
30Kに収めようと思ったり機種依存APIを使うために場合分けが必要な場合(Unable to load class回避)には
必要に応じてプリプロセッサも使うけどな
まぁそれも初心者にはあまり関係ない話だ
311デフォルトの名無しさん:2007/10/13(土) 08:53:40
>>307
世界で使われている
312デフォルトの名無しさん:2007/10/13(土) 12:13:12
プリプロセスできれば、と思うことは何回もあった
313デフォルトの名無しさん:2007/10/13(土) 12:19:52
30KiBの壁にあたったとき、プリプロセッサ使って3KiBくらいちんまく
なったときには、純粋なJavaと決別しようと思ったさ。
314デフォルトの名無しさん:2007/10/13(土) 12:48:26
KIBだんご
315デフォルトの名無しさん:2007/10/14(日) 00:05:44
プリプロセッサってクラスファイルを小さくしてくれるの?
あ、でもなんか単位が違うなぁ
316デフォルトの名無しさん:2007/10/14(日) 01:53:14
Kを1000じゃなくて1024であることを明確に示したいときにはKiって書くのよ。
317デフォルトの名無しさん:2007/10/14(日) 01:59:05
それ何業界で使われてるの? ストレージ関連?
こっちでは単に KB て入ったら 1024 bytes 以外の可能性はないなあ。
M が 1000^2 じゃなく 1024^2 であると示したい場合は MeB?
318デフォルトの名無しさん:2007/10/14(日) 01:59:33
でもあんまり浸透してないよなぁそれ・・・
キビバイトとかメビバイトとか言いにくいからかな
319デフォルトの名無しさん:2007/10/14(日) 02:05:58
320デフォルトの名無しさん:2007/10/14(日) 02:20:10
KIBだんごが正しくてワロタ
321デフォルトの名無しさん:2007/10/14(日) 03:32:02
純粋なJavaなんてこだわってるのは信者だけ
そろ信者と頭の古いsunのせいでそれはいるだろって機能でさえ
C#がでるまで入れようとしなかったくらいだから迷惑な話だよな
322デフォルトの名無しさん:2007/10/14(日) 03:35:49
いきなりどうした?
323デフォルトの名無しさん:2007/10/14(日) 03:48:33
つまり、プリプロセッサを公式にサポートしろと言いたいのですよw
324デフォルトの名無しさん:2007/10/14(日) 04:01:43
>>315
組み方によるがプリプロセッサに頼った方が小さくなる
例えばstatic finalは#defineに置き換えれば大抵の場合クラスファイルを縮小できる
まぁ色々あるんで一概にどうこうとは言いにくいんだが読みやすさを損なわないレベルで小さくなる場合が多いのは事実だな
ただ初心者にはお奨めはしないけどな
Obfuscatorを2〜3個と7Zipも使ってもどうにもならない場合の最後の最後の手段だな
325デフォルトの名無しさん:2007/10/14(日) 04:06:34
>318
言いにくいからというより、単純に通じないからだろうな。
メディアや様々なドキュメント類が一斉に変えない限り普及しないんじゃないだろうか。

現状、ドキュメントなら大抵「1キロバイト=1024バイト」とか注意書きがあるんで混乱しないし、
1キロバイトが1024バイトなのはファイルサイズやメモリ容量、
1000バイト(というか1メガバイト=1*1000*1000バイト)なのはストレージ(大抵HDDを指して)、
としてまず問題なく会話できるし。
326デフォルトの名無しさん:2007/10/14(日) 07:31:01
最近の人は「キロ」と「ケー」の区別をつけないのか
327デフォルトの名無しさん:2007/10/14(日) 07:45:38
HDDさえ1024単位にしてくれりゃ会話でまぎらわしいことは
かなり減ると思うけどな。
328デフォルトの名無しさん:2007/10/14(日) 18:14:45
通信速度が10進数だから,そっちを基本にするしかないだろ
329デフォルトの名無しさん:2007/10/14(日) 19:38:04
10進数で通信速度を測定するのって何の通信?
330デフォルトの名無しさん:2007/10/14(日) 21:29:29
話切って申し訳ないですが、質問させてください。。

904iシリーズで追加されたオプションAPI、
「動作認識」を実装しようとしてるのですが上手くいかず困ってます。。

最初はとりあえず、ケータイの傾き(rolldata)を取得し、
その値を画面に表示させるコードを書こうとしています。

プログラミング初心者のため、かなり汚いコードだとは思いますが、
指摘いただけるとうれしいです。
331330:2007/10/14(日) 21:33:46

public class Gesture1 extends IApplication {

public void start() {
GestureCanvas c = new GestureCanvas();
Display.setCurrent(c);
c.exe();
}
332330:2007/10/14(日) 21:35:22
//続き
class GestureCanvas extends Canvas {

void exe() {
RollReader rollreader = RollReader.getRollReader(0);
Graphics g = getGraphics();
float zahyo[] = new float[2];

while (true) {
//動作認識処理
rollreader.start();
RollData roll = rollreader.getRollData();
zahyo = roll.getAccumulatedMotion();
rollreader.stop();

g.lock();
g.setColor(g.getColorOfName(g.WHITE));
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(g.getColorOfName(g.BLACK));
g.drawString("x座標 : " + zahyo[0], 5, 20);
g.drawString("y座標 : " + zahyo[1], 5, 40);
g.unlock(true);
333330:2007/10/14(日) 21:36:04
//最後

try {
Thread.sleep(200);
} catch (Exception e) {
}
}
}
public void paint(Graphics g) {
}
}
}

//長々とすみませんでした。。。
334デフォルトの名無しさん:2007/10/14(日) 22:06:48
機種は?
確かDだけ何か違ったとか報告受けた覚えがある。
335330:2007/10/14(日) 22:16:48
SH904iです。。
エミュレータで試験できないので、実機にアプリをDLして実行してみているのですが、エラーの表示と共に強制終了されてしまい原因もわかりません。。。
336デフォルトの名無しさん:2007/10/14(日) 22:28:07
Exceptionでエラー確認してみ
337330:2007/10/14(日) 22:32:37
330です。何度もすみません。
Dだけなにかが違うという件ですが、、
Dには加速度センサが、SHとPにはgesturetek mobileが搭載されているということだと思います。
前者ではその名のとおりセンサを使って、後者ではインカメを用いた画像検知によりケータイの動きを認識します。

ドコモ提供のAPIリファレンス(オプション・拡張編)
ttp://www.nttdocomo.co.jp/service/imode/make/content/download/kiyaku5_details.html
では、最後の章に加速度センサの、19章に動作認識(インカメ使用)の説明があります。

私は、shですので、インカメを用いた動作認識を実装したいと考えています。
338330:2007/10/14(日) 22:35:00
>>336
Main :com.nttdocomo.device.gesturereader.GestureException Gesture1
com.nttdocomo.device.gesturereader.GestureException
at com.nttdocomo.device.gesturereader.RollReader.getRollData(+80)
at Gesture1$GestureCanvas.exe(+22)
at Gesture1.start(+17)
com.nttdocomo.device.gesturereader.RollReader

このようなエラーが出ますが、未熟者のため解決できず。。。
339デフォルトの名無しさん:2007/10/14(日) 22:35:14
とりあえず、運良く会社から持ってきてた俺自作のソース見ると

m_RollReader.start();
m_RollReader.recenter();

はwhile() の上に出して1回だけにした方が良さそう
それでもダメなら

m_RollData.getImmediateMotion();

の方のパラメータも変なの来てるか確かめれ。
もちろんExceptionもなw
340330:2007/10/14(日) 22:41:44
>>339
ありがとうございます!
がんばってみます。
341330:2007/10/14(日) 22:48:11
>>339
一つ質問なのですが、
rolldata.start()
をwhile外に出すとすると、
rollreader.stop();
の位置が問題になると思いますが、

一回一回の処理ごとにstopかける必要はないのでしょうか?
というか、もしかしてstop()自体なくても、動作に支障はないのですか?
342デフォルトの名無しさん:2007/10/14(日) 23:32:23
大きい範囲で1回であればいるかもしれんけど、
枚フレームする必要は無いな。

まぁ、経験上カメラとか外部のインターフェース使う奴は
動作が遅いのが普通だから毎フレーム呼び出しは
無理な場合が多い。
343デフォルトの名無しさん:2007/10/15(月) 00:40:55
マナーモードや受話音量の制御ってアプリ側からは出来ないですかね?
344デフォルトの名無しさん:2007/10/15(月) 04:12:01
できちゃったら本末転倒
アプリや本体の挙動を制御するための機能なんだから
345デフォルトの名無しさん:2007/10/15(月) 11:07:19
>>341
JSや加速度センサは、start()時の位置を(0,0(,0))として、
次フレームでゼロ地点からの相対位置を元に何かを求めるモノなので、
基本動きっぱなしを想定してる。
なので止めちゃダメ。

あとDoJa5.0 Ver3.0のiαppliToolで、エミュレーションにも対応してる。
ツール→動作認識データ編集と、ツール→加速度センサデータ編集がそれ。
使い物になるかは少々疑問だけど、とりあえずの動作確認だけならエミュで十分なハズ。
パラメータを設定しなくても、エミュで例外は出ない。
ゼロが帰ってくるだけ。

たしか移動量の定義がShake以外不明だったと思うんで、
実機でやってみないとわからない部分が多いと思うがガンガレ。
346デフォルトの名無しさん:2007/10/15(月) 11:20:19
何か酷いな…

JS→ジェスチャーテックのことで略してJSと何処かに書かれてて
  そう覚えてしまった(´д`) ゴメン。
帰って→返って

ちとマグロでも釣ってくるわ。
347デフォルトの名無しさん:2007/10/15(月) 13:12:40
なあ、@アプリで再生できる動画サイズって500KB以上は無理なんか?
348デフォルトの名無しさん:2007/10/15(月) 13:31:43
確かDojaのバージョン依存とみせかけて機種依存だったと思った。
俺の仕事じゃなかったから適当に聞いてたんでうろ覚えw
349デフォルトの名無しさん:2007/10/15(月) 13:36:29
お、機種依存なのか
350デフォルトの名無しさん:2007/10/15(月) 14:07:36
>>347
http://www.nttdocomo.co.jp/binary/pdf/service/imode/make/content/iappli/about/jguidefordoja5_x_070423.pdf
「4.4.5 FOMA 携帯電話によるVisualPresenter でのiモーションの再生」
を熟読するんだな
351デフォルトの名無しさん:2007/10/15(月) 14:17:48
機種によっては500kb以上いけるかもしれないが
Doja5.0では500kbまでしかだめだ

って書いてあるようなないような
352デフォルトの名無しさん:2007/10/15(月) 15:11:30
500KBまでは全機種で動くことを保証してそれ以上のサイズを放り込んだ時動くかどうかは機種依存ってことだろ?
353330:2007/10/15(月) 15:42:57
>>345
ありがとうございます。
エミュレータの動作認識設定を行い、何とかエミュ上で立ち上がるまでになりました。
しかし、実機に移すと、エラーが起こり、アプリが立ち上がりません。。。

どうしてでしょうか。。。。。

354330:2007/10/15(月) 15:44:30
ちなみに、教えていただいたとおり、while外にstart()を出してあります。
ソースは以下のとおりです。
(また、長々とすみません・・・)

public class Gesture1 extends IApplication {

public void start() {
GestureCanvas c = new GestureCanvas();
Display.setCurrent(c);
c.exe();
}
355330:2007/10/15(月) 15:45:22
//つづき

class GestureCanvas extends Canvas {

void exe() {

RollReader rollreader = RollReader.getRollReader(0);
Graphics g = getGraphics();
float zahyo[] = new float[2];
rollreader.start();
rollreader.recenter();

while (true) {

RollData roll = rollreader.getRollData();
zahyo = roll.getAccumulatedMotion();

g.lock();
g.setColor(g.getColorOfName(g.WHITE));
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(g.getColorOfName(g.BLACK));
g.drawString("x座標 : " + zahyo[0], 5, 20);
g.drawString("y座標 : " + zahyo[1], 5, 40);
g.setPixel((int) zahyo[0]/2+120, (int) zahyo[1]/2+120);
g.unlock(true);
356330:2007/10/15(月) 15:45:54
//さいご

try {
Thread.sleep(1000);
} catch (Exception e) {
}
}
}

public void paint(Graphics g) {
}

}

}
357デフォルトの名無しさん:2007/10/15(月) 15:47:41
>330
ソースよりもまずエラーの内容を書かないと始まらない
358330:2007/10/15(月) 16:28:37
>>357
指摘ありがとうございます。
エラーの内容ですが、実機だとただ単に強制終了されてしまうため、
どのようなエラーが発生しているのかもわからない状態なのです。。。
エミュレータではエラーは出ないのですが・・・

何度も質問ばかりで申し訳ありません。
359デフォルトの名無しさん:2007/10/15(月) 16:42:16
AppTrace=on にしてみれば実機でも見れるんじゃね?
それと roll の null チェックはした方がいいな。
機械動かす以上すぐにパラメータが取れるとは思えない。
360345:2007/10/15(月) 21:09:43
マグロ漁行ってる間に職場がアク禁食らってた(=´∇`=)
これだからNTT回線は…

>>330
たぶんRollData#getRollData()をtry〜catchで囲んでないからだと思うよ。
パラメータ取得失敗時に、普通に例外吐く仕様だったはずだから。

ぬるぽチェックはzahyoの定義で初期化してるから要らないと思うけど、
例外キャッチした時に前のパラメータが残るのだけ注意。
相対座標として扱うと計算ミスる。案外使ってて違和感感じるから。

で、例外についてはリファレンス読んでくださいな。
361デフォルトの名無しさん:2007/10/16(火) 02:45:25
拡縮/回転ができるスプライトシステムを作ろうと思いポイントスプライトでいろいろ
実験しています。どうも画像が歪むのでテクスチャを格子模様にしてどういうときに
歪むのかチェックしたのですがいま一つ条件がわかりませんでした。uvwhのぞれ
ぞれが2のn乗になっていない時かなとも思いましたが64*64でも1ドットだけずれて
表示されたりしたのでよくわかりません。

WEBでサンプルソースを見つけたのでそちらも試したのですが、一見ちゃんと表示
されているようでも右端と下端のドットが表示されていませんでした。
ポリゴンでフィールドを表示しておいてその上にdrawImageで各種情報を表示する
ような(フィールド側は拡縮可能)構成を考えていたのでちょっと悩んでいます。

なぜ歪むのか原因、もしくはプログラム上/データ上のチェックポイントがわかる方
がいらっしゃいましたらご教示願えないでしょうか。

362デフォルトの名無しさん:2007/10/16(火) 09:58:29
歪むとかいってるのはエミュでの動作の話?
昔同じようなことやったことあるが、マスコットカプセルの
ソフトウェアレンダリング(901時代とか)は、内部で2pxとか4px単位で
処理してるのか画面上とテクスチャの大きさをあわせても
そのままdot by dotのマッピングにはならないと判断した
最近のハードウェアレンダリングする機種では結果違うかもしれんよ
363361:2007/10/16(火) 12:52:53
>>362
情報ありがとうございます。
エミュと実機両方で試しましたが、同じような表示になりました。
矩形の枠の一か所だけ1ドット飛び出したような表示になったりしたのですが、その
飛びだす位置が同じだったので同じアルゴリズムなのかなどとちょっと感心しまし
たが。
書き忘れましたが900i以降対応させるのでDojaのプロファイルは3.5です。
試した実機は対応する機種のミニマムスペックに近いF900iやN901icなどの古めの
ものです。
ポイントスプライトをやめて三角形や矩形のポリゴンにしたらどうかな、などと考えて
ましたがソフトウェアレンダリングによる歪みというか誤差だとするとだめっぽいです
ね。やりたいことの性質上、きっちり1ドット単位で表示できないと困るので面倒だけど
drawImageとdrawScaledImageでやろうかな。D900iを非対応にすればGraphics2で
半透明使えるし、回転はほとんどないからなんとかなるかも。
364デフォルトの名無しさん:2007/10/16(火) 13:07:53
小数使ってる?
0.5を足してから整数化するとか。
365デフォルトの名無しさん:2007/10/16(火) 13:10:36
ピクセル毎に自力処理か。
どっちを回してる?
スプライト側のピクセル毎に回転後座標を求めてキャンバスに打つより、
キャンバス側で「スプライトのどのピクセルが来るか」を基に打つといいよ。
366デフォルトの名無しさん:2007/10/16(火) 13:41:50
drawScaledImageに半透明が適用されるかどうかは
機種依存じゃなかったっけ?
367361:2007/10/16(火) 14:16:27
>>364
小数は使っていません。今のところ拡縮などはしないで等倍のスプライトを表示して
実験しているだけなので。その段階で361のような状態なのでちょっと悩んでいたの
です。
>>365
自力での描画処理は行っていません。もし行うとすればたしかに365さんのおっしゃ
るようにディストネーション側のピクセルからソースの色を引っ張ってこないと拡大
したときに隙間とかができてみられたものじゃなくなりますね。そもそも自前描画で
速度は足りるものでしょうか。以前30Kアプリでプログラムサイズが全く足りなくて、
一部ルーチンをスクリプト化してスクラッチパッドに逃がしたことがあったのですが、
以外と速度は大丈夫でした。しかし描画処理となるとそれとは比較にならないほど
演算量が増えるのでやるとするとまた実験が必要ですね。
>>366
情報ありがとうございます。そうなるとちょっと辛いですね。機種情報調べてみます。
368デフォルトの名無しさん:2007/10/16(火) 23:39:40
マスコットカプセル4にしちゃえよ
369330:2007/10/17(水) 11:54:56
>>359, 360
助言ありがとうございます。。

AppTrace=on にして、RollData#getRollData()をtry〜catchで囲み、、、

そして、これが重要な問題だったと思うのですが、
RollReader rollreader = RollReader.getRollReader(0);
のカメラIDを(0)から(1)に変更したら、実機で動きました!

インカメのIDは1なんですね。
皆様色々とアドバイス本当にありがとうございました。
助かりました。
370デフォルトの名無しさん:2007/10/17(水) 12:15:05
カメラIDは機種依存だよ
371デフォルトの名無しさん:2007/10/17(水) 13:15:44
確か1の場合が多かった気はするが、機種依存だな。
ウチはとりあえず数回まわして初期化して取れた奴使うってやってた。
372デフォルトの名無しさん:2007/10/17(水) 18:56:21
Dojaの標準クラスのファイル操作って結構メモリ周りを乱雑に扱ってないか?
使えるメモリ少ないのにメモリ上に全部展開とかって出来ないファイルとかどうすればいいんだかねえ

これ標準クラスのソースなんて公表されてないんだよな?
373デフォルトの名無しさん:2007/10/17(水) 20:56:23
鉄拳ってjavaで作られているんですか?
374361:2007/10/18(木) 03:01:39
>>368
マスコットカプセル4だとDoja4.0からなので今回は使えないです。

あれから機種情報を調べたり実験したりしていました。
まずdrawImageの半透明ですがDoja4.0の機種で使えないものが何機種かあった
のでダメでした。3.5だとD900i以外大丈夫だと思ったのですが、4.0でこんなに非対
応の機種があっては採用できません。ためしに実装したものを手元にあるN901ic
で実行したところやはりダメでした。

ポイントスプライトの実験をやり直していたところどうやら縦横が2のn乗であれば
大丈夫らしいことがわかってきました。以前の64*64で駄目だったのは私の見間
違いだったようです。縦横が2のn乗であれば正方形である必要はなく8*16等でも
いけました。今回の場合、画像素材がすべて一辺8の倍数で描かれていたので
8*8に分割して描画してやれば大丈夫そうです。
その場合、プリミティブ数が増えるのでそっちの方がちょっと心配ですが(240*240
の画面だと全面埋め尽くすと900個のポイントスプライト)半透明で描画する可能性
のある画像はごく一部なのでdrawImageと併用して凌げると思います。

iアプリは2年に一回くらいしか作る機会がなく、作る度に何かしら苦労してます。
375デフォルトの名無しさん:2007/10/18(木) 03:53:10
それが楽しかったりするのさー
376デフォルトの名無しさん:2007/10/18(木) 22:57:50
トライアングル2枚で右下だけuv調整、とかいう話をしてるの?
377デフォルトの名無しさん:2007/10/22(月) 03:37:41
ニューロのジョイスティックモードに対応したいと考えています。
PointingDeviceクラスの説明には

>端末によってサポートされていない場合があります。
>未サポートの場合、メソッドが呼び出された時点で
>UnsupportedOperationException が発生します。

とあるのですが、isAvailable()で使用可否を取得するだけでも発生するのでしょうか?
未対応端末なら通常通り十字キーで使用できるように判定したいのですが・・・
378デフォルトの名無しさん:2007/10/22(月) 10:47:44
>>377
例外出ようが何だろうがキャッチすりゃ良いだけでない?
379デフォルトの名無しさん:2007/10/22(月) 10:52:35
使いたい機能が使えなかったら非対応にするしか無いから
特に考える必要は無いな。
380デフォルトの名無しさん:2007/10/22(月) 11:15:23
>>377
DoJa-3.0な機種とかだと全ヶ所をtryで括っていても
PointingDeviceのジョイスティックモード(DoJa-3.5以降なので)用のメソッドを含んだclassがあるだけで
Unable to load classを吐いて強制終了する端末がある(クラスローダーが例外を発するのでtryで止められない)
100Kアプリなら問題ないけど30Kアプリだと問題になる
(30Kアプリでニューロジョイスティックモード対応機種はN700i,N701i)

もし古い機種にも対応した上でニューロも対応したいなら
jarを2個提供する方が安全だと思う
DoJa-3.5以降でも同様の実装の機種があるかどうかの確認はしてないんで知らない

後メソッドが呼び出されたら例外と書いてあるんだからDoJaの仕様にちゃんと則ってれば
isAvailable()を呼んだだけで例外が起きるPointingDevice関連は全部tryで括るべき
381デフォルトの名無しさん:2007/10/22(月) 12:20:24
isAvailable()は、厳密には、デバイス搭載機の端末の設定が許可になっているかを調べるためのメソッドらしいから(例のPDF参照)、
try-catchした方がいいと思われ
382デフォルトの名無しさん:2007/10/22(月) 23:03:29
サウンドの再生が終わったのに
mediaActionが全く呼び出されないんですが
原因は何が考えられるでしょうか…?
383デフォルトの名無しさん:2007/10/22(月) 23:30:40
processEventで無限ループ
384デフォルトの名無しさん:2007/10/22(月) 23:33:35
setMediaListenerしてない
385デフォルトの名無しさん:2007/10/23(火) 08:49:50
サウンドのケツに大量の無音部分が入ってる
386デフォルトの名無しさん:2007/10/23(火) 14:48:31
mediaActionが呼び出されたことを確認するためのコード自体が間違っていて
実際は呼び出されているのに、それがわからない状態。
387デフォルトの名無しさん:2007/10/27(土) 14:10:31
エミュでは実行できたけど
実機で実行したら「ソフトに継続動作出来ない障害が発生しました。」
って出るんだけど原因は何でしょうか。
388デフォルトの名無しさん:2007/10/27(土) 14:43:16
>>387
1、メモリが足りない
2、その機種では使用できないオプショナルなor上位DoJaのAPIを使ってしまった
3、synchronizedが必要な個所でsynchronized抜け
4、他
389387:2007/10/27(土) 15:30:58
インポートしてるのが
import com.nttdocomo.ui.*;
import java.util.*;
import javax.microedition.io.*;
import java.io.*;
これしかないんだけどオプショナルなAPIがこの中に含まれてたりしますか?
390デフォルトの名無しさん:2007/10/27(土) 15:56:12
オプショナルなAPIはリファレンス読めばどんなのがあるかわかる

つーか細かく聞きたいならソース公開しろ
はっきり言ってこんな質問してる段階でプログラムの出来とかには誰一人期待もしてないから
どんな下らんソースアップしても笑うやつは居ないよ
それ以上は自力でどうにかしろ
391デフォルトの名無しさん:2007/10/27(土) 16:10:18
おk、笑う準備完了。
392387:2007/10/27(土) 16:23:55
前スレで作りかけの1回うpしたやつだけどね
http://zif.hp.infoseek.co.jp/tmp/tori2.zip
393デフォルトの名無しさん:2007/10/27(土) 16:27:27
よし、俺がエスパーしてやる。
実機だと Display#setCurrentした瞬間にpaintが呼ばれる。
なのでIApplication#start()後に画像読み込み、paintで描画処理としていると、
先にpaintが呼ばれるため落ちる。
394393:2007/10/27(土) 16:33:30
む、外したw
しかし随分パワーアップしたな…
395デフォルトの名無しさん:2007/10/27(土) 16:50:50
おk
読むの断念。
仕事に戻る。
396デフォルトの名無しさん:2007/10/27(土) 18:05:57
取り敢えずざっと流し読みした
危なっかしいコーディングがいくつか見受けられるがあまりそれが問題だとは考えたくは無いかな
start()でメインルーブを作ってるの以外機種依存な部分は見受けられない
メモリが足りてないんじゃないか(ヒープコンパクション関連も含め)とは思うが
しかし巨大な配列を作ってるわけでもないしデータはリソース読みみたいだからサイズ的にも多寡が知れてるので
ちょっと原因が不明だな実機でのappTraceの結果はなんとなってる?
あと実機の機種名がなんなのかもだな>N900i,N901i,P900i,P901iはヒープコンパクション問題があるが
どこまで実行が進んでるのかを見るためにappTrace=onにして

System.out.println("0");
toriMain ten=new toriMain();
System.out.println("1");
Display.setCurrent(ten);
System.out.println("2");
ten.exe();

みたいにしてみて根本的に実機で起動そのものが出来てるのかの確認をしてみ
397デフォルトの名無しさん:2007/10/27(土) 19:19:45
俺もざっとしか読んでないけど画像122枚一気読みが原因では…
398387:2007/10/27(土) 19:23:10
jargで圧縮したのが原因みたいでした。
10KB分容量大きくなっちゃうけど諦めようorz
みんな色々調べてくれてありでした。
399デフォルトの名無しさん:2007/10/27(土) 19:48:15
jargは-nobcoを入れたほうがいいぞ
今ならProGuardをかけてからjarg -nobcoでjargにpreverifyもやらせればかなり縮む
その後7Zipで潰せば良い

あと気になったところ
一応安全のためにCanvas.eventはsetとgetをメソッドで保護してメソッドは1つのオブジェクトでsynchronizedにしておくべき
それ以前にIApplication.start()そのものでメインループを作る場合はprocessEvent()が呼び出されることは保証されてない(機種依存となる)

Calendar.getInstance()を何度も実行してるが1つ目と2つ目の間で日や月を跨ぐ可能性を考慮してないので
Calendar.getInstance()は1度にしてそれを1つ目と2つ目で使いまわすべき

定期的にSystem.gc()を呼んだ方が良い
400387:2007/10/27(土) 21:51:14
>>399
アドバイス色々ありです。
class myEvent
{
int event;
synchronized void setEvent(int ev){event=ev;}
synchronized int getEvent()
{
int n=event;
event=-1;
return n;
}
}
setEventはprocessEvent()から呼び出して
getEventはループ内から呼び出すってことでいいのかな?
401デフォルトの名無しさん:2007/10/27(土) 22:28:32
yes
別にクラスを分けなくてもメソッドそのものはCanvas(toriMain)に統合してても問題は無いけどね
(Canvasという一つのオブジェクトで保護すればいいってことだから)
まぁint 1つなら保護する必要性の有無は疑問ではあるがしないよりはしておく方が安全
結局の所start()というスレッドと携帯端末が作成したprocessEvent()を呼び出してるスレッドが並列動作時の問題だから
402デフォルトの名無しさん:2007/10/28(日) 01:22:26
>それ以前にIApplication.start()そのものでメインループを作る場合はprocessEvent()が呼び出されることは保証されてない(機種依存となる)

ちょっとまった、うちのゲームは全てstartで無限ループしているが、1回たりとも機種依存でダメだったことはないぞ
機種依存って資料かなにかに書いてあった?
403デフォルトの名無しさん:2007/10/28(日) 02:00:49
>>402
じゃあ聞くがIApplication.start()とCanvas.processEvent()が別スレッドで呼ばれることが保証されてると書かれた資料を示せ
少なくともjguidefordoja5_x_070423.pdfの86ページにはCanvas.processEvent()がどのようにスレッド割り当てされるかは機種依存とある
404デフォルトの名無しさん:2007/10/28(日) 07:50:22
DoCoMoの各機種の文字サイズ(大フォントが○×○、中フォントが○×○、小サイズが○×○)とか
をまとめてるサイトって誰かご存知ないですか?
405デフォルトの名無しさん:2007/10/28(日) 07:59:52
んぱか
をゲイツに聞いてみろ。
406デフォルトの名無しさん:2007/10/28(日) 10:02:49
>>403
仕様として機種依存にできることは書いてるけど、
402実際に制限のあった実装してる端末が今のとこなかった、ということでしょ

保証を出せとか言い出して少し落ち着けよ
407デフォルトの名無しさん:2007/10/28(日) 12:36:29
>>403
確かにスレッド割り当て〜はあるから「シングルスレッドで実装されてたらダメ」だね
資料Thx
一応商業的に作ってても、今のところ「startで無限ループしたらやばかった」って機種は無かったよ
将来的な保証を考えて、普通にスレッドでやったほうがいいかもね
408デフォルトの名無しさん:2007/10/28(日) 15:04:57
>>406
それは今の所の実装がそうであるってだけじゃん。
もし動かない端末が現れた場合、客にどう言い訳する?
仕様は守っとこうぜ。
409デフォルトの名無しさん:2007/10/28(日) 15:18:02
契約の内容次第だが、新機種対応は別料金です。
でおk。

言い訳の必要が見当たらん。
410デフォルトの名無しさん:2007/10/28(日) 17:04:16
仕様も大切だが、趣味でやってる立場からすると
現実の実装についての>>402の情報はスゲーありがたい。
411デフォルトの名無しさん:2007/10/28(日) 17:39:12
>>407
一応既に>>282って発言もあるみたいだけど?
趣味な人間としちゃ自分の周りで持ってる人と自分が持ってる機種でしか直接確認できないから
その辺どうなのかは確かに気になるな
412デフォルトの名無しさん:2007/10/28(日) 17:40:29
>>408
仕様外でも動く数がここまできたらもうDoJaの仕様の方を変更する規模だよ
知らずに作ってる人だって多いだろ。俺も知らんかったし
影響を無視して仕様を強行するより、現実の動作に互換を合わせて
マイナーアップで仕様を変更する方が現実的。まあ1プログラマの予想だけどね

で、仕様通りに作れてなかったソフトが、1発目に動かなければ非対応になるか、
409の通り別料金か修正すればいいだけ。
理由が仕様に載ってようがいまいが、存在しない機種のための動作保証なんてしないのが普通。
言い訳をする必要はなく謝って修正すればいい話。
413デフォルトの名無しさん:2007/10/28(日) 18:12:17
i-appliでまだ商売できるのなら、この国も終わりだね。

昔からPCは技術者を育成した、しかし、携帯は中国・インド・イスラエルに仕事を
与えるだけだ。
414デフォルトの名無しさん:2007/10/28(日) 18:19:52
>>413
行間が空き過ぎてて読み取れません(´・ω・`)
415デフォルトの名無しさん:2007/10/28(日) 18:26:48
>>412
>仕様外でも動く数がここまできたらもうDoJaの仕様の方を変更する規模だよ
>知らずに作ってる人だって多いだろ。俺も知らんかったし
単にドキュメント読んでないだけだろう。
動作保障外の組み方しておいて、今までたまたま動いてたからって
それを仕様としろなんて普通ありえない。

>理由が仕様に載ってようがいまいが、存在しない機種のための動作保証なんてしないのが普通。
とりあえず仕事として、将来的にも機種対応をしていくつもりで組んでいるのであれば、
ある程度は動作を見込んで実装するのが普通。
416デフォルトの名無しさん:2007/10/28(日) 18:39:20
>>415
熱意に溢れてるなw

ウチの会社で中国人と一緒にアプリ作らないか?w
携帯アプリに関わった人どんどん辞めて奴隷不足なんだ。
417デフォルトの名無しさん:2007/10/28(日) 18:58:32
>>415
ちょっと聞くけどさDoJa1.0の頃からドキュメントに記載されてたの?もしそうなら

> 単にドキュメント読んでないだけだろう
って言う貴方の意見が絶対的に正しいんだけどさ
418デフォルトの名無しさん:2007/10/28(日) 19:09:32
>>417
jguide010514.pdf(DoJa1.0のドキュメント2001/06/22発行)の65〜66ページにもちゃんと書いてある
誰でも確認できることなんだから自分で確認してから書いたほうがいい
419デフォルトの名無しさん:2007/10/28(日) 19:15:05
え?
こんな事わざわざ確認するのがめんどくさいから聞いたんだけど
420デフォルトの名無しさん:2007/10/28(日) 19:50:11
>>412
仕様を縮小解釈するのなら、実装を拠り所にしてもいいけど、
仕様を拡大解釈するのはマズいんじゃないかな。
421デフォルトの名無しさん:2007/10/28(日) 20:35:51
流れぶった切ってすみません、
生まれて初めてのjavaというかプログラミングに挑戦したいと思って
いるのですが、開発環境すら整備できていません、
ネットで読み漁ったところ
java2SDK,Standard Edition
j2sdk-1_3_1_11-windows-i586.exe
をゲットする所から始めないといけないようですが、
SUNのサイトにいくとSolarisむけの開発環境しか手に入らないぽいです。
(プロ向けに有償サポートなら手に入りそうな文面ですがそこまでは、、)
皆さんはどういった開発環境で行われていますか?
今でも環境を整えられる方法があれば知りたいです。

長文すみません。
422デフォルトの名無しさん:2007/10/28(日) 20:52:55
423デフォルトの名無しさん:2007/10/28(日) 21:05:10
>>421
505i以降
http://www.nttdocomo.co.jp/service/imode/make/content/iappli/about/tool_505i.html
900i以降
http://www.nttdocomo.co.jp/service/imode/make/content/iappli/about/tool_foma2.html
903i以降
http://www.nttdocomo.co.jp/service/imode/make/content/iappli/about/tool_foma5.html
一応自分の携帯電話にあわせたやつ使え、それが確実だ
70xiの場合は機種によるんで安全のために505i用を使えば確実だ

java2SDKは
http://java.sun.com/j2se/1.4.2/ja/download.html
これ(j2sdk-1_4_2_16-windows-i586-p.exe)使え一番確実だ
424デフォルトの名無しさん:2007/10/28(日) 21:10:32
>>422>>423さん
うぉおありがとうございます。
とりあえず参考にしようと思ってるサイトさんのファイルに一番近そうな
>>java2SDKは
>>http://java.sun.com/j2se/1.4.2/ja/download.html
>>これ(j2sdk-1_4_2_16-windows-i586-p.exe)使え一番確実だ

をDLしてみます。!

回線遅いのでアレですが、、、

ありがとうございます。
425デフォルトの名無しさん:2007/10/29(月) 02:09:28
みんなから3年くらい遅れてると思うけど
がんばれ
426デフォルトの名無しさん:2007/10/29(月) 12:47:26
大丈夫。あと五年内のうちには携帯でWindowsプログラミングできるようになってるはず
HSPとか簡単なスクリプト言語でサクサクっと手軽に出来るようになるから今無駄に努力する必要はないよ
427デフォルトの名無しさん:2007/10/29(月) 12:51:13
(;^ω^)
428デフォルトの名無しさん:2007/10/29(月) 13:06:38
あと5年かどうかは別として
アセンブラはもう使わなくて良い時代になってきたな。
429デフォルトの名無しさん:2007/10/29(月) 14:06:25
お前は改造マリオを馬鹿にしたっ(゜Д゜#)
430デフォルトの名無しさん:2007/10/29(月) 16:11:28
改造マリオ?
何だそりゃ?
ちょっと任天堂にメールで聞いてみる。
431デフォルトの名無しさん:2007/10/29(月) 16:34:33
本当に送るなら任天堂の反応晒して
432デフォルトの名無しさん:2007/10/29(月) 16:59:44
改造マリオってデータだけ変更してプログラムは同じなんじゃないか
433デフォルトの名無しさん:2007/10/29(月) 20:55:33
なんというニコ動ネタ
434デフォルトの名無しさん:2007/10/30(火) 00:30:06
>>411
いや、普通にF505もF506も動いたよ
F900も問題無し
F系はそれ以前にくだらねえ問題がちらほらあるから好きじゃないな!w
435282:2007/10/30(火) 10:30:29
いまさらながら、whileループで間違えた部分があるので修正。
startで無限ループじゃなくて、IApplicationを継承したクラスの
コンストラクタで無限ループしたらアウトだったわ。
startでは試したことなかった。ってか俺startの中身は空だわ^^
436デフォルトの名無しさん:2007/10/30(火) 11:23:23
>>434
290にも同じ事書いたばかりだけど、
ウチでもstart無限ループで問題になってる機種は無い。
先ほど調べたらFOMA全機種対応の
MediaListener使ってるアプリも評価パスしてるわ。

思うに、保証されてはいないものの、どの機種も問題ないのではないかと。
だからと言って推奨はしないけど。
437デフォルトの名無しさん:2007/10/30(火) 11:27:45
>>435
流石にそれは間違えすぎだろw
流石にコンストラクタで無限ループなんてするなよ!
コンストラクタで全て初期化してから、start()に処理が回ってくる仕様なんだからさ
438デフォルトの名無しさん:2007/10/30(火) 11:42:16
>>435
君の指摘により何人が検査やり直したと思ってるんだ?w


はい俺も完璧に釣られますた(=´∇`=)
439デフォルトの名無しさん:2007/10/30(火) 11:50:23
自作テンプレを絶対的に信じてるから
検査やり直しとかする気も無い(`・ω・´)

かれこれ4年間改良を続けて来たものだしな。
440デフォルトの名無しさん:2007/10/30(火) 20:45:41
MIDPというかauとかに移植するときってどうしてる?プリプロセッサ使う?それとも互換クラス作ってる?
441デフォルトの名無しさん:2007/10/30(火) 21:34:33
>>439
俺のN88BASICから始まる合計15年分の経験則は
その思い込みこそがプログラムにおけるもっとも危険な思考だと警告してる
442デフォルトの名無しさん:2007/10/30(火) 21:56:30
まあ結局のところ、 >>439>>441 のどっちもが正しい、というのが現実だがな
一時の思い込みで過去完璧に動いてきたプログラムをいじるのは、予想してるよりはるかにリスクが高い。
といいつつ、絶対に間違いのないプログラムなど決してない。
443デフォルトの名無しさん:2007/10/30(火) 22:07:02
>>442
リスクが高いと理解するのと自分が作ったものを盲信するのは次元が違うと思うがな
444デフォルトの名無しさん:2007/10/30(火) 23:08:23
でも4年間問題なく動いてきたシステムに自信を持つのは悪いことじゃないと思うがね
445デフォルトの名無しさん:2007/10/30(火) 23:47:55
>>444
自信を持つのは別に悪くは無いがそれを盲信するのは問題だろう
まず最初に疑うべきは自分自身とそのソースコードだ
それを理解した上で自分の知識と知恵と経験を総動員することこそがプログラムの醍醐味ではないのかね?
446デフォルトの名無しさん:2007/10/31(水) 00:39:17
「盲信」っていうのは、過去と今の状況の違いを忘れて
コードの実績を信じる、という感じかな?

ぜーんっぜん関係なさそうな箇所の違いが、いままでの
実績の前提条件を崩してたのに気づく、とかいうことはあるな。

こういう熟成されたコードに修正を入れなきゃいけない問題が
出たら「あー、カビ生えちゃった」とか言わない? 言わないか・・・。


447デフォルトの名無しさん:2007/10/31(水) 00:43:06
私的には、世界で最も信用ならないのは、自分が書いたコードだと思う。
448デフォルトの名無しさん:2007/10/31(水) 01:56:19
至言だ。
449デフォルトの名無しさん:2007/10/31(水) 03:28:51
N900iの端末で動くアプリを作るため、
最近環境整えた。

J2SE SDK 1.4.2
Eclipse 3.2.1
Doja 4.0

古い J2SE と古い Eclipse を探すのに苦労した。




どうせインストールするなら最新版をインストールしたかったな(´・ω・`)
450デフォルトの名無しさん:2007/10/31(水) 04:08:28
全部最新版でも問題なく作れるはずだがなんか不具合あったっけ?
451デフォルトの名無しさん:2007/10/31(水) 10:12:02
N900iはDoja3.5という突っ込みはあり?
452デフォルトの名無しさん:2007/10/31(水) 13:12:40
え?最新版でも問題ないの?(´∀`)

(すいません、N900iは Doja 3.5 でしたorz)

改めて質問・・・

Doja 3.5 は、Java6、Eclipse Europa(3.3.3)に対応していますか?

以下のサイト
http://www.nttdocomo.co.jp/service/imode/make/content/iappli/about/tool_foma2.html
を読むと、J2SE 1.3.1、Eclipse 2.1.1 にしか対応していないような書き方がされているのですが・・・
サイト側の情報が古いだけで、最新版でも問題ないのですか?
453デフォルトの名無しさん:2007/10/31(水) 13:14:07
やってみないと分らない
454デフォルトの名無しさん:2007/10/31(水) 13:21:59
やってみる価値があるということがわかっただけで大収穫です
どうせなら最新版インストールしたかったので・・・
とりあえずやってみます。結果報告は1週間後かもですがよろです。
455デフォルトの名無しさん:2007/10/31(水) 13:42:46
100kアプリくらいまでならIDE無しの
テキストエディタだけで作っちゃうからなぁ(´・ω・`)
456デフォルトの名無しさん:2007/10/31(水) 13:46:28
Doja5.0SDKでも問題ないって意味だと思った
457デフォルトの名無しさん:2007/10/31(水) 14:19:35
>>452
DoJa3.5のiαppliToolだと環境変数弄らんとJava6使うの面倒だったと思う。
5.0なら6使っても自動でコンパイルオプション付けてくれるから平気。
ついでにEclipse3.3でも5.0のプラグイン使える。

コンパイルは5.0ので平気だけど、3.5以降の拡張API使うとアウト。
気になるなら3.5もインストールして、
Eclipse側のライブラリのパスを書き換えとけばおk。

ちなみにEclipseでコンパイルするとアプリサイズが大きくなるんで、
最終的にiαppliToolで吐き出す前提で書いる。
Eclipseのみでよければ上記の制約は幾つか無くなる。
458デフォルトの名無しさん:2007/10/31(水) 14:54:35
>>457
DoJa5.0SDKのエミュレーター環境設定のビルドの設定でターゲットプロファイルをDoJa3.5にしておけば
4.0とかのAPIを使えばコンパイル時にエラー出してくれるよ

ただエミュレーターそのもので動かす際には5.0までのAPIが使えちゃうのと
微妙にだが5.0SDKでターゲットプロファイルを弄って吐かせたコードと
3.5SDKで吐かせたコードが異なる場合があるみたいなんで
完全に安全を期するなら3.5SDKも入れておいて普段は5.0SDKとそのプラグインで作って完成してから
3.5SDKでコンパイルして動作確認撮ればいいはず
459デフォルトの名無しさん:2007/10/31(水) 18:58:20
240x240の画面を縦4横3の12個に分けて0〜9、*、#に対応した箇所に画像を表示するアプリを作っています。
getKeypadState()メソッドを使って複数キーの同時押しにも対応させたつもりです。

エミュレーター上では、全ての同時押しを取得しそれぞれ表示できそうなのですが(ビープ音が鳴る個数以上は検証出来ない)
実機(N904i)では2個までしか取得できないでいます。(3個目は2個のうちどちらかが離されないと表示されない)

3個以上の同時押しキー取得はiアプリの仕様で無理なんでしょうか?
460457:2007/10/31(水) 19:00:54
あー、ゴメン。1点勘違い。
Eclipse3.3でDoJaプラグイン試してないわ。
プラグインはEclipse3.0/3.1用とあるけど、3.2では動いた・・・の間違い。
461デフォルトの名無しさん:2007/10/31(水) 19:02:00
>>459
iアプリというより端末の仕様だな。
462デフォルトの名無しさん:2007/10/31(水) 19:17:21
2個まで同時押し保証、3個目以降機種依存じゃなかったっけ。
同時押し前提のアプリは作らん方が良いよ。
463デフォルトの名無しさん:2007/10/31(水) 19:51:45
同時押しそのものが機種依存じゃなかったか?
でなけりゃD504i,D505i,D505iSとか仕様に則ってないことになるぞ

つーか同時押しそのものに関しての記述がdocomoの資料にはない
464デフォルトの名無しさん:2007/10/31(水) 20:29:35
Dで同じ列2つはダメとかそんな感じのあったな。
465デフォルトの名無しさん:2007/11/01(木) 04:47:58
QRcode:ttp://stat.ameba.jp/user_images/f0/88/10035722472.png
ぶっちゃけ無限プチプチのiアプリ版を作ったのですよ。
無限プチプチで2個までしか押せないとかヒドスw

端末の仕様か…もうどうしようも無いから開発終了orz
466デフォルトの名無しさん:2007/11/02(金) 06:08:47
>>402
 私もstartでループしまくってるよ。スレッドを使うのは通信処理だけ。
ゲーム作ってるんだけど、音も出してるしprocessEventも使ってるけど問題ないよ。
全機種チェックして問題でなかったしユーザからもクレームは来てない。

 ただ、これが正攻法ではないとは思うけどね。10Kアプリからの名残というか。
docomoもそこら辺わかってるから、このまま動かしてくれるんでないかな。
MIDPは2つスレッド作ってるけど。

 数週間分まとめて読んだけど、上の件、結論出てたのか・・

 しかしP900とN900の不具合はひどい。どれだけ悩んだか(1日だけど)・・対象外にしたいくらい。

 あと、MLD。さっさと統一してほしいもんだ。
467デフォルトの名無しさん:2007/11/02(金) 16:09:52
MLDは、905からNがヒュートレックになって、Yamaha ADPCMはさようなららしいよ。
468デフォルトの名無しさん:2007/11/02(金) 16:19:34
携帯のチープなスプーカーには
YAMAHA音源のほうが合ってるのにね
469デフォルトの名無しさん:2007/11/02(金) 16:59:02
>>467
マジですか。
ちょっと悲しいけど、しょうがないな。
470452:2007/11/02(金) 23:08:37
勉強になります。

だいぶ勘違いしていました。

DoJa 3.5 のアプリを作るには、DoJa 3.5をインストールしておいて、
開発環境は Java6 + Eclipse 3.3.3 + DoJa 5.0 で
拡張APIに注意しながらコードを書いて
(Eclipse側でライブラリのパスをDoJa 3.5のものに書き換えればOK?)、
その後、DoJa 3.5 SDKでコンパイルして動作確認する、と・・・

ところで、以前、DoJa 3.5のアプリを作ろうと思って J2SE 1.4.2 をインストールしたのですが、
Java 6 をインストールしたら、この J2SE 1.4.2 は削除してしまっても問題ないのでしょうか?
471デフォルトの名無しさん:2007/11/03(土) 01:05:01
ADF ProfileVar -> DoJa3.5
472デフォルトの名無しさん:2007/11/03(土) 19:42:35
正直、一つのファイルで全端末鳴らせるようになればどれでもいい
473デフォルトの名無しさん:2007/11/03(土) 20:00:16
悲しいこと言うなぁ
474デフォルトの名無しさん:2007/11/03(土) 20:13:45
端末間での違いって、機械的にデータ修正できるようなものなの?
MLDファイルをアプリ上で動的に再生成して、上手いことやれないのかな。
475デフォルトの名無しさん:2007/11/03(土) 20:19:59
>>474
音付きのエミュレータアプリがあるくらいだから出来ると思うけど激しく重そう
476デフォルトの名無しさん:2007/11/03(土) 20:21:46
ところで音声のMLDが一つに統一できなかった理由ってNがヤマハのチップにこだわってたからって解釈でいいの?
477デフォルトの名無しさん:2007/11/03(土) 20:38:46
むしろ他メーカーがヤマハを採用するのをしぶったともいえる
国内他キャリア考えると、これはこれでめんどい話だ
478デフォルトの名無しさん:2007/11/04(日) 00:18:13
Eclipseで開発していて、Doja5.0でデバッグする際に端末を設定する方法はありますか?

ADFのDrawAreaが240x320のアプリをデバックする際にDoja5.0の端末のデフォルトが240x240らしく、
「DrawArea の値が不正です」というエラーが返ってきます。
479478:2007/11/04(日) 00:20:33
すみません、解決しました。
見当違いなところをずっと探してました・・・
480デフォルトの名無しさん:2007/11/04(日) 01:58:45
自機(携帯)のメアドはどうすれば取得できますか
481デフォルトの名無しさん:2007/11/04(日) 02:04:20
ここを見るとN905iもYAMAHAっぽいんだが。
ttp://www.n-keitai.com/pickup/n905i/

FUETRECは、あまり情報を公開してくれないから嫌い
482デフォルトの名無しさん:2007/11/04(日) 23:23:02
N905iもYAMAHAのサウンドチップ搭載だが。
ADPCMは再生可能。
483デフォルトの名無しさん:2007/11/05(月) 00:32:27
ROHMは駆逐されたの?
484デフォルトの名無しさん:2007/11/05(月) 15:32:33
MLDはやっと統一されるかと思ったけど、LとNMが・・。
MLDが統一されていないのはdocomoが主導してハードの上に1枚被せるようにしなかったのが悪い。
foma切り替え時にでもやれただろに。
485デフォルトの名無しさん:2007/11/05(月) 15:45:45
でもそれをすると被せなくても済むメーカーとそうでないメーカーとで
価格差や設計の難易度に響くからできないんでしょ。
mdlの差分がどーのこーので困るって一部の開発者の都合だし。
その視点でものを言えば
そもそもDoJaとMIDPとBREWが存在すること自体ウザイ訳でw
486デフォルトの名無しさん:2007/11/05(月) 17:06:27
結局 Java の Write Once, Run Anywhere なんて幻想さ。
487デフォルトの名無しさん:2007/11/05(月) 17:47:45
幻想なのはJ2MEが出てくる以前からすでに知られていて信じていたのは一部のJava狂信者だけ
488デフォルトの名無しさん:2007/11/05(月) 17:49:19
>>485
DojaとMIDPはなんとかなってもBREWはどうしようもないもんなぁ・・・
489デフォルトの名無しさん:2007/11/05(月) 17:55:14
iアプリの作成で行き詰っています。

Canvas1(タイトル画面)→Panel(入力画面)→Canvas2(メイン画面)という構成のiアプリを作成しています。

PanelとCanvas2をsetCurrent()メソッドを使用して、相互に画面を切り替えられるようにしたのですが、
Canvas2でキー操作を行ったあとで、Panelに画面を切り替えると、
Canvas2で行ったキー操作が、なぜかPanelでも反映されてしまいます。

どなたかこの問題を解決する方法を教えていただけないでしょうか。
よろしくお願いします。
490デフォルトの名無しさん:2007/11/05(月) 18:00:31
release yo?
491デフォルトの名無しさん:2007/11/05(月) 18:15:36
>>489
キーイベント受けてから少し待ってsetCurrent
492デフォルトの名無しさん:2007/11/05(月) 18:59:36
>>491

見当違いなことを聞いていたらすみません。
少し待つというのは、たとえば、Thlead.sleep(1000)
とすればいいのでしょうか?

待ってみてもやはりキー操作が反映されてしまいます。
493デフォルトの名無しさん:2007/11/05(月) 19:17:45
>>492
おしい
494デフォルトの名無しさん:2007/11/05(月) 21:09:38
みんなDojaかMIDPにして、アプリ用のメモリサイズや画面サイズタイマー精度などを全て統一すれば良いのに。
495デフォルトの名無しさん:2007/11/05(月) 22:25:59
そういうことするとたいてい進化が止まるね
496デフォルトの名無しさん:2007/11/06(火) 00:04:02
>>493
すみません!
Thread.sleep()ですね。

でもできませんでしたorz
497デフォルトの名無しさん:2007/11/06(火) 01:11:37
canvas1で押した瞬間に処理するんじゃなく放した瞬間に処理するようにすればいい
498デフォルトの名無しさん:2007/11/06(火) 02:28:44
そういえば数年前スタープロジェクトとかいうDocomoとsunで
組んで新しい携帯用のプロファイル作るって話はどうなった?
499デフォルトの名無しさん:2007/11/06(火) 02:43:26
スタープロジェクトwあったなぁ
つーかそんな内容だったっけ、もう忘れちゃったよ
500デフォルトの名無しさん:2007/11/06(火) 05:00:08
全く話題にもならんし立ち消えじゃないの?
というかsun側が正式にDoJaをプロファイルの一つに入れるとかじゃない限り
今更DoJaの既存クラス大幅変更なんてできないだろ
旧メソッドを残して上位互換としてクラスを変更してくってのもまたデバグとかの面でかなり面倒だし
501デフォルトの名無しさん:2007/11/06(火) 10:19:12
>>496
processEvent内でThread.sleepは無効と思っとけ。
前スレの後の方にprocessEvent使わないサンプルあるから使ってみれ。

>>497
キーアップでもパネルにキーイベントが残る端末があったような。
502デフォルトの名無しさん:2007/11/06(火) 14:33:13
Doja 3.5 のアプリ開発の開発環境に悪戦苦闘している俺です。

Java EE 6 (java_ee_sdk-5_03-preview2-windows.exe)でも Doja 3.5 アプリの開発できますか?

Windows XP sp2 です。
ここさえ乗り越えれば、アプリ作り放題の日々が待っているんです。
503デフォルトの名無しさん:2007/11/06(火) 14:43:36
って、>>457 の方がまさに俺宛に回答してくれてたorz

前回、457を読んだ時はレベルが高すぎて・・・もう少し環境整えたら
もう一度再読しようと思ってたんだっけ・・・。

Java 6 で i アプリを開発する場合は、DoJa 5.0 を入れて DoJa 5.0 のコンパイルオプションを利用する、
でしたね。


Java EE は、 Java SE も含んでいるから・・・問題ない、と。

すみません、解決しましたm(._.)m

端からみると、同じような質問を繰り返してるようにしか見えませんねorz
504デフォルトの名無しさん:2007/11/06(火) 18:35:28
改行がうっとうしい
505デフォルトの名無しさん:2007/11/06(火) 18:58:57
つくるのめんどくさい
506デフォルトの名無しさん:2007/11/06(火) 23:06:43
テクスチャのUV指定について質問があります。
現在Doja5.0でマスコットカプセルを使って
COMMAND_RENDER_QUADS(四角形ポリゴン)をコマンドリストで描画させているのですが、

テクスチャBMPの(0.0)の座標に置いてある「16ドット四方のグラフィック」を単純に画面左上に等倍の大きさで貼り付けたい場合、

4つの頂点座標は平行投影で
( 0, 0) (16, 0) (16,16) ( 0,16)で、

その場合UVをおなじく
(0,0) (16,0) (16,16) ( 0,16)
にすると、右側1ラインと下側1ラインが1ドットずれてテクスチャマッピングされてしまいます。

この場合UV指定は16ではなく15にしないといけなかったりしますか?
507506:2007/11/06(火) 23:15:39
(続き)
テクスチャ座標 ( 0, 0) (16, 0) (16,16) ( 0,16)
UV座標     ( 0, 0) (16, 0) (16,16) ( 0,16)
だと、 スクリーン上の16ドット四方の領域に 15ドット四方のテクスチャがマッピングされている、といった感じになってしまいます。

とすると
テクスチャ座標 ( 0, 0) (16, 0) (16,16) ( 0,16)
UV座標     ( 0, 0) (17, 0) (17,17) ( 0,17)
にすればいいのでしょうか・・う〜ん
508デフォルトの名無しさん:2007/11/07(水) 00:13:44
porigon sure iki nasai
509デフォルトの名無しさん:2007/11/07(水) 06:20:00
>506
>361と同じ話か?
510デフォルトの名無しさん:2007/11/07(水) 11:47:11
511デフォルトの名無しさん:2007/11/07(水) 14:17:53
905とか705のDojaのバージョンって、
いくつなんですかね?

もう公式発表されてましたっけ?
512デフォルトの名無しさん:2007/11/07(水) 15:10:29
まだドコモ公式には置いてないね。
705iは知らんが、905iは5.1かね。
5.1の開発ガイドとエミュはすでに一般公開されてる。
513デフォルトの名無しさん:2007/11/07(水) 17:38:58
通信にプログレスバーを付けたいのですが、現在「どれくらい通信が済んでいるか」を取得することってできますかね?
514デフォルトの名無しさん:2007/11/07(水) 17:42:28
>>513
え・・・ストリームからデータを読み込むときに戻り値で把握できるはずなんだが
なんで「どれくらい通信が済んでいるか」を取得したいと考えたのかそれが不思議
515デフォルトの名無しさん:2007/11/07(水) 17:50:12
え?
ストリームから読み始められる時。つまり
HttpConnectionのconnect()が制御を返した時って、既に通信は全て終わっていませんか?
ストリームからどれくらい読み出せているかを表示したいのではなく(それは一瞬だと思いますので)、通信があとどの程度で終了するのかを表示したいのです
516デフォルトの名無しさん:2007/11/07(水) 17:56:44
>>515
一瞬で終わるのなら終わりでいいだろうに・・・
というかそもそも1回の通信で150kbしか受信できないのは知ってる?
517デフォルトの名無しさん:2007/11/07(水) 17:59:05
今まさにデータを受信してる最中ですって時に
何バイト受信したかをリアルタイムで知りたいってんだろ?
答え:不可能。
以上。
518デフォルトの名無しさん:2007/11/07(水) 18:05:08
>>516
いくらなんでも読解力無さ過ぎ
519デフォルトの名無しさん:2007/11/07(水) 18:05:15
>517補足。
受信バッファを仮に1024byte分用意して、byte[] buf = new byte[1024];
それで細切れに読み込んで、今何回目の読み込みかで計測するくらいはできる。

でもそれで描画処理まで挟むのは面倒臭いと思う。
1ファイル完了ごとに(=1回の通信をクローズするごとに)バーを進めるくらいならまぁ。
520デフォルトの名無しさん:2007/11/07(水) 18:07:47
どうせ一回に150kbしか受信できないんだから素直に受信が終わるごとにバーを進めたらいいのに
521デフォルトの名無しさん:2007/11/07(水) 18:09:15
>>517
不可能ですか。ありがとうございました

>>519
ストリームからの読み込みは超速いので描画処理挟むのは微妙ですよね。

1ファイルを小さくすれば細かくバーを進められますね。
接続準備時間がもったいないから絶対やりませんけどw
150KBをDLしきるのはそこそこ時間かかるので、その間バーを(正しく)進めたかったんですけどね…

勝手にちょっとずつ伸びてく偽バーで「進んでるように見せる」のはアホらしいですよね…
522デフォルトの名無しさん:2007/11/07(水) 18:35:37
>>521
いや、アホらしいんじゃなくてそれが普通。
ダウンロード中のバイトサイズまできっちり制御できんのはBREWくらい。
523デフォルトの名無しさん:2007/11/07(水) 19:33:04
BREWごときができんのにさ・・・
524デフォルトの名無しさん:2007/11/07(水) 19:37:37
ファイルが複数あるなら、ダウンロードするデータ量と、ダウンロードが完了したデータ量で割り算すれば
計算できないこともないけど、よくある例としては
・進んでるように見せるバー(IEとか某フルブラウザとか)
・アニメーションするバー(Windows起動時とかiTunesとか)
・アニメーションする画像(古いIEの地球儀アイコンとか)
525デフォルトの名無しさん:2007/11/07(水) 19:41:35
BREWが出来るのかどうか調べないとわからないけど
UNIXとかWindowsとかでも>>519見たいに細切れに読みながらバーを進めるのが普通のやり方のはずだが・・・
526デフォルトの名無しさん:2007/11/07(水) 20:03:23
通信を別スレッドでまわして、描画処理してるスレッドで
[受信サイズ/contentlength]を表示すればよいだけじゃないの?
ファイルが複数ならそれも考慮すればいいだけだし。
おれはそうやってるが。
527デフォルトの名無しさん:2007/11/07(水) 21:51:21
read()に入る前に、ダウンロードは終了していまっているとかいう話
526は、Java側で処理した量の話
528デフォルトの名無しさん:2007/11/07(水) 21:52:10
>>521
10Kくらいずつならファイル分割してもいいんじゃないか
529デフォルトの名無しさん:2007/11/07(水) 22:00:41
readから戻ってきた時点で通信が終わっているとは限らない
仮に終わってるような短時間の通信であればそんなのを考慮する意味がない
530デフォルトの名無しさん:2007/11/07(水) 22:00:51
>>511
最低でも5.0LEかな
L705i,L705iXが500Kアプリ
NM705iが30+200Kアプリであることと
それ以外がメガアプリ対応であることが判明してる
531デフォルトの名無しさん:2007/11/07(水) 22:04:45
上補足
L705i,L705iX,NM705i以外は最低でも5.0LE
532デフォルトの名無しさん:2007/11/07(水) 22:11:21
その情報ってプレスリリースとかどっかニュースサイトで出てる?

ソース出せよって煽りじゃなくて
関係者情報リークだったら無茶すんなって意味でw
533デフォルトの名無しさん:2007/11/07(水) 22:19:43
docomoのオフィシャルサイトからの情報だけど?

ttp://www.nttdocomo.co.jp/product/foma/705i/l705i/spec.html
ttp://www.nttdocomo.co.jp/product/foma/705i/l705ix/spec.html
ttp://www.nttdocomo.co.jp/product/foma/705i/nm705i/spec.html
上記以外は自分でurl調べてサイトの方みてくれ
全部メガiアプリになってるから
534デフォルトの名無しさん:2007/11/07(水) 22:24:31
ちなみにL704iはDoJa-3.5LEだが500Kアプリと記載されてるので
実際の500K(500K以内であればJARとスクラッチパッドのサイズ比は自由)アプリか100+400Kアプリかどうかは判別できない
535デフォルトの名無しさん:2007/11/07(水) 23:38:16
ちょっと前に、start()での無限ループ+processEvent()は実装依存と言
う話がありましたが、仕様を満たすには、start()のメインループ部分を
別スレッドにしちゃうとかで解決できるんでしょうか?

この場合、IApplicationにRunnableを実装して、run()にメインループを押
し込んじゃえばいいんでしょうか?

Canvasを使うの初めてなんで、どうせ創るなら仕様を満足した方がいい
かと思って。
536デフォルトの名無しさん:2007/11/08(木) 00:29:14
>>498
個人的考えだけど、携帯Javaは今後携帯電話向けFLASH+AS3かFLASH+AIRの
つなぎとして生きて消えていくしかないよ

ドコモも「共通仕様? 利益にならんでしょ」と言っちゃう会社だしな
サンは知らんが、当のドコモはもうやる気ないだろうし、アプリ関係はアドビに任せたいだろ
BREWの進化の早さっぷり見てれば、数社で独自仕様をさっさと進化させて
金に換えれる方がいいじゃないか。MIDPの停滞ぷりをみよ
537デフォルトの名無しさん:2007/11/08(木) 01:02:56
doja5.0で一部のアプリ実行時にwindowsがエラーを吐いて実行できないようになった

resフォルダにでかい画像ファイルなんかを入れて再コンパイル
ソースを適当に組み替えて再コンパイル
のどちらかの方法で一応実行できる様にはなる

どうやら最近あったwindowsアップデートの影響らしいんだけど
皆はどうですか?
538デフォルトの名無しさん:2007/11/08(木) 03:04:42
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ     >>536
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
539デフォルトの名無しさん:2007/11/08(木) 03:07:18
どう見ても釣りだな
でなければかなり偏ってる
いずれにしろ参考にならない
540デフォルトの名無しさん:2007/11/08(木) 10:05:09
なあ、ゲームとかの画像とか音楽データとか挿入動画みたいのをSDに入れてそれを再生するってできんの?
Bindingにしかアクセスできないんだけど調査不足?それとも気のせい?
全部をダウンロードさせるのって結構面倒なんだけど
541デフォルトの名無しさん:2007/11/08(木) 12:47:19
エスパーきぼんぬっすか
542デフォルトの名無しさん:2007/11/08(木) 13:25:42
>>501
前スレをみて少しやり方を変えたら問題が解決しました。
ありがとうございました。
543デフォルトの名無しさん:2007/11/08(木) 14:08:53
DoCoMoから落とせる5.Xコンテンツ開発ガイドに、
905はdoja5.1って書いてあるな。

これが公式発表みたいなもんかね。
544デフォルトの名無しさん:2007/11/08(木) 19:19:00
N904i について聞きたいのですが、この機種、私が試した範囲ではSystem.gc()してもメモリーを一切解放してくれません
しかもそのまま使いつづけていくと劇的に処理速度が低下していき、FPS60なんて保ってられず・・・
みなさんどのように対策してますか?

同じアプリでもN903iやF903iは問題なく開放されました

・開放されてない
System.getRuntime().getFreeMemory() で空きを調査して、空きが増えることは一切なく減る一方
String str = "ほげ";
str = null;
System.gc();
をループさせるだけでも、どんどん"ほげ"がメモリーリーク(と呼んでもいいかも)していきメモリーがガンガン減っていく

・ループ
IApplicationのstart()内で無限ループしている状態
545fr:2007/11/08(木) 19:20:26
携帯裏アプリ
ポケモンが熱い
http://62.xmbs.jp/yosukeapuri/
546デフォルトの名無しさん:2007/11/08(木) 19:59:15
>>544
そもそも、文字列リテラルの代入だけではピープは消費しない
携帯でなくても、Java SEで試せばわかる
それなのにピープの空き容量が変わるということは、どこか別のところに問題がある

やるならこう
String str = new String("ほげ");
547デフォルトの名無しさん:2007/11/08(木) 20:29:06
>>546
ごめん、思い出しながらコード書いたもので間違えた
とりあえず、newしたものをnullいれて、System.gc()しても空きメモリーが回復しないのは確かでした

他携帯なら問題なかった(903だけではなく、いろんな901や902でも試した)ので、コードに問題があるとはあまり思えないところです
548デフォルトの名無しさん:2007/11/08(木) 21:23:24
すまんがピープワロタ
549デフォルトの名無しさん:2007/11/08(木) 21:24:52
>>546
何を覗くんだ?
550デフォルトの名無しさん:2007/11/08(木) 21:30:15
>544
System.gc()のあとにThread.sleep()入れても意味ないかな。わからんが。

どうにもならなかったら
高速性を要求されるところでは、なるべくメモリを動的に確保しないようにする
で対策なのかな。(対策って言うんかこれ)
551デフォルトの名無しさん:2007/11/08(木) 22:25:11
>>550
問題は、高速性を要求されなくなったから「さあ溜まってたゴミを捨てようか」と思っても捨てられないこと
N904に正式に対応する場合、起動時に全て静的にとるなんていう馬鹿コードになる可能性が・・・
552デフォルトの名無しさん:2007/11/08(木) 22:34:21
>>551
FPS60がどのくらいまで落ち込むの?止まるの?
553デフォルトの名無しさん:2007/11/08(木) 22:53:55
数分で、FPS20くらいまではとりあえず落ちましたね
はっきりいってボロボロです

耐久テストしてるので明日また報告します
554デフォルトの名無しさん:2007/11/08(木) 22:56:07
スタックが一つポップされるまで回収対象にならないとか
555デフォルトの名無しさん:2007/11/08(木) 23:40:24
fpsを数字の前に持ってくるな。気持ち悪い。
556デフォルトの名無しさん:2007/11/08(木) 23:48:06
>>544
その機種が壊れてるんだよ
初期出荷の携帯はシステムにバグが多い
アップデートする必要があるかもしれないからDSに聞いてみるといい
557デフォルトの名無しさん:2007/11/09(金) 00:19:10
>>556
その可能性もありますね
OSアップデートで修正される(初期出荷時には間に合わなかった?)かもと
正直こんな仕様じゃ、既存リリースのアプリが何一つまともに動きませんからね

・Thread.sleepを入れてみる
・IApplication#start()の中で無限ループするのをやめてみる
・OSをアップデートしてみる

明日これらを試してみますが、他にもアイデアがあればよろしくお願いします
558デフォルトの名無しさん:2007/11/09(金) 01:35:08
>>554に1票
559デフォルトの名無しさん:2007/11/09(金) 09:19:34
原因わかりました
メモリー量を画面に表示していたのですが、その際
g = img.getGraphics();
g.drawString(略);
g.dispose();

を行なっており、原因はこれです
N904iはgetGraphicsしたGraphicsを、きちんとdisposeしてもリークさせるようです
解決策としては一度作ったGraphicsは生成しなおさないということになりますが、複数持ちたい場合困りますね・・・
560デフォルトの名無しさん:2007/11/10(土) 12:10:00
N904i使いだけどこの機種フリーズ、再起動、電源落ちは当たり前
絶対バグありまくりだよ
561デフォルトの名無しさん:2007/11/10(土) 13:37:10
交換しろよ
そんな症状は出ない
562デフォルトの名無しさん:2007/11/10(土) 14:39:00
>>559
imgも一緒に開放(dispose)してもリークする?
563デフォルトの名無しさん:2007/11/10(土) 20:15:58
iチャネルに関すると思われるエラーが最近多い
長く使うと携帯は壊れるものなのかもしれない
564デフォルトの名無しさん:2007/11/10(土) 23:31:42
bitrotかも。
565クリフト:2007/11/12(月) 14:08:21
Doja4.1でD800iDS用のタッチパネル式アプリを作成しています。
タッチアクションの処理をボタンの長押しにするには下のソースコードをどう変形すればよいでしょうか?

// タッチアクションの処理
public final void touchControlAction (TouchControl source, int type, int x, int y) {
// Rightボタンの押下
if (source == rightButton && type == TouchControlListener.CLICKED) {
i++;
566デフォルトの名無しさん:2007/11/12(月) 14:14:55
>>565
使ったこと無いけどメインループ作れって事で。

if( source == rightButton ) {
bRight = type == TouchControlListener.CLICKED;
}

メインループ
if( bRight ) {
i++;
}
567クリフト:2007/11/12(月) 18:42:51
>>566
ありがとうございます。
うまくいきませんね。もうチョイがんばってみます。
568デフォルトの名無しさん:2007/11/12(月) 19:40:41
>>567
うまくいかないって touchControlAction の中に
ループ作ってるってオチじゃないよな?
569デフォルトの名無しさん:2007/11/12(月) 19:57:52
570デフォルトの名無しさん:2007/11/13(火) 01:22:29
携帯Javaアプリやってるわけではないのですが、皆さんに質問。

携帯Javaの利点ってなんでしょう?私も組み込みプログラマ
の端くれでCでitronやLinuxで開発しています。で、結構
速度の要求だけは顧客から来るので、省メモリコピーなどに
腐心していて、C++ですら使いたくても使えないような状況なんです。

組み込みJavaの利点って、汎用のフレームワークがあるから
という、単なるプラットフォームの問題だけなのかな?
だとしたら、ソフトバンクやGoogleなんかが提唱しようとしている、
OpenKODE(OpenGL/ES)ベースのプラットフォームが、無償で提供されて、
高速だったりすると、そっちのほうがよかったりするのかな。

素朴な疑問です。
571デフォルトの名無しさん:2007/11/13(火) 01:32:58
誤爆ですよね
スレ一覧よく見てください
572デフォルトの名無しさん:2007/11/13(火) 02:01:40
>>570
int foo[5]; みたいな配列で foo[10]=8; とかやったらどうなるかって事
573デフォルトの名無しさん:2007/11/13(火) 03:11:04
>>571
そんなにスレ違いとも、おもわないんだが。
574デフォルトの名無しさん:2007/11/13(火) 04:30:34
Javaをよく知らなくて>1が分からなかったのなら仕方がない
575デフォルトの名無しさん:2007/11/13(火) 07:58:14
>>570
Javaにどんだけ利点があろうがなかろうがウンコだろうがiMODEで商売しようと思ったら
Java使うしかないんです><
汎用フレームワークがあるっていうかそれしかないっていうか
576デフォルトの名無しさん:2007/11/13(火) 09:20:44
本物の技術者なら、目の前のオモチャで遊ばないなんて。
面白いぞ、たとえ実用性は二の次でも。
577デフォルトの名無しさん:2007/11/13(火) 09:42:22
>>570
そんな現状動かないものを考慮してもしょうがない
携帯アプリを作る選択肢が携帯JavaかFlashかJSしかない
ただそれだけ
578デフォルトの名無しさん:2007/11/13(火) 11:15:11
速度か速かろうと遅かろうと、ユーザーにとっては面白ければなんでもいいわけで。
579デフォルトの名無しさん:2007/11/13(火) 13:00:03
よくマジレスするなと感心させられますw
580デフォルトの名無しさん:2007/11/13(火) 15:29:39
>>570
セキュリティを管理するOS が無かった昔の携帯電話で、
セキュリティの問題なくアプリを動かすには
 (a) Java 等のサンドボックスで守る方式
 (b) BREW等の検証済みの公式アプリしか使わせない方式
のどっちかが必要だったわけです。
いまでも実際には似たようなもんで、ネイティブコードのアプリを実行
できる式の携帯電話は大抵ハックされてるよね。
581デフォルトの名無しさん:2007/11/13(火) 20:13:46
>>577
GoogleのアンドロイドSDKが公開されましたね。
http://code.google.com/android/what-is-android.html

予想通りOpenGL/ES採用しているっぽい。JavaのVM(Dalvik)が、
OpenGL/ESと並列で並べられているということは、携帯Java
を追い落とそうという意志が感じられないでもない。
582デフォルトの名無しさん:2007/11/13(火) 20:23:33
移植メンドクセーんだから余計なもん増やすなよ検閲エンジン
583デフォルトの名無しさん:2007/11/13(火) 20:33:36
スレ違いはそろそろしんでください^^;
584デフォルトの名無しさん:2007/11/13(火) 21:29:26
>>570
適当に作っても平気なのはかなりのメリットだな。
javaもC/C++に比べれば全然簡単だし、
学生が遊び感覚で作れるのはいいとおもう。
585デフォルトの名無しさん:2007/11/13(火) 21:39:53
>>581
OpenGL/ESはドコモもすでに採用してるわけだが
JavaとOpenGL/ESを無料に関連付けて何がしたいんだろう?
586デフォルトの名無しさん:2007/11/13(火) 21:45:11
アプリエミュでスリープ時間測定したらかなりずれたんだけど
エミュのバグでしょうか。
sleep(10)=16
sleep(20)=31
sleep(30)=31
sleep(40)=47
sleep(50)=63
sleep(60)=62
sleep(70)=78
sleep(80)=94
sleep(90)=94
sleep(100)=109
ちなみに実機だと正しくスリープしてました。
587デフォルトの名無しさん:2007/11/13(火) 22:00:56
そーゆーもんだとおもう。
制度そんなに高く無いお
588デフォルトの名無しさん:2007/11/13(火) 22:09:22
>>585
げっ、アンドロイドのアプリケーションフレームワーク部って
結局、全部Javaなんか・・・。
589デフォルトの名無しさん:2007/11/13(火) 22:21:09
>>587
そーゆーもんなのか
ここまで違うとゲームの難易度に差が出て調整がしずらいな
自分の携帯はソフトバンクだから実機動作は友達に頼むしかないorz
一応実機
sleep(10)=10
sleep(20)=22
sleep(30)=31
sleep(40)=42
sleep(50)=52
sleep(60)=61
sleep(70)=71
sleep(80)=82
sleep(90)=92
sleep(100)=102
590デフォルトの名無しさん:2007/11/13(火) 22:35:32
ドコモの携帯買おうぜ。キャリアとしてのソフトバンクって利点が少ない。
実機テストを一機種でしかしてないのにリリースするのはあんまり良くないし。

正直、ソフトバンクが人気でMNPで人が流れて行ってるのが不思議なくらい
あそこはまともじゃない企業なんだが・・・
591デフォルトの名無しさん:2007/11/14(水) 07:44:11
>>586
Windowsのタイマーの精度が15.525msだから
592デフォルトの名無しさん:2007/11/14(水) 10:25:28
>>589
sleepの精度は端末に依存だからちゃんと経過時間を計ってやらないとだめだよ
593デフォルトの名無しさん:2007/11/14(水) 10:57:18
>>589
ちなみに、30kダウンロードすると約50円だから
友達無くさんようにな。
594デフォルトの名無しさん:2007/11/14(水) 11:49:43
パケホーダイを勧めておけば
595デフォルトの名無しさん:2007/11/14(水) 11:57:45
>>589
sleep時間が難易度に影響するような構造がそもそもおかしいんじゃ
596デフォルトの名無しさん:2007/11/14(水) 12:44:43
キャラの移動速度を決める時や、格ゲーのコマンド入力監視みたいなのは
sleep()じゃなくてSystem.currentTimeMillis()使った方がいいってのが
以前にスレで出た気がする。
597デフォルトの名無しさん:2007/11/14(水) 14:31:41
すいません。質問です。
byte配列に置いた文字列を随時読み込んで画面表示したいです。
Stringのコンストラクタなら文字コードも指定できて良い塩梅と思っていたら
作っているうち、newを連発しているのが気持ち悪くなってきてしまいました。

最終的にStringBufferにappendできれば良いかと考えて、byte[]をchar[]に
変換しようとしたところで詰まってまs。
byte[]に文字列を置いた場合は、どういう方法で変換・表示するのが格好良い?
598デフォルトの名無しさん:2007/11/14(水) 15:26:34
>597
newを連発する意味がわからないな。
Stringのコンストラクタで文字列にしたら後はそれを保持してればいいのでは。

byte[]の中身が変化するというなら、その都度newするのは当然。
「new連発が気持ち悪い」と気にする必要はないよ。

それでも何かこだわりがあるならJava一般スレ行って聞いてみて。
599デフォルトの名無しさん:2007/11/14(水) 16:19:38
>>598
スクラッチパッドに有る圧縮した文章を、こまめに伸張しつつ
ブックリーダ的に表示できないかな、と思っていたので、数秒
に一度は新しくStringを読んでくることになりそうです。

スレのちょっと前を読んでいたら、503iを試した時にSystem.gc()
がうまく動かないのと四月問題が嫌になってiアプリから離れた
記憶が蘇ってしまい、ちょっと疑心暗鬼気味になってしまった
ようです。
今のDoJaは大丈夫だから、どんどんnewすりゃいいじゃん、と
言われれば、本当にその通りだと思います。質問しておいて
なんですが。
600デフォルトの名無しさん:2007/11/14(水) 16:34:24
「byteをStringに変換」って言い回ししてるけど、もしかしてStringをオブジェクトだと思ってないとか?
newがオブジェクトを確保することだと思ってないとか?
601デフォルトの名無しさん:2007/11/14(水) 16:35:52
InputStreamReader を使うといいんじゃない?たぶん。
602デフォルトの名無しさん:2007/11/14(水) 16:52:26
>Stringのコンストラクタなら文字コードも指定できて
DoJaがサポートするのはSJISのみ
603589:2007/11/14(水) 17:09:35
>>592
こんな感じでいいのかな?
long sleep1=0,sleep2=0;
int hosei=0;
wihle(true)
{
処理
int myTime=50; //50msスリープする
str.Millis=System.currentTimeMillis();
sleep1+=myTime-str.Millis+hosei;
if(sleep1>0)Thread.sleep(sleep1);
if(str.Millis-sleep2>myTime)hosei--;
if(str.Millis-sleep2<myTime)hosei++;
sleep1=sleep2=str.Millis; //現在の時間を記録
}
604デフォルトの名無しさん:2007/11/14(水) 17:25:14
597です
InputStreamReaderとByteArrayInputStreamの組み合わせで解決したようです。
ありがとうございました。

配列をストリームとして読む発想が無かったようです。
605デフォルトの名無しさん:2007/11/14(水) 17:27:14
>>589
いやsleep()に指定した時間分きちんとsleepすることが保障されてないわけだから
sleepがどうこうは関係なくて経過時間分の処理をする
time = 0
white(true) {
 start = System.currentTimeMillis();
 処理(移動などの処理はtime時間分の計算をする)
 time = System.currentTimeMillis() - time;
}
こんな感じ
606デフォルトの名無しさん:2007/11/14(水) 17:28:58
>>603
アニメ処理等でなるべくきっちり合わせたいときは、ちょっと少なめにSleepしてから
ビジーループで目的時刻を待つと良いよ。
607605:2007/11/14(水) 17:29:04
すまん…間違ったorz

time = 0
white(true) {
 start = System.currentTimeMillis();
 処理(移動などの処理はtime時間分の計算をする)
 time = System.currentTimeMillis() - start;
}
608デフォルトの名無しさん:2007/11/14(水) 17:35:36
メインループの回転数を固定にしする方が賢いような気がするけど。
全部にtimeを掛けてたら大変だし。
609589:2007/11/14(水) 17:39:03
>>606
ビジーループって電池食いそうで嫌だったけど
その手があったか
それで行ってみます
610デフォルトの名無しさん:2007/11/14(水) 17:42:13
>>608
どうやって固定にするん?
611デフォルトの名無しさん:2007/11/14(水) 17:50:11
>>610
前スレのFPS固定ロジックでいいんでないの?
sleepが嫌なら while(time > System.currentTimeMillis() ); みたいな感じで済む話だし。

座標計算だけならいいけど、sprite使ったアニメーションにまでtime掛けて管理とか、
どうしてもメインスレッドをsleepしたい場合やサスペンド対応考えると
time一個でどうにかすんのはムズいんじゃないかな。

まぁ時間で管理したほうが確実なんだけどさ。
612デフォルトの名無しさん:2007/11/14(水) 19:35:15
>>591
げ、エミュって内部でタイマーなんて使ってんのか
System.currentTimeMillisですら16ms単位くらいで値よこすから、エミュだとデバッグしづらくなってきたんだよなぁ

ちなみに仕事では当然のようにビジーループ
「sleepにすると電池の消費が少なくなる」なんてのはP504iだけだったと記憶してる
613589:2007/11/14(水) 20:07:29
>>612
ビジーループで時間計ったけどsleepの時と変わらなかったのは
System.currentTimeMillisでも16msだったからか
614デフォルトの名無しさん:2007/11/14(水) 20:09:55
んなーこたーない
615デフォルトの名無しさん:2007/11/14(水) 20:10:45
614は612のレスね
616デフォルトの名無しさん:2007/11/14(水) 20:12:59
Vistaは1ms単位で測れるよ
617デフォルトの名無しさん:2007/11/14(水) 20:16:10
>>613
実機でログ取るべき。
大抵は10msec単位またはもっと正確な値が取れる。
618デフォルトの名無しさん:2007/11/14(水) 21:57:30
質問です
いままでiアプリではGIFとJPEGしか扱えないと思っていたのですが、PNGもいけるのでしょうか?
(これは実機で確かめればいいとしても)
対応画像形式一覧みたいなものをMediaImageの項などで探してみたのですが、見当たりません
どの資料かにまとまってますでしょうか?
619デフォルトの名無しさん:2007/11/14(水) 22:33:28
Windows上でのエミュだけの問題ならtimeBeginPeriod(1)を呼ぶような
別のプロセスを立ち上げておけばいいんでない?
自分で作るのが面倒ならメディアプレイヤーで何か再生してやるとか
sleepの実装がWin32APIのSleepを呼んでるなら1ms単位になるはず
620デフォルトの名無しさん:2007/11/14(水) 22:44:20
>618
iアプリ開発ガイド詳細編を読もう
621デフォルトの名無しさん:2007/11/14(水) 23:28:01
>>612
 sleepにしてもバッテリ消費にはあまり影響ないのね。
描画(2D)を減らしたら消費減るのかな、とか興味があって、
1度検証してみたいとは思ってたけど結局やってないなぁ。
622デフォルトの名無しさん:2007/11/15(木) 00:38:25
えっと、PNGは無理みたいですね
なんでいつまでたってもPNG対応しないんでしょう。SoftBank版と互換したいのに
623デフォルトの名無しさん:2007/11/15(木) 00:46:58
いつになったら、って問題じゃないと思うよ
大人の事情だろう
624デフォルトの名無しさん:2007/11/15(木) 00:49:03
単純にgifやjpegに変換して振り分けるのが吉
625デフォルトの名無しさん:2007/11/15(木) 01:15:30
SoftBankがGIFを使える件

制限あるけど。
626デフォルトの名無しさん:2007/11/15(木) 02:27:39
PNGが読み込めないのはドコモダケ
627デフォルトの名無しさん:2007/11/15(木) 02:47:34
前すれログって読めないんすかねぇ・・・。
最初の方のフレーム制御関係を参照したかったんですが。
628デフォルトの名無しさん:2007/11/15(木) 08:38:58
629デフォルトの名無しさん:2007/11/15(木) 09:08:29
PNGはフリーなんだから、大人の事情もなにもないと思うんだが
630デフォルトの名無しさん:2007/11/15(木) 09:46:49
>>629
対応に関してのコストはどこから出るのでしょうか
631デフォルトの名無しさん:2007/11/15(木) 11:38:05
630笑えるw
632627:2007/11/15(木) 11:47:07
>>628
さんくすです!!
633デフォルトの名無しさん:2007/11/15(木) 16:18:35
反論に困ったら「笑えるw」wwww
634デフォルトの名無しさん:2007/11/15(木) 18:45:13
>>627
過去ログ読もうとしたらよむ方法かかれてるでそ?
635デフォルトの名無しさん:2007/11/15(木) 19:27:56
カメラが起動しようがムービープレイヤーが起動しようが
画像を表示させるってのはできるのかな?
ロゴとかをずっと表示させときたいんだけどさ
636デフォルトの名無しさん:2007/11/15(木) 19:36:43
ネイティブの機能が起動しちゃったら無理。
637デフォルトの名無しさん:2007/11/15(木) 21:16:40
>619
それ意味無い
おそらくエミュはShortTimer使ってる。もう完全にアホの仕事

ちなみにMSNMessengerがtimeBeginPeriod(1)してくれてるぞ。豆知識な
638デフォルトの名無しさん:2007/11/15(木) 21:44:16
そこはWindows Media Playerだろ
639デフォルトの名無しさん:2007/11/16(金) 00:35:35
スレのトピックスでアプリ省サイズ化ツールとしてJavaBlenderとjargが載っているけど、
ProGuardってマイナーなのかな?
ProGuard3.7を使ってて特に問題なさそうなのだけどトラブル経験ある人いるんかな。
4.0、4.1と出てるけどどうなんだろ。

640デフォルトの名無しさん:2007/11/16(金) 00:54:31
proguardしか使ったことない。
他の2つは2年以上更新されてないから心配。
641デフォルトの名無しさん:2007/11/16(金) 01:02:21
>ProGuardってマイナーなのかな

おいw
642デフォルトの名無しさん:2007/11/16(金) 03:26:36
JavaBlenderは結構うまくいかないときが多い。
特に900以降の場合サポートされていないので、現在では使用していない。

今俺がやっているのは
ProGuard(3.10)→Jarg(バージョン忘れたが最新)→7-Zipだな
643デフォルトの名無しさん:2007/11/16(金) 07:27:22
仕事でソフィアクレイドルの糞高い圧縮ツールを使ったら実際に圧縮率は良かった。
ただし圧縮率を上げまくると実機で動かない場合が出たが・・・

もしも購入出来る金があるのであればお勧め。
644デフォルトの名無しさん:2007/11/16(金) 10:41:47
ProGuardはバージョンが上がって変換後のサイズが従来より
大きくなるケースがあるな。
具体的な不具合が出ない限りは小さくなるバージョン使ってるがw
645デフォルトの名無しさん:2007/11/16(金) 11:11:57
カメラ起動ならフレーム撮影みたいな感じにすればまだロゴ出せるんじゃないか?
プレイヤーは正直思いつかない
646デフォルトの名無しさん:2007/11/16(金) 21:52:32
proguardは4.0ですごくサイズが小さくなるようになった。
3.8と比べて2kくらいは減る。3.9/3.10は3.8よりでかくなる。
もうこれでないと100kにおさまらねぇwww
647デフォルトの名無しさん:2007/11/17(土) 09:05:18
実機でclearキーが押ささらないんだけどなんで?
ちなみにエミュでは正常に動く。
ちゃんと初回起動時に
PhoneSystem.setAttribute(PhoneSystem.DEV_KEYPAD, 1);
した。あと、実機はN904i
648デフォルトの名無しさん:2007/11/17(土) 09:49:15
>>647
公式にある資料くらい見ろ。
(各機種オプションAPI・拡張API実装状況のPDF)
903/904/703/704ではクリアキーが実装されている機種はない。
そもそも、クリアキーはKEY_IAPPと同一キーではないのか?
649452,470...:2007/11/17(土) 11:50:12
公式にある資料を読んでたら、基地局とか登録エリアとか携帯電話がつながる仕組みまで
理解しないと気がすまなくなってきた…

いや、そんなことを言いにきたのではなくて

Googke で「doja 5.0 N900is」で検索かけたら、
このスレの俺の発言が1ページ目に表示された。orz

Eclipse+Doja5.0でDoja3.5アプリ作れるかどうか報告するといっておいて
実はまだ実行まで辿りつけないんです・・・スマソ
ここまで、考えられるエラー全て見てきた気がする。orz

一度、eclipse は忘れて、Doja だけで作ってみよう。
650649:2007/11/17(土) 15:17:34
当たり前なことかも知れないが、
Doja-5.0 DK で HelloWorld プロジェクト作ったら、正常に動いた。
始めて成功して感動した。
あとは、N900iS でも動くように、Doja-3.5 アプリを効率よく作る環境を整えるだけなのだが・・・

とりあえず、Doja-3.5 と Doja-5.0 の API リファレンスは用意した。
リファレンス見比べながら、3.5にない API を使ってしまわないようにしながら、
Doja-5.0 の機能を利用できればいいわけか・・・。

独り言はここまでにしときます。
ただ、Doja-5.0 DK でコンパイルしたとき、何故か JDK 1.5 compile ... と表示されたのが気になる。
確かに、うちのPCには、Java 1.5.0 と 1.4.2 と 1.6 が入ってるけれど・・・
JDK 1.6 の JAVA_HOME も設定したし、JDK 1.6 の Path も通したし問題はないはず。
(まだ問題が起きていないだけか)


 ま ぁ い い や 。

エミュレータを動かせたので大満足。次はアップロード先を探さなきゃ・・・

チラ裏スマソ
651デフォルトの名無しさん:2007/11/17(土) 15:26:31
pathのほうが優先されてるだけじゃね?
頑張ってるみたいなんでもうひとつアドバイス。

・JDKインストール
・OS再起動
・Eclipseインストール(pleiadesのどれか適当に)
・iαppliToolインストール
・Eclipseを立ち上げてワークスペースをiαppliToolのappsに設定
・helloWorldプロジェクト作成
・srcフォルダにソースを作成
・実行→構成および実行でDoJa5.0アプリケーションのフィルタを作って実行
・動いたら apps/helloWorld/bin/ にある
 helloWorld.bin,helloWorld.jam,download.htmlの3つをサーバへアップロード
・携帯からdownload.htmlへ接続、アプリをダウンロード
・携帯でアプリ実行

で、どーよ?
652デフォルトの名無しさん:2007/11/17(土) 15:58:17
progurdで圧縮するとアプリが終了してしまうんですが
原因はなんでしょうか。
System.gc()で終了したので消してみたら
次はImageのuse()の16回目の呼び出しで終了しました。
catchも呼び出されません。
653デフォルトの名無しさん:2007/11/17(土) 16:13:02
圧縮されたときにいやーんなコードを書くのが原因。
654デフォルトの名無しさん:2007/11/17(土) 16:29:52
>> 652
proguardをかけた後、逆アセしてコード見てればいいんじゃねぇ?
時々変なコードに変換されているときあるから。
それでそれがローカル変数で問題になら、その変数をクラス変数に替えることで
正常に動作するというときもある。
655デフォルトの名無しさん:2007/11/17(土) 16:50:56
「押ささらない」ってよく変換できたな。何弁?
656デフォルトの名無しさん:2007/11/17(土) 16:59:52
北海道弁
657652:2007/11/17(土) 18:06:58
>>654
みんなアセンブリとかも分かるのか
自分は分からないし圧縮しないと収まらない訳じゃないから諦めよう
658654:2007/11/17(土) 19:49:16
>>657
逆アセって言い方が悪かったのかな?デコンパイルって言えばいいのかな?
jad.exeの引数にクラスファイル指定するだけだから簡単にできる。
出力されるソースも、ほぼjavaのソースと同じだ。
659デフォルトの名無しさん:2007/11/17(土) 20:14:21
言い方が悪いっつーか逆アセとデコンパイルじゃ意味が違うじゃん
660デフォルトの名無しさん:2007/11/17(土) 20:42:06
俺は許容が広いから「あぁ、そういういみなんだろうな」と理解できた。
>>658は、頭悪い上司を持つと苦労するタイプだろうw
661デフォルトの名無しさん:2007/11/17(土) 20:51:06
>>651
神!ty!

あと2時間でサーバーへアップロードしないと
次の作業まで2週間待ちになってしまう。。。

とにかくも651に感謝m(。_。)m
662デフォルトの名無しさん:2007/11/17(土) 21:27:51
>>651 の書いたとおりにやったら、動いた!!すごい

なんで動いたかよくわからないけど、今日はもう時間がないため
とりあえずアップできるサーバーを探さなければ・・・。

651の内容のうち、前半は既に済んでいたので、以下のみ行った。
・Eclipseを立ち上げてワークスペースをiαppliToolのappsに設定
 iαppliTool で指定している作業フォルダを設定した。

・helloWorldプロジェクト作成
 helloWorldプロジェクトは既にあったので、別名のプロジェクトを作成した。
 プロジェクトを作成した後、ウインドウ−設定 で、Doja-5.0 のインストールフォルダを指定した。
 (これを設定しないと、クラスがうまく作れなかった)

・srcフォルダにソースを作成
 Eclipse でクラスを作ったら、自動的に作成された。
 クラスは、スーパークラスを com.nttdocomo.ui.Application とした。

・実行→構成および実行でDoJa5.0アプリケーションのフィルタを作って実行
 無事、動いた。

残りは、以下の作業だ。携帯が手元にないので;; とりあえずサーバーへアップロードしたら
 場所移動して携帯でチェック。報告は明日以降になりますm(。_。)m

---残りの作業
・動いたら apps/helloWorld/bin/ にある
 helloWorld.bin,helloWorld.jam,download.htmlの3つをサーバへアップロード
・携帯からdownload.htmlへ接続、アプリをダウンロード
・携帯でアプリ実行
663デフォルトの名無しさん:2007/11/17(土) 22:09:28
まったく、デコとかパイとか。
664デフォルトの名無しさん:2007/11/17(土) 23:13:17
>>652
-dontoptimizeつけてみるとか
665652:2007/11/17(土) 23:51:16
>>658
jadファイル自分の力と気力じゃ解読不能みたいでした。
>>664
それはもうつけました。
とゆうよりつけないと圧縮できませんでした。
666デフォルトの名無しさん:2007/11/18(日) 01:30:01
proguardのバージョン変えてみるとか?
667デフォルトの名無しさん:2007/11/18(日) 01:57:43
> そもそも、クリアキーはKEY_IAPPと同一キーではないのか?

うお、これでうまくいったよ!ありがとう!
つーかそんなとこに割り振られてるなんて気づかなかった・・・
668652:2007/11/18(日) 10:49:18
proguardかけた後にjargかけたら出来るようになりました
669デフォルトの名無しさん:2007/11/18(日) 13:31:16
>>668
それはProGuardの後にpreverifyをかけてなかっただけじゃないのか?
670デフォルトの名無しさん:2007/11/18(日) 13:41:51
http://62.xmbs.jp/yosukeapuri/
裏アプリをやってみませんか?
ポケモンやドラクエ、マリオなど懐かしいゲームが携帯のアプリになって再登場(
゜∇゜)
やりたい人はURLを (・o・)ノ
http://62.xmbs.jp/yosukeapuri/


671デフォルトの名無しさん:2007/11/18(日) 21:17:11
・・・サーバーにアップしたファイルのアクセス権をミスって2週間ダメにしたorz
672デフォルトの名無しさん:2007/11/20(火) 02:42:56
リモート制御機能ってトラステッドアプリでしかダメだよね?
673デフォルトの名無しさん:2007/11/20(火) 03:48:55
>>672
リモート制御機能とはなんですか
674672:2007/11/20(火) 06:20:30
>>672
APIリファレンスに書いてあるんだけど、
開発ガイドには全く書いてない。

public class PushManager
プッシュ機能の管理オブジェクトを定義します。
リモート制御におけるプッシュ機能により、
サーバから i アプリにパラメータとパラメータを送信した時刻(パラメータ更新時刻)を渡すことができます。
渡されたパラメータとパラメータ更新時刻は、JAM が受信して保持します。
i アプリからは、JAM が保持するパラメータと パラメータ更新時刻を取得することができます。
また、i アプリ起動中やサスペンド中に JAM がパラメータを受信した場合には、
ParameterPushListener により定義されたリスナが呼び出されます。

エミュレーターのトラステッド動作設定にもリモート制御の項目が無いし、気になったもので、、。
675デフォルトの名無しさん:2007/11/20(火) 11:02:07
>>674

それはマイボックス用のAPI
676デフォルトの名無しさん:2007/11/20(火) 15:20:31
>>675
サンクス、
そんなサービスがあるとは知りませんでした。
677デフォルトの名無しさん:2007/11/22(木) 09:18:11
ADF設定のTrustedAPIDって、
勝手アプリで設定しとくと、
実機じゃ正常動作できませんか?
678デフォルトの名無しさん:2007/11/22(木) 10:52:11
できたらトラステッドの意味がねぇw
679デフォルトの名無しさん:2007/11/22(木) 20:18:31
>>678
そりゃそうなんですけど。
TrustedAPIDの正誤をいつどこで確認してるのか気になったのです。

DL元ホスト(IPアドレス)とAPIDを一意に結び付けて、
DL時にdocomoのサーバに問い合わせるとか…?
くらいしか思いつかなかったのですが。

今試してみたらTrustedAPIDを書いてるとDL自体出来ないみたいです。
680デフォルトの名無しさん:2007/11/23(金) 15:02:22
>>679
まあ、そんな仕組みだと思うけど。
681デフォルトの名無しさん:2007/11/26(月) 09:59:07
Subversionでソース管理しようとしてるんですが、
コンパイルするとresディレクトリにある「.svn」ディレクトリもバイナリに含んでしまいます。

コンパイルオプションで特定のディレクトリ以下のファイルは含まないとかできないんですかね?
682デフォルトの名無しさん:2007/11/26(月) 11:20:27
>>681
コンパイルはbatで行なってるんでしょ?
直前に.svnを別のところに退避させて、コンパイル終わったら戻すようにしたら?
683デフォルトの名無しさん:2007/11/26(月) 11:29:01
今時バッチファイルでコンパイルしてる人いるの・・?
IDKかANTかと思ってたが。
684681:2007/11/26(月) 15:23:11
>>682
コンパイルはbatじゃなくてふつーにIDKでやってます。
とりあえず開発時はそのままやってて、実機テスト&リリース時は別ディレクトリに移してコンパイルしてる状態。
この手間がちょっと面倒なんで改善できたらなぁと。
685デフォルトの名無しさん:2007/11/26(月) 15:41:48
>コンパイルオプションで特定のディレクトリ以下のファイルは含まないとか

普通に出来ますが
686デフォルトの名無しさん:2007/11/26(月) 15:42:14
>>681
俺は画像格納用のフォルダをresとは別に用意しておいて、
resフォルダはsvnの管理から外してる。
(spに詰めるバイナリ生成ツールがそこにあるからでもあるが)

まぁ、どっちにしても手間なんだけど
バッチ使いも結局バッチを書く手間はあるわけで、
自分にとってベターな方法を模索するのがいいんじゃないかと。
687デフォルトの名無しさん:2007/11/26(月) 21:24:50
>>686
サンクスコ
いろいろやってみます。
688デフォルトの名無しさん:2007/11/26(月) 21:28:31
普通にbat使ってますがなにか
689デフォルトの名無しさん:2007/11/26(月) 22:54:38
プリプロセッサやら、プロガードやら使うからbatが主流だろう。
というのは仕事としてやってる人の考え方だったのかな

IDKってコンパイルオプション指定なんてできたっけ?(JAM指定呼び出しでしかエミュレータ呼び出さないもんでw)
690デフォルトの名無しさん:2007/11/26(月) 23:05:09
idkはビルドの前後にbat指定できなかったか
691デフォルトの名無しさん:2007/11/26(月) 23:09:50
とりあえず俺はeclipseの出力jarにbatでオブファスケータかけてる
692デフォルトの名無しさん:2007/11/26(月) 23:21:27
>>690
batの指定というよりビルドの前後にコマンドの指定ができる感じだな
とはいえオブファスケートしちゃうとコンパイル以外idkが自動でやってくれたのは全部やりなおしになるから存在意義が・・・
693デフォルトの名無しさん:2007/11/27(火) 00:00:54
ていうか何十個もある端末用の個別のファイルをいちいち手作業でGUIでクリックしてつくるとか考えられない。
途中で間違う可能性もあるし。
694デフォルトの名無しさん:2007/11/27(火) 00:11:06
>>693
何十個っていったい何をそんなにわけてるの?
その状況が想像できないのだが…
695デフォルトの名無しさん:2007/11/27(火) 00:32:45
>>694
相当昔の端末までサポートしてるなら不思議じゃないけど
696デフォルトの名無しさん:2007/11/27(火) 01:45:15
>694
例えばSystem.getProperty()で取れないような機種別情報が必要なら
何十個もjarを作るかもしれんな。具体的にどんな情報かは知らないが。

それなら機種名を渡してサーバ上に用意した関連情報を引き出す
作りにすればグッと数を減らせるだろうけど、
通信できない(しちゃいけない)事情があるとか。
697デフォルトの名無しさん:2007/11/27(火) 02:20:02
つかサウンドデータだけでも十数個のセットになるやん
698デフォルトの名無しさん:2007/11/27(火) 04:35:24
>>697
mova含めたら19種類、FOMA限定なら6種類かな?

http://www.hundredsoft.jp/wav2mld/
699デフォルトの名無しさん:2007/11/27(火) 08:36:16
えっ?
700デフォルトの名無しさん:2007/11/27(火) 08:36:31
今でも新規案件でmova対応ってあるの?
うちはもうfoma限定だなぁ。
サウンドは通信で取得するかアプリ上で分けるかだな。
701686:2007/11/27(火) 13:55:28
>>689
一応俺もプロなんだがサイズに困るほどのアプリが殆どない。
圧縮するにしても100k超えることは滅多にないし
904で無圧縮状態でテストしてOKだったら圧縮して動作確認しておしまい。
毎度圧縮する必要性を感じないからIDKのみで十分。

>>700
たまーに勘違いな営業さんが「全キャリア全機種対応」とかほざいて
一応話聞いてみるとmovaも入ってたりするよね。
帰ってもらうけど。
702デフォルトの名無しさん:2007/11/27(火) 13:56:03
画像が最後まで読めないです
com.nttdocomo.ui.UIExceptionが出てるんですけど
これは機種の問題ですかね?
703デフォルトの名無しさん:2007/11/27(火) 15:15:59
>>700
mova含めないとサウンドデータだけで十数個のセットならないし
何十個もある端末用の個別のファイル作る必要性も微妙だし(1機種1ファイルのレベルになる)
704デフォルトの名無しさん:2007/11/27(火) 23:25:27
Doja 4.1、902世代以降をターゲットにゲームとか作ってます。

Graphics2において、アフィン変換かけてgif画像を回転させて描画させているのですが、ジャギが気になります。
OP_ADDでアルファブレンドしたら若干マシにはなるのですが、描画数が多いので負荷が気になります。
もっと良い解決策はないでしょうか?
705デフォルトの名無しさん:2007/11/28(水) 00:18:32
ありがちだけど、あらかじめ計算したパターンを持っちゃう。
706デフォルトの名無しさん:2007/11/28(水) 00:27:07
>>704
DDT
707デフォルトの名無しさん:2007/11/28(水) 00:41:58
DDTでもジャギは出るでしょ。
回し方の問題じゃないから。
708デフォルトの名無しさん:2007/11/28(水) 03:27:29
回転させてもジャギが目立たないような色合いのグラフィックを描く。
709デフォルトの名無しさん:2007/11/28(水) 04:46:22
100K超えることは滅多に無いってなんの話?

jarの話?アプリ全容量の話?
710デフォルトの名無しさん:2007/11/28(水) 07:38:02
>>701
 画像や音声は全部通信でとってくるし、うちもJARは100K超えることはないかな。

今は音声だけカテゴリ分けしてるけど、VGA機種向けに画像も分けるようにしないと
いけなくなるんだろなぁ。

mova除外だけだと、FOMA701とか702なども対象になるけどそこら辺は含めるんかな。
30Kは物によっては相当きついよね。事前に収まるかどうか予測できるプロならいいけど
私にはできん。
711デフォルトの名無しさん:2007/11/28(水) 10:18:15
ドコモ制限キツすぎる。。。
712デフォルトの名無しさん:2007/11/28(水) 10:26:27
機種依存考えると頭がパンクしそうだぜ
713デフォルトの名無しさん:2007/11/28(水) 10:32:16
>>711
制限的にはドコモが一番マシなんだが・・・
714デフォルトの名無しさん:2007/11/28(水) 10:36:28
携帯アプリを匿名で配布したいと考えると
Docomoかauのオープンアプリになるわけだが、
auのオープンアプリの制限は半端じゃない('A`)
715デフォルトの名無しさん:2007/11/28(水) 10:40:12
Sアプリの機種依存の多さは異常
公式資料が豊富だからまだ良いが
716デフォルトの名無しさん:2007/11/28(水) 10:47:27
>>709
変な日本語書いて申し訳ない。
jarの話。

>>710
30Kはアプリ仕様からソースがどの程度の規模になるか推測して、
ソース5000行程度を目安にしてる。
まぁ感覚だからアテにできないけどねw

100Kの壁に苦しんでる人たちはどうしてるんかな。
717デフォルトの名無しさん:2007/11/28(水) 10:49:50
迷わず仕様削減
718デフォルトの名無しさん:2007/11/28(水) 20:24:43
勝手アプリだが
うちだとログとか見る限り7割のユーザーが903i,904iだから最悪メガアプリにして切捨てになるんじゃないかな
まぁまだ100Kの壁に当たってないけど
719デフォルトの名無しさん:2007/11/28(水) 22:35:35
proguard(しかも4以降)をかまさないと100K超えるですよ。
さらに定期的に更新してるんで毎回どきどきですよ。
720デフォルトの名無しさん:2007/11/29(木) 00:48:36
100K超えるプログラムってどんだけだよ
721デフォルトの名無しさん:2007/11/29(木) 01:02:40
単機能のツール系アプリでも、UIやfool proof、例外処理にこだわると
結構サクッと100KiBの壁にぶつかるんだ、コレがorz
722デフォルトの名無しさん:2007/11/29(木) 10:13:34
プリプロセス使わなければ簡単に100kくらい超えるでしょ?
723デフォルトの名無しさん:2007/11/29(木) 13:11:20
超えねーよw
724デフォルトの名無しさん:2007/11/29(木) 13:32:08
俺の今作っているのは173,292バイトになってるけど
725デフォルトの名無しさん:2007/11/29(木) 13:33:42
規模と設計によって容量なんて大きく変わるから一概には言えない問題だろ
726デフォルトの名無しさん:2007/11/29(木) 13:37:32
100k超えるってヤシは
まさかとは思うけど文字列とかデータ配列とかはjarに入れてないよね?
727デフォルトの名無しさん:2007/11/29(木) 13:45:06
今調べたら俺が仕事で作った奴で最もでかかったアプリは
クラス数200オーバーで画像リソース200kくらい混みで
Jarサイズが600kだった('A`)
728デフォルトの名無しさん:2007/11/29(木) 16:15:26
クラスをガツンガツン使えるような時代になったのはいいことだ。
はやくFOMA以下を切り捨てたい・・・・orz
729デフォルトの名無しさん:2007/11/29(木) 17:19:12
>>728
FOMA以下ってことはFOMAも捨てるってことでおk?w
730デフォルトの名無しさん:2007/11/29(木) 17:27:47
createImageの作り方がどうしてもわからんす
どっかサンプル置いてるとこないですかね?
sampleから理解するのは得意なんですけど
731デフォルトの名無しさん:2007/11/29(木) 19:05:37
Image image = Image.createImage(640, 480);
732デフォルトの名無しさん:2007/11/29(木) 20:29:33
>>731
質問をよく見るんだ!
createImageの使い方ではなく、作り方を聞いている!
733デフォルトの名無しさん:2007/11/29(木) 20:48:32
public class Image {
public static Image createImage(int x, int y) {
return null;
}
}
734デフォルトの名無しさん:2007/11/29(木) 20:49:56
>>733
GJだ!
735デフォルトの名無しさん:2007/11/29(木) 21:04:23
>>733
完璧だな

public class Image {
public Image() {
}
public static Image createImage(int x, int y) {
return new Image();
}
}
の方が良い気はするが
736デフォルトの名無しさん:2007/11/29(木) 21:20:26
DoJa 5.0 の Ver3 以上のエミュレータについての質問です。
コマンドプロンプトから DoJa.exe を実行した場合に
System.out.println の結果が表示されないようです。
また doja.exe -version 等、何らかの出力が期待されるオプションをつけて起動しても、
コンソールに何も出力されません。

これはエミュレータのバグでしょうか?それとも何か出力を受け取る方法があるのでしょうか?
737デフォルトの名無しさん:2007/11/29(木) 22:57:08
>>736
エミュのバグだと思われる。
たぶん直感アプリのために使っているのだろうけれど
基本的には、Ver3.00を使わないか、Doja5.1のエミュで間に合わせる。
どうしてもVer3.00でなければならない場合、あらかじめエミュを立ち上げておいて
アプリの実行位置にプロジェクトの場所を合わせておき、コンパイルの後に
エミュの起動ボタンで実行するようにする。
738デフォルトの名無しさん:2007/11/29(木) 23:01:43
アプリから
画像データとサウンドデータと表示座標データとテクスチャ座標データと文字列データ
を切り離しても100Kに収まらず、アプリ連携で機能も切り離して、
それでも100Kぎりぎりな今日この頃。
739デフォルトの名無しさん:2007/11/29(木) 23:38:51
>738
企画が悪いんだろう
iアプリ100KBに向かないアプリを無理に作ってるとしか
740デフォルトの名無しさん:2007/11/30(金) 00:27:04
>>739
2年以上バージョンアップを繰り返してるからねぇ。まぁしょうがない。
741デフォルトの名無しさん:2007/11/30(金) 00:50:08
クラスが増えると、
たいした機能が無くてもアプリサイズが増えるね。

保守性にかかわるから、クラスは気にせず作りたい…。
742デフォルトの名無しさん:2007/11/30(金) 02:07:50
>>738
常に速度が要求されないなら高度なスクリプトエンジンを組んでコードごとSP側に退避するべし
743デフォルトの名無しさん:2007/11/30(金) 05:08:43
MediaSound sound=MediaManager.getSound("resource:///sound.mld");
でリソース内のmldを読み込んでいるのですが、

メモリ内に存在するmld形式のバイナリデータを getSoundに渡す方法ってありますでしょうか?
744デフォルトの名無しさん:2007/11/30(金) 05:20:29
リファレンス嫁
745デフォルトの名無しさん:2007/11/30(金) 09:47:28
JAVAで文字のサイズを変換するプログラムがわかりません!!
わかるひと教えてください。。
746デフォルトの名無しさん:2007/11/30(金) 11:32:04
文字のサイズって?
747デフォルトの名無しさん:2007/11/30(金) 11:36:20
Font font = Font.getFont(Font.SIZE_TINY);
g.setFont(font);

ってことじゃないのかい?
748デフォルトの名無しさん:2007/11/30(金) 19:54:24
>>745
フォントサイズを設定したいのかそれともフォントイメージの拡縮をしたいのかによって変わるが
前者なら747だし後者なら一回Imageに描画して自力で拡縮しなさい
ちなみに「文字のサイズを変換」という日本語だとどちらかといえば後者の意味に取れる
前者の意味の日本語は「文字のサイズの設定」や「文字のサイズの変更」だな

VGA対応機種以外ではSIZE_LARGE,SIZE_MEDIUM,SIZE_SMALL,SIZE_TINY以外のフォントサイズを作るなら後者の方法で作り出す必要がある
VGA対応機種ならFont.getSupportedFontSizes()で対応フォントサイズの配列を取得できる
後は自力で拡縮する以外にもリソースなどの画像データとしてフォントイメージを持ってしまうという手もあるにはある
749デフォルトの名無しさん:2007/12/01(土) 15:06:35
905iのjamのDrawArea、皆さんどうしてますか?
仕様としては240*240 or 480*8nn(機種による)の2択だと思うんだが、
ちょっとN905i(480×854)で試してみたところ、240*427で全画面描画ができた。
縦横比はそのままに、2倍で拡大表示してくれている。
以前はこういうこと、できなかったと思うんだが・・・。

ただ、このままだとソフトキーが浮いてしまうので
(画面最下部よりちょい上にソフトキーラベルが表示されて、
アプリが描画するコンテンツと被る)、
ちょっと縦を切り詰めて240*320くらいにしたら、ソフトキーも
被らず、ちょうどいい感じに。
デフォルトの240*240だと縦横比1:1なので、全然こっちの方がいい。

とりあえず全機種905iはxyを1/2した上で110ほど縦を切り詰める
DrawAreaにしたら、D905iのユーザから拡大表示されず240*330が画面真ん中に
ちょこんと表示されるというメールがきた。

N905iは特殊で、やっぱり240*240 or 480*8nn(機種による)の2択しかないんでしょうか。。。
750デフォルトの名無しさん:2007/12/01(土) 18:32:11
簡単なコードを書いてEclipseで実行すると
「新規構成の起動
Reason:
Check the details」とメッセージがでて
実行ができません。アドバイスお願いします。
751デフォルトの名無しさん:2007/12/01(土) 18:36:05
>Eclipseで実行すると

ここ、具体的に何をどう操作したのか詳しく
752デフォルトの名無しさん:2007/12/01(土) 20:33:10
>751
お騒がせしました。解決しました。環境変数の設定をしていなかったようです。
753デフォルトの名無しさん:2007/12/02(日) 06:01:28
>>749
N904iは前から出来たが?
480x704だから240x352の解像度表示が可能だよ>N904i
もちろんハード側が自動で2倍拡大してくれる
754デフォルトの名無しさん:2007/12/02(日) 10:56:41
さすがにハードではないだろう
755デフォルトの名無しさん:2007/12/02(日) 11:56:57
システムか
756デフォルトの名無しさん:2007/12/02(日) 14:03:25
便乗でDrawAreaについて質問させてください。
P905iを買ったので自作のアプリをWVGA対応しようとしてるんだけど、
480x640だと上下にスキマ(WQVGA機で240x240のを動かした時に出る
のと同じような枠)ができて、しかも上下でスキマのサイズが違う。
かといって高さを640より大きくするとピクト(電波とか電池とか時計とか)が
消えてしまう。
できれば、上下スキマなしでピクト消えないようにしたいんだけど、
どうすればいいか、どなたかご存知ないですか。
757デフォルトの名無しさん:2007/12/02(日) 14:03:59
>753
ごめん。かなり書き間違えた。
>480x704だから240x352の解像度表示が可能だよ

240*240 or 480*8nn or 480/2*8nn/2
↑の3択までは分かるんだけど

240*240 or 480*8nn or 480/2*8nn/2 or 480/2*((8nn/2)-n)
の4択がN905i(480*854)では可能だった。240*330が拡大表示される。
D905iでは4番目ができなかった。
758デフォルトの名無しさん:2007/12/02(日) 14:49:25
JAVAてc/c++と比較すると恐ろしいほど簡単だね
759デフォルトの名無しさん:2007/12/02(日) 15:26:12
まるでC/C++が難しいかのような口ぶりだな
760デフォルトの名無しさん:2007/12/02(日) 15:40:07
覚えることはCの方がはるかに少ないのだが
761デフォルトの名無しさん:2007/12/02(日) 16:11:02
Eclipse3.3にて開発しようと思っています。
DoJa-5.1API iappli Development Kit ユーザーズガイドの
P322のリモートJavaアプリケーションの設定ができないのと、
P311の作業をして折りたたみ状態を閉じるにすると
Connecting to 127.0.0.1 on port 2800
Waiting for debugger on port 8000
assert: offScrId != 0: invalid offscreen id
と記録され固まりますアドバイスお願いします。
762デフォルトの名無しさん:2007/12/02(日) 16:34:39
>>758
C と C++ を一緒にするなよwwwwwwww
763デフォルトの名無しさん:2007/12/02(日) 18:32:58
>>701
> たまーに勘違いな営業さんが「全キャリア全機種対応」とかほざいて

たまーに、どころか良く居るよ。
で、BREW版と同時開発した場合の問題点とか話してやると「プログラマ的には
JavaとCの違いは大きな問題ではないが…」って辺りで理解できなくなるようで、
逆切れされたり、あいつはCを知らない!なんて陰口言われたり。
面倒なので最近はFLASHお勧めwwwで逃げてる。
764デフォルトの名無しさん:2007/12/02(日) 18:35:01
「顔ちぇき!」にショッピングサービスを提供開始
http://news.ameba.jp/economy/2007/12/9050.html
765デフォルトの名無しさん:2007/12/02(日) 19:15:38
JAVAてc++と比較するとホント簡単な言語だよな
vc++になればswingの100倍は難しいよな
766デフォルトの名無しさん:2007/12/02(日) 19:17:56
JAVAてこんな習得のしやすい簡単な言語だと知ったときは
びっくりしたよ。C#もそうだけど
最新の言語は習得が楽でいいよね
767デフォルトの名無しさん:2007/12/02(日) 19:20:43
JAVAていろんなこと出来る上に
習得のしやすさはスクリプトレベルだから
初心者が集まりやすいよね
768デフォルトの名無しさん:2007/12/02(日) 19:21:20
言語の問題なのかね
ライブラリの差に依るような気もするが
769デフォルトの名無しさん:2007/12/02(日) 19:22:29
Javaなんて使えないよ。
C++(BREW)で実用的なJava実行環境(MIDP/iアプリ)は実装できるけど、逆は無理だからね。
C++>>>Javaなんだよな。

C++が使えればJavaでできることはすべてできるし、同じ処理を何十倍も高い性能で実現できる。
JAVAてC++と比較するとホント低能な言語だよな
770デフォルトの名無しさん:2007/12/02(日) 19:22:41
iアプリレベルになると大規模なWEBプログラムの方がまだ難しいんじゃないかと思う
771デフォルトの名無しさん:2007/12/02(日) 20:36:02
最近のアプリは結構難しくなってきてると思うけどなぁ
PSクラスのゲームならほとんど移植可能だろ
772デフォルトの名無しさん:2007/12/02(日) 21:35:37
Cと比べるとどんな感じ?
今C勉強してるんだけど、一通り終ったらjavaで簡単なアプリ作ろうと思うんだ。
773デフォルトの名無しさん:2007/12/02(日) 21:40:56
C++じゃなくてCと比べるのか
それはだいぶ違う感じだと思うよ
774デフォルトの名無しさん:2007/12/02(日) 21:43:50
>>772
なにか死亡フラグっぽいな
775671,662,650:2007/12/02(日) 23:41:00
先日、再びiアプリのダウンロードにトライしたのですが、
またダウンロードできず(⊃Д`;)

よくよく調べてみると、対応しない端末?でダウンロードを試みたときに出るエラーが出てました。
まぁ、notapplicable.html を作っていなかったので、エラーページすら見つからないというエラーでしたが・・・。

>>662 のように i アプリを作り、その後、端末 F900iS でダウンロードしようとすると
notapplicable.htmlエラーが表示されるらしい。
Eclipse は 3.3.1.1を使ってます。

Eclipse 3.3.1.1 + Doja-5.0 でコンパイルすると F900iS(Doja-3.5)ではダウンロードできなくなってしまうのかな。

i アプリの内容は、ダイアログボックスに「helloworld」と表示させるだけの簡単なものです。

一応中間報告。

2週間も間が空きすぎてしまっているので、この後、もっかい原因究明して、
脳みそを i アプリ開発モードに切り替えねば。
776デフォルトの名無しさん:2007/12/03(月) 00:46:24
金魚運動マシーン
777デフォルトの名無しさん:2007/12/03(月) 00:48:07
>>772
せめて少しでいいからC++も知っておく方が良い
別にSTLを使いこなせとかは言わんから
C++でクラスの概念と継承やメンバ関数やインスタンスの概念を知ってるだけで全然違うから
778デフォルトの名無しさん:2007/12/03(月) 03:06:35
>775
ウザイ。
何か報告したい問題点や質問があるなら要点をまとめて書きなさい。
だらだらと日記を書くのはブロク作ってそっちでやりなさい。
779デフォルトの名無しさん:2007/12/03(月) 06:37:36
>>773
そーなのかー。
ども。
>>774
似せたつもりは無いんだ。
気付かなかった
>>777
了解。終ったらC++一通りしてみるか。
ありがとうございます。
780デフォルトの名無しさん:2007/12/03(月) 11:47:56
>>772
つうか、なんで素直にJavaやらないんだ?
781デフォルトの名無しさん:2007/12/03(月) 15:03:45
>>780
先にCはじめたからかな。
2言語同時進行はつらいよな
782デフォルトの名無しさん:2007/12/03(月) 16:43:14
すみません,初歩の質問なんですが doja でpanelで
setTitle()で表示するタイトル文字サイズの変更ってできますか?
いろんなサンプルためしても905シリーズだと字がちいさすぎるみたいなので
783デフォルトの名無しさん:2007/12/04(火) 05:49:05
>>782
無理だった筈
N904iでもVGA表示するとタイトルが小さくなりすぎて結局俺の場合canvasで自力描画した
まぁ容量的余裕があったのとpanelで表示してたのがTextBoxだけだったってのが大きいが
容量的余裕が無いなら諦めるしかないと思う
panelのコンポーネントのsetFontはそのコンポーネントにしか干渉しないし
784デフォルトの名無しさん:2007/12/04(火) 09:59:09
>>783
ありがとうございました
やっぱり無理なんですね...

なにか他の手考えます
785デフォルトの名無しさん:2007/12/04(火) 12:50:44
>782-784
コンストラクタで↓こんなことしたアプリでは、
super();
Font f = Font.getFont(Font.FACE_SYSTEM | Font.STYLE_PLAIN | Font.SIZE_MEDIUM); //24x24
Font.setDefaultFont(f);
setTitle("タイトル");

タイトルは12x12のフォントサイズで、TextBoxやLabelは24x24サイズで表示される。
ところが2回目以降にnewしたものはタイトルが24x24のサイズで表示される。
エミュレータでも実機でもそうなる。不思議。
786デフォルトの名無しさん:2007/12/04(火) 17:26:30
>>785
Panelから継承したクラスのコンストラクタでのことなら
Panelのコンストラクタでデフォルトフォントのフォントオブジェクトを取得してるってことなんじゃない?
それならその挙動はいたって普通で不思議でもなんでもないと思うのだが?
Panelオブジェクトを生成する前にFont.setDefaultFont()でタイトルに使用するフォントをセットしておけばいいってことだよな

デフォルトフォントの設定をIApplicationのstart()とかで行ってしまえば以降ずっとタイトルもフォントサイズが変更されるってことでしょ
787784:2007/12/04(火) 19:35:22
>>785-786
ありがとうございます
勉強になりました
788785:2007/12/04(火) 19:40:30
>786
>デフォルトフォントの設定をIApplicationのstart()とかで行ってしまえば
>以降ずっとタイトルもフォントサイズが変更されるってことでしょ

そうなった。勘違いだったようだ。thx
じゃぁこれで>782も解決ってことかな。
789デフォルトの名無しさん:2007/12/05(水) 02:40:52
StringBuffer sb = ("ABCD");
int z = sb.indexOf("BC");

とすると二行目で「シンボルを解決できません」となるんだけど
もしかして全部のメソッドは使えない?
790デフォルトの名無しさん:2007/12/05(水) 03:23:06
>>789
CLDCのAPIリファレンス見れ。
791デフォルトの名無しさん:2007/12/05(水) 11:58:13
iアプリ一覧に表示されるときに
使われるアイコンは作れて表示できたんだけど、
大きく表示されるほうのアイコンがiアプリのマークのまま。。。
モバイルナナコのアプリはちゃんとカードのアイコンに変わってるんだよね。

どなたか情報持っていませんか?
792デフォルトの名無しさん:2007/12/05(水) 14:02:11
職場にiアプリの宿題やってくれてtelが来た((((゜д゜;))))
今時の学生さんは・・・
793デフォルトの名無しさん:2007/12/05(水) 14:04:08
で、いくらでやると答えたんだ?
794デフォルトの名無しさん:2007/12/05(水) 18:39:40
>>790
J2SEとDoJaのSDKは入れたけど、そっちは未チェックだった
サンクスコ

ぼちぼちやるわ
795デフォルトの名無しさん:2007/12/05(水) 19:51:06
>>791
iアプリコンテンツ開発ガイド最新版のP217、
エミュ付属のDevGuide.pdf P65。
ADFの項目のAppMainTitleで設定できる。

項目名で惑わされるが、ここには画像のファイル名を入力する。
AppIconと同様に、160x160のGIF/JPEG画像resフォルダに入れてビルドすればOK。
AppIconと違って、DoJa-5.1プロファイル専用なので注意。
796デフォルトの名無しさん:2007/12/06(木) 08:31:34
コマンドラインからiアプリのビルド→svnでコミットってできないものかね。
毎回更新が面倒なので自動化したい
797デフォルトの名無しさん:2007/12/06(木) 08:36:11
>>796
batなりantなりお好きにどうぞ
798デフォルトの名無しさん:2007/12/06(木) 14:16:41
>>795

ありがとう〜画像名入れても出来ないからどうやるんだろうと思ってたけど
画像サイズがどうも違っていたみたい。

試してみるね
799デフォルトの名無しさん:2007/12/06(木) 17:58:42
>>795

よくよく見たら載ってた。ありがとう。

試してみたら出来ました。
800デフォルトの名無しさん:2007/12/06(木) 22:25:44
初めてなんで、DoCoMo公式サイトに出てるEclipse(3.1xとか)を
使いたいんだけど、古いEclipse置いてある高速ミラーサイトってない?

本系のhttp://www.eclipse.org/だと、速度が15K/secくらいしか出ない・・・orz
801デフォルトの名無しさん:2007/12/06(木) 22:58:08
JDKから再インストールしても、エミュレータがCPU時間を占領してしまう症状が治らん……
毎回タスクマネージャで優先度最低にして凌いでる。
どうにかならんか。
802デフォルトの名無しさん:2007/12/07(金) 01:00:18
sleep()使いなさい
803デフォルトの名無しさん:2007/12/07(金) 01:41:44
待ち受けアプリで不在着信が有った事を知りたいんですが、
どのようにして取得すれば良いでしょうか?
メールは、PhoneSystem.getAttribute(PhoneSystem.DEV_MAILBOX)
で未読の有無を取得してるんですが、
不在着信では似たようなものが見つかりません。
試行錯誤してたらこんな時間になってしまい、
携帯のバッテリーも切れてしまいました。

よろしくお願いします。
804デフォルトの名無しさん:2007/12/07(金) 07:42:30
>>797
いやいや、そのコンパイルするところがわからんのよ。
iアプリ用のライブラリをリンクするっていう情報をmakeファイルか何かに
書かないといけないんじゃないの?きっと。よくしらんけど
805800:2007/12/07(金) 08:58:06
>>800
自レスだが、古いヴァージョンのAll-In-One-Eclipseってのがあった。
806デフォルトの名無しさん:2007/12/07(金) 09:34:02
>>804
javacのコンパイルオプションを調べれ。
iアプリに関係なく、Javaレベルでの話。
807デフォルトの名無しさん:2007/12/07(金) 09:44:25
>805 解決してから言うのもなんだけど、
初めてなればこそ、HelloWorldと画像1枚描画する程度くらいまでは
EclipsなしでDoJa開発キットだけでやり始めた方がいいと思う。
Eclips絡みの余計なトラブルを抱え込まなくて済むわけだし。
808デフォルトの名無しさん:2007/12/07(金) 21:12:04
はじめまして。
教えていただきたいことがあります。
初めてJavaでiアプリを作ろうと考えているのですが、端末に保存したデータを
通信によりパソコンに送り、そしてパソコン内でそのデータを処理することは
できるのでしょうか?
例えば、シューティングゲームの過去5回のスコアと倒した敵の数をパソコンに
送り、パソコンでスコアと倒した敵の数の平均を求める。
という感じに。
よろしくお願いいたします。
809デフォルトの名無しさん:2007/12/07(金) 21:32:23
サーバーに送ることはできるので
それをパソコンから見ることになるでしょう
810デフォルトの名無しさん:2007/12/07(金) 21:39:14
>808
iアプリは、そのiアプリをダウンロードしたサーバとのみ通信できる。
HTTP/HTTPS で GET/POST。
詳細は>3の公式サイトから「iアプリ開発ガイド詳細編」を取ってきて熟読してな。
いま疑問に思ってることの答えは全部書いてあると思う。
811デフォルトの名無しさん:2007/12/07(金) 21:51:41
>>807
アドバイスありがとう。
でも、開発環境に早く慣れるようにeclipseで行こうと思います。

JAVAは初めてで、今日はListVeiwのクラスを書いてたんだけど、オーナードロウが不可能なことに気付いた。
JAVAは関数のポインタは渡せないんですよね。

こんな場合はListVeiwクラスを継承して特殊な処理をするしかないんでしょうね。
812デフォルトの名無しさん:2007/12/08(土) 02:15:10
811なんかかわいいな。
小学生?
813デフォルトの名無しさん:2007/12/08(土) 02:19:35
そりゃ失礼だろ。中学生くらいじゃねーの?
814デフォルトの名無しさん:2007/12/08(土) 12:07:53
>>813
いえ、中二の美少女です。
815デフォルトの名無しさん:2007/12/08(土) 22:58:09
はじめまして
初めてiアプリを作っていて良くわからないことがあります。
java.util.VectorをimportしたコードをiAppliTool DoJa-5.0からコンパイル
してビルドも問題なくできているのに、F904やSH704に落とすときに、不正な
ソフトですというメッセージが出てダウンロードできません。もちろんjamの
中のappsizeには間違いはありません。Vectorはサポートされないのでしょうか?
よろしくお願いします。
816デフォルトの名無しさん:2007/12/08(土) 23:06:43
この中で3Dやったことある人居る?Doja-5.0でmbacとbmpでポリゴン使おうとしたら
PVmicroではちゃんと出るのにエミュでも実機でも裏表っつうか頂点ぶっ飛んでるっつうか
変な風になるんだが・・・全然わかんないんです><教えてください!!
817デフォルトの名無しさん:2007/12/08(土) 23:17:24
自分を疑った方がいい
818デフォルトの名無しさん:2007/12/08(土) 23:47:15
V4のFigureなんてアプリ側じゃそんなに設定項目無いんだし
コンバートに失敗してんじゃね?
819デフォルトの名無しさん:2007/12/09(日) 09:15:28
初めて書き込みさせて頂きます。
Spriteを使ってアニメーションをさせたいのですが、
sprite[n]に格納した画像を順番にforで一枚だけisVisible(true)にして、
drawSpriteSetで描画すると、前回描画し、今回はisVisible(false)にしたスプライトも残ったままになります。
背景を最描画し、その上に再度drawSpriteSetすると一応アニメっぽくはなるのですが、背景を再描画しなくてよい方法などございますでしょうか?
ご教授よろしくお願い致します。


820デフォルトの名無しさん:2007/12/09(日) 11:08:35
>819 ない。
描いたものはプログラマが(上描きや塗り潰しによって)消さない限り消えない。
821デフォルトの名無しさん:2007/12/09(日) 13:34:35
オルタ正直期待以上!!!
シナリオはオリジナルより面白かったしwwwキャラも愛着持つほど魅力的ww
『アプリゲームじゃなぁ』なんて思ってただけに、出来の良さにビックリwwww

ダウンロード方法

☆FOMA900シリーズ/ソフトバンク/
「EZトップページ」→「ゲーム」→「RPG」→「アトラスweb site」→「グローランサーオルタナティブ」

☆au
「EZトップメニュー」→「カテゴリで探す」→「ゲーム」→「ロールプレイング」→「女神転生」→「グローランサーオルタナティブ」
822デフォルトの名無しさん:2007/12/09(日) 16:56:01
あぁ、俺の携帯、アプリ動かない奴だから('A`)y-~~
アプリは仕事で作ってるだけ。
823デフォルトの名無しさん:2007/12/09(日) 17:09:02
俺も俺も
824デフォルトの名無しさん:2007/12/09(日) 17:36:07
なにを隠そう俺もだ
825デフォルトの名無しさん:2007/12/09(日) 17:53:33
俺はむしろウィルコム
826デフォルトの名無しさん:2007/12/09(日) 20:32:53
ゲームアプリ好き≠アプリ制作者
仕事で作ってると嫌になる時がある。
827デフォルトの名無しさん:2007/12/09(日) 20:53:12
ていうか仕事で作っててその作ってるアプリ自体が面白いと思ったことは無いな
なぜなら最初の段階ではバグだらけでまともに動かないし、まともに動くようになると飽きている。
まあバグつぶしていって段々動くようにしていくこと自体が一番面白いっちゃー面白いんだけどね。
828デフォルトの名無しさん:2007/12/09(日) 21:07:30
若ぇな坊や。
携帯アプリのやたら規模の小さいプロジェクトは
ソースコード、リソースの管理のミニマムケースとしての
実験にはもって来いの環境だし、
プロジェクトに関わる人数も少ないから、コード規約とか
作成環境のテストにも非常に向いてるんだぜ?

ゲームは糞だが、ソースは美しい、それ以上は望まねぇw
829デフォルトの名無しさん:2007/12/09(日) 22:02:05
そんなもんに金払うユーザーはたまんねぇな
830デフォルトの名無しさん:2007/12/09(日) 22:24:25
俺の最終顧客はクライアントであってユーザーじゃねぇからなw
831デフォルトの名無しさん:2007/12/09(日) 22:46:46
俺は自分の作ったアプリは
マスター前日くらいにやると面白いと感じる

それまではバグ取りばっかでプレイなんかしたくない
832デフォルトの名無しさん:2007/12/10(月) 00:31:18
てか俺は携帯自体もってねーよ
833デフォルトの名無しさん:2007/12/10(月) 01:16:10
あるあるww
834デフォルトの名無しさん:2007/12/10(月) 02:35:05
>>820

ありがとうございます。
スプライトって当たり判定にしか使えないんじゃ…
835デフォルトの名無しさん:2007/12/10(月) 03:29:13
画像によっては衝突判定も役に立たないよ

円を描いた透過画像が斜めに衝突するとき、
画像は接触してないけど矩形が接触してるから「衝突してる」

行列操作で形が変わってるとき、
画像は接触してるけど元の矩形が接触してないから「衝突してない」
836デフォルトの名無しさん:2007/12/10(月) 11:34:12
土日このスレ見てなかったもんで始めましての数に吹いたw
837デフォルトの名無しさん:2007/12/10(月) 23:27:36
そうだったのかぁー!

待ち受けアプリ作ってるんだけど、sleep();の後も実行続けるのね。
sleep();したらそのまま端末に制御が移るのかと思って2時間悩んだよ。
838デフォルトの名無しさん:2007/12/11(火) 09:47:02

sleep()中は一部のイベントが発生する以外は、何の命令も実行されない
そもそも、sleep()するには、その前に、制御を端末に移す(非活性化状態にする)、deactivate()を発行しないといけないはずなんだが…
何を悩んだんだ?
839デフォルトの名無しさん:2007/12/11(火) 11:33:38
今更気づいたけど、文字列の中に直接絵文字打ち込んでもちゃんと表示されるのね。
ずっと "\uxxxx" てやってたよ。
全機種大丈夫かちょっと心配だけど。
840デフォルトの名無しさん:2007/12/11(火) 19:55:57
deactivate()は実行してるんだけど、sleep()がreturnと同じような挙動をすると思ってた。
sleep()を実行するとすぐに端末に制御が移り、省電力モードに移行するのかなと。
それで、sleep()の後のコードが実行されているとは思わず悩んでました。
実際は省電力モードに移っても良い事を端末に知らせるだけで、
その後もコードの実行は続いてるって事だよね。
つまり、sleep()を実行しないでdeactivate()だけで処理を終えても電池の消耗の早さが違うだけで、
アプリの挙動は変わらないって事でいいのかな。
841デフォルトの名無しさん:2007/12/11(火) 20:48:09
>>840
>実際は省電力モードに移っても良い事を端末に知らせるだけで、
>その後もコードの実行は続いてるって事だよね

えーと Java のライブラリのメソッドや Windows の API や unix のシステムコールの
sleep や Sleep というのは、省電力等の話の場合の「スリープ」とはあまり関係なくて、
単に「今することないからしばらくこのスレッドやプロセスのコードの実行を停止して」
というような意味で、実際の動作もそんな感じです。

全てのスレッドが sleep や何かのイベント待ちになっていると、OS はそれを契機に
CPUなどを省電力モードに移行させるかも知れませんが、それはまた別の話。
842デフォルトの名無しさん:2007/12/11(火) 21:16:52
なんかThread.sleepと待ち受けのMApplication.sleepが混ざってね?
843デフォルトの名無しさん:2007/12/11(火) 21:55:31
>>840
>つまり、sleep()を実行しないでdeactivate()だけで処理を終えても電池の消耗の早さが違うだけで、
>アプリの挙動は変わらないって事でいいのかな。

アプリの内容にもよるけど、かなり違う。
sleep()が発行されると、休眠状態になり、すべての処理は一旦停止、キューにたまっているイベントもすべて破棄される。
その後、端末を開くなどして、システムイベントが発行されると、非活性化状態に変わって、
sleep()の次の命令からアプリが再開される。

時計なんかで常時書き続けなければいけないアプリでsleep()発行すると、時間が進まない。
deactivate()呼ぶだけなら問題ない。
(分単位の時計ならsetWakeupTimer()で解決するけど)
844デフォルトの名無しさん:2007/12/11(火) 22:16:32
>>841
sleep()ってiアプリだけじゃなかったんだね。
iアプリの入門書読んだら終了するみたいに書いてあったから勘違いしてた。

>>843
一応止まってたんだね。
WakeupTimerセットしてたから、スルーしてると思った。

と言う事は、sleep()で止まってる時にWakeupTimerのイベントが発生すると、
まずsleep()の次が実行されて、その後端末に処理を戻さない限り
processSystemEvent()が発生しないのかな?
845デフォルトの名無しさん:2007/12/11(火) 23:34:37
>>844
processSystemEvent()の実行も、sleep()の続きの実行も、
並行に両方とも行われる。
846デフォルトの名無しさん:2007/12/11(火) 23:51:57
>>844
まずはiアプリコンテンツ開発ガイドに目を通して、
「活性化状態」「非活性化状態」「休眠状態」の違いを
理解したほうがいいと思う。
847デフォルトの名無しさん:2007/12/12(水) 11:14:55
>>736-737
この問題なんだが、737は「Doja5.1エミュ使え」って言ってるけど、エミュ5.1でも同様にprintlnの結果が出力されない
誰か5.1(でも5.0でもいいから)でコマンドラインからのエミュ実行した状態でprintln出力できた人いないか?
848デフォルトの名無しさん:2007/12/12(水) 17:07:15
>>847
リダイレクト。
849デフォルトの名無しさん:2007/12/12(水) 17:59:34
>>848
ありがとう。ファイルに出力するのはできた
でも
doja.exe 〜色々オプション〜 >&1
とやってプロンプト自身に出力させようとすると、

ハンドル 1 のリダイレクト中に
ハンドルを複製できませんでした。

と出てしまった。プロンプトに出力することはできそう?
850デフォルトの名無しさん:2007/12/12(水) 21:07:20
>>845-846

問題は一応解決したけど、なんかモヤモヤしてます。
もう一度ガイドを読み直してみます。
ありがとう。
851デフォルトの名無しさん:2007/12/13(木) 01:03:18
F905iでplaySound()メソッドを使った効果音再生が出来ないんですが、
他の機種ではどうですか?
機種依存の機能ではないみたいだから不具合かな?
852デフォルトの名無しさん:2007/12/13(木) 03:26:13
普通に考えたら自分の勘違いやミスを先に疑うと思うけど
853デフォルトの名無しさん:2007/12/13(木) 11:17:12
>>849
doja.exe いろいろ | more
854デフォルトの名無しさん:2007/12/13(木) 18:37:02
>>852

一応playSound()を使ってるらしい他の人が作ったiアプリも試してみたんだけど、
反応は全く同じなんです。
もちろん、他の音は出るのでハード的な故障ではないと思います。

それで、ここならiアプリでplaySound()を使って試せる人がいると思って質問しました。
855デフォルトの名無しさん:2007/12/14(金) 00:50:13
そんな重大なバグがあったら、とっくにニュースになってるはずだろ。
マナーモードとかだったら殺す。
856デフォルトの名無しさん:2007/12/14(金) 02:23:16
適切でないサウンドファイルを使っているに一票
857デフォルトの名無しさん:2007/12/14(金) 07:48:44
playSound()はサウンドファイルなど必要なく、
playSound(SOUND_ALARM);
などとするだけで、組み込みの効果音が出るメソッドです。
試しにN902iでやってみましたが音が出ました。
もちろんマナーモードじゃないです。
静かなところで聞くと、かすかに雑音が出ている事に気が付きました。
858デフォルトの名無しさん:2007/12/14(金) 08:26:50
playSoundクラスなんてねぇな('A`)
調べるのダリー
859デフォルトの名無しさん:2007/12/14(金) 11:28:57
キー確認音オフに一票。
860デフォルトの名無しさん:2007/12/14(金) 11:57:48
iアプリ用に、7zを解凍できるライブラリあります?

PCから、沢山のファイルやフォルダを転送したときに
それをSD Bindで直接扱いたいんですが
いろんな制約があって簡単にはできないんですよね?

だから全部7zで固めてそれを一つのフォルダ用に
扱えたらと思っているのですが。

zipはできる(?)っぽいのでそれでもいいんですけど、
一般的に7zの方が圧縮率高いし、個人的に好きだし、
すでに7zで固めてるあるし・・・


7zが使えるライブラリがないのなら、
なんか7zのJava実装があるみたいなんで、
それをiアプリ用に実装してみようかと思っていますが、
もしかったら無駄なので。
http://www.7-zip.org/ja/sdk.html

(Javaだから、まさかそのまま使えたりするんだろうか?)
861デフォルトの名無しさん:2007/12/14(金) 13:59:04
展開が比較的重い上に1ファイルを展開するために全ファイルの展開を必要とする7zを使うのは
用途次第では効果があるかもしれんがjar領域を消費してSD-BIND領域を空ける必要性というのを考えた時に意味が無くないか?
普通はSD-BIND領域を消費してでもjar領域を空けるように設計するべきだと思うんだが?
もちろん設計におけるトレードオフは他にもあるだろうが

スクラッチパッド領域ならまだダウンロードサイズ削減と全体容量削減のためという名目が立つ可能性がゼロではないが
ベタの差分画像が大量にあるとかいう前提でならjar+zip>jar+7z展開コード+7zになる可能性は有るが
それならそれで差分データを差分のみ保存する等してzip側の圧縮効率を上げるほうが良い可能性もあるしな

後コンパイルしたわけじゃないがざっと見た感じ7zのjava実装はCLDCでも素通りしそうな感じはするな
862デフォルトの名無しさん:2007/12/14(金) 15:09:39
>>861
前提条件として、パソコンで使用している(大量の)ファイルやフォルダを
携帯アプリでも使いたいってことなのです。

あとは、USBケーブルでファイルを送ってiアプリから触ることができる
唯一の方法であるSD Bindingの制約を知って唖然としてください。

http://blog.livedoor.jp/tonogata/archives/50988364.html

・ファイル数が英数8文字まで
 つまり、拡張子を抜いたら4文字しかままならねーのですが。

・PCからのファイル作成を受け付けない
 一度携帯アプリ側でダミーファイルを作り、そこにPCから内容編集&上書き保存というマニュアル・オペが必要

・サブフォルダが作れない
 もういいよ。ほんと・・・

・アクセスが遅い、らしい
 設計段階で躓いたので、携帯でみてねーけど。
863デフォルトの名無しさん:2007/12/14(金) 15:22:23
あと、7zが1ファイルを展開するために
全ファイルの展開が必要なんて初耳なんですが?
864デフォルトの名無しさん:2007/12/14(金) 18:16:28
ん?ああ、7zと言えばソリッド書庫が基本かなと思ってたが
あえて非ソリッド書庫で保持してるというならなおさらにzipとの圧縮率の差は微々たる物にならないか?
それこそ1割未満だろ
この大容量時代にあえて容量をあまり気にしないでよい部分で1割気にするってどうよ?

後一応俺SD-BIND対応アプリ組んだこともあるし
SD-BINDの制限ぐらいは知ってるが今の話題とはなんら関係ないんじゃねーか?

それとファイルネームの制限は8.3までだよファイル名の本体8字まで拡張子3字まで
ちなみに今有る端末が8.3形式ってだけでAPI自体はロングファイルネームも対応してるよ
SDHC対応機種でロングファイルネームが使えるかの確認はしてないけどね

またそこには書かれてないがファイルをアプリから生成する場合も0byteのファイルはアプリ終了時に削除されてしまうので
最低でも1byteの中身があるファイルを生成しておく必要がある
これはDoJaのエミュだと0byteでもファイルが残ってくれるんだけど実機だと残ってくれない

SDBINDで重くなる原因の最大のモノはSD-BINDの初期化作業もだがFolder.getFiles()がかなり重い
readやwriteのアクセスよりもファイル数が多くなるとFolder.getFiles()処理の方が圧倒的に重くなるので
ファイル名をある程度決め打ち処理する方が速度的には良いかな
865デフォルトの名無しさん:2007/12/14(金) 18:26:09
あとSD-BINDだけがPCからiアプリへSD経由でデータを送る唯一の手段ではないんで一応そこんとこも注意しておく
まぁ偽装画像技術はテキストビューアーやエミュぐらいにしか使われてはいないけどな
それでも基本的には渡すデータはどんなものでも渡せるし速度もSD-BINDと比べたらスクラッチパッドには負けるかもしれんが十分に速いよ
この辺もまぁ用途次第だな
詳しく知りたいならreateとかでググればよろし

確か2ch発祥の不思議なダンジョン系アプリで偽装画像技術でデータを保持するタイプのアプリがあった気がするが
あれって完成したのか?
866デフォルトの名無しさん:2007/12/14(金) 18:26:55
せっかくためになる話してるんだから句読点!w
867デフォルトの名無しさん:2007/12/14(金) 18:43:02
一応必要ないかもしれんが
http://e-words.jp/w/82E3E5BDA2E5BC8F.html
xxxxxxxx.zzzで合計したら.を混ぜて12文字までのファイル名のことな>8.3形式
まぁMS-DOSで使われてた形式だ

xxxx.zzzじゃ4.3形式になっちゃう
868デフォルトの名無しさん:2007/12/14(金) 19:01:12
もしかしたら863が勘違いしてるかも知れんので一応書いとくか
俺が言う1ファイル展開に全ファイル展開が必要ってのは
a.7z(中身は3ファイル:0.txt 1.txt 2.txt)
b.zip(中身は3ファイル:0.txt 1.txt 2.txt)
とあった時に
1.txtのみを展開するのに7z(ソリッド書庫)では0.txtと1.txtと2.txtの全部を展開してその後1.txtだけを取る必要があるのに対して
zipなら1.txtだけを展開できるってことな

別にa.7zとb.7zの2ファイルがあった時にa.7zの中身を1個取り出すのにb.7zまで展開の必要があるってことじゃないからな
もちろんa.7zがソリッド書庫なら中身を1個取り出すためにa.7zの中身を全部展開する必要はあるけどな
869デフォルトの名無しさん:2007/12/14(金) 19:24:10
火病りかけてる相手に
そこまで噛み砕いて教えてやるとは優しいのう
870デフォルトの名無しさん:2007/12/14(金) 21:26:03
俺はどちらかというとI/Oの速度より7zの展開がJVMで実行して
禿げ上がりそうな遅さになりそうな気もする。あとメモリが足りんとか
7zipのドキュメントに展開時に必要なワークメモリ量が書いてあったよね
871デフォルトの名無しさん:2007/12/14(金) 21:46:43
つーかjavaのLZMAデコーダのみの実装だから7zのヘッダの処理とかは自分でjavaで書かねばならないっぽいな
まぁデコーダを書く手間と考えたらそれほど面倒ではないだろうが
872デフォルトの名無しさん:2007/12/14(金) 22:04:51
C++実装が2GHzのCPUで10〜20MB/sだそうだから
携帯Javaではその数百分の1ってとこか。

この手のものの利用はポーティングの手間とかメモリ量とか速度とかGPLとか考えることが多すぎて
結局、符号化方式から自作してしまったよ。
873デフォルトの名無しさん:2007/12/14(金) 22:25:11
わざわざjavaで独自エンジン組むぐらいならZIPで十分な気がする
まぁDoJa以外への移植も考えてならしょうがないけど
S!は一応DeflaterがあるからZIPヘッダの処理部分だけ書けばZIP展開はできるんだよな
874デフォルトの名無しさん:2007/12/14(金) 22:27:32
>>859
凄い!
その通りでした。

でも、情報通知音がキー確認音と何の関係が有るのか理解できない。
前使ってたN902iはキー確認音とは無関係だったのに。
それに、無音ではなく雑音が出るのも変だな。
バージョンアップで直ればバグだし、そのままなら仕様ってやつか。

ありがとう。
875デフォルトの名無しさん:2007/12/14(金) 22:51:59
質問です。
SD-bindingを使ってSDカードに保存した画像は
携帯ネイティブの画像一覧から参照できない
ということで間違いないでしょうか。
876デフォルトの名無しさん:2007/12/14(金) 23:44:32
>>875
yes
877875:2007/12/15(土) 00:14:46
レスありがとうございます。
素直にマイピクチャに保存します。
878デフォルトの名無しさん:2007/12/15(土) 01:03:12
トラステッドアプリは個人的に作って個人で利用する事も出来ないんでしょうか?
便利な機能がたくさんあるのになぁ
879デフォルトの名無しさん:2007/12/15(土) 01:16:40
>>878
無理
880デフォルトの名無しさん:2007/12/15(土) 03:15:33
教えてください。
携帯の画面上で以下のような図を表示し、
       ______
       | @ | A |
     | ̄ ̄ ̄ ̄ ̄ ̄|
     | B |
 ̄ ̄ ̄ ̄ ̄ ̄
携帯の数字キーから@とAに数字を打ち込むと、Bに@+Aの合計を表示する
プログラムを作りたいのですが、どのようにプログラムを書けばいいのか教え
てください。
よろしくお願いします。
881デフォルトの名無しさん:2007/12/15(土) 03:57:06
>880
ご飯の食べ方教えてって言われて、箸の持ち方から教えるとかやってらんない。

「初めてのプログラミング」とか「初めてのiアプリ」とかいった、
初心者は何から手を付ければいいのか説明してる本を読んで。

初心者向けにiアプリの作り方を説明したサイトを10ヶ所くらい読んでみるのもいいし。
882デフォルトの名無しさん:2007/12/15(土) 11:25:48
>>870
> 禿げ上がりそうな遅さになりそうな気もする。あとメモリが足りんとか
> 7zipのドキュメントに展開時に必要なワークメモリ量が書いてあったよね

http://www.7-zip.org/ja/sdk.html

> 展開に要するメモリ量: 8-32 KB
> 展開のためのコードサイズ: 2-8 KB (最適化レベルにもよります)

最新機種なら十分じゃね?
スクラッチパッドとあわせて1MB
883デフォルトの名無しさん:2007/12/15(土) 12:50:05
>>880
それは・・・・
まず自分でそのソフトを練習として作るレベルのものだと思われ。
それきいてたら 完
884デフォルトの名無しさん:2007/12/15(土) 13:06:05
それはほんとに最低限度の場合だな860がsdkからデコーダーのみを抽出した上で(エンコーダーとデコーダーが混ざってるから)
LZMAデコードエンジンだけのサイズでソレって事だし
7zのファイル処理(ヘッダ部の処理や暗号部分等)は別途必要になるんでコードサイズはもう少し肥大化すると思うぞ
目安の一つとして7zCon.sfx(コンソールの7z自己展開エンジンだと思うんだが)をzip圧縮すると69kbyte程になるので
最初の設計の指針としてjarの肥大化は30〜50kbyteは考えておく方が安全だ
まぁ最初からメガアプリ専用で100kbyteの壁を考えないなら微々たる問題かもしれんがね

iFDとかTree!Explorer VPとかみたいなファイラーみたいなアプリを作りたいのかね?
885デフォルトの名無しさん:2007/12/15(土) 13:06:48
884は>>882
886デフォルトの名無しさん:2007/12/15(土) 14:57:00
>>884
ファイルとフォルダがたーくさんあって、
それがすでに7zで固めてあって、
その中の任意のファイルをiアプリから読み込みたいだけです。

ないならないでいいんだよ。作るから。
887デフォルトの名無しさん:2007/12/15(土) 15:17:11
PC上で7zからzipに変換しておけば済む話じゃね?
888デフォルトの名無しさん:2007/12/15(土) 15:47:29
受話器のマイクの音声に反応するとか、記録するような処理って
最新のiアプリの仕様でも出来ないんですか?
889デフォルトの名無しさん:2007/12/15(土) 16:40:05
それが出来たら電話代稼げなくなるから無理
890デフォルトの名無しさん:2007/12/15(土) 16:43:54
>>886
そういうのをファイラーっていうような気がするんだが……俺の勘違いかな?

まぁあくまでトレードオフの話だから
趣味で自分がやるってのを止めるわけではないよ
LZMAデコーダーはそのまま使えそうだから頑張って7zファイルを処理するコード書いてみると良いよ
実際DoJaのzip処理にも内部の日本語ファイル名が展開できるかどうかは機種依存とかパスワード付きzipは展開できないとか
拘りだすと汎用なzip展開処理としては問題がある点もあるからね
独自コードでメモリ上でzipファイルにパッチ当てでもやってるのか無理矢理それらを処理するiFDみたいなiアプリだってあるし

>>887
だなぁ
iアプリ上で7zを処理する仕組むを組むよりもPC上にある全7zファイルをzipファイルに変換してしまう処理を組む方が多分ラクだし早いな
まぁ俺が元々携帯でのjavaよりもPC上でのCやC++の方が得意だというのも有るんだろうけど

7zが全部ソリッド書庫だというなら中にあるファイルの種類によっては携帯のjavaの方を組む選択にするかも知れんけど
ベタ画像の差分モノ(もうこの時点で種類が極端に限られるけど)なら7z→zip処理でサイズが膨れ上がりすぎるんで
javaの方でどうにかする選択肢になるかも知れんな
まぁその場合でもサイズが大きすぎて携帯のヒープでは前方からのスライドショー程度しか出来なくなりそうではあるが
速度を度外視するならSDをテンポラリにすればなんとかなるか?
携帯じゃあまりテンポラリディレクトリって概念は使われないがSD-BINDがあるなら出来なくはないか
どっちにしても程度の問題かなbmp+7zをjpg+zipに変換するプログラムを組むって選択肢も有るし
891デフォルトの名無しさん:2007/12/15(土) 16:46:16
>>888
905iの音声認識はマイクに喋った言葉を音じゃなく文字として拾うものなので
(「明日」とマイクに喋ったら"あした"という文字列を取得できる)
音として記録するのは今の所無理だね

自分が喋った生音じゃなくてもよければ音声認識と音声合成を使って無理矢理処理する方法もなくはないけどあんま現実的ではない
892デフォルトの名無しさん:2007/12/15(土) 21:41:00
iアプリは作り方が悪いとリソースが開放されずに残ったりしますか?
自作のiアプリをテストしてたら、メールを作成する時に「メモリ不足です」と出ます。
電源OFF,ONで直ります。
893デフォルトの名無しさん:2007/12/15(土) 21:55:03
>>892
iアプリの問題というよりも端末そのもののバグって気がするが>それ

実行中にオブジェクトのリソースが残ることがあるかって点ではdispose()があるものは
dispose()で明示的なオブジェクトの開放を行わないと駄目だが
iアプリそのものが終了後にネイティブリソースが開放されずに残るってのは端末のバグだと言えると思う
894デフォルトの名無しさん:2007/12/15(土) 22:14:52
>>893
機種はF905です。
PCと違って行儀悪くても終了したら全部開放される事にはなってるんですね。
バグだとしたら致命的だなぁ
895デフォルトの名無しさん:2007/12/15(土) 22:35:15
マルチタスク?とやらでアプリ使用中ってことはないよね?
アプリ終了してもリソース開放されないならバグだな
896デフォルトの名無しさん:2007/12/15(土) 23:31:29
>>895
いやいや待てよマルチタスクでiアプリ実行中にメールを起動したとしようや
その状態でメール側にしろiアプリ側にしろメモリ不足なんて干渉が起きる時点で明らかに設計上のバグだろ
これがアクセスできないリソースへのアクセスを止めるワーニングメッセージならともかくだが
例えばiアプリがSDを使用してる場合はマルチタスクでネイティブのSDアクセス部分が動かないようにワーニングを出すとかならまだ理解できる
897デフォルトの名無しさん:2007/12/16(日) 01:36:08
一瞬だけ「メモリ不足です」って出るんです。
で、F905の板とか関連を見てみたら、他でも返信メールを打とうとしても、
画面が切り替わらないという症状があるらしい。
多分、一瞬だけ「メモリ不足です」が出てると思う。

やっぱりバグかな。
898デフォルトの名無しさん:2007/12/16(日) 09:06:05
仕様かもしれん
899デフォルトの名無しさん:2007/12/16(日) 10:32:54
まぁFだしなぁ
PとSH以外でまともな携帯求めるほうが間違ってるといいたいw
900デフォルトの名無しさん:2007/12/16(日) 12:08:52
N900iでも、アプリとメールとiモードを同時に使うと「メモリ不足です」でメールが閉じられたりするよ。
Javaヒープとメールやiモードのヒープが、共有されているだけじゃね。
901デフォルトの名無しさん:2007/12/16(日) 16:12:02
N、D、Fは何かしら問題が起きる事が多い気がするから嫌い。
みんなPとSHを使えばいいのに。
902デフォルトの名無しさん:2007/12/16(日) 16:23:34
SHはソフトバンク機で尋常じゃない機種依存持ってるからやだ
903デフォルトの名無しさん:2007/12/16(日) 17:34:14
最近の端末は3Dの為に専用のハードウェア積んでるから
それによる機種依存もあるんだよねー
904デフォルトの名無しさん:2007/12/16(日) 17:56:14
Windowsは何かしら問題が起きる事が多い気がするから嫌い。
みんなMacを使えばいいのに。
905デフォルトの名無しさん:2007/12/16(日) 18:05:44
Mac使わなきゃならないならこの仕事辞めるわ('A`)
906デフォルトの名無しさん:2007/12/16(日) 20:21:06
関西だとやっぱMacDoって言うの?
907デフォルトの名無しさん:2007/12/17(月) 08:46:21
java 初心者だけど、聞いていいですか?

構造体をリストに保持したいんだけど、javaだと、どうやって実現します? vectorとか?
908デフォルトの名無しさん:2007/12/17(月) 09:35:33
ArrayList<HogeClass>
909デフォルトの名無しさん:2007/12/17(月) 11:07:55
905で縦横判別テストと思って
try{
switch(PhoneSystem.getAttribute(PhoneSystem2.DEV_DISPLAY_STYLE)){
ほげ
} catch (UnsupportedOperationException e) {
}
とかしてみたんですけどエミュレーター上は問題なく動いて実機だと
実行時例外が発生して
UnsupportedOperationException
がcatchできないみたいなんですけどなにか勘違いしてますかね?
ちなみにP905です
910デフォルトの名無しさん:2007/12/17(月) 11:51:01
iアプリコンテンツ開発ガイド for DoJa-5.x
各機種オプションAPI・拡張API実装状況
911デフォルトの名無しさん:2007/12/17(月) 11:52:03
>>909
他のとこの UnsupportedOperationException エラーでした
ソースは大丈夫そう

...Canvas2部分があやしい模様
エミュレーターだとエラーでないんだよなorz
912デフォルトの名無しさん:2007/12/17(月) 13:24:17
Canvas2なんて使えるほうが珍しいってか使える機種あったっけ?
>>910の資料ちゃんと読んだほうがいいぞ
公式資料のくせにきちんとした表になっててわかりやすいし
913デフォルトの名無しさん:2007/12/17(月) 14:30:46
>>912
Canvas2は5.1以降の拡張APIだから公開されてる実装状況の資料にはまだ載ってないよ
多分だけどF905i専用のAPIじゃないの?
914デフォルトの名無しさん:2007/12/17(月) 17:02:23
>>908
> ArrayList<HogeClass>

ありがとうございます。
構造体の代わりにクラスを作ってArrayListに格納ってことですか。

ところで、クラスってインスタンス一個作る毎に、どのくらいメモリを消費するんでしょう?
数千単位だと、結構無視できない量になる? それともCの構造体程度?
915デフォルトの名無しさん:2007/12/17(月) 17:48:04
>>913
F905専用かもしれませんね
APIで簡単に回転させようと思ってたんですが
P905でも使える他のクラスあるのかなぁ

ちなみにP905の横オープンですが
PhoneSystem.getAttribute(PhoneSystem2.DEV_DISPLAY_STYLE)
してみた所
ATTR_DISPLAY_STYLE_REVERSE
となぜか実機はREVERSEの値返してきました
ATTR_DISPLAY_STYLE_HORIZONTAL_RIGHT
あたりかと思ってたのに回転関係は結構機種依存度高そう
916デフォルトの名無しさん:2007/12/17(月) 20:07:09
>>914
iアプリに関する話?Java一般の話?
実装依存だから何とも言えない。
たいていはCの構造体と同じくらい
917デフォルトの名無しさん:2007/12/17(月) 21:27:17
>>915
画面そのものとキー配置とディスプレイ位置の関係上はリバース位置になるんじゃない?
実際横に開いて縦に使う事だってできるんだし

あと904iまでは画面回転させるなら表示する内容を一回全部Canvasと同じサイズのImageに書いて
(90度,270度の場合には縦横の解像度を入れ替えてImageを作る)
Canvasへ描画する際にGraphics.setFlipMode()で指定した回転状況でImageを表示するって感じになる
もちろん全部の描画処理をラップして画面回転させながら描いてもいいけど
文字列の描画とかの手間を考えるとImageに一回描いてGraphics.setFlipMode()してCanvasへ表示がベストだと思う
918デフォルトの名無しさん:2007/12/17(月) 22:04:41
P905iって、ADFでDrawAreaを横長(854x480とか)にすると、最初から横倒し表示になるよね。
このパターンだとHORIZONTAL_RIGHTになってたりするのかな?
919デフォルトの名無しさん:2007/12/17(月) 22:40:04
>>908
ArrayListってiアプリ(というかJAVA ME)で
使えるようになったのか?
920デフォルトの名無しさん:2007/12/17(月) 23:38:36
使えるわけねーだろw
921デフォルトの名無しさん:2007/12/17(月) 23:59:47
F905iだけどcanvas2使うと実機で落ちる 例外も取れん
わけわからんから 寝て起きて直ってたらいいなー
922デフォルトの名無しさん:2007/12/18(火) 00:12:20
       ハ_ハ  
     ('(゚∀゚∩ なおるよ!
      ヽ  〈 
       ヽヽ_)

カレーも一晩置いた方がうまいじゃん。
923デフォルトの名無しさん:2007/12/18(火) 09:10:22
プログラムは一晩置いても直らない
924デフォルトの名無しさん:2007/12/18(火) 09:24:42
自分の頭は一晩置くと治る場合がある
プログラムは確かに直らんが頭が治るとバグを見つけ出せたりして結果的にプログラムも直る場合はあるぞ
まぁだからといって毎回そうすればよいという話ではないけどな
煮詰まった時に一歩引いてみるのは手として有効だ
925デフォルトの名無しさん:2007/12/18(火) 09:34:53
        ∧         ∧
        / ヽ        ./ .∧  ニコ
     /   `、     /   ∧   ニコ
    /       ̄ ̄ ̄    ヽ
  ( ̄ ̄ ̄ ̄ ̄デスマ  ̄ ̄ ̄)
   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ .\  仕事が終わってから 
  /::::::::::   ⌒     ⌒    /   ゆっくり逝って^H^Hねむってください。
  ヽ:::::::::: /// \__/ /// /
    ヽ__:::::::::::::  \/     /
  /\\          //\
 |   \\       //  |\
926デフォルトの名無しさん:2007/12/18(火) 10:16:12
一晩寝かせたけど直らなかった
927デフォルトの名無しさん:2007/12/18(火) 12:35:21
F905iでcanvas2はサポートされてないようです
Fで使えないのになぜ追加したんだ…紛らわしい…
928デフォルトの名無しさん:2007/12/18(火) 17:17:02
>>926
俺のとこでは、寝かせるときに横にビン入りの水をおいとくとたいてい直ってるよ!
どうもこのビンに秘密があるみたいなんだ。よく効くよ。よかったら安く売ろうか?
929デフォルトの名無しさん:2007/12/18(火) 21:08:44
>>928
その前に一つ上のレスを読んだ方がいいぞw
930デフォルトの名無しさん:2007/12/20(木) 04:43:08
jig、ibis以外のフルブラウザがいまいちなんで
メガアプリでフルブラウザ作らないか?
ダウンソフトでいうIrvineみたいな名作ができたら、
みんなにも有益だと思うんだが。
931デフォルトの名無しさん:2007/12/20(木) 04:48:57
んじゃ俺ボーカルやるわ
932デフォルトの名無しさん:2007/12/20(木) 05:39:11
>>757
結局905のDrawAreaはどう対応したら良いんだろう?
できれば 480/2*8nn/2 のパターンで対応したいけど機種毎の挙動がわからん
933デフォルトの名無しさん:2007/12/20(木) 09:56:48
>>930
iアプリ共同製作支援スレ その1
http://pc11.2ch.net/test/read.cgi/tech/1165049332/
934デフォルトの名無しさん:2007/12/20(木) 14:06:12
>>930
scopeを画面最大でニューロ対応みたいな感じにしてくれ
935デフォルトの名無しさん:2007/12/20(木) 17:01:33
デフォルトの伝言メモが20秒と短いのですがiアプリでもっと長い留守録アプリを作ることは
可能ですか?
936デフォルトの名無しさん:2007/12/20(木) 17:16:19
無理
937デフォルトの名無しさん:2007/12/21(金) 19:12:20
Dojaプラグイン+eclipseの[設定]内の
「DojaX.X Environment」
のなかにサウンド設定がありますが、
eclipseで開発すればmldやら3g2やら再生すると音が出るんでしょうか?
938937:2007/12/21(金) 21:53:12
自己解決しました
お騒がせしました
939デフォルトの名無しさん:2007/12/23(日) 09:34:30
>>932
ユーザーが任意のサイズを落とせるようにするなら
480x864(F,D,SO)
480x854(N,P,SH)
480x734(SO)
480x650(N)
480x640(F,D,P,SH)
と各1/2サイズで良いんじゃないの?要するに10個解像度を準備
940デフォルトの名無しさん:2007/12/24(月) 17:33:13
エミュレータからローカルホストに通信したいときはどう設定すればいいですか?
ADFアドレスが127.0.0.1では不正だと言われました
941デフォルトの名無しさん:2007/12/24(月) 17:37:02
942デフォルトの名無しさん:2007/12/24(月) 19:06:31
>>941
できました
ありがとうございます
943デフォルトの名無しさん:2007/12/24(月) 19:10:02
IPアドレスで指定することはできない
944デフォルトの名無しさん:2007/12/24(月) 21:00:03
上にも書いてあるけど905でSDHCが使えるようになって
SDのファイル名8.3形式以外のロングファイルネームは対応してるんでしょうか?
実機がないので試せないorz
945デフォルトの名無しさん:2007/12/24(月) 21:52:33
単独サイトのサーバでも
DLサーバにVirtualHost設定しとかないとJar抜かれる。
気をつけて。
946デフォルトの名無しさん:2007/12/25(火) 02:45:19
>>945
どういう流れか知らないが、
普通にVirtualHostを設定しただけじゃPCから見えると思うぞ
947デフォルトの名無しさん:2007/12/25(火) 15:33:16
Display.setCurrent()で表示するキャンバスクラス切り替えると
画面が一瞬パチってなるんだけど、それを起こらなくすることって出来ますかね。

948デフォルトの名無しさん:2007/12/25(火) 16:56:21
>>946
PCから見えなくても
IPでのアクセスが可能になってると
抜ける。
949デフォルトの名無しさん:2007/12/25(火) 17:30:42
で、具体的な抜き方と、防衛方法はなんですか?
950デフォルトの名無しさん:2007/12/25(火) 17:51:25
抜き方も何もダウンロードするリンクが貼ってあるページをPCで見たら
Jarの位置がわかる。そこにアクセスすればJarが落とせる。

なので携帯のIP範囲外だったら表示しないようにする。
サーバで設定するかページごとにチェックするかはお好みで。
951デフォルトの名無しさん:2007/12/25(火) 19:12:00
>>947
無理
setBackgroundColorで誤魔化せるけど
952デフォルトの名無しさん:2007/12/25(火) 20:03:37
>>950
IPアドレス制限するくらいは誰でもやってると思うんだけど
>>945
>>948
は、「jarをIPに対応してない別サーバに置かなきゃjar抜かれるよ」って言ってるように読める。
953デフォルトの名無しさん:2007/12/25(火) 20:39:31
俺には>>945>>948も見当違いにみえる
954デフォルトの名無しさん:2007/12/25(火) 20:49:28
>>953
お前もか
俺も念の為に聞いてみただけ
955デフォルトの名無しさん:2007/12/25(火) 21:54:31
俺はどっちかと言うと抜きたい方だから詳しく書かないで静観したい。
956デフォルトの名無しさん:2007/12/26(水) 00:12:09
ゲーム等で使用する画像をスクラッチパッドに書き込んで使用する場合の
ユーティリティを作成しようと思っていますが、
なかなか良案が思かず、みなさんのご意見を伺いたいと思います。


・HTTP通信でリソース取得を行い、SCPに書き込みとしたい(SDは使用しません)
・独自メソッドでファイル名を引数に渡せばbyte[]で返してくれる様にしたい
 ※上記ができればImage,MediaSound,JarInflater等を
  各オブジェクトで返してくれるメソッドも作成する

現在検討している内容は下記ですが、
この後、どうやってファイル名でデータを取得するかが検討つかずボツになりそうです。

@ファイル名を記載したテキストリストからBufferdReaderで1行読み込んでURLと繋げる
A通信で取得時にLengthを取得してファイル名、書き込み位置、ファイルサイズを記憶
以後繰り返し。

上記と全く違う方法でも構いません。
CPや一般のアプリ作者様の管理方法等、情報がありましたら教えてください。
よろしくお願いします。
957デフォルトの名無しさん:2007/12/26(水) 08:36:06
>>956
iモードはほとんど関係ない一般的な内容な気もするが…
とりあえずその段階で悩むようなら、まず考えた案で実装してみることをお勧めする。
そうすれば、何が必要かなんて一発でわかる。
958デフォルトの名無しさん:2007/12/26(水) 09:26:47
>>951

無理か〜。
タイミングによっては出ないんだけどね〜。

ごまかすってのは白か黒で塗りつぶすみたいな?


なんにせよありがとう。
959デフォルトの名無しさん:2007/12/26(水) 17:12:09
そもそもCanvasを切り替えるってやらなくないか?
危険ばっかりだし
端末によってはCanvas破棄してもうまく開放してくれなかったりするし。特に古いN
960デフォルトの名無しさん:2007/12/26(水) 18:04:01
panelとcanvasを切り替えるのはやる
961デフォルトの名無しさん:2007/12/27(木) 10:20:22
あのうプログラミングめんどおくさいんですけど
どうすればいいですかあ?
962デフォルトの名無しさん:2007/12/27(木) 11:38:35
いきをするのもめんどうだ
963デフォルトの名無しさん:2007/12/27(木) 13:24:41
950のダウンロードページを携帯のIP以外を弾くってやり方だけでは危険?
jamの内容見られたら終わりですよね
964デフォルトの名無しさん:2007/12/27(木) 13:26:40
素人はhtaccessで弾いとけよ。
965デフォルトの名無しさん:2007/12/27(木) 13:27:55
jar落とせなくてもjam落とされたら
別のところにjamをあげられて勝手にアプリダウンロード出来てしまうよね
966デフォルトの名無しさん:2007/12/27(木) 13:30:46
>>964
今のところhtaccessのみでやってるけど心配になってきた
967デフォルトの名無しさん:2007/12/27(木) 14:06:40
ネトラジを聞くアプリって可能ですか?
このスレをみると原理的には可能っぽいのですが
存在しないのはDL制限の問題ですかね?
http://namidame.2ch.net/test/read.cgi/campus/1198498661/
968デフォルトの名無しさん:2007/12/27(木) 14:28:31
>>965
でも逆コンパイルされる心配はないですよね?
969デフォルトの名無しさん:2007/12/27(木) 14:33:23
ProGuardなりで難読化してるからそれは心配ないですけど
自分のサイトのアプリが他所で勝手に再配布されるのを防ぎたいのです
970デフォルトの名無しさん:2007/12/27(木) 16:11:04
まとめてみた。
端末によってはアプリ情報でjamのURLが見られるって書き込みがあったような。。。

コンテンツへのアクセス許可をiモード限定とすることで、
html、jam、jarの直接的な閲覧が制限され、
各URLの秘匿およびアプリの逆コンパイルを阻止できる。

▽ダウンロード用htmlへのアクセスをiモード限定にする
 ・jamのURLを秘匿するため

▽jamへのアクセスをiモード限定にする
 ・PackageURLを秘匿するため

▽jarへのアクセスをiモード限定にする
 ・逆コンパイルを阻止するため

iモードのIPアドレスはこちら
ttp://www.nttdocomo.co.jp/service/imode/make/content/ip/
971デフォルトの名無しさん:2007/12/27(木) 16:44:09
【2万人くらいに聞きました】競争激化のケータイ。料金以外で一番重要視するポイントは?
http://news.ameba.jp/research/2007/12/9797.html
972デフォルトの名無しさん:2007/12/27(木) 17:28:14
JAMとちがうドメインのjarをDLできる仕様なのが素人の俺には理解できない
973デフォルトの名無しさん:2007/12/27(木) 17:52:46
>>970
トレースがONだと見れる端末は有るよ>jarアドレス
974デフォルトの名無しさん:2007/12/27(木) 17:56:59
iモードアクセス履歴検索サービスを使えば端末によらず見れるでしょ。
975 ◆Phz7ohLOr. :2007/12/27(木) 20:57:12
test
976デフォルトの名無しさん:2007/12/27(木) 22:46:52
>>974
そんなサービスが!!
ネットランキング用のcgiにGETでアクセスするようなアプリだと
イタズラし放題なのか。。。
977デフォルトの名無しさん:2007/12/27(木) 23:45:37
>>963
ここまでの流れ、静観しようかと思ったけどやっぱり書く。

接続元IPアドレス、いわゆるリモートホストで弾くだけでは不十分。
アプリ置くサーバにはバーチャルホスト使えって書いた人を笑ってた人がいたけど、
バーチャルホストにするのは有効だと思う。

理由はこのスレだったか前スレだったかに書いてた人がいたね。
978デフォルトの名無しさん:2007/12/28(金) 04:30:46
iモードでjamのアドレス直打ちすっと内容丸見えだからな
jamの在りかがバレたらアウト
ダウンロードページを携帯でしかアクセスできないようにすればいい
htmlのソースが見える携帯があるとすればダメだが
979デフォルトの名無しさん:2007/12/28(金) 06:50:06
>>976
ウェブセキュリティの定石ですな。
アドレスバーを隠してセキュアにしようとするのは駄目。
通信内容は見られる前提でシステム組んでおかないと。
iモードアクセス履歴検索サービスなんてもう2年近く前からあるのに。
980デフォルトの名無しさん:2007/12/28(金) 08:51:06
2年前ってわりと最近だなw
981デフォルトの名無しさん:2007/12/28(金) 09:09:31
勝手アプリは抜かれるの覚悟で公開しないと
982977:2007/12/28(金) 12:27:55
>>978
違うんだってば。
リモートホスト使って携帯からしか見られないようにしてあっても、
HTMLのソースもjamもjarも「ぶっこ抜く」方法があるんだよ。

対策はいくつか考えられるけど、詳細を言わずに対策だけアドバイスするって意味で、
バーチャルホスト使えっていうのはうまい言い方だと思う。

元のレスはどこだったかな…。
983デフォルトの名無しさん:2007/12/28(金) 12:42:37
>>982
参考までに抜ける公式サイトURL教えてくれ。
984デフォルトの名無しさん:2007/12/28(金) 12:55:11
>>983
公式サイトに試したことないので、わからない。
でも、さすがに公式のは対策してるんじゃないのかな。
その方法がバーチャルホストかどうかは別にして。

元のレスが見つからない…。
前スレのログ持ってる人がいたら確認してもらえないかな。
985デフォルトの名無しさん:2007/12/28(金) 13:07:38
前スレなら1001まで持ってるが該当記事ではリファラorIPだけでブロックしてるところは抜くことができるというもの
ホストで規制してたら駄目
986デフォルトの名無しさん:2007/12/28(金) 13:18:39
>>983
おー、やっぱ前スレでしたか。ありがとうございます。
ホストで規制ってのは、端末側じゃなくてサーバ側の(言い換えると、リクエストヘッダのHost)だよね。

てことで、すまないけど、詳細知りたい人は前スレを探してください。
987デフォルトの名無しさん:2007/12/28(金) 13:23:55
前スレ見てきた。大体把握した。
でも対策として、バーチャルホストを使えば有効な理由が分らない。
詳細きぼん。
988987:2007/12/28(金) 13:26:39
あー、986見てわかった。HTTPヘッダとsetRequestPropertyがキモなのか。さんくす。
989987:2007/12/28(金) 13:27:39
次スレたててくる
990デフォルトの名無しさん:2007/12/28(金) 13:35:00
>>987
ごめん、書き方不正確だった。
ネームベースのバーチャルホストじゃないと意味ない。
IPアドレスベースのバーチャルホストを想定してた人がいたらごめん。
991デフォルトの名無しさん:2007/12/28(金) 13:44:23
992デフォルトの名無しさん
埋め