iモード携帯電話用Java(iアプリ) Part10
1 :
デフォルトの名無しさん :
2005/11/10(木) 15:11:53
2 :
デフォルトの名無しさん :2005/11/10(木) 15:12:53
3 :
デフォルトの名無しさん :2005/11/10(木) 15:13:26
iアプリベンチを見てる限り902シリーズはNにあわせて作るべきか。 他の機種が軒並み性能が上がっている(Pが特に神性能復活か?)中、 Nだけが901同等の性能のまま。他の902より一段階遅いな。 今回はNとPのOSは違うものになったんだろうかね。この性能差は。
>>5 アプリ用のサブCPUを積んでるかどうか、じゃないかなぁ。
何にせよ、DやFならともかく、Nは切り捨てるわけにはいかんからなぁ…
個人的には、DとFのタイマ解像度が10msになったのが嬉しい。
>>6 >アプリ用のサブCPUを積んでるかどうか、じゃないかなぁ
今時ドコモのメイン機種はすべてダブルCPUですが、なにか?
(M1000とかロースペック700iがどうなってるかはシラネ)
そもそもNとPは基幹部分は共同開発ですよ
>>7 > 今時ドコモのメイン機種はすべてダブルCPUですが、なにか?
うん。
でも、902はCPUがOMAP2になって速くなったから、事情が変わった可能性が
ないとは言えないなー、と思って。
CPUじゃなくてグラフィックアクセラレータに違いがあるのかもしれないし。
> そもそもNとPは基幹部分は共同開発ですよ
それなのに性能が違うのはなぜだろう、ってハナシだったんじゃ…
音と画面サイズの種類分のリソースファイルの作成やら jamの書き換えやらが面倒だったんで、 その辺処理するツール作ってみたんだけど。 普通結合ツールとか作ってるもんかな?
質問です。 スクラッチパッドにjpgを保存すると、そのjpgを 携帯のメニューから壁紙に設定できるようになりますでしょうか?
できるようになりませんです。
>>12 あ〜、ImageStoreクラスってのがあったんですね。
ありがとうございました。
(((((((( ;゚Д゚))))))) おおおおおおおそろしい902性能 「全画面背景描画+全画面近いでかキャラクター表示」 を毎フレームやっても、平均FPS60出る やばい、これはやばい。 やばいのコピペ改変しようかと思ったくらいやばい。 試したのはD902とF902。お前らはこのやばさをもっと知るべきだと思います。
>>14 携帯アプリ開発は端末ごとに対応してもほとんど儲からないから、
基本的に一番レベルの低い端末を基準にする。
N902の実力がわかるまではなんとも言いがたい。
ぶっちゃけ、N902が足引っ張ってくれりゃ、
902専用とかやりづらいから助かるんだけどな(゚∀゚)
仕様が統一されずにめんどくさいほど、俺らは儲かるからなぁw
うちからはNの情報。 むしろDやFより速い。んぱかのあの情報は悪戯だと思われ。
>>16 ウラヤマシス(´・ω・`)
ウチなんて、金額と納期から逆算した仕様が来て、
シリーズ単位での見積もりだぜ。
さらにディスカウントが付いて、仕様入れただけの糞アプリ作成(゚∀゚)
>>18 げ、糞仕様端末とかまじってても十派一絡げで見積もられるん?
それは(´・ω・`)カワイソスすぎる
うちは客と直接会議して、こういう端末ではこういう制限があるので、対応するとこれくらいさらに時間がかかってしまうとか説明するよ。
大抵は機種切りはしないで、低スペックにあわせるけどね。
>>17 俺からの情報。今回N902が神端末になると思われる
むしろPのバグがひどい
902基準で作りたいなぁっと思っても505が捨てられない。 捨てても900基準だろうなぁ〜。他はどうなんだろうw
>>20 なにー。Pの神速度FPS100超えに驚いてたのに。
でもPってまだ開発機だから、これからなおるんじゃね?
バグ情報提出しておいてくれ(;´Д`)
そんぐらいの性能が出るなら、タイマ解像度も上げてくれ>SH以外各社
Dが3msだった。 他は1ms。 タイマー解像度に不満はなさそうだぜ。
うお、Doja4.1エミュも30フレーム以上出るようになってるぜ(´Д`;
あ、setPixelsがまともな速度になってるかチェックするかな。エミュ。
>>24 そうなん?
んぱかの表では、SH以外は10msになってたけど、どうなんじゃろう。
ImageEncoder.getEncoderでjpeg以外指定できないんでしょうか?
>>27 TimerとかShortTimerは10だよ。
でもSystem.currentTimeMillisしか使わないだろ?
話を聞いていると、iアプリもDirectX 5程度には良くなったようだな。 デスマーチの中奮闘している携帯開発者にとりあえず頭だけでも下げておくぜ。
NPのSpSize409600のバグは直ってるのか?
>31 P902 で spad に outputStream で書き込めないってやつかな (前スレ読めないのでスマン)
NPで通信とかするとメモリが足りなくなるバグのことじゃね? スクラッチパッドのサイズの設定を409600にすると避けられるとか。 とりあえず、実機見てみないとなんとも。
あれは回避策がここで出たんで助かったよ。 まさか全アプリ409600にするわけにもいかないし。
35 :
32 :2005/11/13(日) 14:26:15
>>33 34
ありがとう。ココレベル高いね・・●買うよ。
>>31 ファーム書いてる奴もココ見てるかもしれないけど、
901で治ってないってことは根本的にダメなんじゃないの?
今回、PがNの倍くらい速いことを考えるとNとPが開発別になったかもしれんぞ?
SH505iヒープ 1698 KB N900iヒープ 3000 KB キャンバス切り替え(newで新規に作りSystem.gc()は行わない)を繰り返したところ、 SH505iでは何十回繰り返してもまったく落ちないのに N900iでは数回で落ちた。 ここまでメモリ効率が悪いとは思わなかった。
Nはデフラグをしない
ShortTimerをdispose()せずにnewしまくってたらgc()しても開放しなかったのでびびった記憶がある
まぁそこらへんはJBlendで多少ましになってるんじゃないか? というか、なっててくれ…
一応902の仕様書ではコンパクションに対応のとこに 全部チェック入ってるっぽいな。
そもそもそんなチェック項目があるのが謎だw 魂魄所ん(←なぜかこう変換された)に対応しないGCを作るバカがどこにいるんだ。現実にいたわけだが。 N902iはiアプリベンチ見てると描画周りがきな臭くね? よく知らんけど、JBlendって描画系は守備範囲外なんじゃ。 902iについては、CPUが統一されました、でもGPUは違いますって感じじゃないかと思った。
drawStringに負の値を入れさせろ〜orz
普通に入るベ
>魂魄所ん(←なぜかこう変換された)に対応しないGCを作るバカがどこにいるんだ。現実にいたわけだが。 同感 ファームの開発者ヌルイなあ なにが制限事項だ 回収騒ぎにならないのが不思議 P900 系でいきなり電源落ちるアレ いまだにソフトウェア更新でも直らない 参る
マ板の携帯開発スレみてると何でこんなに糞なのか良くわかるような・・・
人間の限界を超えてる開発現場だからな。 現場の人間には少し同情する。
限界超えてるのは携帯ハード開発の方だろ。 iアプリ開発ごときで監禁生活はありえねー
>>50 48-49はそう言っているのだが、何を勘違いしてるんだ?
質問です。 ADFのappverを参照するにはどうすればよいのでしょうか?
参照できない。AppParamにVer情報書いておきなさい
54 :
デフォルトの名無しさん :2005/11/17(木) 16:25:14
質問です。 com.nttdocomo.ui の クラス com.nttdocomo.ui.SpriteSet と com.nttdocomo.opt.ui の クラス com.nttdocomo.opt.ui.SpriteSet が 両方適合するため、参照があいまいですとエラーが出てしまうのですが、 上手い方法は無いでしょうか・・・?
opt側を切り捨てたら? import com.nttdocomo.ui; import com.nttdocomo.opt.ui; って両方書いてるだろ? それじゃ SpriteSet って書いた時、どっちのものだかわからん。 片方しかimportしなければいい。 どうしても両方必要なら、使う時にちゃんと com.nttdocomo.ui.SpriteSet spr = new com.nttdocomo.ui.SpriteSet(); というふうにフルパスで書く。
DoJa-3.5以降なら import com.nttdocomo.ui; 一択で。 SHのばか!
>>54 ,55
SpriteSetはcom.nttdocomo.uiの方を使いたいんだよね?
だったら
import com.nttdocomo.ui.*;
import com.nttdocomo.opt.ui.*;
import com.nttdocomo.ui.SpriteSet; // 最後に使いたい方をクラス名まで書く
でOK。
GoGo段ジョンか。 あれの日本語は確かに超言語だw
何のアプリ?
漏れの記憶が確かなら、P50x系にプリインスコされてるシレンもどきアプリ。 出来は可も無く不可も無く、といった印象。 漏れは速攻飽きて放り出した口なので、本当は良作なのかもしれないけど。
62 :
54 :2005/11/18(金) 22:54:51
63 :
デフォルトの名無しさん :2005/11/20(日) 02:45:12
ヒャッハー 彼女と携帯屋行ってオソロの携帯にしたぜー ヒャッハー 携帯アプリってすげーのな! これじゃ携帯ゲーム機が売れねぇわけだぜ! iアプリ作ることにしたぜー ヒャッハー
そうか、まあ頑張ってくれ。ニラニラしながら待ってるよ。
65 :
デフォルトの名無しさん :2005/11/21(月) 11:45:53
メッセージ領域に表示されたエラーや、System.out.printlnで 表示させた文字列をメモ帳等に貼り付けたいのですが、コピー& ペーストができません。どのようにすればいいですか?
66 :
65 :2005/11/21(月) 11:55:18
すいません。解決しました
だから、解決したなら解決法を情報提供しろっての… 流石にそれは誰でも分かるレベルだが、今後の心構えの問題的に。
コピペはこのスレとは全く関係ない問題だが
アプリ実行情報、情報コピー
初めてiアプリ作ろうと思うんだけど、オススメの本とかない? あればおしえていただきたい。
72 :
70 :2005/11/22(火) 00:58:52
/ ̄ ̄ ̄ ̄ ̄ ̄ \ /⌒ヽ / '''''' '''''' ヽ | / | (●), 、(●) | | | | ,,ノ(、_, )ヽ、,, | | | | `-=ニ=- ' | 布留川先生はたくさん書籍をだしておられる | | ! `ニニ´ .! 初期の頃のものがあれば初心者向きじゃ | / \ _______ / | | ////W\ヽヽヽヽ\ | | ////WWWヽヽヽヽヽヽヽ | | ////WWWWヽヽヽヽヽヽヽ E⊂////WWWWWヽヽヽヽヽヽヽ E//// ヽヽヽヽヽヽヽ | | //WWWWWWWヽヽヽヽヽヽヽ
74 :
63ヒャッハー ◆N0JnmCMoD2 :2005/11/22(火) 01:44:48
とりあえずジャワ覚えてみた! ヒャッハー
>>74 近所で氷上釣りが始まる人?(´・ω・`)
>>75 兄さんMIDPスレ見ているなっ
でもハズレ
77 :
ヒャッハー ◆N0JnmCMoD2 :2005/11/23(水) 00:58:18
ここはお前のチラシの裏じゃないんだよ 分かるな?
>>78 ごめんなさい。もうしません ヒャッハー
パソコン直ったら、次からチラシの裏に書きます…
>79 ブログでも立ち上げたらどうか。
描画関係の処理をpaint()の外に書くと落ちたりってしますか? g.setColor()とかg.fillRect()とかしか書いてないのに実機で落ちます. エミュレータでは普通に動きます. 無理矢理全てpaint()の中に押し込めたら落ちなくなったんですが・・・ エミュレータで動くのに実機で落ちるという状況だとパケット代がかかって大変です.
とりあえずgc()でも入れてみようか
ど素人な客じゃないんだから、エラー内容くらい見ようぜ。
>>81 まさかpaint()の引数に渡ってくるGraphics gを外で使ってるとかじゃないよね?
paint()の外で使うなら、getGraphics()しなきゃだめだよ。
iアプリからプログラムに入ると、 基本と応用の違いが理解できなくて 糞プログラマになっていくような気がしてしょうがない。
N88BASICでgotoを乱用することから始めた人が プロとしてバリバリにやっているのをみると あまり関係ない気がする
89 :
デフォルトの名無しさん :2005/11/25(金) 00:30:14
DoCoMoのエミュレータ… どっかの素人が趣味で作ったのか? あんなくそソフトが基準だとやりづらくてしょうがねぇ。
>>89 じゃあお前はもっといいものを作れるわけだな?
うp
92 :
89 :2005/11/25(金) 06:50:48
>>90 そうなんだ…ボーダApp開発者かわいそす。
>>91 そうだな、いずれは作らなきゃアカンか…。
あのエミュは使用感が精神衛生上よろしくない。
他のどの携帯エミュよりも、DOCOMOのが優れているんだが…。 VisualStudioでWin32プログラムしか組んだこと無いのか?
そこはJava GUIだろう
仕様を考えると、シロウトが趣味で作れるようなシロモノじゃないのは確かだ。
そこらへん理解できない
>>89 がシロウト。
DoJa1.5登場・・・何故に今更・・・・・。 あとP851iは4.0leだがどうなんだろうな。今日だっけ?発売日
質問失礼します。 iアプリ上から、jarのみの更新(バージョンアップ)って可能なのでしょうか? DoJa-3.0以降だったら可能とチラッと聞いたのですが、具体的な命令等が分かりません。 初心者の質問で申し訳ないのですが、よろしくお願いします。
>>97 IApplication.launch()メソッド
第1 引数にIApplication.LAUNCH_VERSIONUP
第2 引数にnull を指定
後は頑張れ。
>>92 > あのエミュは使用感が精神衛生上よろしくない。
具体的に
>>99 学生が作ったかのようなインターフェイス。
妙に粘り気のあるレスポンス。
あと処理が遅い気がする。
手前が斬新なエミュをうpしてから文句言えばいいじゃないか。 ただのアレに見える
この規模のツールは仕事の人が作るほど素人っぽく見える気がする。 フリーの作者なら手間を惜しまず修正するかもしれないが、 仕事であれば、納期内に規定の動作を組み込む必要があるし、 そもそも、Doja2.0の頃からのUIをほとんど変えずにやってるんだから、 なかなか苦労してそう。 レスポンスはウチのマシンはPentium4の3Gで メモリは1Gしか乗ってないけどそんなに重くないよ? 余計なソフト立ち上げてるんじゃね?
BREWエミュレータに比べれば恐ろしく快適なんだが。 あ、でもDoja-4.0エミュはもっさり動作だな。
106 :
81 :2005/11/26(土) 00:06:29
>>85 エラーってどこかに出るんですか?
N901iSを使ってるんですが,落ちたことしかわからない気が.
>>86 ありがとうございます.たぶんそれですね.
どこかのサイトで見たソースを真似してしまったので・・・
107 :
デフォルトの名無しさん :2005/11/26(土) 01:59:32
iアプリで、 外部からファイルを読み込むって不可能ですか? 扱うクラスが全く見当たらないのです… ゲームを作っていて、数十種類ある武器や鎧(及びそれぞれの設定値)を外部ファイルにして 起動時に読み込んで変数に格納したいのですが、、。 どうしても本体に長々と書くのが嫌なので 別のファイルに 武器鎧を全て変数に入れたものを 用意して returnで返そうかな?なんて思っています 外部のファイルに武器鎧を保存したい場合、適切な手段はどのような手段でしょうか? 自分は↑しか思いつきませんでした…
リソースにぶっこむなり サーバに置いてスクラッチパッドにぶっこむなり お好きな方で。
余裕あるなら本体に長々と書いたほうが
111 :
107 :2005/11/26(土) 06:21:18
スクラッチパッドを使ってのは出来たけど、うーん、、
リソースにぶち込むってのは、分かりませんでした
イメージと、音声のはあったのですが、
ファイル読み込みのってあります?
>>110 余裕があるなら、という事は、
やはり本体に長々と書いたほうが、動作が軽いのでしょうか!?
iアプリ作ってる割にvodafoneで、実機での動作はまだ行っておりません…
resフォルダにファイル入れてスクラッチパッドと同じ方法で読むだけ
113 :
107 :2005/11/26(土) 11:01:00
Doja3.5でButtonを B B B B のような形に配置したくて、HTMLLayoutのLEFTとRIGHTを使って配置したら B B B B のようになってしまったんですが何か解決方法とかありますか?
>>114 ボタンの幅を設定してみたらどうですか?
>116 ああ、幅のこと考えてませんでした; やってみます、レスありがとうございました。
118 :
107 :2005/11/27(日) 15:24:52
なんどもすいません、 resフォルダにテキストを突っ込み、読み込もうとするも、出来ません 先ず、112さんの指摘通りにやってみたのですが、 loadエラーになります DataInputStream dis = Connector.openDataInputStream("resource:///buki.txt"); そこで、とあるサイトにあったのをコピペすると、 loadエラーが解決しました ファイルの読み込みは成功です が 実際にString型の変数に内容をいれる、readUTFが使えません コネクションを作成 接続先はリソースのbuki.txt ↓パラメーターは…?buki.txtを読みますよ って事ですか? Connection connection=Connector.open("resource:///buki.txt",Connector.READ); ↓入力コネクションの作成 InputConnection inputConnection=(InputConnection)(connection); ↓入力ストリーム オープン InputStream in=inputConnection.openInputStream(); 「↓」の右側に記したのが、自分なりの解釈です この場合、 String hako = in.read(); で出来ると思ったのですが、、互換性の無い型とエラーが出て、出来ませんでした… in.read();で 入力ストリームを通しインタフェースを通って リソースの buki.txtからデータを読み込むと思ったのですが、 解釈、間違っていますか? 時間をかけて調べて 上記に行き着いたのですが、 論外な程間違っていたら、本当申し訳ないです
119 :
107 :2005/11/27(日) 15:34:30
>>119 DataInputのreadUTF()を見ればわかると思いますが、
readUTFは特別なフォーマットのUTF-8しか読むことができません。
普通のテキストファイルを読みたければ、InputStream.readで1バイトずつ読込み、
改行記号のところで読み切るようなことをする必要がありますよ。
Vector vec = new Vector();
ByteArrayInputStream buf = new ByteArrayInputStream();
while (true) {
int d = in.read();
if (d < 0 || d == '\n') {
vec.addElement(new String(buf.toByteArray()));
if (d < 0)
break;
buf = new ByteArrayInputStream();
} else if (d == '\r') {
continue;
} else {
buf.write(d);
}
}
String[] array = new String[vec.size()];
vec.copyInto(array);
こんな感じにすると、arrayに読み込めると思われます。
>>118 > String hako = in.read();
そりゃInputStream#read()の戻り値の型がintなのにStringに代入しようとしてるからだろw
String hako = "" + in.read(); で通る・・かな?
123 :
o :2005/11/27(日) 23:47:02
>>122 そりゃ通るけど、意図しない結果になるよ。
InputStreamで流れてくるのは何?
シフトJISの文字列なら、素直にInputStreamReader使え。
>>122 119で解決すんのに何か問題でも有るのか?
データ型意識できない程度のレベルなら、
素直に人のソース真似とくべきかと。
UTF形式でやりたいなら、
テキストの先頭2バイトだか3バイトだかに
バッファ長入れとけば読めたはず。
アプリでゲームを作ろうと思ってるんだけど 当たり判定とかどうすればいいか分からないから教えてくれると助かります ドットを拾う事はやったんだけど・・・ ご教授お願いします・・・orz AとBが接触したらゲームオーバーみたいな奴なんだけど・・・
>ドットを拾う事はやったんだけど・・・ どのゲームもそんな馬鹿げた処理は使わない。 絵とは別に当たり判定用のrectを用意するのみ。 この程度基礎はゲーム板なりWebなりで勉強汁
>>125 わりとゲームプログラミングの基礎中の基礎と思われ。
最近は初心者向けのゲームプログラムの本もたくさん出ていて
当たり判定はどの本でも扱っているはず。
布留川英一の「iアプリゲーム開発テキストブック」本買ったーよ。 901iまで対応している本は貴重ですね。
>>128 漏れも去年買った
表紙はともかく、
中身は良書だと思う
>>105 try()〜catch()でまずエラーを拾うところからはじめれ。
ADFにはAppTraceをonに設定して、必要な内容をプリントアウトすれば良い。
内容の確認は端末のトレース情報に出てくる。
例:
try{
//何かの処理
}
catch(Exception e){
//必要に応じてエラー情報を吐き出す。
System.out.println(e.toString());
}
133 :
デフォルトの名無しさん :2005/11/28(月) 16:31:57
iアプリでGPSと連動した機能を付けたいのですが、そのようなことは出来ますか?
134 :
デフォルトの名無しさん :2005/11/28(月) 16:55:30
できますん
>>131 ありがとうございます.
AppTraceですか,初めて知りました.
公式で発表されてない気がするからあえてぼかして書くけど 702シリーズってDojaのバージョン統一されてない?('A`)
>>136 ぼかしてない、ぼかしてないwww
とりあえず(ここ重要)はそうみたいだな。
が、実機見てみないことにはなんとも言えないんじゃね?w
本見たら、900以降はjarファイルが100k以内って書いてあるけど、 それを超えたらダウンロードできないんですか?それとも、 スクラッチパッドに画像とかいれる命令をしなくてはいけないんですか? 教えてください
>それを超えたらダウンロードできないんですか? はい。 >スクラッチパッドに画像とかいれる命令をしなくてはいけないんですか? 100kBにおさまならければ。
すっごい今更なんだが…。 「何故スクラッチパッドにJarを落としてそれを軌道」ということができないんだろう…。 アプリ間移動つらい。 できない…よな?
思いのたけを書き込んだもんで、誤字脱字が酷いな…。 何故「スクラッチパッドにDLしたJarを、アプリJarのごとく起動実行する」ことができないのだろう。 これができれば、ポータル的なアプリだけつくり、動的にプログラムをサーバーからDLして実行できるのになぁ。
>>138 java以前に日本語の勉強からしっかりやっていただきたい。
>>141 アプリからアプリコードを直接実行できるようにしたらセキュリティうざいから
>>143 でも、preverifyとか、実際アプリを起動する前のチェック処理とかを使いまわせば問題なくね?
いや、問題があるからこそできないようになってるんだろうが…。
仮想マシン作るかー…。
あほくせええええ
落としたアプリはどこのスクラッチパッド使うんだよ(゚∀゚) 携帯本体のアプリケーションマネージャが知らないアプリを 作るのは駄目ポ。
>>144 ヒント:Jiglet
廃れつつあるが…
サーバにあるテキストファイルを取得するアプリを作ってます。 DoJa4.0ではBufferedReaderクラスのreadLineメソッドを使って 以下のような感じで1行ずつ読み込んでいました。 InputStream in = con.openInputStream(); InputStreamReader ir = new InputStreamReader(in); br = new BufferedReader(ir); String s; while ((s = br.readLine()) != null) { // sは1行分のストリング // sを配列に入れていく } ところが、DoJa2.xだとBufferedReaderクラスがサポートされていなくて このソースではビルドできません。 BufferedReaderクラスのreadLineメソッドを使用しないで1行ずつデータを 取得するにはどんな方法で行えばいいんでしょうか?
1文字ずつ読んで改行記号で区切るのは問題あるのかい
携帯Java上で動作するインタプリタ作ればいい
ゲームで扱う数字って、int型より、Byte型の方がメモリ食わないですか?
Java VMはint型の操作がメイン。余程のことでもなければ素直にintをつかうべき。 byte型を使ってコードが膨らんだり遅くなったりするのを確認されたし。
>>148 1文字ずつ読むって、具体的にどうすればよいですか?
実はjavaって今回が初めてであまりわかってないんです・・・
>>151 実はJAVAにはBYTE型なんていう型はなく、内部的にintに変換されている。
だから最初からintを使ったほうが(-127〜128への)丸め込みの処理が無くなる分だけ高速
>>158 readByteで読んで保存していき、'\n'にぶちあたったらそこが改行ポイントということでよいのでは?
155 :
151 :2005/12/02(金) 09:27:07
>>152 >>154 凄いタメになりました…
何故悩んだかというと、
武器を装備できるかどうかのフラグを立てたく、
int型の多次元配列で フラグ,攻撃力,命中補正
って感じでやりたい、という話しをしたら、大学の講師さんが
「フラグは1か0でいいわけだから、int型を宣言するより、
BYTE型で1bitだけ使って後のbitを攻撃力とかに回した方が効率がいい」
と言ったためです
私が無知な事ももちろんありますが、152、154さんは本当凄いですね
このスレのレベルの高さを改めて実感しました
本当に感謝しています 有難う御座いました
フラグは1か0でいいわけだから、int型を宣言するより、 BYTE型で1bitだけ使って後のbitを攻撃力とかに回した方が効率がいい
157 :
151 :2005/12/02(金) 09:44:16
>>156 !!? (゜ д゜ ) ( ゜д゜ )
「メモリ食わないか?」 っつー質問に 「こっちの方が高速」 っていう回答して そっちを薦めるのは変じゃないか?
159 :
151 :2005/12/02(金) 10:01:33
確かにそう言われてみれば… メモリがいっぱいいっぱい 処理はもう少し余裕がある →処理を犠牲にしてでも メモリ効率を気にする メモリが余裕 処理がキチキチ →メモリを気にするより 処理に余裕を持たせる という解釈は間違っていますか?
int型でも1bitだけ使って後のbitを(ry
フラグ,攻撃力,命中補正 それぞれに必要なbit数を数える。 8bit以内ならbyteでもいいと思う。
ギリギリまで性能を使うってのも悪くは無いと思うんだけど、 携帯アプリの新端末が出るたびに保守対応をしていく状況と、 開発者が次々に辞めたり手が空いてる人がいなくて 他人のソースを見る必要がある現状だと ソースの保守性の方を優先して欲しいと思う(´・ω・`)
>>159 そもそも、intとbyteの容量差ごときを気にしなければならないほどメモリの使用状況がシビアなの?
>>155 > int型の多次元配列で フラグ,攻撃力,命中補正って感じでやりたい
これを見る限りそのような話にはとても見えないが。
> 大学の講師さんが「フラグは1か0でいいわけだから、int型を宣言するより、
> BYTE型で1bitだけ使って後のbitを攻撃力とかに回した方が効率がいい」
また時代錯誤な。象牙の塔の人間にありがちだなm9(^Д^)プギャーとか言ってみるテスト。
「効率がいい」って、いったい何がどのように効率がいいのですか。
そうした面倒な工夫をすることで、実際のプログラムは高速になってますか。
また、そもそもメモリを節約する必要はあるのですか。
そうした工夫は、単に汚くて保守困難なバグの多いコードを生み出すだけではありませんか。
その講師に超おすすめのページ↓
http://pitecan.com/articles/Bit/Fugo/fugo.html 効率を云々する前に、まず「そんなこと気にせんでも動くんちゃうの?」と考えよう。
パフォーマンスが出ないなり、実際にメモリ不足で止まるなり、問題が起きてから対処すればよい。
うるせーよ フラグなら素直にboolean使っとけや
>>155 そもそもビットで管理する事とintとbyteの容量差を混ぜて語ってるのが間違いなんだよね。
さらにいうなら、フラグはビットでいいが攻撃力はビットじゃ足りないだろ。
昔のTRPGみたいにサイコロの範囲内で決着が付くなら問題ないけど、攻撃力300
とか行くなら9bit必要でしょ?byteにどうやっていれるのさ?
よしんばintの32bitで管理したとして、フラグと、攻撃力と、補正値を出し入れするのに
いちいちビット演算する気? & マスクとビットシフトするくらいなら素直に配列
使った方がマシだと思う。
試しに、32bitにその3つの情報を出し入れするコードを書いてみればいい。
1bitで済む情報だけを、1つのintに複数個入れるならいいけど、数値を扱うなら
ビット演算なんて検討するのは無駄。
FFばりにステを255までにすれば問題ない
167 :
デフォルトの名無しさん :2005/12/02(金) 11:56:13
なぜに荒れてるのか判らんが・・・・
>>159 の解釈でおおかた間違ってないよ。
ただ最近の携帯ならメモリや速度でんでんより、ビット圧縮解凍処理を入れる事によって
アプリ本体の容量が増えてしまってり、バグ発生時の対処が大変だったり、
仕様変更に耐えれなかったり、面倒な種になることが多いw
知識として持っておくには良い事だろうと思うよ。やるかどうかは別で。
プログラマとしてはビット演算によるデータの保持は基本とも言えるし、
知識がないと後から考察しろと言われても出来ないor苦労するわけだし。
余談:
メモリ効率どうこうとは話変わるが携帯でビットでフラグを所持するのは
外部ファイルとして持つ場合有効とも言える。セーブデータなんかも。
が・・・最近は外部JAR(ZIP)解凍が出来るようになったので
下手にビット演算して小さくすると逆効果になったりもするwww
ケースバイケースだなw
でふぉの攻撃力が離散的な値しかとらず 0 : 0 1 : 20 2 : 50 3 : 100 4 : 200 5 : 300 とかならbit数少なくても問題なし
とりあえず完成させてから悩め
で、定数をfinal intで定義して余計にソースが膨れ上がるとw
>>158 メモリ食わないか?という疑問に関しては、JAVAにBYTE型なんて存在しないという返事で一蹴している。
結論的には「メモリ食う量は同じ」だからね。
その上で、より高速なintを薦めた。
配列が前提なら、パケットしてくれた・・・よね?
うるせーよ 素直にバイト配列使っとけや
配列も、定数で初期化するとヒドイ事になるからなぁ。 private final static byte[] b = { 0, 1, 2, 3, 4 }; とか、バイトコード眺めて唖然としたわ。
>>176 finalでないシンボルを作るのに比べたらはるかに少ないけど、やはり膨れるぞ。
それはjarで圧縮してもいっしょ。proguard使えば話はかなり違うだろうな。
ちゃんと携帯java技術を研究知る
自分で定義した場合、 final static でも置換動作をしてくれませんっ 本当にごめんなさいっ! だからプリプロセッサを使うハメになる…。
しかし、仕事でアプリ作ってて自分じゃアプリ動かない昔の携帯使ってるけど、 なんでこんな糞端末使う気になるんかね? メニュー周りのわずらわしさだけで会社の携帯地面に叩き付けそうになるヨ'`,、('∀`) '`,、
メーカーによって使い勝手はかなり違う おそらくあなたの携帯が使い難いんでしょう
えーマジbyte!! byteが許されるのは小学生までだよねー
つーかbyte型ここ数年全然使ってないことに気づいた。
>>174 > 素直にバイト配列使っとけや
Javaではint配列のほうが1億万倍素直だ。
VMのインストラクションセットとコンパイル結果のバイトコードをよーく見てみろ。
182 :
181 :2005/12/03(土) 07:39:31
DoJaのドキュメントbyteで検索してもろくなの引っかからないじゃん。ImageMapくらいだな。 俺はImageMap使ってないし、これもDoJa-4.0からはint型のに置き換えられてる。 まあ、今時1バイトでデータを格納するなんてさもしくないかってこった。
マップデータをSPに保存してあって1マス1byteで管理してます。 このマップをメモリにロードするときbyte[]ではなくint[]使えということでしょうか?
そうなりますね
ちなみに Connector.openDataInputStreamでSPにアクセスして DataInputStream.read(byte[] buf)でロードしてますが int[]型にするにはどうするのですか?
>>183 他への移植も考えたら別にbyteでもいいんじゃね?
すんません、曖昧な質問なのですが、携帯アプリ環境でテスト駆動開発は可能でしょうか? JUnitもしくはそれに似たようなものをDoja環境で使っているという人います?
>>188 書けるよ。ただしテストやビルド用の環境をちゃんと作らないとダメだぞ。
会社で支給されたパソコンのメモリが256。 EclipseとDo-ja動かしていると程よく殺意とストレスが溜まってきます。 ココに要られる方で低スペックパソコンでストレス無く開発されている方がおられましたら 是非そのテクニックを伝授して欲しいのです。 ちなみにOSはXPで無駄なアンチウイルスソフトとか、XPの機能などは全て停止させています。
メモリを買い足す(今は安いからオススメ) HDDを大容量にする Eclipseは2.x 高速化ソフトを入れる フリーソフト窓の手を入れる 雑誌・本をレジストリをごにょごにょ 最終手段 SafeModeで起動 でも一番苦労しないのは新しいのを買うこと 新品が59800円なんて5年前なら内臓破裂ものだぜ?
Eclipseを使わなければ(ry
193 :
デフォルトの名無しさん :2005/12/04(日) 16:27:19
iアプリ開発ツールをインストールしようとしたら、 「iappli Development Kit for doja-4.0(FOMA)を完全にインストールする 前にウィザードが中断されました。 システムが変更されていません。後でこのプログラムをインストールするに は、再度インストールを実行してください。 ウィザードを終了するには[完了]をクリックしてください。」 と表示されてインストールできないんですが、何が悪いのでしょう? ちにみに、j2sejdk1.3.1_16はインストールしてあります。
再起動してもう一回実行すれば
エミュレータではポインティングデバイスの動作確認はできないのでしょうか? マウスを動かしても全然反応ないというか,エミュレータでのポインティングデバイス に相当するものがわかりません.
何のポインティングデバイスですの?
N900とかのことか? エミュでできたかな…。試したことねーや…。
198 :
デフォルトの名無しさん :2005/12/05(月) 19:37:15
すいません。教えてください。 最近になって FOMAのアプリの開発を始めました。 初歩的なことですいません。 バックライトを常時点灯させたいために以下のコードを 書いたのですが、 isAvailable()のリターン値が必ず falseが 帰ってきてしまいます。 なにか、書き方が良くないのでしょうか? テストした機種はSH901isです。 よろしくお願いします。 if ( PhoneSystem.isAvailable(PhoneSystem.DEV_BACKLIGHT) == true ){ PhoneSystem.setAttribute(PhoneSystem.DEV_BACKLIGHT,PhoneSystem.ATTR_BACKLIGHT_ON); }
>isAvailable()のリターン値が必ず falseが帰ってきてしまいます。 何も不思議はない。バックライト制御ができない端末ってことだ。
余談だが、携帯電話にはバッテリーを長持ちさせたいという設計上の意図がある。 だからアプリからバックライトやバイブレーションの制御が好き勝手に出来ない端末がある。 明かり点けっぱなし、モーター回しっぱなしでバッテリー消費しまくりのアプリを防ぎたい、ってことで。
>>198 本体側の設定で、バックライト制御の項目が「システム」になってると
falseが返ってくるようになってるんじゃないの?
202 :
デフォルトの名無しさん :2005/12/05(月) 21:03:49
204 :
195 :2005/12/06(火) 00:16:35
>>196-197 N端末のやつです.
N端末を買ったらニューロポインタがついてたので,それを使ったアプリが
作れないかと思いまして.
ん・ぱか工房の辺りを見るとエミュレータで動かしてるっぽい画像が載ってる
のですが,やり方が全然書いてないみたいなので.
何か見落としてるんでしょうか?
ニューロポインタって、表示非表示をAPIから指定できたよな? とりあえず表示ってやってみた? 一回しかニューロポインタ使ったアプリ作ったことないからうろ覚えで悪いが。
206 :
198 :2005/12/06(火) 11:43:15
>何も不思議はない。バックライト制御ができない端末ってことだ。 やはりそういうことなんですね。 >本体側の設定で、バックライト制御の項目が「システム」になってると >falseが返ってくるようになってるんじゃないの? 設定をいろいろ見たのですが、そういう設定が見当たらないのです。
絶対あるから探せ。端末名はなんだ。
208 :
198 :2005/12/06(火) 13:26:41
209 :
195 :2005/12/06(火) 14:16:28
>>205 とりあえず
PointingDevice.setEnabled(true);
って書いてあります.で,
PointingDevice.getX()とかで座標を表示してみたのですが,0って書いてあるまま
変化がありません.
PointingDeviceについて、今はもう会社を辞めた人のソースを見てみた。 初期化は if( PointingDevice.isAvailable()){ PointingDevice.setEnabled(true); PointingDevice.setMode( PointingDevice.MODE_JOYSTICK ); } だけっぽい。
>>208 俺SHだが・・・ないなwwww
説明書どこかあったら見れてみればいいんでない?w
212 :
195 :2005/12/06(火) 16:09:16
>>210 すみません,実機で試すのを忘れていました.
実機では普通に動きました.
エミュレータだけうまくいってないようです.
「DoJa-4.0プロファイル向けiアプリ開発ツール」というのを使っているのですが,
これはポインティングデバイスには対応してないのでしょうか?
214 :
195 :2005/12/06(火) 16:25:14
>>213 すみません.ただ,Googleで検索しても全然ヒットしないので・・・
APIのリファレンスにはエミュレータの使い方なんて書いてありませんし,
ポインティングデバイスを使った場合のエミュレータの使い方を解説したサイトが
ないみたいなんです.
全く調べてない俺が、無理だと言っておく。
>>195 =212=214
なぜエミュレータのドキュメントを読まないのさ。
「エミュレーションの範囲」の項目を読んで自分で判断しろ。
>>195 setMode() で MODE_MOUSE にして
setVisible(true) ってしてみたら?
219 :
195 :2005/12/06(火) 19:56:43
PCのマウスカーソルをエミュレータの画面上で…
221 :
195 :2005/12/06(火) 20:52:13
>>220 いろいろ動かしたりクリックしたりしましたが駄目でした.
getX()しても0しか返ってきません.
PointingDevice.setMode(PointingDevice.MODE_MOUSE); PointingDevice.setEnabled(true); PointingDevice.setVisible(true); ↑初期化、setModeを先にやらないと例外が発生する端末がある 後は getX() とかで座標を拾う 操作はエミュレータの「決定ボタンの上」で、マウスの右ボタンを押しながらマウスを動かす MODE_JOYSTICK の場合は getDirectionX() とかを使う この場合画面の座標ではなく、入力方向が得られる
223 :
195 :2005/12/06(火) 22:22:45
>>222 できました,ありがとうございます.
どこかに書いてあったのを見落としていたのでしょうか.
/* ふと思ったんだけどさ。 そろそろモバイルで悪魔召喚プログラムとか出ねーのかな。 */
>>223 エミュレータでのポインタ操作については DoJa4.0のドキュメントには書いてない(と思う)
でもどっかで見たことあるなぁ〜と探していたら DoJa2.1のドキュメントに記述があったw
IApplication.getCurrentApp().getSourceURL() ↑でダウンロードしたURLが取れるみたいなんですが、 これ以外に、ADFの値って取れないですか? 例えば、AppVer(バージョン)とか、取りたいんですが。。。
ログ嫁。
ドキュメントも読めない奴はとっとと中国に帰ってくれ。
230 :
デフォルトの名無しさん :2005/12/08(木) 19:27:15
質問良いでしょうか? @SPのgifのパレット部分を0xFFで埋める AgifをMediaManager.getImageで作成、表示 BSPのgifのパレット部分を元に戻す CgifをMediaManager.getImageで作成、表示 D1へ戻る 上記の様にして白点滅を行っています。 この時、 P901iはスムーズに動き、 P902iは激しく遅いんですが、原因が分かりません。。。 なぜでしょうか???
>>230 実機無いからわからんがP902はスクラッチパッド読み書きが遅いとかそういうのは無い?
あと質問、D505でサウンドを止めたり鳴らしたりしてると
たまにサウンドが再生されないことって無い?
心当たりがあって対応したことある人の情報求む(´・ω・`)
232 :
230 :2005/12/08(木) 19:43:45
>>230 902はSP書き込みがちと遅かったような。
てか、毎回作り直しゃ遅いに決まってるので
AとCの画像を1回だけ作って保持、交互に出せばいいだけかと。。。
>>231 D505i(S) iアプリ作成に関する注意事項の一番最初の項目参照。
>>233 ありd(´・ω・`)
とりあえずsleep入れて駄目だったらAUDIO_STOPPED待ってみる。
容量が足りればだけどね(ノ∀`)
235 :
230 :2005/12/08(木) 20:05:04
>>233 返答ありがとうございます。
実はその処理への移行途中でして、、、
全データ(260kB)のダウンロード時間を計ってみました。
P901i 1分6秒
P902i 1分10秒
Connector.openOutputStream の初回呼び出しがやたら遅い気がしてきました。
とりあえず、白点滅処理を変更して様子を見てみます。
ありがとうございました。
待ち受けアプリで、次のような実装をしてみました、 while( true ) { try { print("->1"); ((MApplication)IApplication.getCurrentApp()).deactivate(); print("->2"); ((MApplication)IApplication.getCurrentApp()).sleep(); print("->3"); break; } catch( Exception e ) { print("->err"); } } アプリボタンを連打していると(おそらく、スリープ状態に移行したタイミングでアプリボタンを押す)sleepのところでハングします。 AppTraceにて確認したところ、 ->1 ->2 ->3 ->1 ->2 ここで停止 "->err"の例外もとれていないし、そもそもjavaの実行自体が止まっているような感じです。 機種はD902iです。 動作が正常なものと同じようにハングする機種があって困っています。何か情報をお持ちの方教えてもらえませんか?
238 :
236 :2005/12/08(木) 21:49:40
>>237 単純にただの待ち受けアプリなんですが、アプリボタンを連打するとsleepに移行しない機種があるので、
ふつうはどんな実装にするのかなと思ったんです。
>>236 連打すると、非活性のときにsleepしようとする
ことがあるから休眠に遷移しないのでわ。
whileループはどこに書いたの?start()かね。
(1) 連打しないとき
非活性 deactivate()
↓
休眠 sleep()
↓← 活性化ボタン
活性
(2) 連打したとき
非活性 deactivate()
↓← 活性化ボタン
活性
↓
休眠 sleep() ※例外 IllegalStateException
240 :
デフォルトの名無しさん :2005/12/08(木) 22:42:33
>>239 ちなみにスレッドにしてみたのですが、現象は変わりませんでした。
いまはstart()内のメソッドを無限ループさせています。
タイミングによって
deactivate()
←ここで活性化される
sleep()
活性化状態なので例外発生
の部分は考慮していて、try〜catch部分でループするようになっています。
今回の場合は、sleepメソッドを実行してるにもかかわらず、待ち受けに遷移しない+JavaVMの実行自体は止まってるっぽい。という状態になってます。
sleepが素直に例外を吐けば、sleepできるまでループすればいいだけなんですが、止まってしまうので悩んでます。
タイミング的に「sleep→待ち受け→ここで即座にαボタン」でこの現象が起こります。
>>240 トレースが出ないことを除けば、動作しているように見えるんだけど。
・JavaVMの実行自体は止まってるっぽい ←sleepできたからVMが止まる
・sleepが素直に例外を吐けば ←sleepが成功したから例外を吐かないのでは
ついでにそもそも、どうしてsleep(休眠状態)にするのかというと、
・携帯を折り畳んだから休眠する
・一定時間、ボタン操作がないから休眠する
だろうから、sleepするために
ループでぐるぐる回すのはAPIの使い方として変な気がする。
>>241 whileで回してるのは、deactivate() →sleep()の間に、たまたま活性化の割り込みが入る場合があるから、その対処としてwhileしています。
そもそも、sleepから復帰したらwhileは抜けるし、 通常よっぽど間が悪くなければ例外吐かずに1発で休眠してくれます。
問題なのは、休眠していない(待ち受け状態になっていない)のに、JavaVMが停止してかつ、その時にいっさい例外を吐かない状態があるということなんです。
ショートプログラムを作成してみたので気になるところがあったら教えてもらえませんか?
↓
import com.nttdocomo.ui.*; import java.io.*; public class Exec extends MApplication { public void start() { System.out.println("[start]"); while( true ) { System.out.println(" >>[loop]"); } } public void resume() { } public void processSystemEvent(int ptype,int param) { System.out.println("[event]"); while( true ) { System.out.println(" >>[0]"); try { System.out.println(" >>[1]"); deactivate(); System.out.println(" >>[2]"); sleep(); System.out.println(" >>[3]"); break; } catch(Exception e) { System.out.println(" >>[err]"); } System.out.println(" >>[4]"); } System.out.println("[end]"); } }
>>243 このコードだと、sleepが終わるとまたprocessSystemEventが
呼ばれるだろうから、永遠に休眠状態から出られない気がするんだけど。
トレースが出ないのは、processSystemEvent→processSystemEventの
ループがシステムのイベントキューを占有するからだと思うが。
すまんが漏れにはこれ以上の分析はできん。
245 :
デフォルトの名無しさん :2005/12/09(金) 00:06:49
>>244 なるほど、キューがたまるのか。。。と思って、今度はstart()側に、flagを設定して、flagの状態でsleepしてみたが、状況は変わらなかったです。
processSystemEvent()もsynchronized設定して、他のスレッドから割り込みかからない状態にしてみました(下に書いてみた)
public synchronized void processSystemEvent(int ptype,int param) {
System.out.println("[event]");
flag = true;
System.out.println("[end]");
}
うーん、待ち受けに戻った直後にαボタンを押すのは駄目ってことなのか・・・。
F901iCの場合は、電源を切るしかない状態になってしまうんだけど。。。。
>>243 聞きわすれたけど、start()の中に無限ループがあるのは
なんでなの?
247 :
デフォルトの名無しさん :2005/12/09(金) 13:48:10
>>246 ふつうゲームをつくるときに、start()のなかでスレッドを起動するか、そこで無限ループさせるから、それを状況的に再現してるって感じです。
プログラム的にはべつに意味はありません。
いろいろ調べたんだけど、非活性から待ち受け状態に移行した直後にαボタン押すとやっぱり駄目みたい。
メーカー発表あってもいいような不具合だと思うんだけど、最近ドコモなんにも発表しなくなったような・・。
経験上、活性から一気に「非活性を経由して待ちうけに至る」という処理は、 不安定っぽいです。で私はこうしてます。 まずイベントハンドラ内でdeactivate()だけ呼んだ後にタイマを仕掛けます。 次にprocessSystemEvent()のWAKEUP_TIMER_EVENTで、 そのタイマが発火したら(1000msとか一定時間経過後)、 もう一度deactivate()してsleep()します。 この時processSystemEvent()がMODE_CHANGE_EVENTを受けたら 無条件でそのタイマーを止めます。 こうするとprocessSystemEventがパラで呼ばれない限り、 deactive()とsleep()の呼び出しがアプリボタン(MODE_CHANGE_EVENT)で分断されるということはありません。
249 :
248 :2005/12/09(金) 15:13:05
>>248 > 次にprocessSystemEvent()のWAKEUP_TIMER_EVENTで、
> そのタイマが発火したら(1000msとか一定時間経過後)、
> もう一度deactivate()してsleep()します。
(中略)
> こうするとprocessSystemEventがパラで呼ばれない限り、
> deactive()とsleep()の呼び出しがアプリボタン(MODE_CHANGE_EVENT)で分断されるということはありません。
ごめん、嘘書いた。 orz
ともかくTimer回して、そっちでdeactivate();sleep()するようにすると安定するよ、
ということだと思ってください。
250 :
デフォルトの名無しさん :2005/12/09(金) 18:10:06
>>249 なるほど。言うとおりにやってみたら安定した。サンクス。
せっかくなので状況をまとめます。
1・休眠→活性化→非活性→休眠→活性化・・・と続けることができるアプリの場合、非活性から休眠まで一定時間がないと落ちる機種がある。
2・無限ループ、スレッドsleepを入れる、キューがたまるから・・・は関係なし。
3・対処として、deactivate後に一定時間おいてsleep。検証では時間の長さではなく、同一スレッドでdeactivate();sleep()としてるのがまずい。
4・待ち受けスケルトン作ってみた。
251 :
デフォルトの名無しさん :2005/12/09(金) 18:13:34
import com.nttdocomo.ui.*; import java.io.*; public class Exec extends MApplication { canvas can = null; public void start() { can = new canvas(); Display.setCurrent(can); // 特に意味はありません。ゲーム的なループです while( true ) { System.out.println(" >>[loop]"); } } public synchronized void processSystemEvent(int ptype,int param) { if( ptype == MApplication.MODE_CHANGED_EVENT ) { System.out.println("[event]"); ((MApplication)IApplication.getCurrentApp()).deactivate(); can.stime.stop(); can.stime.start(); } } } class canvas extends Canvas { ShortTimer stime = null; public canvas( ) { stime = ShortTimer.getShortTimer(this,1,100,false); } public void paint( Graphics g ) {} public synchronized void processEvent( int ptype, int param ) { if( ptype == Display.TIMER_EXPIRED_EVENT ) { try { System.out.println(" >>[sleep]"); ((MApplication)IApplication.getCurrentApp()).sleep(); } catch(Exception e) { stime.stop(); stime.start(); } } } }
252 :
248 :2005/12/09(金) 20:58:28
>>251 安定したなら良いんだけど、そのサンプルは微妙に意味合いが違うかも。
ポイントは、同一スレッドでというよりは、
ユーザが起こしたイベント(キー入力とか)のハンドラ内でMApplication.sleep()を呼んではダメで
タイマーなどシステムが起こすイベントのハンドラ内ならOKっぽい。という点ね。
>>252 サンプルではキー入力で活性化したときに、タイマーをスタートさせて、そのタイマーイベント時にsleepしてるけど、
そじゃなくてタイマーとかでシステムがおこしたイベントならdeactivate();sleep();がオケーってことですか?
いまいち意図をくみ取れてないみたいですみませぬ
そしてずっと上げ続けたみたでさらにすまぬorz
いまだにiアプリでできないんだけど、どうすればいいですか? ちなみにP901iSつかっていてファミコンをしたいとおもってます。
ゲームがしたいなら、ファミコンミニでも買えばよいと思われ。
>>254 はまず日本語を最履修してもらいたいと思うんだ
☆ チン P902〜 SD-Binding〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・)< DoJa-4.1開発ツールまだ〜? \_/⊂ ⊂_)_ \____________
258 :
デフォルトの名無しさん :2005/12/12(月) 12:55:58
DOJA3.0で作ったアプリをDLしようとすると「ソフトに誤りがあります」と出てしまうのですが・・・ 色々調べたのですがPackageURL、AppSizeに間違いを修正してもできません。 原因として他にどういったことが考えられるでしょうか?ご教授お願いします。
ありすぎて書くのマンドクセ 公式開発ガイドを嫁。最後のほうにあるから
JAMファイルの中身をはっつけるくらいせんかい。 俺らはエスパーか?
よし、エスパーの俺が念力集中ピキピキドカン!
>>258 端末が壊れてるっぽい。
263 :
デフォルトの名無しさん :2005/12/12(月) 16:31:13
iアプリからcgiにアクセスしたいんですが、iアプリのDLページと同じフォルダ内にcgiがないと接続できませんよね? あと、iアプリをDLしたページのあるフォルダの下のフォルダにcgiを設置した場合アクセスすることは可能ですか?
>>263 うろおぼえだが同サーバーなら問題なかったはず
少なくとも下のフォルダは大丈夫
詳しくはリファレンスに書いてあるかと
SuEXECとごちゃ混ぜになってないか?
iアプリで専ブラのようなやつってないでしょうか?
>>267 おお、マジでサンクス。
ちょっと行ってくる!
そして通信量減らす為に色々と宣伝してくる。
>>200 > だからアプリからバックライトやバイブレーションの制御が好き勝手に出来ない端末がある。
これぶっちゃけ余計なお世話なんだよなあ。
長々と考え込むようなパズルゲームとかだと(例えば詰め将棋)
バックライトがついたり消えたりで鬱陶しくてかなわん。端末開発者には再考を望みたいものだ。
アプリからではなくて端末メニューの設定でバックライト常にONってできない?
そして「電池の消費が速すぎる!なんとかしろ!」と苦情がくる
>>270 マニュアルを必死で読みあさったけどないんだ。本気でショボンヌだ。
>
>>200 >> だからアプリからバックライトやバイブレーションの制御が好き勝手に出来ない端末がある。
>269
>これぶっちゃけ余計なお世話なんだよなあ。
>長々と考え込むようなパズルゲームとかだと(例えば詰め将棋)
>バックライトがついたり消えたりで鬱陶しくてかなわん。端末開発者には再考を望みたいものだ。
これって初めて知ったんで気になったんだけど、好きに制御できないとなると
PhoneSystem.setAttribute()でATTR_BACKLIGHT_ONした後はどうなるの?
基本的にはiアプリでバックライトをONにしてても
ユーザがキーを押してしまったらネイティブで設定されてる秒で
省電力に落ちるだろうけど、iアプリの方で
getAttribute()でATTR_BACKLIGHT_OFFだったらバックライトをONにする
対策も取れなくはないだろうからジャンルによって
iアプリ開発者も考慮してみてほしいね。
275 :
274 :2005/12/16(金) 22:50:18
>>206 >>何も不思議はない。バックライト制御ができない端末ってことだ。
>
>やはりそういうことなんですね。
>
>>本体側の設定で、バックライト制御の項目が「システム」になってると
>>falseが返ってくるようになってるんじゃないの?
>
> 設定をいろいろ見たのですが、そういう設定が見当たらないのです。
自分はたまたまSH901iCなんでアプリ作ってみたんだが、
PhoneSystem.isAvailable(PhoneSystem.DEV_BACKLIGHT)でtrueが返ってきてる。
ただし、省電力設定の照明時間設定を00秒にしてる場合は常にfalseだった。
JarInflater in = null; で宣言しているのですが、なぜかエラーがでます>< importもしているのですが、原因として何かありますか? 教えてくだざい><
>276 ちなみに、シンボルを解決できません。てでます
ソースを良く見直してみるくらいしか思いつかない(´・ω・`)
キモい
>importもしているのですが 正しくできている自信があるくらいなら質問すな。 正しくできてないだけ。書け。
失礼します。 Java blenderでファイルを圧縮しようとすると「足りないメソッドがあります」で止まってしまいます。 デバッグや圧縮せずに携帯で実機テストを行っても止まったりする事がないのでどのメソッドが足りないのか分かりません。 足りないメソッドを調べる方法はないのでしょうか?
>>281 JavaBlenderのページは見てみた?
JavaBlenderのVer1.18aでDoja3.5対応って書いてあるから、
それ以降のDojaを使ってたり、JavaBlenderのバージョンが
古かったりするとダメかも(´・ω・`)
リバースエンジニアリングする
281です。 Dojaのサイズ確認しました。見事に4.0でしたorz 3.5に入れ替えてもう一度確認しようと思います。
ウチはJavaBlenderだと3.5でも何か駄目だったから、 諦めてproguardに変えた。
Java1.4を使うとJavaBlenderはダメだぞ。
505i以降対応のゲーム作ってます。RPG。
32×32のマップをint[32][32]で表現して、背景色や移動可能、イベントのありなし
などをビット演算で取り出してやってます。
メモリ効率を考えて上のようにやってたんですけど、
>>151 以降の話題を追ってみると、
この程度のデータではわざわざビット演算などやってる意味なくて、
int bgColor[][]とかboolean canMove[][]とかを適宜32×32ずつ
用意したほうがいいんでしょか?
>>287 自分で実験して確かめるのが一番だと思うよ。
ちょっと興味もってJavaBlenderでいろんな環境で圧縮してみた。 Eclipse(jre1.5.0_04使用)でビルドしたファイル→圧縮出来ず。 Doja3.5(j2sdk1.4.2_09使用)でビルド→圧縮可。 Doja4.0(j2sdk1.4.2_09使用)でビルド→圧縮可。 ちなみにDoja3.5と4.0では本当に僅かだが3.5のファイルの方が容量が少なくなった。 それより凄いのはEclipseでビルドしたファイル。 同じソースファイルをDoja単体でビルドすると容量が半分ぐらいになる。 「ターゲットリソースが〜〜〜」って言うメッセージが出てビルドできないヤツは設定の「sun.tool〜〜〜を使用」をチェック。 これでビルド出来るはず。 既出知識ならスマン。
>>289 いやいや、ありがたい。ナイス情報
>>287 ビット演算なら複数条件を一括で検索とかできる。
まぁ好みの問題だけど、ビット演算もおおいにアリじゃない?
>>289 Eclipseはデフォルトでデバッグオプションてんこ盛りだぞ。
まあそれらを外してもごくわずかだけどeclipseのほうがコードサイズは
大きいけどね。
>>287 メモリを考えての話ならint配列でいい。
そのデータの持ち方を考えているならビット演算がいい。
(使うときは解答するなりそのままなりで)
>>293 データの持ち方ってのがよくわからないけど、
>>290 も言ってるように複数条件が絡むような分岐のことかな?
地図に描画する画像と移動不可とイベント有無みたいのは
密接に絡むから、ビット演算でやってもいいのかもね。
>>288 それが一番正しい姿勢だとは思うんだけど、
いかんせんJavaでメモリ使用量なんて低レベルな部分を気に掛けたことが
ないから、どうやって調べればいいのかわからん。
せめてググるにしてもキーワードだけでも教えてたもれ...
たぶん誰も本気で気にかけたことがないのでぐぐるだけ無駄だと思うぞ。 アプリサイズならまだともかく。
まじで?そんなに逼迫するものでもないのか。めもり。 今、アプリのサイズは8k。まだ気にする領域でもないか・・・
まあ、空きメモリしらべたいなら java.lang.Runtimeあたりのメソッド呼ぶんだろうなあ。
いろんな機種で遊んでもらう事を考えて、 505シリーズまで動くかを見る時にメモリ残量は気にするけど、 最近の機種では気にしたことはないな。 最近ので逼迫するようなら自分のソースを見直すよw アプリサイズは230Kあれば個人作成物くらいなら十分だし。
>>297 freeMemory
public long freeMemory()
システムの空きメモリの量を返します。gc メソッドを呼び出すと、freeMemory によって返される値が増える場合があります。
CLDC API に存在したよ ゚∀゚
今度時間のあるときに詳しく調べるけど、
>>287 あたりは「気にするだけハゲる」という結論に落ち着きそうだ・・・
freeMemoryで調べても、P900やN900はメモリー断片化が酷いからなぁ・・
302 :
297 :2005/12/24(土) 01:57:50
>>299 もちろんそれを想定して言ったんだけど(^^;
>>301 御意。なんとかしてほしいものだ。
303 :
デフォルトの名無しさん :2005/12/24(土) 03:24:22
iアプリでテトリスとかできるなら、マインスイーパーできないかな・・・。 作りたいけど、知識のない私には無理なので 作ってもいいよって人作ってください(;´Д`)
304 :
303 :2005/12/24(土) 03:40:34
よく探したらあった(;´Д`) スレ汚しスマソ
断片化を考慮した空き容量を取得するメソッドがある。 たしかDoJa4.0から。名前は忘れた。
306 :
デフォルトの名無しさん :2005/12/24(土) 19:07:15
DLしたの2chブラウザしかねえやwww
307 :
デフォルトの名無しさん :2005/12/25(日) 00:29:01
質問失礼します。
iアプリからphpにアクセスし、データをダウンロードしようと考えています。
http://www.hogehoge.or.jp/test/down.php?name=resouse.dat (上記の様なURLにアクセスし、ダウンロード)
@HttpConnection con= (HttpConnection)Connector.open(clPath, Connector.READ, true);
Acon.setRequestMethod(HttpConnection.GET);
Bcon.setRequestProperty("Content-Type", "application/octet-stream");
Ccon.connect();
上記がアクセスしているソースなのですが、Cの段階でConnectionExceptionが出て落ちます。
getStatusで調べたのですが、ILLEGAL_STATE(=1)が返ってきている様です。
DoJa-3.0 Standard API には、
http 接続において、openInputStream, openOutputStream, connect メソッドを、呼び出してはならない状態のオブジェクトに対して呼び出した 場合に発生します。
とあるのですが、connectを使用せずデータをダウンロードする方法ってあるのでしょうか?
レスポンス
Content-Type:application/octet-stream
Content-Length:nameで指定したファイルのサイズ
down.phpの仕様には上記の様に記述してあるのですが、レスポンスの受け取り方が分かりません。。。
よろしくお願いします。
308 :
307 :2005/12/25(日) 00:31:02
書き忘れました。 リクエストメソッドがGETなのは仕様だそうです。
>>307 なんでGETなのにContent-Type設定してるの?
それやるとILLEGAL_STATEかどうか忘れたけど、とにかく例外は発生した覚えが。。
310 :
307 :2005/12/25(日) 01:23:22
返答ありがとうございます。
>>309 >なんでGETなのにContent-Type設定してるの?
GETだったらContent-Type設定しなくて良いって知りませんでした。。。
Aを削除したバージョンで明日(昼間のみアクセス可能)試してみます。
結果は後ほど。
ありがとうございました。
>>310 Content-Typeってのは、自分が送るコンテンツの型を指定するもんだ。
GETじゃ、自分からはコンテンツ送らないでしょ?
312 :
307 :2005/12/25(日) 01:42:59
AじゃくてBでした。
>>311 そういえばそうっすね。。。
313 :
307 :2005/12/25(日) 01:48:17
GET要求にContent-Typeがあるって話、 過去スレにもあったような。 似たようなところを間違えてるってことは、 APIマニュアルのサンプルプログラムが間違ってるんでしょうか?
315 :
307 :2005/12/25(日) 17:27:49
Bを消して試したら今度はHTTP_ERROR(=10)が返ってきました。。。 (前回と同じくCの段階です) なんか遠ざかった気がしまつ(´・ω・`) もうコリャ納品無理っすわ。。。
PHPの出力じゃなくて、 普通のテキストファイルのDLはできてるの?
317 :
307 :2005/12/25(日) 18:56:12
>>316 返答ありがとうございます。
普通のテキストファイルというのが何を指しているのか、技量が足らず良く分からないのですが、
他サーバーからdown.phpを利用しないダウンロードには成功してます。
HttpConnection con= (HttpConnection)Connector.open(clPath, Connector.READ, true);
con.setRequestMethod(HttpConnection.GET);
con.connect();
こんな感じのソースです。
clPathとjam変えれば良いだけと安易に考えていたのですが、ものの見事にはまりました。。。
test.txt を鯖にUPして、それをDLできるか試せ。 通信でひっかかりやすいポイント。 1・iアプリはiアプリが置かれていた鯖としか通信できない 2・iアプリにデータを渡す時は、Content-Lengthが必要
>
>>315 >Bを消して試したら今度はHTTP_ERROR(=10)が返ってきました。。。
>(前回と同じくCの段階です)
>なんか遠ざかった気がしまつ(´・ω・`)
>もうコリャ納品無理っすわ。。。
最初はILLEGAL_STATEが出てて、修正したら
HTTP_ERRORが出てるって事は、状況は改善されたと思われ。
通信先(PHP?)はちゃんと期待する反応を返せるのかどうか・・・。
先方に聞いちゃいました。。。(恥) マルチすいません。
321 :
307 :2005/12/25(日) 21:48:29
322 :
293 :2005/12/26(月) 12:01:09
>>294 すげー遅レスだがデータの持ち方ってのは判りにくい表現だったな。すまん。
言いたかった事は、セーブデータの事です。
32*32で1024の配列をチップ番号、フラグ番号、当たり判定、とばらばらに保存して
3倍の容量くうよりもビット演算などいれてくっつければ容量へるっしょ。ってことw
ま、くっつけなくても別々にビット演算して小さくして使うってものありだし。
でそれらセーブデータをそのまま使うかビット演算でint配列に解凍して使うかは本人次第ってことで。
メモリを気にする必要はあまりないが、ファイル容量は気にした方が良いってのが言いたいことです。
本体に格納するならともかく、スクラッチパッドにHTTPでダウンする形なら特にね。
(,,゚Д゚)∩先生質問です iAppliToolの「設定」-「ネットワーク設定」の「ADFのURL」 の設定はEclipseを用いた開発の場合、どこで設定すればよいのでしょうか?
324 :
323 :2005/12/27(火) 02:06:33
ごめんなさい。速攻自己解決しました。 「ウインドウ」-「設定」の 「DoJa4.0 Environment」-「ネットワーク設定」にありました。 すまそ。
自己解決した後でもちゃんと回答を書いてるところが良いね。
326 :
デフォルトの名無しさん :2005/12/27(火) 15:21:04
アプリのダウンロードで詰まりました。 N504・・・正常 SH505・・・正常 F2051・・・異常 「ソフトに誤りがあります」と出ました F2102V・・・異常 「ソフトに誤りがあります」と出ました P901・・・正常 原因が全くわかりません。。。 正常にダウンロードさせたいのですが、分かる方お願いします。
アプリ名の最後の文字が、\\コードを含む二バイト文字。 例えば 十 など。(二バイト目が0x5C) 確か二バイト目が0xA0でもダメだったような気がする。 お勧めは最後に i などの1バイト文字を入れること。とりあえず試してみ。
328 :
326 :2005/12/27(火) 16:34:29
キタ━━━━(゚∀゚)━━━━ッ!!
>>327 あんた最高!
っつうか、この仕様はちょっとなぁ、、、
330 :
309 :2005/12/28(水) 01:35:51
>>315 HTTP_ERRORってのは、200番台以外のレスポンスが返された場合だ。
まずはweb serverのaccess_logとかerror_logを見て、何のレスポンスが返されてるか確認するべし。
そこで400番台とか500番台とかが返されてるなら、iアプリのせいじゃなくて、webサーバの設定のせい。
公開されてたDoJa4.1エミュレータで動作検証しようと思ったのですが、 DrawArea = 240x240 と書くとエミュレーターが強制終了します。 DrawAreaの項目を空欄にすると正常動作します。 原因箇所までは突き止めたものの何が悪さしているのかさっぱりです。 解決法などご存知の方おられませんでしょうか。
ゲームのデータを保存するのにスクラッチパッドじゃなくて txtファイルに保存とかだめですか?
テキストファイル形式のデータを保存してもいいけど、 結局保存先はスクラッチパッドすよ。 ものすごくかみ砕いていうと、以下のような。 .txt → .jpeg .gif .htmlの仲間。ファイル形式。 スクラッチパッド → CD ハードディスク フラッシュメモリの仲間。保存先。
334 :
331 :2005/12/29(木) 00:18:30
自己解決しました。 DoJa-4.0までで使っていた自作のエミュレータスキンが問題だったようです。 今まではスキンの設定が lcd_height = 271 だったのですが、 lcd_height = 273 にしないと240x240を確保できないようです。 スレ汚しすみません。
質問失礼します。色を指定するとき、 g.setColor(Graphics.getColorOfName(Graphics.WHITE)); と毎回、getColorOfNameをコールするのが速度的に遅く なりそうなのですが、みなさんどうされてますか? private final int GW=Graphics.getColorOfName(Graphics.WHITE); と定数化してみたこともあるのですが、この値は機種依存とも 書かれているのでやめて、最初に for(int i=0;i<16;i++) $Color[i]=Graphics.getColorOfName(i); とすべて変数にほりこんでみたりもしているのですが… こうするのが常識、みたいなものがあれば教えてください。
> private final int GW=Graphics.getColorOfName(Graphics.WHITE); 右辺が返す値は機種依存かもしれんが、 上のコードなら機種ごとにとることになるから 問題ないんじゃないかねぇ。 むしろ > for(int i=0;i<16;i++) $Color[i]=Graphics.getColorOfName(i); こっちの方が個人的には気持ち悪い。 遅いかどうかはベンチマークをとるのが早いだろうけど また機種ごとに速度違うかもしれないしなぁ。
>>335 本当に遅いか?測ったか?
そもそもそんなに頻繁に呼ぶか?
>>336 >>337 ありがとうございます。一般アプリ作者なもので、
drawStringとかでいろいろ色をつけてるんです。
測ってはいないのですが、変数の方が速いだろうと
思って、コツとかがあればと思いまして。
final int…で今後は書こうと思います。
あー、色か。 D900は32bitで、P900は16bitとか、てんでバラバラだもんな。 自前半透明作る時苦労したよ。(〜OfRGBの使用を避けたからね。遅いんで) final intでいいと思うよ。 動的に変化するのでなければ、配列よりそれぞれ個の変数のほうがいい。
switchで条件分岐するのと if else ifで条件分岐するのでは速度とかかわったりしますか?
バイトコードのサイズが違うかな switchを使うくらいならif if ifでやったほうが小さくなる。 switch > if else if > if if if だったと思う
速度重視ならswitch
Javaのswitchって、default省けばテーブルジャンプになるのかね。
javapしろよと思っていろいろいじってて気が付いた。 eclipse/JDTのコンパイラはtableswitchだけど、Sunのコンパイラは lookupswitchなのか。
例えば10ヶのメソッドがあるとして、 ループ用の変数をそれぞれのメソッド内で生成するのと、 クラス内にglobalで一つ用意しておくのと、どちらがメモリ量、実行速度の面で有利ですか?
10ヶのメソッドはループ中に相互に呼び出したりしないの?
あっ、それぞれ単独の場合で、干渉し合わない前提でのことです。
348 :
デフォルトの名無しさん :2006/01/01(日) 02:57:12
質問なのですが、携帯電話のアプリでオンラインで音声チャットができるようなものは作れないのでしょうか?
アプリと通話を同時に動作させられないので作れない。
>>348 W-ZERO3上で動くSkypeみたいなことができないかってこと?
>>347 だったらglobalで用意したほうがメンテし難いという1点を除き全ての面で有利だよ。
>>351 そうなんですか?
回答ありがとうございます。
変数名全て一文字にしたり、いろいろテクニックが必要なんですね。
>>352 変数名を短くするとかいうのは、最後にProGuardに任せればOK
開発時は気にする必要ないよ
iアプリの今後を占ってみるテスト
質問失礼します。Javaヒープより大きいJarファイルを読もうとして、以下のようにしてみたのですが 動きません。このやり方ではまずいですか JarReader(String name) { int jsize; int offset = 0; int size; byte[] data = new byte[20480]; HttpConnection c = null; InputStream in = null; OutputStream out = null; in= Connector.openInputStream("scratchpad:///0"); jsize = in.read() * 256 + in.read(); in.close(); if(jsize == 0) { c = (HttpConnection)Connector.open( IApplication.getCurrentApp().getSourceURL() + name, Connector.READ, true); c.setRequestMethod(HttpConnection.GET); c.connect(); in = c.openInputStream(); out = Connector.openOutputStream("scratchpad:///0;pos=0"); out.write(jsize/256); out.write(jsize%256); while((size = in.read(data, offset, data.length)) != -1) { out.write(data); offset += size; } in.close(); c.close(); out.close(); }
まずどう動かないのか書かないとわからない。 コンパイラがエラーを言うなら、そもそもコードが間違ってるし。 というかヒープより多きいんじゃ読めなくても当たり前と違うの? (直接スクラッチパッドに書き込むつもりでも内部でどうやってるか わかったもんじゃないし)
358 :
356 :2006/01/02(月) 09:14:45
コンパイルは通っています。 Exceptionが派生しているのは while((size = in.read(data, offset, data.length)) != -1) { の部分です。 そもそもHTTPでoffsetを設定したreadをしていいのかが気になっています。 もしかしてJavaヒープとスクラッチパッドって同じメモリ領域を共有しているのですか? とりあえずJavaヒープに収まる byte[] data = new byte[20480]; で分割しながらスクラッチパッドに書き込もうと思っていたのですが…。
>>356 >while((size = in.read(data, offset, data.length)) != -1) {
>out.write(data);
>offset += size;
>}
ヒープサイズなんて関係ないだろ。
これだと、offsetが20480バイト超えた途端にArrayIndexOutOfBoundsException出ないか?
おまけに、size見ないで毎回20480バイトwrite()してるし。
カメラの動作を確認する場合は実機に落とさないとダメですか?
うん
>>356 1回の通信で取得できるデータの長さには制限がある
それにひっかかってんじゃないのか
>>358 >>357 と同じく、なんのExceptionが発生しているのか
書いてくれんと、原因を特定しずらい。
364 :
デフォルトの名無しさん :2006/01/03(火) 01:52:55
readの話題が出たので便乗質問します。 http = (HttpConnection)Connector.open(url,Connector.READ); http.setRequestMethod(HttpConnection.GET); http.connect(); int contentLength = (int)http.getLength(); inputStream = http.openInputStream(); data = new byte[contentLength]; int readBytes = 0; while(readBytes < contentLength) { readBytes += inputStream.read(data,readBytes,contentLength - readBytes); } 上記のようなソースを書いているのですが、contentLength>=10240の場合に inputStream.readで例外が出てしまいます。IndexOutOfBoundExceptionです。 最初の1回で10240バイト読んで、その次のループで例外を出してしまいます。 1000バイトずつ読むようにしても、 どうしても10240バイトを超えて読もうとするとそこで例外が発生します。 (おそらく最後の1回で240バイト、その次のループで例外が出るのだと思います) 実機はP504iです。もちろんエミュレータ上では問題なく動いているのですが、 DoJa 2.0ではInputStream#read に読み込みバイト制限でもあるのでしょうか?
366 :
356 :2006/01/03(火) 05:28:41
>>359 offsetの値は関係ありません。毎回dataを上書きしていますから。
>おまけに、size見ないで毎回20480バイトwrite()してるし。
確かにサイズ考慮していなかった…鬱
端末のスペック表、読み違えてた…。
Javaヒープの容量読み間違えていた、Byteだと思っていたら、KByteだった。
スクラッチパッドのサイズより十分大きいいや…鬱
一回のreadで読み込むようにして、読めるようになりました。
iアプリのデバッグってどんな感じでやってますか? printStackTrace()は使えないみたいだし Eclipse2.1.2でトレースデバッグもできないみたいだし…。
System.out.println("ここまで読んだ");
>>365 情報ありがとう。やはり制限があったのですね。
どうしても10Kbyteを超えた容量のファイルをダウンロードしたいのだけれど、
DoJa2.0では1回の通信では出来ないことがわかりました。
では、どのようにこの制限を回避してダウンロードすればよいでしょうか。
一般的な方法などありましたら是非教えてください。
HTTP1.1のRangeを使おうとしてみたけれど、 Connection#SetRequestPropertyはRangeが設定できない仕様で失敗しました。 サーバ側で分割送信するCGIを用意すれば良いのでしょうが、 出来ればサーバ側の細工無しで実装したいところです。
>>369 ファイル自体を分割する
面倒ではあるが確実
>>371 ユーザーがアップロードしたファイルをダウンロードさせたいので、
それをやるならばアップローダで分割させる必要があるんですよね。
また、そのファイルはPCからも見られるようにしたいので、困っています。
>>366 >
>>359 >offsetの値は関係ありません。毎回dataを上書きしていますから。
offset関係しまくりじゃねーか。そのつもりなら、
in.read(data, offset, data.length)
じゃなく、
in.read(data, 0, data.length)
と書けよ。
>>372 1GETの10KB制限が仕様である以上、
クライアント側でRange指定するか、サーバー側で小細工するしか選択肢はないと思うのだが。
CGIで分割送信させれば済む話なんじゃないの?
>>374 サーバ側で小細工すると要らぬ負荷がかかる上にメンテナンスも面倒だ、というだけです。
ところで、クライアント側でRange指定できるんですか?
>>375 面倒と言っているが方法が分らないだけだとry
377 :
デフォルトの名無しさん :2006/01/03(火) 14:25:49
>>376 windowsしか使えないんじゃない。
サーバは大抵UNIX系だからね。
splitですむのにね。
378 :
366 :2006/01/03(火) 20:45:05
APIリファレンス読み直してみた…。 offsetってストリームへのoffsetだと思っていた。 byte配列へのoffsetだったのですね…。 猛省します。
379 :
364 :2006/01/03(火) 23:41:31
Windowsサーバは別に否定しませんが、サーバはLinuxです。 結局、split.cgi?filename=hoge.bin&from=10240&length=10240みたいなの作りました。 クライアントでHTTP1.1のRange指定があれば言うことは無かったんですけどね。
380 :
デフォルトの名無しさん :2006/01/04(水) 00:34:39
>>379 splitコマンドでファイルを分割しておくだけで済むのに。
シェルは使えないの。
>>Windowsサーバは別に否定しませんが
自分は否定します。
手間ばかり掛って、さらに危険度も高くデメリットだけだと思うけど。
windowsしか使えない人達にとっては、唯一の選択だろうが。
>>380 例えばファイルをいくつダウンロードしなければいけないのかクライアントがどう判断するのかとか、
ファイルの上書きやら、分割サイズはどうすのかとか、正直おまいのはていどの低い解決策に見えるんだが
linuxにこだわってシェルに傾倒するのは自由だが、364の携帯用に分割するcgiを書く方が100倍マシな解決策だろ
それくらい直感でわかってから人の質問に答えろよ
まぁ出直して来い
ファイルを分割すると、管理が面倒になるからなぁ。 特に素人客が運営することになると面倒。 しかしファイル自体を分割するのも手ではあるし、場合によっては(cgiなどを客が使いたがらないとか)使うのだから381は言い過ぎ。
cgiだと負荷が高くなるから、それがクリティカルなら分割の一手だね。 しかしそれ以外の状況では分割のデメリットが大きすぎる 381が言いすぎなのは間違い無いが、380の頭も固いな
つまりDocomoの仕様が糞、というわけですね
Dに限らずどれもこれも似たような状況ですがな(´・ω・`)
>>分割 アップされるデータ形式が分からないんだけど、ものによっては圧縮したら回避できるとか、 そういうアプローチは可能? あとはいっそ携帯でダウンロードできるものを制限して表示とか。 目的が分からないと手段を探すだけになってしまって解決に結びつかないかも知れない。
388 :
デフォルトの名無しさん :2006/01/04(水) 12:12:30
379のCGIを支持するような書き込みがあるが、おまえら大丈夫か? この手のCGIは split.cgi?filename=/etc/passwd&from=0&length=10240 のように使われて、意図しないファイルを読まれてしまってセキュリティホールに なるものばかりなのだが。 ちゃんとファイル名のパスをチェックしているのか、えらく面倒だぞこれは。 ../../etc/passwdとか、色々な書き方があるから。 普通こういうCGIは書かない。 プログラムを書けるようになったぐらいの駆け出し(または素人)っぽいやり方だ。 >>ファイルを分割すると、管理が面倒になるからなぁ。 そんな事無い。いちいち手でsplitしたら面倒だろうけど。 makeとかを使う。ちゃんとMakefileつくって置けば、ファイルをサーバに置いて makeを動かせば更新(split)が必要なファイルは全て更新されるようにする。 あと大抵バージョンコントロールプログラムと併用する。 手が掛らないように、さらに安全に運用できるようにするもんだ。
>>388 ああ・・・
お前は本当に何も考えてないアホだったんだ・・・
> ちゃんとファイル名のパスをチェックしているのか、えらく面倒だぞこれは。
…
> そんな事無い。いちいち手でsplitしたら面倒だろうけど。
………
もう黙っていていいよ
内容の是非はともかく、ちゃんと説明文書いてる
>>388 と
ただ馬鹿馬鹿喚いてるだけの
>>389 じゃ説得力が違うぞ
煽るだけじゃなくて理由も書けや
これだけレベルが違ったら、もう何言っても無駄だろ
まぁなんだ。389は煽ってるだけなので確かに意味は無いが…。 それにしたって「パスチェック」なんてプログラマのイロハのイだし、 更新の度いちいちMakefileを走らせるなんてプログラマの思考じゃないだろう。 特に素人客なんぞ、Makefile走らせ忘れて夜中に「なんかダウンロードできないんですよ!!なんとかしてください!!」とかTELしてくる馬鹿ばかりだし。
結論…データサイズ制限が糞
ちょwww 携帯に制限無くたって、どの道サーバ側で制限するでしょうが。 おし、俺から提案。 人任せでもダメ、プログラム任せでもダメ。 ならば・・・ ↓よろしく
395 :
デフォルトの名無しさん :2006/01/04(水) 13:20:47
いっそ通信機能を無くしてしまえば良いのではないか
388がひどい素人というのはよくわかった
GPSアプリに興味があるのですが、1回の測定で大体いくらくらいのパケがかかるのでしょうか?
<<397 タダ。 定額だけ相手にすればよし
>>388 一応言っておくが、CGI書くのに入力値のチェックしないなんて有り得んよ。
>>380 Win鯖つってもIIS+ASP(.NET)はApache+Tomcatより速くなるケースもある。httpdが落ちてもIISは速効復旧するし。ベンチは自宅鯖板で探してくれ。
mod_PHP/Java使うならUNIX+Apacheしかない罠。
>>388 明日出社したらSuEXECをOnにしておいてくださいね。
401 :
デフォルトの名無しさん :2006/01/05(木) 12:17:08
>>400 >>明日出社したらSuEXECをOnにしておいてくださいね。
apacheの設定を知っているからと、あまり変に口出ししないほうがよいかと。
http:://hostname/~username/cgi/xxx.cgi のような使い方するのは、レンタルサーバを使っているケースだけ。
CPの場合はhttpのユーザやグループを適切に設定してあるはずなので
SuEXECなんて関係ない。
他にも392のような、素人向のホスティング・サービスの話をしている人も
いるけど、ここはCPっていないの?
趣味でiアプリ作っている人向けのすれ?
逆に言うと、CP向けだけで話しているわけでもない。 そのあたりは自分で考え、自分に役にたつ情報を取捨択一せい。
仕事への意欲のある人間だらけだと思ってる奴発見www ガンバレ('A`)
>>401 apacheの設定を知っているからと、あまり変に口出ししないほうがよいかと。
>>401 ガンバ(´д`)
今度はうまくやろうな
401の人気に嫉妬
401 Authorization Required
409 :
デフォルトの名無しさん :2006/01/08(日) 15:06:56
すみませんが教えてください。 起動時にstartが呼ばれますが、終了時には何が呼ばれますか?
何も呼ばれないよ。MIDPと違って。
>>409 何も呼ばれない。
終了するのはプログラム自身がterminate()を呼び出したとき。
シミュレータの動作ですが、電源ボタンとかで強制終了かけられた時、 スクラッチパッドに作業内容を書き出したいのですが、何も呼ばれない とはorz
基本的にスクラッチパッドへの書き込みは遅くないので、ことあるごとにセーブするしかないかなー。
ども、ことあるごとにセーブします。 vodaで3Gになって異様にレコードストアへのアクセスがのろくなったので、 最後に書き込む方式にこっちも合わせようかと思ったのですが。
SH901iS明日買うんだが・・・ファミコンエミュは爽快に動くのだろか。。誰か詳細頼む。
2年ぶりくらいにiアプリを作ろうと思って iDK(DoJa4.0)をインストールしようとしたんですけど インストール時に「レジストリの書き換えに失敗しました」とか出てしまいます・・・。 OSはWinXP、JDKは1.3.1_17 同じような現象出た方いらっしゃいますか? 解決方法をご存知でしたらぜひアドバイスください。
418 :
416 :2006/01/10(火) 01:57:26
>>417 Admin権限のユーザでやってますね。
同じユーザで他のアプリをインストールする分にはまったく問題ありませんでした。
他に思い当たる原因ありますでしょうか?
419 :
416 :2006/01/10(火) 11:26:27
原因の切り分けをやってみました。 Doja3.5用のiDKまではすべて正常にインストールできますが、 4.0と4.1ではインストール時に「レジストリの書き換えに失敗しました」と出て、 それを気にせずに起動してみると、プロジェクトの新規作成や、ビルドボタンを押した時に 「レジストリの設定に失敗しました」と出てしまいます・・・。 4.0用のアプリを作りたいので、どうしても4.0用のツール使いたいんですが・・・
ウィルス対策ソフトが邪魔してるとかは無い?
421 :
416 :2006/01/10(火) 11:43:18
>>420 アドバイスありがとうございます。
ウィルス対策ソフトはノートンアンチウィルスを使ってますが、
DoJa3.5用まではノートン起動中でも正常にインストールできましたし、
ノートンを切って4.0用をインストールしてみても、結果は同じでした。
3.5エミュのフォルダに、4.0のクラスファイルとかつっこめばいいんじゃね?
423 :
416 :2006/01/10(火) 17:39:35
resフォルダにファイルを出力したいんですが OutputStream out=null; try { out=Connector.openOutputStream("resource:///test.txt"); String stuck = strbuff.toString(); byte[] playerDeck_data=stuck.getBytes(); out.write(playerDeck_data); out.close(); } であってますか? 同名のファイルがある場合って上書きされたりするんでしょうか?
コンパイルは通ってる? まずエミュレータで動かしてみることをすすめてみる。
>425 コンパイルは通ってるんですが out=Connector.openOutputStream("resource:///test.txt"); の部分でIOException:Cant open output stream directlyとでます; なんか開けないらしいんですが、参考になるページとかありませんか? txtファイルの読み込みのサンプルがあるページは見つかるのですが txtファイルの書き込みはFileoutputとかしか見つからないんですorz
>>426 おいおい。DoJaでresourceに書き出せるわけがないだろ。
>427 ガーン、ということはスクラッチパッドですか;
ファイル操作はまだ先の話なんぢゃないの? 実装状況キボン。 今は大人しくスクラッチパッドへ。
>>416 regeditで以下のキーにゴミないかい?
HKEY_LOCAL_MACHINE\SOFTWARE\NTT DoCoMo\doja4.0
431 :
416 :2006/01/10(火) 22:53:03
>>430 それも疑って、NTT DoCoMo以下のキーは強制的に削除して
試してみたことあるんですけど、結果は同じでした・・・。
ちなみに、インストール後、C:\iDKDoJa4.0\の下に
DoJa.regというファイルができてるんですけど、
これは正常にインストール完了した場合でもできるものですか?
それとも、レジストリの書き込みに失敗してるからできるものなんですかね?
432 :
427 :2006/01/10(火) 23:38:20
P902iのプリインストールのゴルフゲームが、 データをminiSDに書こうとしているみたいなんだけど、 これは偽装GIFか何かなのかなぁ? って調べてみたらDoJa-4.xのiアプリオプションに「第17章 外部メモリ」ってのがあったわ。 これでminiSDにファイル作れるっぽい。
SD Bindingっていうんだよ
スクラッチパッドにデータがあるかどうか判断するにはどうしたらいいでしょうか?
>>434 スクラッチパッドにデータ入れたときにスクラッチパッドにどこかにフラグを保存するw
436 :
434 :2006/01/11(水) 12:51:46
自己解決しました
( ;´Д`)アワワ
0番地から1バイトまで保存した文字列の長さ 2〜Nバイトまでを保存した文字列 というフォーマットでスクラッチパッドに書き込みその後読み込む関数 textはStringで関数の引数 int size; byte[] data; OutputStream out=null; InputStream in=null; out=Connector.openOutputStream("scratchpad:///0;pos=0"); data=text.getBytes(); size=data.length; out.write(size); if(size>0) { out.write(data); } out.flush(); out.close(); in=Connector.openInputStream("scratchpad:///0;pos=0"); size=(int)(in.read()); data=new byte[size]; if(size>0) { in.read(data); text=new String(data); } in.close(); を作成したんですが なぜか書き込んだときのsizeは312なのに読み込んだときは56になってしまいます; なんか間違ってますか?
>440 ・・・・・・・・・・orz これ256以上書き込むときは分割して複数回書き込めってことですか?
>>441 全然調べ足りてないよ
APIリファレンスでwriteInt()を調べな
DataOutputのwriteInt()でバイトの長さを書き込んで 次にwriteBytes()で文字列を書き込むって感じでしょうか? とりあえず試してみます。
うむ。それが正しい。
445 :
デフォルトの名無しさん :2006/01/13(金) 23:26:41
doja4.0で四角形のプリミティブにテクスチャを貼って表示したいのですが、 マスコットカプセルのページの資料にもサンプルが無く行き詰っています。 3.5のオプションの時は大丈夫だったのですが・・・。 すでにフィギュアを表示していて、地上の表現に使用したいと思っています。 なのでフィギュアが格納されているGroupオブジェクトに入れるわけでもなく、 g3.renderObject3D(primitive,trans);//地面の描画 みたいに別になるんですよね? そもそもプリミティブ自体を表示できてもいない状態なので 余計な推測でしかないですが、どなたかご教授頂ければと思います。 長文失礼しました。
うーん、何でPrimitei表示できてないんだろうねえ。
447 :
デフォルトの名無しさん :2006/01/14(土) 11:17:35
445です。 自己解決しました。 なにやらアホなことやってまして。 getVertexArray() で primitive.getVertexArray()[i]=primitive_data[i]; となるところを primitive_data[i]=primitive.getVertexArray()[i]; としてました。 ほんとお騒がせしました。m(_ _)m
448 :
デフォルトの名無しさん :2006/01/14(土) 15:10:39
初歩的な質問で申し訳ないんだが、blenderで作った3Dモデルを mascot capsuleで携帯向けに変換できるんだろか? というか、皆さん3Dモデルのモデリングには何を使ってるんでしょか。
Mascotのページに、対応ツールが一覧になっているではないか
450 :
デフォルトの名無しさん :2006/01/16(月) 13:57:41
−(全角マイナス)表記が化ける(?になります)んですが、 なんとかして出力する方法ってありますか?
MS932の話か
453 :
デフォルトの名無しさん :2006/01/16(月) 17:38:55
はじめまして。質問させて下さいm(_ _)m グラフ描画ソフトをiアプリで作る事って可能でしょうか? Excelみたいなセルに数字を入力して「グラフ」ってボタン押したら 円グラフとか棒グラフが描画出来るみたいな・・・ こういうの作るのって難しいでしょうか?
>>453 余裕で出来る。
製作もグラフの精密度次第だけどさほど難しくない。
決まったフォーマットの数値入力とかなら簡単だとおもうけど汎用性のレベル次第かと。
ただグラフィック的に厳しい部分はどうにもならない。
円グラフで物凄い角度がつかないような小さい数値だったりすると
画面解像度的につらい。
455 :
デフォルトの名無しさん :2006/01/16(月) 17:58:52
>>454 なるほど。
中身的にはそんな凝ったモノにならなくていいのですが(´・ω・`)
グラフの部分の立体的に表示させるとかじゃなくて
平面で描画できるレベルで十分なんですが・・・
実際に10日ぐらいで製作する事は出来るでしょうか??
直線と四角を組み合わせてグラフっぽく見せられるよう頭の中で描けるなら、 あとはそれをプログラムにするだけ。 慣れてりゃ2,3日でも余裕だろうが、結局のところ作成者のスキル次第でしょ。 むしろパネルモードとキャンパスモードの行き来とかそっちのがはまると思う。
>実際に10日ぐらいで製作する事は出来るでしょうか?? お前の能力次第
Iアプリに関係なく表(数値)からグラフ作るプログラミング技術 があると前提した場合グラフィック変換する部分だけ多少大変かな?と。 特に円。項目が多ければ多いほど汚くなると思うしw あとネックになると思われるのが文字の大きさ。機種で見え方違うし 細かいのを表現したい場合は自分で画像作って持つしかない。 Iアプリ未経験だがプログラムシ自体は初めてじゃないならってなら 10日もあれば最初躓かなければできるっしょ。いわゆるスケルトン作り。 本格的にやり始める前に一度グラフィックを使って軽く操作できるデモ プログラムでも作ってみれば良い。妥協点やら多少みえてくるはず。
459 :
デフォルトの名無しさん :2006/01/16(月) 18:31:25
>>456 なるほど。
やっぱパネルとキャンバス行き来させないとダメですよね・・・
>>457 ですよね・・・
>>458 項目とかは多くなくていいんですw
ホントに簡単なグラフ描画ソフトでいいんです(とゆーか作らなければ(´・ω・`)
文字の大きさとかは最小にしようかなと思ってます
みなさん貴重なご意見ホントにありがとうございますm(_ _)m
>>459 IME入力にすればpanel使わないでできるよ
まあ最初はpanel使ってやったほうがいいかな
>>459 >やっぱパネルとキャンバス行き来させないとダメですよね・・・
いや、505以降ならIMEをキャンバスから起動できるし、
それでなくとも「上下キーで値の増減」とかできるように作ればいいじゃない。
462 :
450 :2006/01/16(月) 22:50:06
>>451 >>452 返答ありがとうございます。
Unicode(UTF-8)でやってみたのですが、駄目でした。。。
@秀丸で各JAVAファイルをUTF-8で保存
AEclipseで再読み込み
B各JAVAファイルで
編集→エンコード→UTF-8
を選択
CEclipseの
ウィンドウ→設定→ワークベンチ→エディター
のテキスト・ファイル・エンコードでUTF-8を選択
DAnt pro でjar/jamを作成
という流れで試しました。
秀丸・Eclipse・携帯 全てにおいて、全角マイナス以外文字化けは見られません。
何処が駄目か、分かる方お願いしますm(_ _)m
「〜」も化けない?
>>462 iアプリのソースってSHIFT JISでいい気がするんだけど。
>>462 System.out.println("\u301c");
465 :
464 :2006/01/17(火) 00:01:30
失礼、全角チルダじゃなかった 全角ハイフンは\u2212か
>>462 antのjavacのencodingにS-JIS指定してもダメ?
デフォルトだとUTF8になっちゃうはず。
全ファイルSJISでいけるはずだよ。
467 :
450 :2006/01/17(火) 13:03:14
>>463 >>464 >>465 >>466 返答ありがとうございます。
お陰様で解決できました。
全ファイルSJISに戻して、
\u2212
で表示できました。
便利なエスケープシーケンスがあったんですねぇ。
聞いてよかった^^
最後に言わせてください。
_n n_
_、_ .( ll ) _、_
( ,_ノ` ) `/ /ヽ ( <_,` )
(  ̄ ̄___/ ヽ___ ̄ ̄ )
\ 丶 / / あんたら最高だ!
↑俺 ↑先方
スマソ、CreateImageで作成した画像の背景を透過にしたいのだけれど、 何色で塗れば良いのでしょうか? そもそも可能かどうか分かる方お願いしまつ(´・ω・`) どっかで(1,1,1)とか見たような気がしないでもないけど、 DoJaだったかどうかあやふやなので…
はじめまして、質問 iアプリコンテンツ開発ガイドの詳細編の5.2セッション管理を読んで アプリ側でセッションIDを受け取ることは出来ました 開発ガイドにはこれをhttpのレスポンスボディに書いて出力することで セッションIDのやりとりをすると書いてあるんですが・・・・・ サーバ側でボディ内から自力で情報を取得して処理するのが一般的なのでしょうか? iアプリでセッション情報を扱う上で何かアドバイスがあればお願い致します
470 :
469 :2006/01/17(火) 16:08:49
>はじめまして、質問 「はじめまして、質問させてください」 ちょっとテンパってました(つ∀`)
>>468 俺が知る限りでは普通では出来ないはず。
出来るなら俺もしりたいな。出来れば楽になるのに!ってのは結構あるし。
472 :
468 :2006/01/17(火) 16:22:54
>>471 サンクス。
スプライトの分割処理をしようものなら面倒になるのね。。。
もうグラフィッカーに頼んじゃったよぉ(ノД`)
>>468 できない。
そのため900あたりだかで、透過イメージを作るクラスがわざわざ追加された。
474 :
468 :2006/01/17(火) 17:06:21
>>473 追い討ちサンクス_| ̄|○
ちょっくらカンダタ子分と戦ってくる。
参考にしようと思ってるサイトではJAVA2 SDK1.3と書いていて 1.3を探したけど、1.4か5.0しかなくて困ってます。 それから1.4と5.0の違いが分からなくて どっちをDLしていいのか分かりません 違いを教えてもらえないでしょうか? ちなみにiアプリのゲームを作ろうと思ってます
>>474 ああ、昔からあったわ。
ただしオプションAPI
TransparentImage
連投スマン。
TransparentImageはSHしかサポートしてなかった。南無
>>475 java 1.3
でぐぐったらトップに出たが。
478 :
468 :2006/01/17(火) 18:04:25
>>476 >ただしオプションAPI
>ただしオプションAPI
>ただしオプションAPI
>ただしオプションAPI
ダーマの神殿は何処ですか( ゜Д゜)∩?
という冗談は置いといて。
キャンパス用の透過gif作ってgetImageで切り抜きゃ使えるかな・・・
>>477 本当ですか!?
403だったので諦めてました
ありがとうございました
5.0でコンパイルしてますが何か
482 :
468 :2006/01/18(水) 00:12:12
gif読み込んで作ったImageだとGetGraphics()使えないのねorz もういいや・・・ ジパングから上に行ったらメタルスライムに会えたからいいや・・・ んじゃ、すっぴんに転職してk(ry
すみませーん。画像の回転を考えてます。 ポリゴン作るのが面倒なので2Dでのやり方を模索してたんですが、 ある程度やってみていくつか疑問が湧いたので。。。 ・とりあえずGraphics2.DrawImage()にAffineTransを与えることで回転できそう。 ・AffineTransのメソッドの大半が例外を吐く。(RuntimeExceptionのみ) →足りない部分は作れって事でいいでつか? Rotate〜とか使えないと面倒なんですが。 ・Graphics2.DrawImage()の回転はゼロ座標が左上固定で 変更するメソッドが見つからない。 →Graphics.setOrigin()で対処するしかない? この座標も自分で計算?? 調査不足等多々有ると思いますので、その点お許しください。 もっと簡単な方法があると助かるんですが(´д`)
484 :
483 :2006/01/18(水) 18:55:17
Math.sinも機種依存がありそうだったので、 全部自作で対応しました(´・ω・`) これでいいのかなぁ・・・
>>483 バージョンが判らないが3.5以降くさいのでオプションAPIでやるより
基本APIのpublic void drawImage(Image image,int[] matrix)を
使った方がいいような気がする。速度的なものは比較したこと無いので
どっちがよいかやってみないとわからんが。
おれも3D大嫌いなのでアドバイスはできないが4.0以降ならTransformクラスと
組み合わせて使って実験してたよ。
Mathも機種依存ってよりも機種によって速度差が明らかに違いすぎるのは
経験済みatanとか極悪なほど速度が遅い機種もある。自作できるなら自作が良い。
が、RuntimeExceptionは開発環境に問題がありそうなんだが・・・?よくわかんねw
>>483-485 >AffineTransのメソッドの大半が例外を吐く
マスコットカプセルのDLL入れてないでしょ。
>>485 Graphics2のAPIばかり見ていて
>基本APIのpublic void drawImage(Image image,int[] matrix)
こいつの存在に気づきませんでしたorz
こちらは位置ベクトルも見てくれますよね?
手持ちの資料には何も書いてないんですが。
AffineTranceの方は無視されるので使い辛い…
>>486 ビンゴ('∇')!
実はsin/cosも使えなかったんですが、
動くようになりました。
助かりますた(・∀・)
488 :
デフォルトの名無しさん :2006/01/19(木) 15:13:22
javaアプリとはちょっと違うが質問 みんな携帯電話用のコンテンツ(掲示板)をjavaで作る場合、 フォームに絵文字が入力された場合どうしてる? requestで送られてきたバイト列から絵文字を判断し、 対応するunicodeに変換してから DBに保存みたいなことを自作で作るしかないのかね・・・ もちろんこの場合、絵文字のマッピングも作る必要があるわけだが、 モットいい方法とか既存のライブラリとかないものか・・・
>>487 ちなみに、マスコットカプセルのsin/cosは機種依存はないよ。
自分でテーブル準備するのも馬鹿らしいから、使った方がいいと思うよ。
しかし回転は遅すぎて使い物にならん…
>>489 ('◇')ゞ
助かります。
>>490 まぁそれを確認するテストアプリを作るのが目的だったので…
P902は回転拡大全画面書き換えしてても30fps出てました。
エミュより速いΣ(゜Д゜)
P902は、全画面書き換え+画面一杯の人間の立ち絵を表示して 100F/sたたき出したからな。
902すげーな ひょっとしてPだけ? ベンチ公開してるとこないかな。
495 :
デフォルトの名無しさん :2006/01/19(木) 21:04:25
iアプリってアプリ用のアイコンを付けられますか? (vodaやauは出来ます) ググったり開発ガイドのPDFを、アイコンで検索しても 良く分かりませんでした。 よろしくお願い致します。
P902はたしかにいいよね
>>488 絵文字を入力できないよう(書いてあったら拒否)にしている
そのおかげか、ウチはあまり評判のいい会社ではないがね・・・
質問。 Dojaのエミュからのビルドに、自分のクラスを追加したいんだが方法ないかね? libclassesとかフォルダ掘って放り込んでおけばいいかと思ったが、AUと違ってみてくれないのね。 CreateProcess覗いたらclasses.zipとdoja_classes.zipしか見てないでやんの。
すまん。 .classpathを作って編集したらいけたわ。 ユーザーズノートに載ってないのね。どこで知ったんだっけな俺…。
と思ったらさらに間違い。やっぱりダメだった。 これEclipseのファイルかなんかだ…。 DOCOMO公式エミュじゃダメかねぇ…。
>>495 質問の意味が俺の思っている通りなら出来ない。
そういう機能が存在しない。
>>501 どうも。多分思っている通りの質問です。ありませんか、了解ですorz
ってか、何で無いんだ(・3・)
>>498 コマンドラインで
>doja -help
と打ってみ
どうじゃ まいったか
>>502 なんで質問者の俺の代わりにお礼言ってるんだw
いや、ありがとう。諦めてbat組むよorz
>>503 やってみた。-classpath発見。ありがとん
と思ったらこのclasspath意味ちげーじゃん!bat組むわλ... 俺の日記帳になってるな。すまん
508 :
デフォルトの名無しさん :2006/01/20(金) 15:34:36
あげちゃったゴメン
勘違いした。今は反省している。
初心者でもiアプリを作りながら プログラミングを覚えていくサイトないですか?
お勧めとかないですか? どこも同じ内容ですか?
>>513 みんなDoCoMoの公式資料から派生しているので、
内容はたいして変わらん。
そもそもiアプリでプログラムを覚えることは可能だが、 まともなJavaプログラムを覚えることは難しい。 携帯Javaってのは曲芸だからね(´・ω・`) 902以降で無茶しない内容ならJavaらしいプログラムで 組めるんかね?
>>513 まずCとかでまともなPC環境のプログラム覚えた方が良い。
携帯だとプログラムが正しくてもVMのバグで動作がおかし
くなったりして、それの回避はプログラム覚えながらじゃ難しいよ。
>>515 携帯Javaが変態なのは、容量の制限がきついせいだからなぁ。
ま、勝手アプリレベルなら、Javaっぽく書いてもよかろ。
残念なことにiアプリ限定だと曲芸のソースがWebに浸透しているのが実情。 そして曲芸だと理解してないでコンテンツを公開しているサイトもいくつかある。 俺は『本買え』に一票だな。
>>515-518 情報サンクスです
Cからですか〜
まぁC覚えたいと思ってたしちょっとクグってみます
iアプリの本も購入してみることにしました
ありがとうございました
>>498 DoJa4.0以降のエミュ(iapplitool)使ったら?
iアプリライブラリって言う項目が有るから
某サイトにはこれでいけると書いてるけど 何度試してもエラーでるんだよね・・・ どこが間違ってるか分かる人います? //----Card.java--------------------------------------------- import com.nttdocomo.ui.*; public class Card extends IApplication { public void start() { new C(); } } class C extends Canvas { public C() { Display.setCurrent(this); } public void paint(Graphics g) { g.drawString("カードゲーム", 50, 120); } } //----------------------------------------------------------
そりゃもう色々と。
お手数ですがどこが間違ってるのか ご指摘お願いします
>>523 遠まわしに言わせて。
@カップ焼きそばを作ったけど湯切りで麺が流れた
→new C()
A湯切りする前にソースを入れた
→
public C() {
Display.setCurrent(this);
}
@カップ焼きそばを作ったけど湯切りで麺が流れた →new (C) A湯切りする前にソースを入れた → (C) { public Display.setCurrent(this); } こういう事ですか?
>>524 >カップ焼きそばを作ったけど湯切りで麺が流れた 素晴らしいです。
でけました
まじか
うそ 分からない
iアプリ作る前にjava勉強しろと
>>521 そのソースコピペでちゃんと実行できましたが。
どんなエラーなのか書かないと謎。
ほんとだ、動いた動いた。 これで動くのか、しらんかったな。
おしっこ漏れるう なんで全角スペース?
パケラジとかモバラジの音声データって何でしょう? 3gpですかね? パケラジは殆ど繋ぎ目が感じられず驚いています。 モバラジはβ版ということで不自然ですが。
>>530 BASICはできるけど
JAVAはまだ始めたばかりなんで
そんな事言わないでよ
>>531 C:\iDKDoJa3.5\apps\Card\arc\
Card.java24:`alass`または`interface`がありません
C:\iDKDoJa3.5\apps\Card\arc\
Card.java26:¥12288は不正な文字です
この不正な文字ですが大半を占めていて
クラスCardが重複していますと
シンボルを解釈処理できませんぐらいです
ラスト文章にエラー29個出てjava.cの実行に失敗しましたと出ます
>>535 530> iアプリ作る前にjava勉強しろと
535> BASICはできるけどJAVAはまだ始めたばかりなんでそんな事言わないでよ
ひらがな(BASIC)を覚えた外国人が漢字(Java)を学び始めた。でも
「小説の書き方(iアプリの作り方)を教えてください」とか言ったら、無茶だと思うだろ?
まず小学校レベルでいいから漢字を覚えて(最低限のJavaの文法)、
次に日記程度の文章が書けるようになって(HelloWorldの例題を理解)、
それから小説の書き方(iアプリの作り方)を質問した方がいい。
漢字と小説の書き方を同時に覚えられる人もいるけど、あなたはそのレベルじゃない。
オブジェクト指向の概念とJavaの習得から始めるレベルだと思う。
>>535 533で大部分解決するのでは。
まあ頑張ってください。
ヒント: そのコードをコピーペイストしないで 1から手打ちしてごらん
>>536 JAVAの概念を習得するのは大切なことだけど、
iアプリ開発に限って言えば、そうとは言い切れないのでは?
オブジェクト指向なんて、基本のiアプリ開発スタイルを継承するだけで、
あとはひたすらクラスの数増やさないようにしなくちゃいけないんだから。
>>539 作成するアプリの規模にもよりそうだな
本来、規模が大きくなってこそオブジェクト指向の
威力が炸裂するんだけどね。
今後、jarサイズの制限が減ることは考えられないし
先々のことを考えると、今必要なくても
少しずつ経験しておいたほうがいいね。
オブジェクト指向は一冊本をよんだからって
マスターできる代物じゃない。
スキーと同じで何回も失敗しながら体で覚えたほうがいいかも。
542 :
Rさん :2006/01/22(日) 01:57:06
midp2.0の事ですが、 1行ずつ読み込むことはできないでしょうか? 教えてくださいToT BurreredReader iアプリ→○ midp2.0→× なので、他の方法を教えてください。 よろしくお願いいたします。
ちょっとテスト的に作った物があるんだけど これ携帯に実装するにはPCと直接繋ぐか サイトに上げて携帯から落とせばいいわけ?
544 :
Rさん :2006/01/22(日) 02:49:21
リソースから読み込むことですが・・・?
君に聞いてない
じゃあ俺にも聞いてないんだろうな…。
548 :
デフォルトの名無しさん :2006/01/22(日) 16:07:59
アプリ作成したんですが、契約(ネット繋がらない)してない携帯に取り込みたいです。 SDはついていますが、方法ありますでしょうか?
iアプリってのはな、ダウンロードするもんなんだ。わかるか?
>>548 ……まあ、それくらい付けろやってのは、やってる奴全員が一度は思ってる事だけどな。
>>550 DoCoMoの経営陣からすれば
ダウンロードのみってのは当然の仕組みだ
おかげ様で、定額が始まるまでデバッグが大変だったよ畜生
ダウンロードするくらいええやん。昔のヒトはROM焼いてたりしてたんやで。
>>553 だからそのROM(ただしEEPROM)で配布させろと
それじゃお金にならんわな
プロジェクトを参照しようとしたら java.lang.reflect.InvocationTargetException でたんですが、誰かわかる人いますか?
>>557 一応これは見たんですがわからなかったです(´・ω・`)
ドコモのツール使ってて、今までは普通にプロジェクトを参照できたんですが、
たぶんドライブのフォルダ整理した後に参照ができなくなりました・・・。
iDKDojaとj2sdkは移動してないんですが、他に考えられる原因ってありますか?
>>558 開発ツールをインストールした後にフォルダ名を変えるだ移動するだで、
それで動作がおかしくなったとか言って、当たり前。開発環境を何だと思ってるんだ。
いじったフォルダを全部元に戻すか、開発ツールをインストールし直しなって。
>>559 どうも解決しましたヾ(o゚ω゚o)ノ゙
マイコンとかのアイコンの画像を元に戻したら解決しましたw
これは酷い
まさかのミステリー
ちょっと教えてください。 GIF画像をサーバーから約50個ダウンロードしてスクラッチパッドに書き込んで、そのあとその画像をuseしたい場合、スクラッチパッドの位置(pos)を指定しなければいけませんが、 このposを自動で求めてもらう方法はありますか? たとえば文字・数値ならDataInput/OutputStreamで気にせずガンガンread/writeしても問題ありませんが、MediaManager.getImage(ほげ)ではその方法ができません。
>>563 >posを自動で求めてもらう方法はありますか?
ない。自分で管理するしかない。
画像をスクラッチパッドのどの位置に記録したか、
それもスクラッチパッドのどこかに書き込んでおく。
そういやソースにファイルサイズ書いてある糞ソースが有ったな。 504用×2と505用でソースが違って ファイル変更のたびに修正が入るような、まさに糞だった。
>>563 そこまで理解していてなぜその質問なのか判らないが・・・
所詮スクラッチパッドなんだからガンガンread/writeして
ファイルヘッダー探せ。非効率だがな。
質問の内容的にアプリの状態によってスクラッチに保存しておく画像が変わる
アプリくさいがその時は読み込んだアドレスを記憶するテーブルをスクラッチに保存すべし。
流動的に画像が変わらないアプリなら最初から全アドレスを持っておいたほうが良い。
ちなみに今の所自動で探すような物は無い。
スクラッチパッド共通テーブルフォーマット作ろうぜーとか適当な事を言う。
>>565 おれはまさにそれだがw
君はどうしてるの?
アドレスを一括で持ってる方が非常に楽なんで・・・容量的ににも。
505以降はファイルサイズとかもいるからテーブルで持ってると
今のアドレスと次のアドレスの間のサイズを減算すればすぐ出るし。
俺が思いつかないような良い方法があればご教授くだされ。
503からやってるから外部アプリで出来ることは外部アプリで!
って癖が残ってるのもあるがw内部でやるとすぐ容量がw
>>568 どの辺が楽なのかと・・・
前段階で外部に出すリソースをファイルサイズとデータの順で書き込んでパック化、
10KBごとに分割するツールを使う。(batファイルでも可)
アプリ側は吐き出されたデータを初回起動時にSPに保存。
毎起動時にSPを一通りなめて、テーブルを初期化。
画像解像度が変わるだけなら、503も505以降もこれでいける。
>566のファイルヘッダ探すのも良いけど時間かかるし、
正確性に欠ける等の問題が残るので俺は上記の方法採ってる。
>>569 リスト化されたファイルサイズ・位置データをスクラッチに保存するかしないかの違いだけっぽいかな。
俺はリストをソース上部に置いているんだがなぜそうしてるかというと
開発でスクラッチ全部をギリギリまで酷使することが多かった経験上内部でもってるす。
逆に本体容量が無くなれば・・っとなったとき初めて外部に保存したりはするけど。
書いてて思ったけど、やっぱり普通は504とか505とか DoJaのバージョンが変わるケースでもソースは統一してるかみんな。 おれくらいか全部ソースがばらばらなのはw 基本、503(最近は作らないが)、504、505以降と3バージョンソース別だw 画像解像度だけでなく仕様そのものが変わるんで完全に別で作ってる。
>>571 いや、本当に「仕様そのもの」が変わるなら誰だって3バージョンソースになる。
そういう意味じゃなくて、
単に画像の表示位置が違うとか、線や塗り潰し引く位置が違うとか、
その程度の「仕様」なら普通は1ソースで行くと思う。
573 :
563 :2006/01/24(火) 18:32:43
貴重なレスをありがとうございます。 事前にサイズを調べて、ソースに入れたりdatとしてSPに保存したり、ダウンロード時に計算して容量情報を保存したりがよく使われる手法のようですね。 サイズの小さいGIFなので、GIFヘッダ検索も視野に入れて考えてみます。
>>573 もう一つ思いついたから一応言っておこう。
検証あまりしてないからあくまでできるってだけだが。
DOJAのバージョンによるが外部JARを使う方法。
これだとファイルネームによる展開が可能になる。
ファイルネームを連番などにすればファイルネームを覚える必要もないし。
ただ機種によっては速度が遅い。これはどうにもならん。
iアプリでエミュを作るのであれば 昔あったP505iS専用のエミュと同じ原理で可能だよね?
>>574 そのやり方でふつうに公式アプリ作れてるから、問題はない。
ただ、GIFはもう一度zip圧縮しても縮まないことが多いから、画像の圧縮だけが
目的なら使わないほうがいいかも。
ファイル結合して、各ファイルへのオフセット値をヘッダに持たせるくらい普通やってるだろ…
>>577 漏れもそうしてる。
アタマに各ファイルへのオフセットを4byteのリストで格納してる。
ついでに結合時にファイル名と番号の対応をヘッダファイルに吐いてる。
俺もそんな感じ。 ファイルの結合順序さえ分かるようにしとけば どんなファイルも一元管理出来るようにしてる。
画像ファイル1枚修正するたびに 結合し直したりオフセット計算し直したりしてるのか?
ツールを使っているんじゃないかと予想
普通にツールだろうし、画像単位でダウンロードするんじゃなければ、 どちらにしても結合はし直すんじゃないか? ウチはスクラッチパッドよりアプリ容量を多く取りたかったから テーブルはスクラッチパッドに入れてるな。 どっちがアプリ容量節約になるかの検証については忘れたw
やっぱりJAR固めるのが一番!
JAR固めるのとツール使う手間は一緒。 ツール作る手間ってのが最初に発生するけど(´・ω・`) 漏れは上記のついでに機種ごとにリソース(.dat)と jam/jarファイルを機種分フォルダ分けて振り分けて、 必要があればjamの中身も書き換えるようなツール作った。 対応機種毎にリソース変わるようなのがアプリだと、 jam/jarのコピーを手作業やjamの書き換えでミスが出てくるから。
>>585 漏れはjamはperlでテンプレ読み込んで加工して吐いてる。
当然オーバーヘッドがあるから、
がんがんアプリをダウンするようなサイトには無官が
みんな工夫してるんだなぁ・・・ ツール作る手間がいやなもんで適当にくっつけてリスト吐き出す奴しか作ってないやw いや正確にはつくってすらいない、もらったw面倒なんで作り直さないw そんなことしても給料増えないし(´・ω・`)
ツマンネー仕事してるより、ツール作ってる方が楽しい(´・ω・`)
携帯アプリで食っていける? 副業しないと厳しいんだけど(´・ω・`)
>>589 どういう形態だ?アプリダウンロードして課金なら、頑張って面白いの作れ。
雇われなら、腕上げて給料高い所に転職するか、自分で作って売るか、
携帯プログラマなんてやめちまえ。
Font#stringWidth() と Font#getBBoxWidth() って何がちがうのん? API リファレンスからすると前者は「文字列を表示するのに必要な幅」, 後者は「文字列のバウンディングボックスの幅」らしいけど, どうちがうの? いくつかのフォントと文字列で試してみたけど同じ値が返ってきた。
>>593 常識的に考えれば幅は一緒でしょ。
高さが違うのかと。
>>593 バウンディングボックスがなにか?ってのを理解しないと判らんっぽいなw
気になったんで調べてみたものの、専門用語ばっかで概要すらあまりつかめなかったな。
あるサイトでは「そのフォントの総ての文字を同じ座標に出力した際、
総ての文字がちゃんと収まる最小の四角形」とか説明があったな。
携帯のフォントって基本、総て等幅なんじゃね?だからどっちをつかっても同じ値が返ってくるんじゃ?
あくまで予想だがstringWidth()だと1文字ずつの大きさを計測して値を返す。
getBBoxWidth()だと全角何個、半角何個、って数えてバウンディングボックスの値をかけて
値を返すのかなぁっとかw 実際は全然ちがうのかもしれんが俺はその程度でいいやw使わんし。
>>593 携帯電話のフォントはメモリ節約などの理由から、基本的に文字装飾がない。
これだとFont#stringWidth()とFont#getBBoxWidth()の違いは表面化しない。
イタリックやボールドといった文字装飾が対応できると、
同じフォントの同じサイズの同じ文字でも、見せ掛けの幅が変わる。
Font#stringWidth()は(装飾された状態でも)装飾なしのフォント本来の形で計測される値が返る。
Font#getBBoxWidth()は装飾された形で計測される値が返る。
バウンド(bound)は範囲とか境界という意味。
>>596 593じゃないが、その説明わかりやすい^^
>>596 なるほど昔SO端末でFontがBoldで意図した表示にならなかったことがあったけど
getBBoxWidthを使えばよかったのかも
質問です。 端末がサポートしてるAudioPresenter数を取得するAPIとか無い? 無きゃ今まで通り2音を基準に作るんだけど。 携帯アプリは音関係は鳴ってりゃいいや程度だから テーブル持ってまで対応する気はないしw
無い! むしろ君が調べて表にしてくれると嬉しいぞ!
>>599 APIはないが自分で調べる事は簡単に出来るだろう。
try〜catchで囲んでその中で
エラーがくるまでポート作り続ければいい。で作れた数を覚えればそれで終了。
当然つくれたポートはそのまま使用。おれはこれで作ってるがなんら問題ない(505以降)
なるほど了解。 やたらとSEを多用する企画にぶつかっちゃってちょっとだけ考えてみたんだけど、 対応したらしたで、Pでは鳴るのにNでは鳴りませんとか 言われそうで対応するのもどうかなーとか思ったw Doja4.0以降の奴はだいたい4音再生可能っぽいからいいんだけど、 900シリーズに2音とかいう糞端末が混ざってるから困るんだよね。 今は900以降って区切り方されるからもうぬるぽ
603 :
デフォルトの名無しさん :2006/01/28(土) 04:02:12
ポート番号って変更できますか?
HTTPの? ガイドに明記されたような...
605 :
デフォルトの名無しさん :2006/01/29(日) 03:08:04
eclipse2.1.2.1-SDK-win32-LanguagePackFeature.zip これダウンロード出来る所ありませんか??
>>448 >というか、皆さん3Dモデルのモデリングには何を使ってるんでしょか。
オレはSoftImage3D使ってbacExport。
607 :
デフォルトの名無しさん :2006/01/30(月) 00:35:39
アプリダウンロード用のサーバーのアドレスは、132.152・・・・・では、駄目なんでしょうか? きちんと URLが必要になるんですか?
>>607 IPはダメ。
Dynamic DNS とか適当に使うといい。
質問です。 iアプリプログラム上でgif画像を生成して(アルゴリズム組み込んで) PalettedImageで読み込むのは無謀だと思いますか? どうしても透過色使いたいのです… TransparentImageはほとんど使えんし
>>609 ルーチン組めるなら良いんじゃね?
ただ・・・状況に応じて透過色を含めた画像を作成するんだろうけど
携帯の処理能力で実用的な速度が出るかどうかは疑問だけど。
結果的に毎回全部書き直しでやった方が早かったとかにならなきゃいいがw
透明色を入れるアルゴリズムを使えばいいじゃん
>>611 >透明色を入れるアルゴリズムを使えばいいじゃん
詳細教えてください。頼む
613 :
612 :2006/01/30(月) 16:21:20
自分で色々考えてみたけど、やっぱり透過色使うのは できなさそうだなぁ。TransparentImageが標準APIになれば ゲームとかいろんな所が高速化&軽量化できるのに… レイヤー組み合わせてマップ作ったりとか。 せめてPalettedImageでgetGraphicsできればよかったのに。 ドコモのバカーっ!(TAT) 次期dojaでは是非標準APIになってほしい→TransparentImage でないとFlashLite2.0に乗り換えるぞー
透過の設定は PalettedImage createPalettedImage 使っても出来ないのかな?
今更標準APIになられてももう遅い。 900でやらなければいけなかったSocketも、今更もう遅い。 何やってんだ糞が。そんなだからネットワーク関係BREWにもってかれっぱなしなんじゃボケ
だってBREWはお上の認証通るまで短くても2ヶ月もかかるんだもの もうブツはできてんのに売り時期逃して終わり 一日にできる通信料も3Mまでってなめてんのか
>>614 できる、ってかそれができれば文句ないんだけど、
機種依存でほとんどの機種で例外(orError)が出るから
使えないんだわ。
難しいなぁ('A`)
P900系で「突然電源が切れる」というクレームがちょくちょく来て、参ってる。 自分でも一度、P900の電源が不意に落ちるのを経験してる。 アプリがいくら悪さしても、電源落ちるっておかしい。 java の実装の不具合を疑ってる(「コンパクションしない」不具合なんてのもあった)。 ドコモにゴルアしても「再現しないと調査できない」とか言って認めない。 CPサイトの端末不具合情報は、最近全然更新されてないし、 現在、絶賛、途方に暮れ中 みなさんはこういうとき、どう対処してますか もう氏に総
>>619 「再現しません」というドコモの言葉をユーザに丸投げします
>>620 レスアリガト
でもそんなソフト会社やプログラマはダメだと思うゆえ アレコレ苦労している次第
いっそ P900 を対応機種からはずすのも考えたんだが
「それはドコモの不具合です」を証明しないと言い出せない
P900突然再起動の不具合(?)は聞いたことあるな。 本体を開閉したとき、メールを読んでるとき、とか突然なんだそうな。 ソフトウェアの更新(ショップ持込じゃなくて自動でできるやつ)したら 発生しなくなるらしい。 不確実な情報で済まないが、ユーザーに「ソフトウェアの更新してみてください」 って言うくらいは言ってみてもいいんじゃないか?
P900 不具合 でググったら一番上が「P900の自然再起動について」で笑ったww 糞端末の不具合をアプリに押し付けられてもねぇ・・・
再現しても修正できる開発チームが既にいない悪寒
P900持ちはゴネまくったらP902貰えるかもしれないなw
アプリの不具合で再起動はありえないな。結構報告は聞くが。 でも、決まった場所、決まったアプリで〜って報告なんて聞いたことないし。 個人的にP900持ってるんだが購入当時はドコモからの連絡でバージョンアップ してください、とハガキで連絡が来た。当然その時にバージョンアップした。 それまでに再起動バグは1回経験してたがその後無くなった。 が、最近気まぐれでバージョンアップしてみたらまたバージョンアップしてた・・・。 今度はハガキなどこなかったが・・・まぁこっそりアップしてるっぽいので バージョンアップをユーザーには薦めてるよ。それでダメならドコモショップ行けと言うw
627 :
デフォルトの名無しさん :2006/01/31(火) 12:14:11
古いauのjava端末では、アプリが特定の動作をすると端末が固まるという事は あったよ。 固まってしまって電源も切れないから電池を抜かないとどうしようもなかった。 それが起きるとなぜかブックマークが全部消えるという副作用もあった。
628 :
デフォルトの名無しさん :2006/01/31(火) 12:56:29
お尋ねします。 今、SH900iを使用してます。 昨日からiモードに繋がりません。 最初のメニュー画面までは行くのにマイメニューからは繋がらない。 こんなことって初めて…。 しかも画面メモを開いてもボタンが動きません。 壊れちゃったんでしょうか…。
>>628 で、それとアプリの間にどんな関係が?
素直にドコモショップに持ってけよ。
630 :
619 :2006/01/31(火) 13:55:45
みなさん情報アリガト P900 は「黙ってバージョンアップ」してたですか そうですか お客さんには「ソフトウェア更新を試して」をお願いしてみるよ でもそれで直らなかったら「たらい回しにされた」とか思われるだろうね チトつらい 携帯のファーム作るのが年々大変になってるんだろうけど 不具合は全部公開してくれないとアプリ作るこちらは死んでしまう とドコモに直談判する
Docomoは日本の大企業だから 何を言っても無駄なくらい腐ってそうw
つーか2モデルも3モデルも古い機種だと いまさらバグがあっても改修されることはないよ。 発火するなら別だけど。
>>627 それ、ブクマが消えるのが副作用なのか?ww
むしろそっちが主作用(不具合)だろw
今更P900じゃあドコモも動かないよな
635 :
デフォルトの名無しさん :2006/02/02(木) 14:54:46
初心者ですが質問お願いします。 Iアプリでゲームを作成しているのですが。 splitメソッドが効きません。 ソースは省略しますが↓です。 class MainCanvas extends Canvas implements Runnable{ private String NumStr; private String[] NumSplit = null; private void Init(){ NumStr = "a,b,c"; NumSplit = NumStr.split(",") } } このような状況で ビルド開始(DoJaプロファイル : DoJa-4.1) C:\test1.java:351: シンボルを解決できません。 シンボル: メソッド split (java.lang.String) 場所 : java.lang.String の クラス NumSplit = NumStr.split(","); ^ エラー 1 個 javacの実行に失敗しました とエラーが出てしまいました。 どのようにしたら解決できますでしょうか。 ご教示宜しくお願いします。
つ 自分で作る
>>635 エラーメッセージのまんま答え出てるではないか。
splitってメソッドは存在して無いって事。
ないものは使えない。自作すれ
splitはJDK1.4からだったかと思われ。 携帯は1.3 かつ、Stringにしても結構なメソッドが削除されているから注意。 詳しく知りたい場合はclasses.zipを解凍して、String.classをjavap.exeで解析。 搭載されているメソッド一覧を表示させてチェックするように。
マルチすんな禿
>>638 そんなことしなくても CLDC の API リファレンス見ればいいやん
なんで、こうもCLDCのAPIリファレンスすら見ない香具師が多いんだろうねえ。。
Doja4.0とDoja4.0LEの違いは スクラッチパッドの容量とjarのサイズ、それ以外に どんな違いがあるの? 話は変わるがDojaの仕様がまともになるのはいつなんだろうか。 オプションAPI多すぎ。機種依存多すぎ。オプションAPIリファレンス もういらないじゃん。FOMAになるとき仕様を大幅に改善してDoja2とかに すりゃよかったのに。てかDoja作ってる会社がエルカミノなんたらから 別の会社に変わった時にDoja2にすりゃよかったのに。Dojaの最近の バージョンアップははっきり言ってがっかりだ。バージョンアップしても ぜんぜんうれしくないし。なんだDoja4.1って。Doja5.0じゃないのかよ DojaのJVMってケータイ作ってる会社ごとに勝手に作ってるんだろそれじゃ 機種依存も出るわBREWみたいに共通のチップ乗せるか全部のケータイに おなじCPUと同じOS乗っけてJVMはドコモが公式に作ってくばりゃいいのに 互換性のせいで初期仕様決めた会社のせいでこの野郎やっつけてやるウェーン
あ、ごめんなさいウェーン ほかの事に気をとられて縦読みにすんの忘れた
645 :
デフォルトの名無しさん :2006/02/03(金) 01:10:56
splitのサンプルコードくらい書いてもよくない?
646 :
デフォルトの名無しさん :2006/02/03(金) 01:34:21
DoJa4.1 と Eclipse3.1.1 を使って環境を構築中です。プログラムを実行すると以下の例外が出ます。 Main :java.lang.ClassNotFoundException: MyDoJa04 MyDoJa04 java.lang.ClassNotFoundException: MyDoJa04 java.lang.ClassNotFoundException: MyDoJa04 これまでの操作は、順に Eclipseにて、DoJa4.1のインストール先を指定しました。 ADF/トラステッド動作設定でAppnameとAppClassをMyDoJa04としました。 新規クラスを、名前はMyDoJa04、スーパークラスはcom.nttdocomo.ui.IApplication として作りました。 LaunchTypeを通常起動として実行しました。 原因と対策をお教えください。
>>643 これって縦読みなの?
マジレスしておくとJVMはSUNから提供されたコードを
リンクしているだけのはず。GCは多少違うかもしれんが。
機種依存が出るのはJVMより下のレイヤ。
>>646 クラス名とファイル名が一致してないとかじゃねーの?
あるいは大文字・小文字が合ってないとか。
面倒臭いからクラス名は A にしちゃいなさい。
902とかからJavaの実行環境統一されたんじゃなかったっけ まぁ今更と言う気もしないでもないが
>>645 その程度を自力で書けない奴は、プログラムなんて書かなきゃ良いのに。
サーバー蛾ぶっこわれた
652 :
646 :2006/02/03(金) 20:09:30
やっとできた・・・ eclipse3.1.1をやめて2.1.3でやったところできました。 プロジェクトメニューからDoJa4.1設定ができなかったので、 jamファイルを直接書き直しました。
5.0準拠でコンパイルしてたってオチじゃないの?
エフェクトというのか、アニメーションというか、視覚効果を学べる本やサイト ってどこかありますでしょうか? 例えば、 メニューを選択すると、うぃ〜んとスクロールしたり、 画面の切り替え時の間の視覚効果等。
>>654 マルチポストすんなタコ
スパゲッティー鼻から食わすぞ
俺ならうどん鼻から食わす
俺ならきしめん鼻から食う
みんな学ぼうとする奴に酷いな(´・ω・`)
>>654 マジレスすると、そういうのはゲームとかみながら学ぶしかないかも。
俺のオススメのゲームをリストアップするからとりあえずやってみてくれ。
ゼノサーガEp1、Ep2
バウンサー
武蔵伝II
我が竜を見よ
天外魔境3
ラジアータストーリーズ
ドラッグオンドラグーン1、2
シャイニングティアーズ
レジェンドオブドラグーン
マグナカルタ
グランディア2、X
空気嫁
からけ?
なんつー偏ったリストだ。
一つもやったことねぇな…。
Doja5.0ではFlashLiteをアプリ内で読み込み再生できるようにしてください
>>643 > DoJa作ってる会社がエルカミノなんたら
DoJaを作るって意味がよくわからないんだが。エミュレータのこと?
> なんだDoja4.1って。Doja5.0じゃないのかよ
これも良く意味がわからない。バージョン番号が4.1じゃなくて5.0だと何かいいことあるの?
> おなじCPUと同じOS乗っけてJVMはドコモが公式に作ってくばりゃいいのに
このあたりは同意w
まあ、
>>648 というわけだが。
>これも良く意味がわからない。バージョン番号が4.1じゃなくて5.0だと何かいいことあるの? メジャーバージョン番号が変わるということは、大規模な仕様変更が起きるということ さっさと作りやすくなれ、という事かし
iアプリの目的=ゲーム となってしまった今、もう大規模な機能拡張の余地は ないでしょうね。
メジャーバージョンが上がっても互換性の問題もあるし 作りやすくなることは無いと思われ。 つかそこで「*Project」の名前がでてこないあたり、 情報少ない人なのかDoCoMoに期待してないのか。
互換性の問題 → 上位互換にしなきゃいけないって話ね。
>>667 フルブラウザは?jigスレは携帯ゲースレの勢いを抜いてるよ。
着メロ作成とか、ドット絵作成とか、PCを操作するアプリとか、ゲームだけとはまだまだ言えないと思うけど。
ドコモはSunと結託してなんか考えてたはずだよ。 そのうちメジャーアップデートがあるんじゃね?
>>672 ほぅ…非常に興味深い。
ケータイ業界もまだまだいけんのかな?
携帯アプリもまだまだ飽和状態には至ってないようだな
FlashLite2.0も控えてるし。まだケータイでご飯食べていけそうだ…
BREW終わったな。俺BREWキライ
あとは携帯電話がパソコンのようにならないことを祈るだけだ ケータイはあくまで家電。子供からじーさんばーさんまで 快適に使えなきゃならない。 誰かが言ってたけど、ケータイにはケータイ独自の文化が 必要なんだよな。
903でプログラム領域(900シリーズの100KB)の制限がいっきに緩和されるという噂があるが…。 ガンガンクラスを使えるようになれば、開発速度は飛躍的にあがるな。 ただ903でやられてもな…。 ベンダーは900以上というくくりかたをするし
処理速度的にもそろそろ正しいJavaの作法に戻る頃合だろうな。
開発速度はあがっても、ゲーム規模が無駄にでかかくなって…。
セキュリティがあるから勝手アプリはたいして変わらんでしょ
*Projectは全然詳細がわからないもんなあ。
容量が増えても開発期間と単価はさほど変更されないと予想。 つーか、iアプリを1本500円以上とってユーザー付いてくるんかね?
FFとかDQはつけても売れるだろうけどな……
つまりエイガテキシュホウな携帯アプリが増えるでFA?
何を指して映画的と言ってるのかよくわからんが。
なんでこの話の流れで「映画的」というのが何を指してるのか分からないんだ
開発と宣伝に金掛ける手法のことか? 虚仮威しでゲームが売れるかね?
つーか、もう携帯アプリまで日本ゲーム業界の 退化の終着まで来てしまった気がするなw そもそも505の低スペックでも無理して現代のゲームを 再現しようとしてたんだから、辿り着くのが早いのも頷ける。 後はギャルゲADVが乱立して終了か?w
>>686 結構ギャルゲADV出てるよね。
もう少しすると急増するのかな。
ゲームが壁にぶちあたるとツールが延びて、PCと携帯が一体化して携帯がPCを飲み込んでMSが潰れる
勝手にゲーム業界が終わったことにされてもな。 一方では、今年は第二次ライトユーザーブーム元年とか評価してる人もいるのに。
*Projectでのお話の中、素人な質問すみません。。 アプリを作成するとき、Canvasは複数作っておりますでしょうか? このような場合には、Canvasを分けたほうがよい、とかといのが あるのでしょうか? 昔の本とかを読んでいると、頑張って1つのCanvasに収めましょう と書いてあるのですが、最近のアプリを作成する場合は、 どのようなタイミングでCanvasを使い分けているのかな、と疑問に思いまして、、
>>690 >アプリを作成するとき、Canvasは複数作っておりますでしょうか?
アプリ次第。
>昔の本とかを読んでいると、頑張って1つのCanvasに収めましょう
1つであることが望ましいことが多い、実際俺自身は複数のキャンバスは作らない。
理由としては容量が大きくなりやすい事、切り替え時に画面の乱れが出やすい
機種が過去あったと報告があったこと、使用メモリが増えやすい事などある。
パネルとちがってキャンバスを複数使うことによる管理が有益である
場面って早々ないと思うよ。でも決まりなんてないから自分がそれが
やりやすい!ってなら複数作ればいいとおもうぞ。アプリがちゃんとできれば良いだろ?w
>>686 これから月一本ペースで萌えギャル系ADVのiアプリを作って黄金期に
入る予定ですが、何か?
とりあえず、今日はiアプリ入門を書見ながらでキャンバス出して画像
表示するところまで作ってみました。
萌え系のシナリオ考えるので死ねそうな
>>692 むしろ雇って欲しいとすら思うが、黄金期は長くは続かんのだろうな('A`)
ごらあ!
696 :
デフォルトの名無しさん :2006/02/07(火) 00:28:56
すみません質問いいでしょうか?
今、Doja4.1と連携させているEclicpse3.1.1でサーブレットとJSPとiアプリを作っています。
Tomcat5.X(細かいバージョン忘れました)とTomcat-ant、jdk1.5.0_06、MySQLを入れています。
アプリの内容は、テキストボックスに文字を入れるとその文字をサーブレットが受け取り
MySQLに保存し、結果を返すというものです。
ひと通り形になるものを作ったので、
iアプリでアクセスするURLを「
http://localhost:8080/webアプリ 」から「
http://DNSサーバが指定したドメイン/webアプリ 」で
設定し更にADFのURLも同じ設定に直しまして本番用のサーバに作成したWebアプリをEclipseのワークスペースから
フォルダごとTomcatのWeb-appsの下に入れました。
で改めてエミュレータアクセスすると10 null
と出た後3 Already connecting
としか出なくなります。
これは、なんでしょうか。どうか教えてください。
ちなみに本番用のサーバのApacheの連携等はやってますしServer.xmlの設定もしてます。
DoJaの方に問題があるはず。 が、それだけの情報では何とも。 ちゃんとclose()した?
DoJa4.1の開発ツールのエミュレータでプリミティブ描画しようとしたらエラーでる…orz 4.0の開発ツールでは動いています。 Uncaught exception java/lang/RuntimeException: Rendering failed. java.lang.RuntimeException: Rendering failed どなたか原因をご存知ないでしょうか。 ちなみにちゃんとDLLは micro3d_d4.dll , micro3d_v3_32.dll ともにbinフォルダ内に入っております。 使用しているのは com.nttdocomo.opt.ui.j3d あたりです。
ごるあ
黄金と黄昏は50%くらい似ている
黄金期なんて一瞬だよ。その後は鬱展開が延々続く。ベルセルクみたいに。
>>697 はい。
ちゃんとコネクトクローズしてます。
何度、やりなおしてもエクリプス上ではまともに動いて本番用のサーバに乗っけたら
おかしくなるんです・・・・・。
実機では ポート80以外繋げない アプリ自身が置いてあるサーバーと、違うサーバーとは通信できない あたりに心当たりはないか? とりあえずSQLどーのではなく、サーバーにおいてあるTXTファイルでも読み込ませてみれ。
五巻くらいで、全てを知った面するな。イマダ!!!
ひだりのルパンがドラマ版の電車男に似てる・・・
ごめんなさい。誤レスです。
>>704 サーバーのTXTが何処を指すのかわからなかったので設定した部分を書いておきます。
C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\booklibrary\WEB-INF\web.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <web-app xmlns="
http://java.sun.com/xml/ns/j2ee " xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd " version="2.4">
- <servlet>
<servlet-name>iBook</servlet-name>
<servlet-class>booklib.Ibooklib</servlet-class>
</servlet>
- <servlet-mapping>
<servlet-name>iBook</servlet-name>
<url-pattern>/booklib</url-pattern>
</servlet-mapping>
- <servlet>
<servlet-name>Isbncomple</servlet-name>
<servlet-class>booklib.Isbncomple</servlet-class>
</servlet>
- <servlet-mapping>
<servlet-name>Isbncomple</servlet-name>
<url-pattern>/isbncomple</url-pattern>
</servlet-mapping>
</web-app>
C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml - <!-- <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> --> - <Context path="/booklibrary" reloadable="true" docBase="C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\booklibrary" workDir="C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\booklibrary\work"> <Resource name="jdbc/BookLib" auth="Container" type="javax.sql.DataSource" username="MyBooker" password="11922960" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/MyBook?useUnicode =true&charcterEncoding=UTF-8" maxActive="10" maxIdle="4" maxWait="5000" validationQuery="SELECT count(*) FROM book" /> </Context> </Host> </Engine> </Service> </Server> とりあえずこんな感じで設定しました。
>>704 あと
>アプリ自身が置いてあるサーバーと、違うサーバーとは通信できない
と書かれていますが、エミュレータで行う場合ADFのURLを
任意のサーバのアドレスに書き換えて置けば大丈夫ではないのでしょうか?
あー、そうね。 本番用ってそういうことなのね。実機で試したって意味じゃないのね。 そのサーバーがまともに動いてる保証が手に入ってから、iアプリスレに来なさい。
Graphicsに描画したものをImageとして持つことは出来るのでしょうか?
意味がわからん。 Canvasに表示したものってことか? 無理。
715 :
デフォルトの名無しさん :2006/02/08(水) 02:34:46
>>713 > Graphicsに描画したものをImageとして持つことは出来るのでしょうか?
ふつうはGraphics「で」描画するもんだと思うが・・・
>>713 ImageのGraphicsコンテキストを取得すれば、
Imageオブジェクトに描けたはず。
gifとかjpgのImageってGraphicsコンテキスト取れたっけ?
>>717 取れるのは、createImageで作ったImageだけだったよーな。
getRGBPixelsでだめなのか?すげー重いけどさ・・
720 :
1/3 :2006/02/08(水) 23:49:51
Master.java public class Master extends IApplication{ private TitlePanel title; private GameCanvas game; public void start(){ title=new TitlePanel(this); game=new GameCanvas(this); Display.setCurrent(title); } public void play(){ ※game.gameStart(); } … … }
721 :
2/3 :2006/02/08(水) 23:51:49
TitlePanel.java public class TitlePanel extends Panel implements ComponentListener,SoftKeyListener{ private Master master; … public TitlePanel(Master master){ super(); this.master=master; … … } public void softKeyReleased(int key){ if(key==SOFT_KEY_1){ IApplication.getCurrentApp().terminate(); }else if(key==SOFT_KEY_2){ master.play(); } } }
722 :
3/3 :2006/02/08(水) 23:53:11
GameCanvas.java public class GameCanvas extends Canvas{ … … public GameCanvas(Master master){ … } public void gameStart(){ … … } } この※の所でぬるぽが発生します 自分には原因がつかめないのですが、誰か分かる方教えてください ソースはかなり縮めましたので、必要な部分があれば言って下さい 流れ的には MasterがTitle出す ↓ TitleがkeyEventでMasterのplay()を呼ぶ ↓ game.gameStart()でぬるぽ です
GameCanvas#gameStart()の中で エラーが出てるんじゃないの?
724 :
720-722 :2006/02/09(木) 00:13:52
g.drawImage(Image,0,0,0,-10,240,20); ってしたらImageの 0,0,240,10 の領域が 0,0 から描画されるんだね。 今日はじめて知った。なんか描画がずれるからへんだと思った。 範囲外は詰められるのか。…常識?
>>725 何も変じゃないし、常識とかそういう話でもない。
その引数ならそのように描画されると思うが。
むしろ、ソース画像のy座標に負数を与えてるのに
何らかの形で描画されていることの方が変だとも言える。
例外吐いて止まっても不思議じゃない。
画像外は透明として処理して欲しい気持ちはよくわかる。 よくわかるが…。
728 :
デフォルトの名無しさん :2006/02/09(木) 11:11:00
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってピザ食ってろ |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ /
>>725 drawScaledImageのようにバージョンによって仕様外だった部分が修正される可能性もあるし
値を丸めて描画するようにする方向に変更したほうがのちのち良いかと思うぞ。
携帯用flashって最新機種でどれくらいのモンが走るんだ? iアプリのDQぐらいのレベルまで動くん?
Flash4並。
ヒープ容量1.5M以上の端末で 情報配信系のアプリを作ろうとしているのですが、 画像や文字で100K位は確保しても、OutOfMemoryにはならないでしょうか? まあ、作る内容や作り方にもよると思うのですが、 だいたいこの位なら大丈夫で、 それ以上だとSPに入れようかなという目安がありましたら、 お教え頂きたいです! できるだけ、メモリ上で処理したいので、、
>>732 つ「new byte [100 * 1024]」
>>732 240*240の画像一枚で100k以上ヒープ食うわけだけど、
その辺理解してる?
常に数十KBヒープが余ってりゃそうそう落ちないと思うが、
その辺の計算できない奴なら常にgcとgetImageでもやってろ。
全画面画像を使う情報配信アプリってどんなだよwwwwww
>>732 > まあ、作る内容や作り方にもよると思うのですが、
それが答えだよ。
こんなものに目安があると思ってる時点で考え方がおかしい。
一番最初につきはなした733である俺が言うのもなんだが、お前ら畳み掛けるこたーねーだろ
>>732 ヒープ領域1.5Mなのに、100Kで落ちるとどうして思えるよ
DoJa-3.5エミュレータで実験したことで、以下について質問。 キャンバス上でこうすると画面は赤くなる。 int red = Graphics.getColorOfName(Graphics.RED); int cvW = getWidth(), cvH = getHeight(); Graphics g = getGraphics(); setBackground(red); g.clearRect(0, 0, cvW, cvH); Imageに対して同様のことをする。 Image img = Image.createImage(cvW, cvH); Graphics ig = img.getGraphics(); setBackground(red); ig.clearRect(0, 0, cvW, cvH); g.drawImage(img, 0, 0); 画面が赤くなる(赤いimgが表示される)ことを期待するが、実際は白いまま。 Graphics#clearRect()が有効なのはキャンバスのgに対してのみで、 イメージのg(上記ではig)に対しては無効なのだろうか?
>>738 ('д')・・・
つ Graphics g = getGraphics();
g.drawImage(img, 0, 0);
740 :
738 :2006/02/11(土) 21:08:05
>>739 いや、それはもちろんそうしてる。cvW,cvH,colの宣言と同様、書くのを省略しただけ。
>>738 の後半はこういうこと。
int red = Graphics.getColorOfName(Graphics.RED);
int cvW = getWidth(), cvH = getHeight();
Graphics g = getGraphics();
Image img = Image.createImage(cvW, cvH);
Graphics ig = img.getGraphics();
setBackground(red);
ig.clearRect(0, 0, cvW, cvH);
g.drawImage(img, 0, 0);
>>734 えー、画像一枚で100K以上もヒープ食うんだ、、 知らなかった。。
Stringとかも、その文字のバイト数以上食っちゃうのかなぁ、、
勉強になります!
>>740 Canvas#setBackground(int) なんだから
Canvas (のインスタンス) の背景色を設定するだけなのは当然じゃね?
勝手に Image の背景色が変わったら困るだろ
そもそも Graphics#setBackground(int) じゃないのが設計ミス。
>>742 setBackground()がCanvas(の親クラスFrame)の背景色を指定するもの
だということは認識している。
また、setBackground()を実行して直ちに色が画面に反映されるのではなく、
clearRect()したときに初めてCanvas(Frame)の背景色が変わる。
どうやらclearRect()はCanvasのGraphicsオブジェクトに対してのみ有効
ということでよさそうだね。
だとすればAPIリファレンスのGraphics#clearRect()の説明の書き方が悪いよなぁ。
Graphics自体の説明では「キャンバスおよびイメージに対応するグラフィックスコンテキスト」
としていて、clearRect()の説明では「(setBackground()で指定した)背景色で塗りつぶします」
としている。
ならばイメージに対してclearRect()しても(Canvasの)背景色で消去されるもの
だと当然思える。が、実際には処理されない。
それならちゃんと「CanvasのGraphicsに対してのみ有効なメソッドですよ」と
注意書きが必要なんじゃないかな、と。
まぁでも、それならそれでImage(でもCanvasでも)の背景色を指定する Graphics#setBackground()なるものがあって然るべきだろうよ、 っていうのは同意。 仕方ないのでImageに対してはfillRect()使う。(それしかできねー)
そうか、今の中高生って物心ついたときにはWin95が既にあったんだな((((;゚Д゚))))
746 :
742 :2006/02/11(土) 23:39:38
>>743 > ならばイメージに対してclearRect()しても(Canvasの)背景色で消去されるもの
> だと当然思える。が、実際には処理されない。
思えない。
Canvas のインスタンスを複数作ったらどの背景色使うか決められない。
> それならちゃんと「CanvasのGraphicsに対してのみ有効なメソッドですよ」と
> 注意書きが必要なんじゃないかな、と。
Image のでも有効。白かなんかで塗りつぶされるだろ。
背景色を指定できないだけ。
そもそもCanvasで設定した物が ImageのGraphicsに反映されてたらそれこそバグだと思うんだが。
>>741 240*240*2=115200
*2は16bitカラーなので。
ただ、D端末は昔から32bitなので240*240*4かかる。
>>743 みたいに自分の無理解をドキュメントのせいにされたら中の人もたまらんわな。
>>743 の後半は言われてみればドキュメントからそう読み取れない
こともないような気もする。もちろんそれは正しくないんだが。
無理解だとまでは言わないが、思い込みで突っ走らないようにってとこか。
751 :
デフォルトの名無しさん :2006/02/12(日) 16:59:22
iアプリバージョンアップ時の画面遷移方法についてご教授いただきたいの ですが、バージョンアップ時は「バージョンアップに同意しますか?」という 質問に「はい」と答えたら自動的にバージョンアップされてiアプリが 落ちて再度起動されるものと思っていますが、実際にやりたいのは バージョンアップに同意したら利用規約画面に遷移し、そこで「同意する」 ボタンを押してからバージョンアップが始まって、終了画面をかませてから iアプリの起動を行う。というやり方をしたいと思っております。 それって可能なのでしょうか。。。?
非常に読みづらい。
753 :
デフォルトの名無しさん :2006/02/12(日) 17:55:52
読みづらいですか・・・ えっと、要はバージョンアップをする際に 勝手にバージョンアップ→iアプリ起動ではなく いろいろ画面をかませてから起動させたいのです。 可能でしょうか・・・?
>>751 普通には不可能。
一度ダウンロードしたアプリはjamをダウンロードしたURLを覚えていて、
バージョンアップ時はソコを見にいっちゃう。これは端末の機能であって、
このプロセスにiアプリはまったく関与できないから、当然制御も不可能。
だから起動成功時に現在のバージョン情報をスクラッチパッドに書いておいて、
起動のたびにiアプリ自身が持つバージョン情報を比較、
必要に応じて一度だけ利用規約を出す、みたいな処理を自前で書くしかない。
755 :
デフォルトの名無しさん :2006/02/12(日) 18:23:25
754さんありがとうございます。 では、バージョンアップの同意ダイアログを出して 利用規約画面を出して、そこで初めてバージョンアップをして 終了画面をかませてからiアプリ起動。というのは ちょっと不可能。ということでしょうか。 やはりバージョンアップ→自動的にiアプリ再起動というのは 標準仕様なのですね。。。
ケータイ側の機能としては、
バージョンアップの指示が来たら新旧のADFを比較して
新しくなっているようだったらJARを落として入れ替える
ってだけだから、落とす前に規約を表示して…とか無理っぽ。
ただ、一番最初に読ます「利用規約」で、
「バージョンアップする時も同意したとみなす」とかさせとけばいいんでねぇか。
規約を変更するなら
>>754 の方法で読ませて、
同意しないなら以後のバージョンは使わせない、と。
あるいは…JARは常に同じまま
バージョン依存部をすべてアプリからDLしてスクラッチバッド保存。
バージョンアップ処理もすべて自前で、ってのが可能なら…
757 :
デフォルトの名無しさん :2006/02/12(日) 18:40:35
756さんありがとうございます。 >バージョン依存部をすべてアプリからDLしてスクラッチバッド保存。 >バージョンアップ処理もすべて自前で、ってのが可能なら… とはどういう処理方法なのでしょうか。 バージョンアップ処理はすべてユーザ側で行うことが 可能なのでしょうか。携帯側で勝手に行われるものとばかり 思っていましたので・・・ 本当初心者すぎて申し訳ないです。
>>757 利用規約とかしつこくやるってことは商用だろ?
質問してる内容からみてプログラムすること自体が大丈夫かと
心配になるんだが。
>とはどういう処理方法なのでしょうか
「すべて自前で」と書いてある。
携帯の機能にを当てにしたり介入するのではなくて、全部アプリ
内でバージョンアップ機構まで作るということだろ?
当然プログラムをバージョンアップしなくてもコンテンツそのものは
バージョンアップできるようにしなけりゃならない。
759 :
デフォルトの名無しさん :2006/02/12(日) 19:06:44
758さんありがとうございます。 はい、その通り商用です。 ですのでアプリ内でバージョンアップ機構まで 作らないといけないのですが、どうしてもバージョンアップダイアログ 出力時に他の画面をかませる。というやり方がわかりません。 しかもダイアログ出力時に「はい」を選択しておいて、利用規約画面で 「同意しません」などを押された場合の処理や終了画面をかませてから iアプリ起動・・・などどう設定していけばいいのかがわからないです。 もちろんプログラム自体はバージョンアップなどはしません。 あくまでコンテンツそのもののみです。 本当私自身プログラムが組めるのか心配です・・・
アプリ内で規約に同意するか聞いて、 OKならネイティブのバージョンアップを 呼び出せばいいんじゃね?
761 :
760 :2006/02/12(日) 19:08:38
ああ、2回「バージョンアップしますか?」 って聞かれるのはうざいけどな。
762 :
デフォルトの名無しさん :2006/02/12(日) 19:24:57
760さんありがとうございます。 実は現在の画面遷移図はこんな感じなんです・・・ 「iアプリ起動画面」→バージョンアップしていたら「バージョンアップ ダイアログ」出力→「はい」を押下→「利用規約画面」→「同意する」を押下 →「終了画面」→バージョンアップさせてから「iアプリ起動」 こんな感じなんです。 どうも終了画面を通ってからバージョンアップさせてiアプリ起動という 流れが無理のような気がしてならないのです。 こんな画面遷移でもやり方次第では可能だよ。と思われる方がいらっしゃいましたら 教えていただきたいと思います。
763 :
756 :2006/02/12(日) 19:26:24
>>759 本当にプログラム(コード)自体はバージョンアップしないの?
だったらそもそもケータイ側(JAM)の更新機能なんて使う必要ないやん。
「コンテンツ」をJARから切り離して別途落とすようにするだけ。
その手順は単純なプログラム側だけの処理で済むよね。
言ってる事が矛盾してたりして解り難いが アプリ起動中にデータのダウンロードするだけ? 簡単だと思うが
765 :
764 :2006/02/12(日) 19:31:04
リロードしてなかった 763は流して
そもそもアプリのダウンロード時に利用規約に同意してるのに、 しつこく利用規約を見せられる理由がわからん。
お役所的なんでしょ
768 :
デフォルトの名無しさん :2006/02/12(日) 19:38:46
そうなんです。特にプログラム自体は変更しないんですし、 一度目のダウンロード時に利用規約に同意しているから いいと思うのですが(利用規約画面は一度目も二度目も 変わらない)お客さんが言うので仕方ない・・・といった 状態です。 ですのでもしもやり方があるのであれば教えていただきたいの ですが、やはりいろいろ無理があるようですね。。。
>>759 >もちろんプログラム自体はバージョンアップなどはしません。
もうレス付いてるけど、データ落とすだけじゃん。
iアプリのバージョンアップ機構はまったく関係ないと
いうのがマジで分からないのか、それとも「プログラム
自体はバージョンアップしない」というところそのものから
間違っているのか。
>>768 >お客さんが言うので仕方ない
プログラムの勉強じゃなくて相手を合理的に納得させる
処世術を勉強したら?
馬鹿なことをゴリ押しするような連中なら先は長くないだろうし
見限っちまえばいいが、おれは質問者じゃないから無責任。
言ってる事おかしすぎ 規約画面なんか2回出そうが100回出そうがプログラム的には大した事無いぞ
772 :
756 :2006/02/12(日) 19:55:14
こーゆーことじゃダメなの? ダウンロードサイトの利用規約に同意させる ↓ JARをダウンロード ↓ コンテンツをスクラッチパッドにダウンロード ↓ 定期的に最新コンテンツをチェック、無ければそのまま ↓更新時のみ ↑ 利用規約をアプリが表示し、同意させる ↑ ↓ ↑ 最新コンテンツをダウンロード →→→→→→→→
そこで
>>751 の「バージョンアップ」を「データ更新」に
置き換えて読んでみる
バージョンアップっていうからおかしいんだ。 iアプリでバージョンアップって言ったら端末に標準でついてる プログラム部分再ダウンロード機能のことだろ。 スクラッチパッドデータの更新は自前なんだから、 認証画面をはさもうと問題無い。
775 :
デフォルトの名無しさん :2006/02/12(日) 21:07:00
レス遅くなってしまい、申し訳ないです。 今みなさんのレスを何度も読み返してみたのですが やはり疑問点が拭えないです。 何か根本的に間違った認識をしている気がしてきました・・・ iアプリ起動時に勝手にADFのURLを見に行って、更新する必要が あるかどうかを判断して、あると判断されたら勝手に更新ダイアログが 出力されて、「はい」を押したら勝手に更新されて再度iアプリ起動 されて・・・といった流れだと思っていました。 ですので、その間に画面ははさめないと思っているのですが やはり根本的に間違った認識をしているのでしょうか・・・?
間違ってる。 端末はアプリ起動時にバージョンの確認は行わない。 バージョンアップするにはユーザーがメニューから 「アプリのバージョンアップ」を選んだ場合のみ。
>>775 まず何のバージョンアップなのかはっきりしないと。
iアプリ本体?
それともアプリが使うデータ?
778 :
デフォルトの名無しさん :2006/02/12(日) 21:46:45
776さんありがとうございます。 そうだったんですか!? 通常のiアプリ起動時に必ずADFのURLを見に行って 勝手に「バージョンアップされています。同意しますか?」といった ダイアログが出るんじゃないのですか?? では、通常使用で勝手にバージョンアップダイアログが出力されると いったことはないということですよね?
779 :
デフォルトの名無しさん :2006/02/12(日) 21:48:12
777さんへ iアプリ本体のバージョンアップしかないと思っていたのですが、 データのみのバージョンアップというのもあるのですか? くだらない質問すぎて嫌になると思いますが・・・
>>779 ちゃんとDoCoMoの開発ガイドPDF読んでる?
もしかしてiアプリの開発全く未経験?
それどころか使ったことも無い?
本体をDLした後にデータを自分で落としてくるアプリって結構あるでしょ?
後から落としてきたデータについては全部自分で管理すりゃいいわけよ。
> 通常のiアプリ起動時に必ずADFのURLを見に行って
> 勝手に「バージョンアップされています。同意しますか?」といった
> ダイアログが出るんじゃないのですか??
んなことでパケ代使われたら怒るじょ。
> では、通常使用で勝手にバージョンアップダイアログが出力されると
> いったことはないということですよね?
JAMはそんなことしない。
気の利いたソフトは自分で通信してチェックしてバージョンアップの通知出す。
ユーザが自分でチェックすることももちろんできる。
と、ここまで書いておいてなんだが…
ケータイアプリの開発したこと無い漏れが言うことだから聞き流してもいいぞ。
>>779 >もちろんプログラム自体はバージョンアップなどはしません。
といいつつ
>iアプリ本体のバージョンアップしかないと思っていたのですが
といってる
ん?プログラムは更新しないけどjamの中身だけ変更するってこと?
AppParamにサーバに設置したコンテンツへのファイル名が記述されてて
それを変更してVerUPって言いたいのかな...
それならプログラム変更にはならんけど...
まあいいや、核心から逸れそうだから。
開発ガイドの目次だけでも目通せや!
つーか、初心者にやらせるくらいならウチもってくりゃ 同じ値段でよっぽどマシな仕事しますよ、 と思ってる奴も多いだろう( ´Д`)y-~
>>779 くだらない質問すぎて反吐が出るわ。少しはマニュアル読めや厨房!
通常起動のたびに勝手にサーバーと通信してたら、パケット代かかっちゃうでしょ。そんなものは無し。
携帯についてるバージョンアップ機能は「JAMファイルが更新されていたら、JAMファイルとJARファイルをDLしなおす」機能。
もしプログラムをバージョンアップするのではなく、スクラッチパッド内のデータを更新したいのなら
アプリに「起動するたびサーバーにアクセスしてデータのバージョンをチェックし、更新されていたらDLしなおす機能」を実装する。
ところで勘違いの元は、505i以降に「アプリ内から、携帯についてる『アプリのバージョンアップ機能』を呼び出すAPI」が追加されたことが原因じゃないか?
無知と客先から言われた事から勝手な妄想したのが原因と思われ。
なんか伸びてると思ったらこんな展開か……
>>779 PDF10遍読み返せ
PDF以前に、まずiアプリ端末をさわってみることから始めないとダメなんじゃないか?
つーか、調べ方を知らない、考えられないってのは致命的だな('A`)
そんな奴にソフト作らせるのもどうかと…
質問をしたいのですがよろしいでしょうか? 携帯のバーコードリーダを作っているのですが サンプルとなるJAN13コードの作り方やサンプルが置いているサイト など分かる方はいらっしゃいますか? エミュレータで使うとSelect code file for CodeReaderと言うモーダルが開くんですが 対応するファイルが存在しないので困ってます。 どうぞよろしくおねがいします。 ちなみにソースコードは下記の様に書きました。 import com.nttdocomo.device.*; import com.nttdocomo.ui.*; /* *バーコードリーダー(JAN13のみ) */ public class iBarcodeApp{ public String BarCodeRead() { String strRet=""; CodeReader cr=CodeReader.getCodeReader(0); cr.setCode(CodeReader.CODE_JAN13); try{ cr.read(); strRet = cr.getString(); }catch(Exception e){} return strRet; } }
>>790 初めから用意されてる sample1.dat は
単なる2次元バーコード用のテキストデータみたいだから、
13桁の数字のテキストファイルを拡張子.datで読ませてみたら?
792 :
791 :2006/02/13(月) 23:55:00
確認完了。テキストでよろし。
793 :
デフォルトの名無しさん :2006/02/14(火) 00:25:49
public class GameCanvas extends Canvas{ 〜 public void start(){ 〜 while(true){ 〜 keyCheck(); 〜 } } private void keyCheck(){ int key=getKeypadState(); System.out.println(key); if(((1<<Display.KEY_SOFT2)&key)!=0) IApplicatoin.getCurrentApp().terminate(); } 〜 } このgetKeypadState()が返す値がいつも0のようで、 エミュレータで決定キーを押し続けていてもコンソールに0しか出ません。 原因がわからないので、わかるかた教えてください。
>>792 ありがとうございます。
うまく出来ました。
>>793 スリープ入れてみれ。
ループが早すぎてログ出力が追いついてないだけだろ
796 :
デフォルトの名無しさん :2006/02/14(火) 01:36:28
public class GameCanvas extends Canvas{ 〜 public void start(){ 〜 while(true){ long sleepTime=0L 〜 keyCheck(); while(System.currentTimeMillis()<sleepTime+50L); sleepTime=System.currentTimeMillis(); 変わらんかったとです
違う Thread.sleep
>>793 ソフトキー2のキー押下チェックしてるのに
決定キー押したって反応あるはずないだろ
799 :
798 :2006/02/14(火) 03:31:41
ああ、質問の意味を取り違えた
>>793 >int key=getKeypadState();
>System.out.println(key);
printlnにはStringを渡せよ。
>>793 こっちでkeyCheck()を毎フレーム呼び出すのを作ってみたがなんら問題ない。
正常に動く。だとすれば原因として思いつくのは
keyCheck()が実は呼び出されていない。返されてる0が別の場所のかもしれない。
System.out.println("KEY="+key);とかで名前付けとけばわかりやすい。
keyCheck()部分を疑うんじゃなくてそれ以外の全体を疑うべし。
提示されてるソースからはそれくらいしか言えないよ。
802 :
デフォルトの名無しさん :2006/02/14(火) 11:45:18
>>797 のいうようにスリープを入れないと、キー状態を取得するスレッドに処理が切り替わらない。
ループの頭に1msスリープするようにすべし。
>>802 そんなことはない。
そもそも、1msのスリープを入れたら、ほとんどの機種で10msスリープすることに…
いや、毎フレームちょっとでもいいからスリープしないと 正しく動かない端末が昔あったような気がする。
805 :
sage :2006/02/14(火) 14:34:00
質問です。 パッケージ化されたMain Sub Scoreというソースで Sub画面で使用しているInt関数(変数名nokori)をTextBoxで表示させてて その変数をScore画面で表示させたいのですが、 そのときのプログラムがよくわからないんですが getTextで持ってくることはできるのでしょうか?? スクラッチパッドを使用して持ってきたほうがいいのでしょうか。
getで取得setで表示だった希ガス
808 :
805 :2006/02/14(火) 14:52:04
書き方がいまいちよく分からないのですが Scoreで表示させるときのPGは this.getText().setString(nokori); って事でしょうか?
ハロー(注意報)。 N900iで、標準MIDIファイルではチャンネル1から8までしか使えないとか小耳にしたんですが、 これじゃドラム鳴らせないのと違います? そこんとこどうなってん? 次に、ドコモ携帯の音源はGM規格だと仮定していいんでしょうか。 いくらぐぐっても音源の仕様が出てきません。 それから、ぶっちゃけ900i以降でもおとなしくMFi使ったほうがいいの? あと、BGMのループは相変わらずMediaListenerで待つしかないんでしょーか。 MFiなりSMFなりに何かループコマンドみたいなの仕込めないの? 以上、暇ならよろしくです。
810 :
デフォルトの名無しさん :2006/02/14(火) 22:31:54
プログラム自体にエラーはなく、ビルドも無事完了したのですが、エミュレーターで実行できません。DOJA4.1を使っています。 誰かわかる方いたら教えてもらえないでしょうか
811 :
793 :2006/02/14(火) 22:33:39
>>801 仰るとおりSystem.out.println("KEY="+key);としてみても
やっぱりKEY=0の繰り返しですし、他に原因が見つからないので
そこだけ作り直すことにして見ます。
>810 マルチ乙。
>>810 俺の勘ではテストした端末が壊れてるから
Docomoショップ持っていって見てもらえ。
マルチっつーよりコピペだろ
>>811 Thread.sleep 入れてもダメだったのね?
ソフトキー2を押しても terminate しないのね?
エミュレータの画面上ではボタンが押された反応(ボタンが白表示)あるのね?
>>809 Nはドラムチャンネルを10chにすると鳴らない
MIDIよりMLDを使ったほうがデータサイズ小さいから良い
ループはDoJa3.5でもオプションだったかな?
まあ普通はMLDの中にループポイントを埋め込む
819 :
818 :2006/02/15(水) 00:00:16
言い忘れた NはAudioPresenterを複数チャンネルで使ったとき ドラムが鳴らなくなるということね
Thread.sleepで1msだけ寝るので解決するのであれば、 Thread.yieldの方がいいんでない?
821 :
793 :2006/02/15(水) 00:30:06
>>817 駄目でした
明らかに白くなって押せている状態です
>>793 ・ビルドしないで実行している
・そもそも実行しているものが違う
この辺疑えw
>>811 呼び出されてるのに結果がおかしいのか・・・。
作り直すってのはどこの事指してるのか判らないが
全体の流れを作り直すのが先決かもな。スリープ関連の書き込み多いし、
俺が実験したのもちゃんとループをスリープで制御してある奴に組み込んで実験したし。
提示されたソースの省略されてる部分がどうなってるのか次第だよなぁ後は・・。
>>809 悪いことは言わない、おとなしくMFi使っとけ。
ループに関しては、データ側のループ指定を無視する腐れ機種があるので、
MediaListenerで待つしかありません。
>N900iで、標準MIDIファイルではチャンネル1から8までしか使えない
MFiにコンバートするときも同じ制限があるので気をつけろ。
ドラムは、トラック1〜8のどこかに割り付けるんだ。
>>793 Display.setCurrent()でカレントに設定してないとか、
そもそもGameCanvasのインスタンスを生成してないとか、
そんなオチじゃないだろうな…?
Dojaでコンパイルした時、エラー位置「^」がエラー箇所を 示してしないのです。 ソースの方が結構ズレて表示されてるような気がします。 最初の頃は平気だったのですが、 フォントの設定か何かのでしょうか? DoJaをインストールしなおしても駄目でした。
>「SMF 制作ガイドライン for iアプリ」(N505i/N505iS/N900i 版) (゚Д゚≡゚Д゚) ドコ? コレドコドコ?
>>830 JVM、SDKが1.4までならきれいに並ぶ
834 :
830 :2006/02/15(水) 16:32:18
ありがとうございます。 そうでしたか… どうしようもないのですね…
毎秒30フレームでシンクをしたくて、こんなんしてるんだけど↓ if ( ( t = tgtTime - System.currentTimeMillis() ) > 0 ) Thread.sleep( t ); なぜか、秒20コマくらいで動く。困ってます。 sleep() の精度がおかしいのかな?? while ( tgtTime > System.currentTimeMillis() ) ; とするとキッチリ動く。 でも長時間 sleep() を一切呼ばないため、端末への負荷が気になってます。 これでも問題ないでしょうか。
描画性能を特に重視した端末(大体900以降の一部の端末)でないなら 30fpsなんて速さは出せない。505とかだとせいぜい15〜20fps。
時間の分解能ってのがあって、sleepも1ms単位でかけられるわけじゃない。
>>836 とは関係ないけどちょうど
>>803 で言われてる。
839 :
デフォルトの名無しさん :2006/02/16(木) 09:49:05
まったくプログラムとかした事ないんですけど ぐぐってたらノベリオンというフリーソフト見つけました 誰か使ってる人いますか?
>>836 >でも長時間 sleep() を一切呼ばないため、端末への負荷が気になってます。
>これでも問題ないでしょうか。
問題ない。
電池の持ちなど、知るか!
>>836 >でも長時間 sleep() を一切呼ばないため、端末への負荷が気になってます。
>これでも問題ないでしょうか。
>>840 の答えとまったく逆だが問題あるよ。
一部の機種に置いてその手の超高速回転部分でif文などの条件判断を実行すると
CPUへの負荷かメモリへの負荷かわからないが、内部でgc()呼ばれた時に
ものすごく遅くなる事があったり、単純にキーレスポンスが遅くなったりもした。
俺は最初下の方法でアプリ作っててアプリが重くなってくると症状が酷くなってきて
上の方法に切り替えたらかなり改善された経験がある。当然エミュ上では問題なかった。
実機で遅くなる。作るアプリしだいだとは思うけど参考までに。
843 :
839 :2006/02/16(木) 11:17:15
>>841 違いますってwこれを使ってみようとヘルプ見たんですけど
作ったアプリをダウンロード後、初回起動時にネットワークを有効にする事を
忘れないでくださいという怪しい言葉が載っていたので・・・
勝手にどっかにアクセスするってことですよねコレ
やっぱ自分で作ったほうがいいですか?
>>843 アプリはダウンロードしたサイト以外アクセスできない。
それは、作成したデータをネット経由でダウンロードするから
設定をONにしてくれと言ってるだけ。
本体アプリは変更が無く、
作成したデータをDLして動く形式だと思われる。
ツクールアプリとかがその形式だったりする。
845 :
839 :2006/02/16(木) 11:36:44
>>844 詳しくありがとうございます。
作る物の中に全部入れておけば(データをダウンロードする必要がないように)
特に問題ないってことですね。
頑張って作ってみたいと思います。
スレ汚しみたいな感じになってしまいすいませんでした。
846 :
デフォルトの名無しさん :2006/02/16(木) 11:53:00
DoJa-4.Xを使用して、DoJa-3.X系のアプリは作成できますか?
>>842 SH900iで、processEvent()内で何かする作りだとそうなるかもね。
848 :
836 :2006/02/16(木) 12:49:42
>>838 やっぱり sleep() は精度いまいちなんですね。
最近のゲームアプリは15フレームくらいは普通に出したい感じ。
それだとイロイロ困りますね。
>>842 丁寧なレスありがとう。
じつは最近のSH系で長時間動かしていると不意にフリーズして困ってました。
それが原因だといいな。
早速試してみます。
精度の問題もあるけどさ if ( ( tgtTime - System.currentTimeMillis() ) > 0 ) Thread.sleep(1); のがよくないかなーと。 それとスキップした分メインフレーム複数回すようにすりゃ問題なかろ
Sleepなんぞいらん。 空文をwhileで回しまくれ。昔の端末にはSleepするとちゃんとCPUを休ませる端末があったが、最近のはまったく影響がない。
携帯ゆたんぽを作りたい方はどうぞ。
>>851 ホッカイロにしとけ。
ゆたんぽは若いのはしらないのでは?
誰が一番携帯の温度を上げられるか競争するかw
最終的にどんなアプリを作ろうとしてるかで変わってくるが 個人的には空回りは推奨しないよ。 時間を均一にする事が絶対条件のアプリじゃなきゃだけどね。 processEventやMediaListenerなどいつ割り込みが入るか 判らない物を実装してる場合は極端に性能が落ちる機種がある。
>>854 >時間を均一にする事が絶対条件のアプリじゃなきゃだけどね。
ここが難しいとこなんだよなー。
アクションゲームで、毎秒33フレームとか50フレームとかで回したい場合、
現状空回しせざるを得ないし、sleepを入れると毎秒10フレームとかに
ならざるを得ない。
とっととタイマ分解能が1msで統一されて欲しいもんだ。
タイマの分解能は while ( tgtTime > System.currentTimeMillis() ) ; できちんと動くなら 1ms でよろしかろう sleep() すると裏で動いているメール受信とかを まってましたとばかり見に行く そのせいで最低 100ms くらいはかかるのでは
いくらなんでも100msもかかんないよ
∧_∧ ⊂(#・ω・) / ノ∪ し―-J |l| | 人ペシッ!! 白 ←N504
いまだにタイマ解像度10msの端末だらけなのはいかんな。 ゲーム屋は1ms単位で勝負してるんだから、そのあたり理解していただきたいものだ。 タイマ解像度さえ高ければ、wait()入りのメインループにタイマイベントで定期的にnotify()を送って タイマ割り込み代わりにする技があるのだが。Javaアプレット時代に使ってたんだけどな。 速度一定だし、「処理落ち」もできるし、CPU明け渡すからバッテリーにも優しいぞ。
>>859 3GHzオーバーのPC(Win)でもSleepの精度はせいぜい10msだから、
携帯環境が改善される見込みは薄いね
Win と比較するのが間違いだと思うが 最近汎用OSに切り替え進んでるから 同じ道はたどるだろうね。
ボタンを押すと画像が変わるアプリを作りたいんですけど早速つまづきました
そうか。がんがれ。
がんばります
>>862 プログラム作るの初めてなら無茶。君の次の選択肢は
@・画像を扱わないプログラムが組めるようになってからもう一度チャレンジ
A・やりたいことの類似のサンプルをネットで探して、見つかったら真似しながら覚える
どうしたら上手くいくのか気になってあまり寝れなかった
>>865 ,866
ありがとう
本ってやっぱ手元にあったほうがいいんですかね
ネットで調べながらやってるので
諦めないでサンプル探しながら学んでいきます
Cたまには外に出る
たまにしか外に出ないような人間ならもう達人になってるよ
870 :
デフォルトの名無しさん :2006/02/18(土) 20:27:28
iアプリはダウンロードサイト以外にネットワーク接続できないってことみたい ですが、2chブラウザなんかの場合はどういう仕組みなんですか?
そのDLサイトで中継する。だからcgiとかが必須。
ProGuard 3.3.2 でサイズを縮めてるんだが こんなコードを書くと、キー待ちせずに終了するのに気が付いた(ProG 1.7 では無問題) for( isKeyPressed = false; !isKeyPressed; ) ; (※ハンドラでキー押し時に isKeyPressed を立てる) で、 ↓こうすると直った for( isKeyPressed = false; !isKeyPressed; Thread.sleep( 100 ) ) ; ひさしぶりにサイト見に言ったら、修正項目がたくさん書かれていて ソレ読まなかった俺の不注意 まあ みんなも注意しながら使うのが吉でしょう と そういいたかった ところで java バイトコードの仕様を調べたいんだけど いいサイト知りませんか
874 :
872 :2006/02/19(日) 02:01:03
875 :
862 :2006/02/19(日) 09:37:41
やっと出来た・・・これだけなのに偉い大変だった これでタイトル画面から移れる まだまだ先は長い
>>871 どうもありがとう!
CGIのこと調べていろいろ試してみたらアプリにしなくても携帯のブラウザで
十分になりました。
せっかくクラス作ったのに意味ねーって感じですが、ともあれ感謝です。
877 :
デフォルトの名無しさん :2006/02/20(月) 03:58:30
com.nttdocomo.ui.Panel.add(Component c) でaddすることのできるコンポーネントは自作することはできるのでしょうか? extends Component implements Interactable すれば、できるのかな?とか考えたのですが、 public void setEnabled(boolean arg0) public void requestFocus() で、何を行えばいいかわからず頓挫してしまいました。 Canvasを使えばいいだけなのですが、ただわからないのも悔しいので、 もしよければご教授ください。
879 :
877 :2006/02/20(月) 12:31:21
やっぱりですか・・・ 878さんありがとうございました。
880 :
デフォルトの名無しさん :2006/02/20(月) 20:30:32
imgに一度getImage()してある状態で、 try { MediaImage m; m = MediaManager.getImage(buff); m.use(); img.dispose(); img = m.getImage(); } catch (Exception e) { } を何回も繰り返すとリソースが足りなくなって「com.nttdocomo.ui.UIException」のエラーが出てしまうのですが対処法はありますか?
>>880 つ gc()。
それとメモリ管理についていちから勉強しなおせ
882 :
880 :2006/02/20(月) 20:40:29
ありがとう。 勉強します。
iアプリでメーラー作ろうとしているのですが、携帯側からxlsファイルやtxtファイル等をメールに添付して送信することは可能ですか?
中間鯖をかませれば可能 直接は無理
>>880 MediaImage.dispose()
disposeってメモリ開放してくれてたの?
disposeしないとヒープ解放しないんじゃなかったっけ?
少なくとも880の書き方なら参照切れてるから disposeしなくてもgcで開放される。
>>889 MediaResourceのリファレンス読んだ方がいいよ
(゚∀゚)つ[破棄されていないメディアリソースが GC によって回収されようとしている場合の動作は機種依存です。] JavaじゃなくてJawaとかJavoとか別の名前付けようぜ('A`)
>>885 謝謝。
しかし普通のメール送信するとかも難しいッスね。
APIrefに MailAgent とかあるけど、Docomoの技術資料に載ってないし、
使おうとすると Permission Denied とかエラー吐かれるし。
ADF設定にそれっぽいパーミッション見かけないからもうワケ分からん状態です。
もしかしてメール送受信っていうプロセス事態、アプリの間に何か挟まないといけないとか?
>>893 高精度タイマー使うならそれだね。DirectXでも良いけど。
どっちにしろ、2000系もXPもデフォルトじゃ精度悪い。
>>894 え?DXじゃないiアプリでメール送信は無理でしょ?
>>895-896 ぐらっちぇ。
技術資料に『トラステッドAPIの機能は紹介していない』って書いてあったッス。
道理で書いてない訳だ。
流し読みしてた俺が馬鹿だった。 orz
>>893 >timeBeginPeriodしてないんとちゃうか。
そのクソAPI、他のプログラムにも影響するから使わないよ。
余談だけど、FLASHとかが明らかに使ってて萎えた。
>>898 汚い言葉で無知をさらすと、撤回できなくなる。プログラマならそんな真似をしてはだめだ。
timeBeginPeriodは使うのが普通。
分解能があがって悪いことは一つも無い。MSNメッセンジャーあたりが1msにしているから、最近のマシンでは常に1msと思ってもいいがねw
分解能があがって悪いことは一つも無い。 分解能があがって悪いことは一つも無い。 分解能があがって悪いことは一つも無い。
>>900 ?あるなら教えてくれ。
まさか1フレームに数回程度しか取得しないタイマーで、CPU負荷がコンマ数%高くなるとかはなしだぞ?
>>898 というか分解能が代わったら悪影響がてる糞アプリの方が問題じゃないのか
俺のマザボなんてときどき20%くらいタイマーが早く進むときあるぞ
何の話かわかんないです(;><)
;>< なんてなるくらいなら、最初から暴言はかなきゃいいのに・・・
>>892 4.0って901シリーズだっけか
俺だったら901専用なら一杯に使う
前の機種含めて依存考えるなら一回り小さいので作る
今は240x240が最低ラインで保証されてるみたいだから、 どうでもいい仕事なら画面いっぱいで、 きっちりやりたい仕事の時は240x240にしてる。 消し忘れが出たりとか出さなくて済むし。 ときどきDのなんちゃらだと絵がずれますとか報告来る時あるんだよね(・3・)
>>899 timeBeginPeriodに関する問題をホントに知らないのなら単に経験不足。
timeBeginPeriod何ぞ使わずとも、もっと高分解でCPU負荷も上が
らないループ方法はある。
Sleep+timeBeginPeriodでループの精度上げてるようじゃまだまだだ。
よし、わかった。 じゃあ907がまとめページ作ってupしといてくれ
909 :
デフォルトの名無しさん :2006/02/22(水) 12:42:11
機種依存しない色の設定ってどうやるのがいいんでしょうか? fillRectで塗りつぶしたとき、エミュレータだとおもいどおりの色なのに いざ実機でみると4機種ともまったく違う色になってしまいます。。。
げっとから〜おぶあーるじ〜び〜
げっとから〜おぶあーるぴ〜じ〜
>>909 液晶の性質もあるから確実となるとどうにもならん
>>907 そんなスレ違いの話題引きずるなよ。Win関係でやれ。
914 :
909 :2006/02/22(水) 15:18:31
GetColorOfRGBでいけますた! サンクスコ先輩方!
915 :
892 :2006/02/22(水) 16:47:28
>>905-906 レスありがとうございます
901でしか使わないので240x240でやってみます
Dとの相性悪いんですかね
実機がNなので色々テストしてみるつもりです
本当にありがとうございました
単純にD900iだけ240x270って液晶を持ってるってだけ(´・ω・`) ADFのDrawAreaに240x240って書いておけば描画領域が固定されるから安心。
>>907 SleepにtimeBeginPeriodは関係ありませんけど。
まさか
>>893 の言うことを鵜呑みにしたの?
そろそろスレ違い
>>919 そのスレ住人だが迷惑だ
こっちで処理しろカス
* * ここまでコメント */
warning C4138: 始まりのデリミタがない閉じのコメントデリミタ(*/)が見つかりました。 error C2059: 構文エラー : '/'
そもそもループ中にSleepなんぞしこまねー
分解能があがって何が悪いのかがわからねー
結局
>>907 様は、timeBeginPeriodを使わずどうやってすましてるのかわからねー
俺はtimeBeginPeriodで精度をあげたtimeGetTimeを使うがね
timeBeginPeriod 使ったことないんだけど、 Docomoの機種は全部対応してる?
窓の話だけど Sleepの精度が低い環境があるのは事実。 timeBeginPeriodで精度を上げられるのも事実。 timeBeginPeriodが他のプログラムに影響するのも事実。 他のプログラムが、精度の低いSleep(1)を期待している もしくは精度が低いとは知らずに利用している場合は問題となる。 Sleepは0以外の値が指定されたときに、 指定された時間"以上"スレッドを中断させる。
精度の低いSleep(1)を期待しているなんて、作ったほうが馬鹿だろう…。 なのにtimeBeginPeriodを糞APIなんて言い放ったところからこの論争が始まった いまだ「その糞APIの代わりに何を使っているか」が謎のまま
そういえば一昨日地下鉄乗ってるときに大声で会話してるDQN見かけたな。 地下鉄なので騒音が大きめ。なので奴らの声も凄く大きい。 話の内容も面白くもなくて、ホントに迷惑だった。
スレ違いのtimeBeginPeriodの話を引っ張るやつ、荒らしと同じでウゼーよ。
>>919 のスレ行けや。
>>923 >そもそもループ中にSleepなんぞしこまねー
>精度をあげたtimeGetTime
(゚Д゚)常にCPU100%アプリですか?
はいはいワロスワロス
// ここだけコメント
まんこまんこまんこまんこまんこまんこ
>>929 PeekMessageとGetMessageってしってる?(;´Д`)
質問です。 データフォルダへの、Jpegの保存はImageStoreで楽勝だったのですが、GIFの外部保存はないものでしょうか。 データフォルダへの保存です。スクラッチパッドから逃がして、偽装GIFででかいデータとかもてないかなぁと。 JPEGも、コメント部とかいじれればいいのですが、そのあたり自動化されてて偽装データ入れられなかったもので
>>933 レベル低すぎ
まさかメインループをWindowsのメッセージループと一緒にしてるとか思ってんのか?
スレ違いウゼーよカス
携帯にWindowsのっけてからにしろ馬鹿
>>934 バイトコードを自前で出力
>>936 ImageStoreって、引数はMediaImageなのでバイトデータを流し込んでやることはできないと思うんですけど
何か別のクラスでしょうか?
>934 質問がよくわからないんだけど。 Jpegをデータフォルダへ保存するのはImageStore使って楽勝だったんでしょ。 どう楽勝だったのか知らないけど、GIFでも同じことすればいいだけじゃないの?
>>934 自前で偽装GIFを作って、MediaManager#getImage(byte[] data) ではダメだったわけですか?
>>892 俺だったら240x240で使わないかもね
それだけサイズが大きくなるわけだし
画像の表示がメインだったら仕方ないかもしれないが
なるべく画像を控えて色んな機能を付けた方がいいかも
FAQっぽくてすまんですが、 DoJaプラグインってEclipse3で動くの?
>>941 漏れの環境では設定変更で動いた。
ウインドウ→設定→Java→コンパイラー→準拠およびクラス・ファイル
→JDK準拠→コンパイラー準拠レベル→1.4を1.3にする
これでいけるはず。
ただ、手元だと絵文字が表示できなかった(2.1.1だと表示される)。
これの対処法ないのかなぁ・・・。
質問させてください。 Imageを作成した後、そのヒープを開放するには、 Image img; ・・・・ img=null; で宜しいのでしょうか? それとも、 img.dispose()が必要なのでしょうか? 両者の違いがよく分からないです。 初歩的な質問でしたらすみません。。 宜しくお願いいたします!
>>943 useしたらdisposeだけど
使わなかったら文脈でdeleteされるんじゃないの?
947 :
デフォルトの名無しさん :2006/03/02(木) 02:42:22
質問だけど、スクラッチパッドからデータ読み込むのが かなり遅くなってるんだけど、スクラッチパッドを細かく 分割したほうが読み込む速度は上昇するかな? ちなみに、jarファイルでまとめて150k近くダウソしてます あと、データを早くする工夫とか他にあるかな(lenthとか以外で)? 誰か教えて(´・ω・`)
>>943 私も、大量のimgを開放するのにdisposeするの面倒なので
Image[] img = null;
とかってやっちゃってますが、
disposeしなければいけないのかな!? ちょっと自分も不安に・・・
だれがすごい人、教えて〜
>>943 >>948 Imageの解放に関してはFAQだから過去スレを読んで。
全部読むくらいの勢いで。
その前に最低限、開発ガイドはよく読むこと。
あとAPIリファレンスも関連のあるクラスを合わせて読む。
>>947 >あと、データを早くする工夫とか他にあるかな(lenthとか以外で)?
lengthつけなよ。
もしくは、スクラッチパッドを複数の領域に区切って使うか。
>>947 jarを使っている段階で遅くなるのは確定。
動作が早く求められるものは素で持つべき。
何度も読み替えしないものはjarに入れるようにすればいい。
あと・・・途中にjpegとか持ったあとのデータにアクセスは遅くなるとか
過去に報告なかったっけかなぁ・・・あいまいな記憶だ・・これは俺の嘘かもしれんw
>>947 大抵の機種は「開いて閉じる」の繰り返し動作が遅いんで、
一気に読んでメモリ上でバラした方が速い。
953 :
デフォルトの名無しさん :2006/03/02(木) 12:05:23
>>950-952 なるほど(´・ω・`)
>一気に読んでメモリ上でバラした方が速い。
つまり、スクラッチパッドを開いたり閉じたり(openInputStreamとか)
の操作を減らせば速くなるということですか?
954 :
デフォルトの名無しさん :2006/03/02(木) 12:28:40
>>953 そう。
メモリが許すのであれば画像は最初にまとめて読んだ方がいい。
>>953 この辺ファイルIO系の処理やってれば常識なんだけどね。
もし数バイト取るたびにopen/closeしてるなら
劇的に変わるからやってみれ。
956 :
初心者ですいません :2006/03/02(木) 19:58:59
DoJaで、ビルドをすると、「エラー:サポートされていないエンコーディングです:SJIS_i」と出てくるんですが、どうしたらいいでしょうか
SJIS_iを使わなきゃいいんじゃないの?
>>956 設定の所にある「sun.tools〜〜〜」のチェックを入れてやって見たら?
俺はそれで上手く行った。
>>956 JDK5がインストールされていると、エミュレータが自動的にそいつを使おうとして、そのエラーになるんだわ
JDK1.4以前(1.4.2_10とか)をインストールして、環境変数JDK_HOMEにそのルートパスを設定しておけば、
JDK1.4が使われるようになってそのエラーが解消する
sun.toolsは非推奨と書いてあるから利用を避けたい人は、JDK_HOMEで対応してくんろ
960 :
956初心者 :2006/03/02(木) 21:42:45
みなさんのおかげで、よくわかりました。また、わからないことがあったらよろしくお願いします。
>>948 ,943
Imageはdispose()しないとメモリリークしても文句言えません。
MediaImageも同様。
962 :
デフォルトの名無しさん :2006/03/03(金) 14:18:44
>>954-955 どうもです
変えてみたら処理速度三倍うpしました(`・ω・´)
キャラやマップごとのopenしていたせいでした
963 :
デフォルトの名無しさん :2006/03/03(金) 17:45:51
>>962 少し訂正
× >キャラやマップごとのopenしていたせいでした
○ >キャラやマップの画像ごとにopenしていたせいでした
SD-Bindingを利用しようとしているのですが、開発ガイド(P.61)をみながら、StorageDeviceクラスを利用して、フォルダを作成して、ファイルを作成してみたのですが、、、うまくいきません。 どなたかわかる方いらっしゃいますか?
>>965 スマンッス。
サーバから落とした画像ファイルをminiSDにかきこむっていうプログラムを作ろうとしています。
開発ガイドみると
try {
StorageDevice sd = StorageDevice.getInstance("/ext0");
int access = DoJaAccessToken.ACCESS_UIM|DoJaAccessToken.ACCESS_PLATFORM;
int share = DoJaStorageService.SHARE_APPLICATION;
DoJaAccessToken dat = DoJaStorageService.getAccessToken(access, share);
Folder folder = sd.getFolder(dat);
とかいてあるので、つづけて新規にファイルを作成するべく
folder.createFile("test");
}のように書いておりますが、この時点で、例外が発生してしまいます。
ファイルの作成方法がイマイチよくわからんす。
967 :
965 :2006/03/04(土) 00:28:24
>>966 うーんと、例外の種類とステータス教えれ。
20fpsくらいで描写回していても、描写更新のタイミングが均一にならずに 画面がかくかくしてしまうことってないですか?
Javaっつーか携帯じゃあどうしようもないんじゃない?
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 次スレまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
>>968 33とか50で回してるけど、特にそういうことは無い。
作り方次第じゃないかなあ。
972 :
デフォルトの名無しさん :2006/03/06(月) 18:44:32
iアプリで赤外線送信は出来るようなのですが 赤外線受信は出来ないのですか?
974 :
972 :2006/03/06(月) 19:38:22
ドコモの開発ガイドの赤外線リモコンAPIには送信はありましたが受信がありませんでした。 資料または情報はどこにありますか? よろしくお願いします。
>>972 例えばテレビのリモコンに対して、別のリモコンから何か信号を飛ばして、
それを受信する仕組みがテレビのリモコンに必要だと思うかい?
976 :
972 :2006/03/06(月) 20:12:29
調べたら赤外線リモコンAPIってのを見つけただけで、別にリモコンAPIを使わなくても良いのです。 これから始めようかと情報を収集している最中なのです。 よろしくお願いします。
リモコンAPIを使わなくても良い、 これから始めようかと情報を収集している、 って何をやりたいのか言わなきゃ助言しようがないじゃんかw 携帯端末同士の通信がしたいんだったら 開発ガイドのOBEXのとこ読んでみて。
978 :
972 :2006/03/06(月) 20:35:02
なんか良さそうな感じです。見落としてました。 >携帯端末同士の通信がしたいんだったら 携帯同士じゃないのですがデータ通信が出来ないかと思いまして調べてました。 なんとか成りそうです。ありがとうございました。
_∧_∧_∧_∧_∧_∧_∧_∧_ デケデケ | ドコドコ < 次スレまだ〜? ☆ ドムドム |_ _ _ _ _ _ _ _ _ _ ☆ ダダダダ! ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ドシャーン! ヽ マチクタビレタ〜!!! ♪ =≡= ∧_∧ ☆ ♪ / 〃(・∀・ #) / シャンシャン ♪ 〆 ┌\と\と.ヾ∈≡∋ゞ || γ ⌒ ヽヽコ ノ || || ΣΣ .|:::|∪〓 || ♪ ./|\人 _.ノノ _||_. /|\ ドチドチ!
テンプレ位用意しろハゲ
新スレの方がいいかもしれませんが一応こっちで書きます。 N900iでwavデータが全部ではありませんが一部鳴りません。 AudioPresenterは2つ用意し、それぞれBGM用、SE用と分けて使っています。 wavとwavは同時に鳴らせないとのことなので、それかと思ったのですが、鳴らない音は単体でも鳴りません。 同じデータでもN901iSでは鳴るようなので、データに不備があるというわけではなさそうです。 このような現象に何かお心当たりのある方はいらっしゃらないでしょうか?
一般論だけど、wavのヘッダが完全でなくても鳴らせるツールも あればエラーにしてしまうものもある。鳴らないwavを有名どころ のフォーマット変換ツールでwavとしてセーブし直してやったら 鳴らなかったのが鳴り出したりしないか?
>>983 変換しなおしですか・・・。
発注して作ってもらったデータで、元のwavデータを持ってなくてちょっとすぐにはできそうになさそうです。
もし、原因がほぼ間違いなくデータの変換ミスだろう、ということがはっきりすればすぐに修正をお願いできるんですが。
鳴るデータ、鳴らないデータ、それぞれの共通項を調べてたんですが、現状ではどうも演奏時間の長い音は鳴るらしいです。
ゴングの「カーンッ」といった後に響く音は再生され、攻撃がヒットした時の「パンッ」と言った短い音は再生されない、という感じです。
症状もあまり聞いたことがなく、ネット上でも情報がないんですよねぇ・・・。
確かデータコンバート用のツールには機種ごとにプラグインがあったはず。 ならない機種があるってことはプラグインの使用を間違ってるか なんか良くわからんツールでコンバートしてるんだろう。 で、Dojaのリファレンス一通り見て、何をどうすればアプリをいじって 音が鳴るようになるとでも思うんだ?
>>984 >元のwavデータを持ってなくて
元のじゃなくて、使ってるwavをフォーマット変換ツールで
wavへ「わざわざ」変換するの。フォーマットツールが
仕様を守っていれば、欠損していたヘッダを補ってくれ
たりなど正しいwavとして復活するかも。
そろそろ埋めるか
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
埋め
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。