CLDC+MIDP+携帯電話用Javaスレッド part 8at TECH
CLDC+MIDP+携帯電話用Javaスレッド part 8 - 暇つぶし2ch130:デフォルトの名無しさん
08/04/07 17:51:30
動的にイメージを作る。といっても、量は大して使わないんだろ?

求められる一番大きなサイズ。例えば320x320のImageを、求められる最大量(大して使わんという言い回しだと、5枚くらい?)作っておく。
21x21サイズが求められようが、64x64サイズが求められようが、空いている320x320を返すようにする。

あとは「大きなImageを、小さいImageのようにふるまわせる」なんてのは楽勝だろ?

131:126
08/04/07 21:48:27
少し説明不足による齟齬があるので説明しなおします。
静的なリソースを使用してcreateImageする画像は少なく
動的にcreateImage(正確にはcreateRGBImageです)で画像生成する回数が多いです。
前スレの595で、東芝端末でcreateImageできる回数に上限があると知り
現象の内容は異なりますが、関連している問題かと思いました。

>>130さん
動的に生成する画像は透過情報を含んでいるのでcreateRGBImageを使っています。
なので白塗りのImageを作って使いまわすことができないです。

間をとばして端的に言うと、MEXAのOption-Util2なImageUtilを使わず
透け透けのmutableなImage(透過レイヤーみたいなものです。)を作りたいのです。

132:デフォルトの名無しさん
08/04/07 22:28:31
>(正確にはcreateRGBImageです)

(#^ω^)

133:デフォルトの名無しさん
08/04/07 23:14:37
前スレ595のやつは、同時保持するインスタンスの数じゃねーの?
実際ためしたの?131は?

134:デフォルトの名無しさん
08/04/08 00:33:01
>>132さん
ごめんなさい。
生成するImageオブジェクトのインスタンス数が問題かと思っていたので。。

>>133さん
同時に持っているImageのインスタンスは10くらいです。
それに加えてユーザの操作をトリガに動的生成するImageを1つ持っています。
動的な画像生成の頻度はユーザによって変わると思いますが30分で100回ほどです。

もっとじっくり調べてみます。

135:デフォルトの名無しさん
08/04/08 01:13:37
createRGBImage()で透過情報与えたとしても、たいていの端末はアルファが2段階だから透明、不透明の画像しか生成できないと思ってたけど違うの?
半透明はrenderPrimitive()でポイントスプライトにテクスチャ貼って代用してたんだけど。

136:デフォルトの名無しさん
08/04/08 08:11:05
>>134

1つ
普通createImageといわれたら、createImage(int width, int height)を思い浮かべる。
今までお前にレスしてた奴全員がそうだろう?
だから使いまわしをみんな薦めた

2つ
だーかーらー、お前は実際に512個の壁にひっかかってにっちもさっちもいかなくなったのか?
今のところ「同時に512個までしか持てないだろうことは仕様書でも判明している」が、
「解放しながらの通算512個なら問題ないのでは」とみんな思ってる

137:デフォルトの名無しさん
08/04/08 13:31:25
すみません、電話発信について質問です。
S!アプリで、アプリ内から電話発信させようとしてるんだけど、
ポーズダイヤル P を含めると、受け付けられないフォーマット
とかいう例外吐いてきます。docomoやau(BREW)は問題なかったんですが。
, 連続でごまかそうと思ったら、実機(813T)で無視してくれました。
ポーズダイヤル(類似)機能ってないんでしょうか?

そもそも S!アプリの電話発信で受け付ける文字種類の記述って
どこにあるのやらさえわからんかったりします。
(JSCLの PhoneConnection には記述が見当りません)


138:134
08/04/08 20:50:05
>>136さん
1についてはおっしゃるとおりです。
先走って色々書きすぎました、ごめんなさい。。
2については解放しながらのImage生成なので答えは「違う」です。

現在、当方で作成したアプリで起きている不具合を簡潔に書きます。
813Tでしばらくアプリを動作させておくと急に一部のイメージが描画されなくなる
現象が起きるというものです。
関連しそうな情報や対応策をご存知の方がいたら、教えていただけると助かります。

139:デフォルトの名無しさん
08/04/08 23:19:17
>>138
当然だとは思うけど、他の端末ではそうゆう状態にはならないの?

140:デフォルトの名無しさん
08/04/09 15:10:39
1・他の機種では起こらないのか
2・Imageの生成回数をカウントした結果512回程度で現象が起こるのか
3・本当にきちんとImageは解放しているのか

特に3は、自前で可変長配列作っててnull代入してませんでした><とかいくらでもやるやついるから

141:デフォルトの名無しさん
08/04/09 16:46:47
null代入してたけどgcしてませんでした

142:デフォルトの名無しさん
08/04/09 18:27:07
gcはVMがやってくれるんでないの

143:134
08/04/09 18:30:35
>>135さん
半透明は使っていないのです。(スタンプ画像を自作している感じです。)

>>139さん
>>140さん
今のところ813Tでのみ報告を受けています。(少なくとも911SHでは発生しないです。)
2については問題の端末を当方で持っていないので不明です。
3については、生成と解放にカウンタつけてみましたがカウンタ値は一定でした。
なので解放漏れは無いはずです。(再度確認してみますが。。)

そろそろウザがられそうなのでこのあたりで切り上げます。
週末に813Tを購入して実機で確認してみます。
長々とありがとございました。

144:デフォルトの名無しさん
08/04/09 18:41:30
>>143
いや、うざがんないから。
情報交換するスレだから。最終的な情報隠したりとかする奴だけだよ、うざがられんのは。

とりあえず半透明使ってない(抜き色だけ)なら、createImageで生成せずに使いまわして、
自前で抜き転送って手もあるが
せっかくあるのに馬鹿らしいよなぁ

145:デフォルトの名無しさん
08/04/09 20:36:02
静的なImageの代わりに静的なint型配列作ってリソース画像の色情報を保持させておけばいいんじゃないかな?
色情報配列の内容が変化してたら困るから、実画面サイズぐらいの静的なint型配列も作っておいて、それに色を抜いたりなんたりした結果を渡すようにする。
後は、createRGBImage()に結果の配列を渡してImageを作るって方法なんだけどどうかな?
毎回、配列を作ってイメージの色情報を取得するっていうのを省くためなんだけど、変なこと言ってたらごめんよ。

146:デフォルトの名無しさん
08/04/10 09:13:17
Imageを作れる個数の制限がって話をしてるのに、何を変なこと言ってるんだ?

147:デフォルトの名無しさん
08/04/10 10:54:53
>>146
それが813Tで問題が起きる原因かって聞いてきただけで、解決するならなんでも構わないんじゃないの?

148:デフォルトの名無しさん
08/04/10 11:57:45
146は145へのレスだろJK

149:デフォルトの名無しさん
08/04/10 19:30:52
javaをバイナリで組めるようになったら多分なんでも実現できるよ

150:デフォルトの名無しさん
08/04/10 19:55:19
>>143
当てずっぽうで言ってみるけど……
java.lang.System#gc()でこまめにガベージコレクトさせてみるとか、
javax.microedition.lcdui.Graphics#drawRGB()使ってみるとかじゃだめかなあ。

151:デフォルトの名無しさん
08/04/11 12:00:19
質問者がいなくなったからもうこの話題は終わり。
何か言っても変なこと呼ばわりされるしね。
どうせまだ情報を隠しているんでしょう。

152:143
08/04/11 13:53:49
>>151さん
まだいます。。
毎日個別にレスしていると邪魔だと思ったので、週末にまとめて書くつもりでした。

なお本日813Tを購入したので試していますが、困ったことに再現していないです。。

153:143
08/04/11 22:04:40
いまのところ当方で購入した813Tでは、やはり不具合は再現せず
まったく原因不明です。。(143の後、ユーザの方に詳しい状況を聞いて
再び試しましたが再現しませんでした。)
ひとまず当方が試験で使ったアプリのバイナリをそのままユーザの方に
提供して報告を待ちたいと思います。

>>150さん
gcはこれでもかというくらい実行しているので問題ないと思います。
drawRGBで描画する方法も試しました。
同じ描画結果になりますがImageを一枚貼るのと違いパフォーマンスが悪く
当方のアプリで使用するには実用的ではありませんでした。

>>144さん
drawRGBは内部で同じような処理をしているのだと思われます。
なので前述の理由と同じく実現はできるが。。といったところです。

>>145さん
時間がなくて試せなかったので後日試してみます。
更新する場所としない場所を細かく切り分けることができれば
今より処理が早くなりそうです。

>>147さん
おっしゃるとおりです。問題が解決できればなんでも良いのです。
しかしその問題が再現してくれませんでした。泣きそうです。

>>151さん
ご迷惑おかけしました。

原因と解決策が分かったらまた書き込みますが、いまのところ再現性のない
不具合で、ユーザの方からの報告も当然任意なのであまり期待はしないで
ください。
みなさま、色々とありがとうございました。

154:デフォルトの名無しさん
08/04/11 22:17:54
゙()3´;)つ [別の箇所を疑ってみれ]

155:デフォルトの名無しさん
08/04/12 23:53:24
OpenAppliでブラウザっぽいのを作ろうとしているのですが、32KB以上のファイルにアクセスをすると
エミュでは通るのですが実機ではtrhowされてしまいます。機種はW53Tです。

private HttpConnection hconnect;
private InputStream in;
hconnect = null;
in = null;
hconnect = (HttpConnection)Connector.open( url, Connector.READ, true );
in = hconnect.openInputStream();

の最後の行でthrowされてしまいます。32KB以上のファイルでも分割してDLすればいいじゃんくらいに思っていたのですが
やっぱりOpenAppliの仕様上駄目なんでしょうか?

156:デフォルトの名無しさん
08/04/13 00:54:17
仕様嫁

157:デフォルトの名無しさん
08/04/13 04:57:03
どうせWIN機種でしか再生できないんだから
通信量規制なんて取っ払ってほしい
仕様糞過ぎるぜ

>>155
一回の通信許容量で言えばFlashLiteの方が高かったはず
もちろん実用レベルではないけど・;(`ε()゙

158:デフォルトの名無しさん
08/04/13 21:39:40
POSTも5KBまでなんだよな
ホント糞仕様だよ

159:デフォルトの名無しさん
08/04/13 22:48:57
海外のMIDP端末は解放されててシェアウェアなMidletまであるのにな。
日本の糞な縛りときたら・・・。

160:デフォルトの名無しさん
08/04/13 22:53:59
willcomはほぼ自由。

161:デフォルトの名無しさん
08/04/13 23:06:13
その上通信毎に確認のダイアログ

162:デフォルトの名無しさん
08/04/14 00:32:51
通信ごとの確認はMIDPの仕様

163:デフォルトの名無しさん
08/04/14 20:30:09
ナンダッテ?

164:デフォルトの名無しさん
08/04/14 21:32:12
海外みたいにフリーウェアに活気があればなぁ
フリーのiアプリの人気が端末の売り上げに影響するレベルになれば
他の2キャリアも真似して着いて来るはずなのに

165:デフォルトの名無しさん
08/04/14 22:37:52
確かに何でこんな人気無いんだろうな
for(;;){if(人気<0){製作者逃げる;レベル--;人気--}}
って感じか
アプリゲットのランキングとか酷いことになってるし

166:デフォルトの名無しさん
08/04/14 23:59:24
いまいち盛り上がらない原因として個人的に思うのは
携帯向けフリーソフトの存在の分かりにくさ
アプリゲットみたいなサイトも物凄く分かりにくい作りしてるし
個人サイトで配布されてるのなんて、各キャリアの公式ページ
から行き着くのは至難の業

167:デフォルトの名無しさん
08/04/15 02:34:02
そもそも、ケータイキャリアが公式で囲い込む(そして課金手数料で潤う)システムで、
公式でないサイトはお呼びでないのは昔っからだし。

168:デフォルトの名無しさん
08/04/15 13:19:14
>公式で囲い込む(そして課金手数料で潤う)システム
こんなことやっても手間の割に儲けにならないってのは日本はいつになったら学習するんだろうね。

169:デフォルトの名無しさん
08/04/15 17:20:19
塵も積もれば山となるで成功してる。
だから未だに継続してるわけで

170:デフォルトの名無しさん
08/04/15 17:55:57
本業のアプリ屋かゲーム開発者で勝手アプリ公開してる香具師いる?
プロと比べてアマチュアのアプリって異様に技術レベル低いよな。
自演ばっかでまともなコミュニティー無い&ノイズ多すぎ(ワンキーとかばっか)で、
頑張って良いもの作っても埋もれそうなのが嫌なんだが・・・

171:デフォルトの名無しさん
08/04/15 18:01:14
iアプリなら公開してるな。
アレだと作者登録とか必要ないし匿名で配布できるから。

172:デフォルトの名無しさん
08/04/15 19:11:48
willcomも自由だな

173:デフォルトの名無しさん
08/04/15 19:19:20
俺が使ってる無料ホームページサイトがjadをアップできないんで、
オープンアプリとかは無理だった。

それにwillcomもOAPもサーバ側の設定いじらないとだめっしょ?

174:デフォルトの名無しさん
08/04/15 20:21:27
設定といっても別に大掛かりな事でもないけどね
借りたディレクトリに.htaccess置かせて貰える鯖ならいけるよ
無料のHPスペースなんかは対応してない所が殆どだね
趣味でやってる個人鯖ならメールでお願いすれば犯せてもらえるかも

175:デフォルトの名無しさん
08/04/15 21:08:57
犯して!

176:デフォルトの名無しさん
08/04/15 22:09:58
アプリ内にあるjpeg画像を
データフォルダに任意の回数、または限りなくコピーできるような
Sアプリを作る方法ってありませんか?

177:デフォルトの名無しさん
08/04/15 22:56:37
>>168
へたにコンシューマをやるよりは儲かりますな

178:デフォルトの名無しさん
08/04/15 23:41:51
>>176
ある、としか言いようが無い。
もっと調べて実際に組んでみて、それで出来なかったら
出来るだけ具体的に質問して頂戴。

179:デフォルトの名無しさん
08/04/15 23:58:03
携帯の課金って通話料と一緒に請求だから心理的障壁が低いんだよな

180:デフォルトの名無しさん
08/04/16 00:28:39
安いしね。むしろ安過ぎて業界的にはマズイ
開発者としては「この金額で文句言うな、悩むな、買え」と思う
けど1ユーザとしては「こんなので300円も取るのかよ」なんて思う
どこの途上国人だよ俺・・・

181:デフォルトの名無しさん
08/04/16 00:32:32
開発してると感覚にぶるが、1ユーザーは500円程度までしかコンテンツに金払いたくないのが基準らしいよ
占いサイトやちょっとした趣味のサイトに200円。
ちょっと奮発して300円。
あとは無料ゲームとか。
結構食い込むの大変なんだよな

182:デフォルトの名無しさん
08/04/16 00:39:52
開発はごく数名の少人数で数ヶ月規模というじゃないか
違法コピーされることも殆どないし、結構バランス取れてるんじゃないかね?
特にiアプリとかJavaベースだと輸出も楽々だろうし

183:デフォルトの名無しさん
08/04/16 00:44:10
181の言うように、大手が財布を独占してるからいまいち
大手にとってはバランスとれてるのかもな

184:デフォルトの名無しさん
08/04/16 00:45:19
>>182
iアプリだとDojaだから海外にもってくなら
作り直さないと駄目。

むしろ海外アプリならOAPとかWillcomでそのまま動くと思うw

185:デフォルトの名無しさん
08/04/16 00:58:02
>>184
そりゃ知っとるけど
BREWなんかよりよっぽど良いはず
現行のBREW端末って海外にも無いんじゃない?

186:185
08/04/16 01:06:30
今ちょっと調べたらnokiaもBREW対応端末出してるのな
知らんかった・;(`ε()゙

187:デフォルトの名無しさん
08/04/16 01:07:47
BREW4のは知らんけど、BREW2.1あたりのは
海外のアプリを国内に移植した事あるけど、
結局問題になるのはKDDIの検証項目だなw

海外のJavaを国内に持ってくるのでも、
向こうの端末は画面サイズとかバラバラだったりして
結構面倒だったりした覚えはある。

188:デフォルトの名無しさん
08/04/16 01:14:57
OAPは画像が240pxまでだったり変な制限が色々あるので
まともに動かないことのほうが多いはず。3D等も未対応。
海外アプリだとNokiaの拡張APIを使ってることもある。
M3GとかOpenGLも実装依存が多いしな。

189:デフォルトの名無しさん
08/04/16 02:44:44
そもそも日本の端末はjarが1M以内っていう制限があるから海外のはインストールすら出来ないのがあるな。


190:デフォルトの名無しさん
08/04/16 10:24:52
俺がやった移植のでソース見た感じだと、
海外のでもDocomoの503みたいな画面サイズのもあったっぽいけどな。

そういや、確かにNokiaの拡張とかあったw
機種毎にフォルダ分けてたりして、
海外の人も多機種対応で苦労してるんだと思った。

191:176
08/04/16 12:02:40
>>178
あるんですか。
資料やサイトをいくら探してもアプリ内の画像を本体に
コピーするAPIがないので、何を使えば良いか教えてもらえませんか?

192:デフォルトの名無しさん
08/04/16 13:29:48
初心者で申し訳ないのですが、

URLリンク(java.sun.com)
↑ここで落としてきたエミュで、JSR184で3Dをやろうと思い、


URLリンク(www.mascotcapsule.com)
↑ここのサンプルを動かそうとしたんだけけれども、Worldを
renderするところでIllegalStateExceptionが出てしまいます。


何か、原因がわかる方がいましたら、教えてくださいませ
m(_ _)m


193:デフォルトの名無しさん
08/04/16 15:27:25
それだけじゃ分かんないと思う。エラーコンソールの出力をkwsk
エミュレータのオプションが原因のような気がするが。

> m(_ _)m
パソ通時代のAAかよ、懐かしいな。初心者・・・

194:デフォルトの名無しさん
08/04/17 10:11:14
MIDP 標準機能程度しか使わないアプリなので
一つの jar で機種判別しながら細かい差異を吸収したいのですが
機種判別の方法はありますか?


195:デフォルトの名無しさん
08/04/17 10:44:45
System.getProperty("microedition.platform") とか・・・

196:192
08/04/17 11:51:13
すいません。
自己解決しました。
エミュレータ内に3Dのデモがあり、動作確認できたので、
こっちで勉強しようと思います。

お騒がせしました。


197:194
08/04/17 12:57:56
>>195
仕事中なので試せてないですけど、それでいけそうです。
ありがとうございます。

198:デフォルトの名無しさん
08/04/19 09:46:12
>>197
古い機種だとj2meしか返って来ないけどね

199:デフォルトの名無しさん
08/04/21 00:33:36
最近javaを始めたばかりのものです。。。

WTK22のエミュレータのサイズを240*240に変えたいのですが
参考になる資料など置いてある場所をご存知のかた、教えてください。。。

なんかデフォルトがやけにでかいんですよね。。。

200:デフォルトの名無しさん
08/04/21 00:54:22
240*268が標準サイズだから

201:デフォルトの名無しさん
08/04/21 01:36:47
>>200
これはお恥ずかしい。。。
エミュレータいじってたら元に戻せなくなったのでインストールし直しました

240*268から240*240にはどうしたらできますか?

なんかちゃんといじらないと、クラスファイル作るときに変な影響出るんですね。。。
読み込んだ画像が表示されなくてビックリしましたよ

202:デフォルトの名無しさん
08/04/21 02:34:55
DefaultColorPhoneを例にすると
wtklib\devices\DefaultColorPhone
にある
DefaultColorPhone.properties

screenPaintableRegion.height
を240に書き換える
ちなみにデフォは292だった気がするが

203:デフォルトの名無しさん
08/04/22 00:08:15
>>202
レスありがとうございます
書き換えてみたところ、しっかり設定されました

まだどんなゲームを作ろうとかいう段階ではありませんが
とりあえずRPG用のマップチップを読み込んで分解して
自由に配列できるようにするところまでいきたいと思います

また詰まったらこちらにお邪魔するかもしれません。。。

204:デフォルトの名無しさん
08/04/22 00:56:06
TiledLayerがあるだろ。javadocも読んどけ

205:デフォルトの名無しさん
08/04/22 22:35:04
すいません質問です。。。

ソフトバンクのJavaアプリを作ろうと思って、
作成したものを某どこぞのテストサーバにアップして
実機でダウンロード確認したんですが、
終了ボタンを押すとエラーが発生して終了するんです。
MEXAのエミュレーター上で電源キーを押しても何もおこらないので、
pauseの時点で止まっていたり、落ちている気がします。。。

全然気付かずに色々と作業したあとなので、ソースもかなり大きなものになっていて、いつからそうなってしまったのかわかりません。。。
誰か心当たりのある人はいらっしゃいますでしょうか?

206:デフォルトの名無しさん
08/04/22 23:04:43
pauseApp()に何も記述しないようにすればいいんじゃない?

207:デフォルトの名無しさん
08/04/22 23:07:29
MIDPの仕様でもpauseApp()などは速やかに制御もどせってことになってる。


208:デフォルトの名無しさん
08/04/22 23:09:21
エミュレータのコンソールに例外が出てないんだったら
マルチスレッドのタイミングの問題かも・・・
終了時に開放したメモリをどこかで参照してる可能性が高い

209:デフォルトの名無しさん
08/04/23 10:50:57
すいません。
助けてください。

Sアプリでspf(元はMIDI)とmmf(元はwave)を同時に鳴らそうとプログラムしたのですが、何故か鳴りません。

例えばspfだけ、またはmmfだけなら鳴るのですが、両方を鳴らそうとすると駄目です。
正確には、spfを一度鳴らすと、その後、mmfだけを鳴らそうとしてもなりません。

また機種によっては、spfだけもしくはmmfだけでも鳴らないものもあります。


ネットで検索したら、
「spfファイルとmmfファイル同時再生に対応する端末は、SoftBankの開発サイトの端末仕様ドキュメントで、「サウンドメディアの多重再生:4channel SMAF/Phrase + 1channel SMAF/Audio」って書いてる機種だけ」
とありました。

ソフトバンクの開発サイトは登録しないと仕様が見れないようになっていて、先日、手続きをしたのですがまだ返事が来ません。
ですので、資料を見ることも出来ないのです。

これって機種依存なんでしょうか?

どなたか、分かる方がいらっしゃいましたら、お願いいたします。

210:デフォルトの名無しさん
08/04/23 11:16:26
今、個人会員で登録してきたけどメール来ただけで
すぐに資料見れたよ?

ちょっと見た感じ、サウンドメディアの多重再生の所が
機械によって違ってたみたいだから
機種依存だと考えるのが普通だと思う ・;(`ε()゙

211:デフォルトの名無しさん
08/04/23 13:47:12
>210

情報ありがとうございます。

こちらはメールがまだこないです。
もう一度、個人で登録しなおしてみますね。



212:デフォルトの名無しさん
08/04/29 19:58:51
このスレたまにフリーズするね・;(`ε()゙


213:デフォルトの名無しさん
08/05/01 22:54:44
>>209
前に同じことをやろうとして、それできなかった。
ただし、midiとwavならできた。


214:デフォルトの名無しさん
08/05/02 00:38:38
BREWなんかでもあるけど、同時再生できる組み合わせが
機種によって違うからだな・;(`ε()゙

215:デフォルトの名無しさん
08/05/02 01:53:23
ネオポケでSEを再生するたびにBGMが初めから再生される現象を思い出した
KCP+端末はマルチスレッド(?)らしいから、うまく同時再生してくれそうだ

216:デフォルトの名無しさん
08/05/02 09:41:10
マルチタスクだろうが音源の仕様以上のことは出来ないと思うがな

217:デフォルトの名無しさん
08/05/02 19:43:37
AUオープンアプリ初心者向け解説
結構分かりやすかった
URLリンク(appget.com)

218:デフォルトの名無しさん
08/05/05 23:09:56
GameCanvasとFormは同時使用できない?

219:デフォルトの名無しさん
08/05/06 01:49:01
同時は無理
切り替えは随時可能

220:デフォルトの名無しさん
08/05/06 02:37:11
>>219
なるほど、やってみま。
ありがとう。

221:デフォルトの名無しさん
08/05/06 12:05:11
J2ME Wireless toolkit のエミュレータで
FileSystemRegistry.listRoots() を呼び出すとエミュレータ画面に

xxx はローカルファイルシステムから読み込もうとしています。ファイルを読み込んでもよろしいですか?

という表示が出て、コンソール側には

ストレージのルート DefaultColorPhone で実行
警告: ネットワークなどは commandAction() ハンドラとは別のスレッドで稼動して、デッドロックでオペレーションがロックする可能性を回避する必要があります。

と出力されるのですが、この時にエミュレータが終話キーまで含めて無反応になってしまいます。
実機の 702NK II, 705NK では似たような画面が表示されますが選択すれば進めますし、
au のオープンアプリプレイヤーでは結果こそ空っぽですが警告画面自体がでないので
エミュレータ固有の問題のようなのですが、解決策はありますか?

222:デフォルトの名無しさん
08/05/06 13:33:34
Wireless Toolkit以外でもSunのMIDPを使っている
機種では(国内機にはないはず)デッドロックする可能性があります。
解決策は警告文に書いてある通りです。

223:221
08/05/06 23:34:51
>>222
レスありがとうございます。
警告文の意味がわからず少し悩んだのですが、


commandAction() ハンドラ(やキー/ペイントハンドラ等)でネットワーク(やローカルファイルシステム)を使用すると
デッドロックする可能性があります。
そういった操作は別のスレッドで稼動して、デッドロックする可能性を回避する必要があります。


という意味なのですね。
別スレッドに処理をわけたところ上手く行きました。
ありがとうございました。

224:デフォルトの名無しさん
08/05/18 22:02:03
912SH向けの待ち受けS!アプリを作ろうとしてるのですが、ResidnetMIDIlet
を使おうとうると、セキュリティエラーがでて起動すらしてくれません。
Webを探し回っても解決策見つからず、どうすればいいのか教えてください。

エミュレータで実行すると、次のエラーが出ます。

java.lang.SecurityException: com.j_phone.midlet.ResidentMIDlet was denied
java.lang.SecurityException: com.j_phone.midlet.ResidentMIDlet was denied
at com.jblend.security.midp20.SecurityManagerImpl.checkPermission(+185)
at com.j_phone.midlet.ResidentMIDlet.<init>(+15)
at sample.OshiraseResidentMIDlet.<init>(+4)
at java.lang.Class.runCustomCode(+0)
at javax.microedition.midlet.MIDlet.createMIDletInstance(+22)
at javax.microedition.midlet.MIDlet.main(+105)

jadファイルには次を記述してます。

MIDxlet-API: MEXA
MIDxlet-Resident: S
MIDlet-Application-Security: Y
MIDlet-Permissions: com.j_phone.midlet.ResidentMIDlet,com.j-phone.system.DeviceControl.read

225:デフォルトの名無しさん
08/05/18 22:22:38
CLDCとかMIDPのバージョンをjadで指定してみれ

226:デフォルトの名無しさん
08/05/18 22:51:03
>225

Mnifestフィルにあった次の記述を、jadファイルにコピーしました。

MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0

あと、念のため次もjadファイルに追記しました。

MIDlet-OCL: JSCL-1.2.2

それでも、まったく同じエラーで起動できません。
ほかに何かないものでしょうか。


227:デフォルトの名無しさん
08/05/18 23:34:34
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
上記2つはjadファイルには必要ない。あっても問題ないけど。

MIDP2.0では
×MIDlet-OCL: JSCL-1.2.2
〇MIDxlet-API: JSCL-1.2.2


228:デフォルトの名無しさん
08/05/19 03:45:51
>>227
へ?


229:デフォルトの名無しさん
08/05/19 10:59:45
MIMEじゃねえの

230:デフォルトの名無しさん
08/05/19 19:40:02
>>224
jadファイルには
MIDlet-Permissions: com.j_phone.midlet.ResidentMIDlet
MIDxlet-API: JSCL-1.2.2
MIDxlet-Resident: S
を追加する。

MEXAエミュレータのプロジェクト→端末設定→MEXAオプションのUnit1+Unit2の所にチェックを入れてるか?
アプリのインストール時にTrustedを選択しているか?

思いつくのはこれくらいなんだが…

231:224
08/05/19 20:50:40
みなさんのアドバイスをもとに試行錯誤して、なんとか待ち受けアプリを
エミュレータで起動することができました。

問題は、MIDlet-Permissions に「com.j-phone.system.DeviceControl.read」を
入れていたことでした。
MIDlet-Permissionsには、カンマ区切りで複数のセキュリティパスが書けると
思ってたのですが、ダメなのかも知れません。

とにかく、次のjadファイルで、待ち受けアプリ起動しました。

MIDxlet-API: MEXA
MIDxlet-Resident: S
MIDlet-Permissions: com.j_phone.midlet.ResidentMIDlet

※MicroEdition-Configuration: CLDC-1.1
 MicroEdition-Profile: MIDP-2.0
 MIDlet-Application-Security: Y
の3つは無くても軌道には至りました。


あと、>230 のアドバイスのように、インストール時には、trustedでインストール
する必要もありました。

とにかく解決しました。ありがとうございました。


232:デフォルトの名無しさん
08/05/20 16:02:27
すみません。
初心者です。教えてください。

S!アプリではBASE64って使えないんですか?
JavaDocの中に見つからなかったんですが・・・

233:デフォルトの名無しさん
08/05/20 18:32:29
sunのRI使ってればcom.sun.midp.io.Base64が使えないわけでもない

234:デフォルトの名無しさん
08/05/21 12:03:39
javax.microedition.lcdui.game.Layerのコンストラクタをパッケージプライベートからpublicに変えてほしいよね。
クラス自体はpublicなんだし。
独自のレイヤ機能を実装したい場合にはSpriteはいらない機能が多い。

235:232
08/05/21 18:22:32
>233
ありがとうございます。

BASE64のロジックを
JAVAでガリガリ書いてあるソースをひろってきて、
コピペすることで解決しますた。

236:デフォルトの名無しさん
08/05/21 19:21:42
まあbase64のエンコード・デコードくらい仕様に忠実に実装してもそんなサイズじゃないよ。

237:デフォルトの名無しさん
08/05/23 21:53:20
シャープのVGA機解像度上げるとオフスクリーンの取れるサイズが減るって
糞仕様どうにかなんねえのかなあ

238:デフォルトの名無しさん
08/05/24 19:27:52
RAMケチってるからどうにもならんだろ

239:デフォルトの名無しさん
08/05/27 19:32:09
812SHでweb(http)からテキストを取得しようとしています。
エミュレータでは動作するのですが、実機で実行すると
java.lang.SecurityException: restricted url.
と出て接続できません。

jadは
MicroEdition-Profile: MIDP-2.0
MIDxlet-API: JSCL-1.2.2
MIDlet-Permissions: javax.microedition.io.Connector.http
MIDlet-Network: Y
MIDlet-Application-Security: Y
にしています。

googleで検索してみても同様の状況は見つからず困っています。
対処方法をご存じの方教えてください。


240:デフォルトの名無しさん
08/05/27 20:06:08
S!アプリのMIDP2.0対応端末編part6を見て思ったのですが、ファイルサポートの対応プレイヤーでPNGがMIDP2.0/JSR135に対応しておらず、MEXA/JSCLに対応している端末があります。
その端末ではImage.createImage()でPNG画像を生成できないと考えて、MEXA/JSCLのPngDataを利用すべきなんでしょうか?

241:デフォルトの名無しさん
08/05/29 01:37:12
すみません、初心者ですが教えてください

開発環境
jdk1.5.0_14
wtk2.5.2
V-appli_SDK_121

で、Vodafone向けのVアプリを作ろうとテスト用のソースを作って以下のようにビルドしたら
jarファイル作成時に次のようなエラーが出ました。

set CLASSPATH=C:\WTK2.5.2\lib\midpapi10.jar;C:\V-appli_SDK_121\lib\stubclasses.zip
javac -source 1.3 -target 1.3 -encoding SJIS -g:none -d tmpclass -bootclasspath %CLASSPATH% test.java
preverify -classpath %CLASSPATH% -d classes tmpclass
jar cvfm test.jar test.mf -C classes .

エラー
java.io.IOException: invalid header field name: ?>>>?MIDlet-Name ...

すみませんがこのエラーの原因と対処法がわかる方がいたら教えてください。
よろしくお願いします。

以下mfファイルの記述
MIDlet-Name: test
MIDlet-Version: 1.0.0
MIDlet-Data-Size: 10000
MIDlet-Application-Range: 0,0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-1: test,,test


242:デフォルトの名無しさん
08/05/29 15:36:59
>>241
>MIDlet-Name

ココ。どうせShiftJISでベタベタと書いたんだろう?


243:デフォルトの名無しさん
08/05/29 19:16:52
>>242
無事解決しました
ありがとうございます。

244:デフォルトの名無しさん
08/05/30 16:15:41
S!アプリについての質問なんだけど

245:デフォルトの名無しさん
08/05/30 16:18:02
>>244
ミスった
S!アプリについてなんだが
ブラウザ起動時のMIDlet-Versionは完全一致じゃなきゃ駄目なんだろうか?
具体的には
MIDlet-Version: 1.xとか2.xぐらいの大まかな分け方でアプリとHTMLを切り分けたい

246:デフォルトの名無しさん
08/05/31 01:15:32
初歩的な質問ですみません。。。
pngの透過についてですが、以下のように32*32のマップチップを3つ横に並べた画像の読み込みです

for(i=0;i<3;i++){
image[i]=Image.createImage(32,32);
image[i].getGraphics().drawImage(imgPic,-32*(i%3),0,Graphics.LEFT|Graphics.TOP);
}

こんな感じのプログラムなんですが、表示させてみると透過に設定した部分が白く表示されてしまいます
おそらく32*32で準備した後にのっけてるからだと解釈していますが。。。

どなたか解決策をご教授していただけると助かります

247:デフォルトの名無しさん
08/05/31 01:44:04
>246
Image.createImage(32,32)によって素で白いImageが作られて、
そこに元が透過PNGであるimgPicというImageを描画したら、
透過部分に白が透けて見えるって状況だよね。

正常な動作じゃん。何を質問したいんだい?

248:デフォルトの名無しさん
08/05/31 01:46:25
俺は透過なんて機種依存強そうで使った事無いけど
環境ぐらい書いてみたらどうだろう?

249:246
08/05/31 02:21:43
>>247
あ、かなり説明不足でした。。。
>>246のプログラムでいうとimage[2]に格納した画像(キャラ)に透過が設定されていて、
image[0](床)の上にキャラを表示させたいということです。。。

>>247
透過なしでRPGなどのキャラが動かせるのでしょうか…
まだエミュで実行させてるだけの段階ですが、
Vistaで、Wireless Toolkit 2.5.2 for CLDCを使っています

250:デフォルトの名無しさん
08/05/31 03:39:48
Graphicsがgだとすれば
for(i=0;i<3;i++){
g.drawImage(image[i],0,0,g.LEFT|g.TOP);
}
じゃないの?

251:247
08/05/31 04:53:39
>249=>246
>>>246のプログラムでいうとimage[2]に格納した画像(キャラ)に透過が設定されていて
残念だがそうはならん。

元が透過PNGのImage(ここではimgPicか)は、
他のImage(やCanvas)に描画する時点で透過が反映されるが、
描画されたImage(ここではimage[n])は透過情報を持っていない。
また、image[n]に対して「白を透過させろ」なんて設定するメソッドはない。

>249で思ってることをやるには、例えば、
image[0](床)に対して、imgPic上の目的の領域を直接描画する。

多分、こういうことを聞きたいんだよな?w

252:246
08/05/31 13:15:48
>>251
レスありがとうございます
やはりこの方法では透過は無理なようですね。。。

ググってみたら、画像の一部を表示するdrawRegion()というものがあるのですね
こいつを使って直接描画させてみようと思います

253:デフォルトの名無しさん
08/05/31 15:22:06
URLリンク(www.nicovideo.jp)

254:デフォルトの名無しさん
08/06/01 13:27:33
作成済みのEZアプリを携帯に入れたいんですが
webにアップする以外の方法はありませんか

255:デフォルトの名無しさん
08/06/01 14:51:52
どこでもセーブ対応のjavaエミュレータがあればいいのに

256:デフォルトの名無しさん
08/06/01 18:15:41
StorageConnection sc = (StorageConnection)Connector.open(path);
OutputStream os = sc.openOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);

として、書き込み処理を終えた後にすべてをclose()するものなのでしょうか?
それとも一つをclose()すればいいですか?

257:デフォルトの名無しさん
08/06/02 06:59:43
不要ならば開放すると良い

258:256
08/06/02 09:51:08
レスどもです。
ためしにStorageConnectionだけ開放しても、SDカードのアイコンの点滅が止まりませんでした。
やはり不要になったら開放しなくては駄目ですね。

259:デフォルトの名無しさん
08/06/02 23:10:05
携帯javaならStringオブジェクトだろうと使い終わったら
nullでも代入して初期化してやるのが良いかもしんないよ

260:デフォルトの名無しさん
08/06/02 23:59:44
レコードストアの内容ってMIDlet削除したら消えるんですよね
アプリをダウンロードし直してもハイスコアとか保持できないですか?

261:デフォルトの名無しさん
08/06/03 13:49:49
>>260
アプリがマスター、RSがスレーブ
と考えればそんな質問は出てこない筈
web鯖とかSDとか外に出しな

262:デフォルトの名無しさん
08/06/03 18:45:42
Other documentsあたりに置きっぱにしとくとマズいんだっけ?

263:デフォルトの名無しさん
08/06/05 01:10:46
東芝・;(`ε()゙

264:デフォルトの名無しさん
08/06/05 01:41:26
大きな画像をループでスクロールさせたい場合は分割したほうがいいですか?
クリッピングがまともな実装であれば、そのまま画像を並べて描画したほうが速い
と思いますが、特定の機種で遅くなったりしないでしょうか

265:デフォルトの名無しさん
08/06/05 01:55:37
>>264
機種別の仕様が書いてあるpdfに高速で描画可能なImageの最大サイズが書いてあるよ
それ参考にして最適な画像サイズを割り出せば

266:デフォルトの名無しさん
08/06/06 01:30:28
>>265
>>264じゃ無いけど、そんな細かい仕様まで公表してるメーカーってあるの?
それともそのpdfは一般人には見れない代物?

267:デフォルトの名無しさん
08/06/06 05:05:06
>264-266
まずソフバン端末なのかau端末なのか明確にしてから話そうや

268:デフォルトの名無しさん
08/06/06 19:36:55
ユーザシェアからして分けた方がよくないかそろそろ

269:デフォルトの名無しさん
08/06/06 19:46:21
>>268
プログラマのシェアで考えるべきだろう。

270:デフォルトの名無しさん
08/06/06 21:14:49
スレを分けると不便になりそう。
ソフバンもauもウィルコムも、CLDC+MIDP(+キャリア拡張)という形には変わりないから、
共通で参考になる情報が分散したり、逆に同じ質問があっちでもこっちでも…というのはうまくない。

質問者も回答者も、キャリア依存・機種依存の問題だなと思ったら、
そこをまず確認するように気をつければ、このスレ1本で問題ないと思う。

例えば>264には「ソフバン?」「例えばどの機種?」とか一言投げてやればいいし。

271:デフォルトの名無しさん
08/06/06 22:48:04
そもそも日本がMIDPで統一されてないのは問題だな

272:デフォルトの名無しさん
08/06/07 01:11:06
このスレには開発環境もろくに書かずに
皆が自分の思考を共有しているかの様な前提で
質問する人が多いから
次のテンプレには書き込みには対象のキャリアを
明示するよう一言付け加えてはどうだろう

273:デフォルトの名無しさん
08/06/07 23:39:51
SBなのですが、大きいデータなどを読み込む時に
「ローディング中」みたくアニメーションさせる方法って具体的にどうやっているんでしょうか?
昔からゲーム作りでずっと疑問になっていてでそういうことをしているサンプルコードも見たことなかったものですから
お願いします

274:デフォルトの名無しさん
08/06/07 23:44:53
>>273
スレ違い


275:デフォルトの名無しさん
08/06/07 23:46:40
>>273
データを読み込むスレッドと「ローディング中」をアニメーションさせるスレッドの二つを用意すれば?

276:デフォルトの名無しさん
08/06/08 01:57:21
>273
このスレで、ダウンロード中のプログレスバーの表示はどうやるかって話が
何度か出たから過去ログ探して読んでみれ。それで答えになる。

277:デフォルトの名無しさん
08/06/08 03:11:04
>>275
昔の端末でそれやると、アニメの方コマ送りになって使い物にならなかったが
今のはそんなにきれいに動く?

278:デフォルトの名無しさん
08/06/08 03:34:03
>>277
ローディングを示すアニメーションを滑らかにする必然性ってあるの?
アプリが止まっているわけじゃないとユーザーに認識させられればOKだろ

279:デフォルトの名無しさん
08/06/08 06:32:50
滑らかに動くならそのほうがいいだろ。
>>278のUIは、悪くはないけど良くもないって感じのものなんだろうな。

280:デフォルトの名無しさん
08/06/08 08:54:07
簡単にやるなら、絵を100枚読む場合、1枚読むごとにアニメを更新するって手もあるな。
ちょっとカクカクするけど、そこがまた「読み込んでるって感じ」が出る

281:デフォルトの名無しさん
08/06/08 18:18:30
プログレスバー更新時はローディング処理をスリープさせるってのはどうだろう
ローディング自体遅くなるだろうけど綺麗にアニメーションするはず
あと、バーは画像よりdrawLineの方が軽そう

282:デフォルトの名無しさん
08/06/08 19:55:23
ひどい話だ

283:デフォルトの名無しさん
08/06/08 22:44:26
本末転倒

284:デフォルトの名無しさん
08/06/08 22:45:42
なにか前にも見た流れが・・

285:デフォルトの名無しさん
08/06/09 04:29:24
>>282-283
携帯程度の処理能力に無理して複数スレッド同時処理させるよか
プログレスバー描画の更新の束の間の間だけロード処理を止めた方が
効率が良い場合も往々にしてあるのだよ

286:デフォルトの名無しさん
08/06/09 15:43:29
>>285
そもそもプリエンプティブにスレッド処理されてねーから、描画スレッドの駆動中だけ
転送スレッド止めても意味ねーのよ。 >>280の方が余程綺麗に動く。

もっとそれらしく見せるなら、各段階の初期化の所要時間を実測してバーの進捗に
反映させる。 機種毎にイメージが遅かったりサウンドが遅かったりするから、
デフォルト値固定でなく、学習するようにすれば尚可。


287:デフォルトの名無しさん
08/06/09 16:19:13
278 のように要点押さえて設計した方がよいと思うがね


288:デフォルトの名無しさん
08/06/09 19:56:38
ローディング画面が滑らかだとしても、ほとんどの人はろくに見ていないという、、、

289:デフォルトの名無しさん
08/06/09 20:11:56
フリーズしていないことさえわかればいいものだからな

290:デフォルトの名無しさん
08/06/09 22:56:28
ローディングの話でここまで盛り上がるとは・;(`ε()゙

291:デフォルトの名無しさん
08/06/10 00:11:00
ていうか前にも同じ流れがあったっちゅーねん・;(`ε()゙

292:デフォルトの名無しさん
08/06/10 06:45:03
だったらそれを貼れば良かっただろアホか・;(`ε()゙

293:デフォルトの名無しさん
08/06/10 19:16:33
バーじゃなくてアニメgif置いとけばいいじゃんwwwwwwwwwwwwwwwwwww

294:デフォルトの名無しさん
08/06/10 23:26:52
>>293
お!その手があったか。
お前超馬鹿じゃね?

295:デフォルトの名無しさん
08/06/10 23:38:55
別にシステムじゃない分けて正確な進捗を描画する必要もないし
オペレーティング システムでもどころかそまそも未来のことを"
正確"に把握するなんて不可能な訳で、適当な落とし所で
割りきれば良い話だよな

読み込み処理を分割して、処理済み/分割数で1/分割数読み込む毎に
描画を更新するのがセオリーじゃね?
別にバーは時間に対しての割合である必要もないし、
読み込んだ数に対する割合なら嘘にもならんし、
滑らかにする必要もないし、
読み込み単位でAPIでブロックされるから求める制度にも限界あるし、
フリーズしてない事と待時間の目安が提供出来れば十分だし。

296:デフォルトの名無しさん
08/06/11 01:00:40
裏で先読みロードを繰り返す某RPGの様な
待ち時間無しのシステムを作れば良い
携帯の処理能力と300k制限の中でな・;(`ε()゙

297:デフォルトの名無しさん
08/06/11 06:15:29
>>295
リアル鬼ごっこ並みの日本語だが最後の二行は理解した。

298:295
08/06/11 08:08:02
>>297
リアルリアル鬼ごっこですまそ

299:デフォルトの名無しさん
08/06/12 01:18:00
>鬼ごっごサンプル(実機では動作確認してません)
URLリンク(nicosb.orz.hm)
>>295じゃないけど、作ってみた。
改造すれば進捗バーの表示もできるハズ

>使ってる画像
URLリンク(nicosb.orz.hm)

300:デフォルトの名無しさん
08/06/13 14:03:58
>>296
携帯の処理能力よりも、300k制限よりもヒープが足んねえので却下

301:デフォルトの名無しさん
08/06/13 14:11:45
win mobile機でJBlend積んでたら余裕だな。
レジストリいじればヒープ9Mまで使える。

302:デフォルトの名無しさん
08/06/13 18:16:53
>>296
それドラクエだったっけ?
WiiやX箱とかだとLoading画面に制約があるとか聞いたな。
3秒以内に画面の一部を更新しろとか。

303:デフォルトの名無しさん
08/06/13 22:55:43
でもそんなの関係ねえ!でもそんなの関係ねえ!

おっぱっぴー・;(`ε()゙

304:デフォルトの名無しさん
08/06/14 00:06:55
WiiとかX箱みたいなコンシュマー機はハードの応答速度にバラつきがほとんどない
(かまたは一定にできる仕組みがある)からいくらでも対応できるのよ・;(`ε()゙

305:デフォルトの名無しさん
08/06/14 02:10:30
>>302

多分違うよ
>>296が言ってるのはM$のダンジョンシージに違いない
あのゲームは例えマルチプレイ時でも、
ゲーム起動時以外はロードが存在しない

306:デフォルトの名無しさん
08/06/14 08:08:25
別にFF7だってドラクエ7だって先読み満載じゃねーか

307:デフォルトの名無しさん
08/06/14 17:12:12
ローディングが画面として存在するかしないかの話だろ
流れ読めよ・;(`ε()゙

308:デフォルトの名無しさん
08/06/14 18:42:40
>>306 は先の先。いわゆる400レス目あたりの話をしているんだよ

309:デフォルトの名無しさん
08/06/15 05:47:44
自作javaアプレットのオープンアプリへの移植を考えてるんだけど
floatとかの実数型を使いまくってる状況です
やっぱ重いだろうか?

float多用したACT/STGの類の開発経験が有る方、
体感速度とかどんな感じでした?

310:デフォルトの名無しさん
08/06/15 13:00:08
そんなもん気にすんな。

311:デフォルトの名無しさん
08/06/15 14:16:48
突然ですが質問させてください。。。
キーイベントについてです。

keyPressdメソッドと、keyRepeatedメソッドの処理を全く同じにしたところ、
キーを押しっぱなしにしたときのキャラの移動が、押した瞬間に動いたあと、一呼吸おいて移動します。。。

「→、、→→→→→」
イメージとしてはこんな感じでしょうか。。。

この移動を滑らかにするには、どういう方法で対処できるのでしょうか。。。

312:デフォルトの名無しさん
08/06/15 14:22:06
>>311
GameCanvas使ってる?

313:デフォルトの名無しさん
08/06/15 14:35:48
>309
1フレーム描画に何千回も計算するような箇所は固定小数点に置き換えたほうがいい。
ベクトルの正規化を多用する場合もsqrtの逆数は自作すべき。
float精度のニュートンラプソン法の初期値を一発で求めるトリッキーな方法がある。

314:デフォルトの名無しさん
08/06/15 14:45:01
>>312

いえ、使ってないと思います。。。
なにせjavaを始めたばかりで無知なもので。。。

いろいろとググってみて、分からなかったらまた質問させていただきます。
即レスサンクスでした。

315:デフォルトの名無しさん
08/06/15 16:24:46
>>311
keyRepeaedの意味はわかってるかな?
押しっぱなしにされたとき、一定間隔で呼ばれるものだ。

2chに書き込む時、キーボードのキーを押しっぱなしにすると
「あ、、あああああああああ」
って感じになるだろ?
同じもんだ。

keyPressedで押されたというフラグを立て、keyReleased(Repeatedにあらず)でフラグを解除。
という処理だけつくり、実際にキャラを動かすのはゲームスレッドで行なう。
ゲームスレッドでは、時間で定期的に処理を進める



316:デフォルトの名無しさん
08/06/15 16:49:28
GameCancas#getKeyStates を使うのが楽だと思う
ゲームキーしか取得できないが。

Softbank専用で数字キーとかの状態を調べたかったらDeviceControl使えばいい。

317:デフォルトの名無しさん
08/06/15 21:46:03
DeviceControlってソフトキーも取得できるけど、端末によって左右が違ったりするの?

318:309
08/06/16 01:05:48
>>313
やっぱ置き換えた方がいいよね
実機である程度の体感速度が得られれば良いんだけど
もう面倒くさいから実数型のままで移植してみる

319:デフォルトの名無しさん
08/06/16 21:37:14
オープンアプリ対応機って今のところ速度差無さそうだしな
ソフバンも3Gになってからは、解像度差による描画レート以外そんな変わんないよな?
海外だとMIDP2.0/CLDC1.1でも凄いスペックのがある
画面128x96とかヒープが512kとか、そんなんに実数演算させんなw

320:デフォルトの名無しさん
08/06/16 21:40:32
>>319
つまり何が言いたいんだ?

321:デフォルトの名無しさん
08/06/16 23:01:01
機種ごとに差がないんだから、とりあえず実数で組んでみて速度確かめたらいんじゃね?
2行目以降は、「ところでよ」って話で確かに分からんな。すまん

322:デフォルトの名無しさん
08/06/17 17:05:22
SoftBankでタッチパネル対応機種の一覧ってありますか?
独自APIじゃなくてpointerPressed()とかで座標を拾えるんでしょうか

323:デフォルトの名無しさん
08/06/17 18:15:39
StorageConnectionを使用してネットワーク経由で
取得したjarファイルを端末に保存してアプリ内でリソースとして
展開するアプリを考えているのですが、jarファイル内のリソースの
暗号化などを施したほうが良いのでしょうか?

ちなみにjarは、んぱか氏のファイル結合ツールを使用してtxtや
jpgなどをjarでまとめようと思っております。

■ファイル結合ツール
URLリンク(www.saturn.dti.ne.jp)

324:デフォルトの名無しさん
08/06/17 18:31:28
ヒープが足らないって落ちじゃないだろうな?

325:デフォルトの名無しさん
08/06/17 19:12:53
すみませんが、エミュだと試せないので、
FEPControlについて教えて下さい。

初期表示される文字列を、
クリアキーで全て削除して、
さらにクリアキーを押した場合は、
getInputText()から何が戻ってくるのでしょうか?

String str = "テスト";
FEPControl fc = FEPControl.getDefaultFEPControl();
str = fc.getInputText(str,TextField.ANY,100,false);


326:デフォルトの名無しさん
08/06/17 21:49:01
>>322
SoftBankでタッチパネル対応機種なんてなかったと思うけど・・・(Xシリーズ除く)。
Vodaの時代にも無かった気がする。
Jの時代にはパイオニアが出してた気がする。

うん。適当でごめん。

327:311
08/06/17 23:40:26
>>315
亀ですいません。。。

なるほど、そういう方法があるんですね!
キーが押されて離されてなかったら、押しっぱなしということですか

ありがとうございました!

328:デフォルトの名無しさん
08/06/18 00:34:48
エミュと実機ではキーの反応・動作が大分違う場合があるから気をつけるんだ

329:デフォルトの名無しさん
08/06/18 02:16:55
>>325
P5,P6で、null がかえってきた記憶がある。
はじめっから null が来ても "" が来てもおkなように作っときゃ問題ないけどね。

330:325
08/06/18 13:01:34
>>329
レスありがとうございます。

""とnullの処理を入れて、3Gの実機を持っている人に試してもらったところ、
端末によって挙動が違うようでした。

・初期表示の文字が全部消えると、クリアキーは無効。文字入力処理は続行してます。
・クリアキーでFEPの入力画面が消え、getInputText()から戻って来ない。文字入力も出来ない。

2番目はハング状態のようです。getInputText()の引数で回避できるのでしょうか?orz


331:325
08/06/18 14:05:08
自己レスです、解決しました。

getInputText()で、クリアキーを押下した際に、
RuntimeException が発生する事が分かりました。

これを、catchしてなかったのが原因のようです。
お騒がせしました。

332:デフォルトの名無しさん
08/06/18 21:17:22
>325 解決してるようだけど、自分が知ってることを書いてみる。
P5のアプリを作ってた頃の調査結果。

FEP起動後、編集操作中にユーザーが[取消]を押すと
「編集内容を取り消すか? YES/NO」のダイアログが出る。

そこでYES(編集取消)を押すとFEPは例外エラーを発生して終了する。
クリアキー押下でも何でも、とにかく編集を中断したら例外エラーが出る。

従ってFEP起動処理はtry-catchでくくるようにする。
ついでに、編集確定でFEP終了したのか、キャンセル操作で終了したのか、
フラグを立てておくとその後の処理で役に立つかも。

333:325
08/06/19 18:39:37
>>332
javadocの getInputText()には、
IllegalArgumentException の記述しかなくて、
RuntimeException が発生していたとは、なかなか気が付きませんでした。
検索しても情報が少なく orz

>とにかく編集を中断したら例外エラーが出る。
>フラグを立てておくとその後の処理で役に立つかも。

との事なので、FEP起動処理はtry-catchでくくり、
キャンセルされたら、元の文字列に戻すようにしました。

どうもありがとうございました。


334:デフォルトの名無しさん
08/06/19 19:48:57
>>323
スクラッチパッドに保存するだけなら取り出せるわけじゃないから暗号化はいらんが
スマートメディアのOtherDocumetあたりの外から見えるところに見られたくない物を置くなら
暗号化が必要だな。
ただ、Storageとio両方にアクセスできるように設計すると、素人アプリはコンテンツアグリゲータに
上げる時にハネられると思うぞ。
URLリンク(ac-admin.appget.com)

335:323
08/06/20 02:55:19
>>334
やはりOtherDocumetだと暗号化は必須でしたか。
リソースの取得方法を再度検討してみます。
ご返答ありがとうございました。

336:デフォルトの名無しさん
08/06/20 09:29:38
Dojaの話で悪いが、某◯貝獸物語のリソースがSD-BindingでJARだったから、普通に解凍して取り出しが出来た。SD-Bindingはピュア バイナリぽいね。

必要があれば暗号化かければ良いけど、単純なジャミングならInputStreamとOutputStream辺りを継承して、上位と下位の4bitを入れ換えて取り扱うStreamクラスを作るのが楽なんじゃないかな。

337:デフォルトの名無しさん
08/06/22 00:13:25
Dojaなら専用スレあるだろ....

338:デフォルトの名無しさん
08/06/22 00:45:05
>>337
上の話は余談で下の話が実際言いたかったことじゃないの?

339:デフォルトの名無しさん
08/06/22 01:23:47
>>336
EncryptionAttributeを立ててないだけ。
単に忘れたか、それとも速度が厳しかったかのどちらか。

>>335
んぱかに暗号化のサンプルが載ってるな。
URLリンク(www.saturn.dti.ne.jp)

340:デフォルトの名無しさん
08/06/24 00:50:26
Sアプリのレコードストアが3Mにアップしたね

341:デフォルトの名無しさん
08/06/24 00:55:50
それに引き換え32kbの

342:デフォルトの名無しさん
08/06/24 23:27:45
ソフトバンクの動向とか見てると
自由度の極端に低いauの糞仕様も
新OSの普及と共に緩和されそうだね

343:デフォルトの名無しさん
08/06/25 00:28:23
OS?

344:デフォルトの名無しさん
08/06/25 01:50:46
>>342
詳しく

345:デフォルトの名無しさん
08/06/26 00:24:04
国内でも流行り出したWindowsMobileとか
新OSのAndroidの事を指してるんでしょ多分
どっちもjava動くし実現度・自由度だって高いはず



346:デフォルトの名無しさん
08/06/26 01:10:15
Androidでjavaが動くって表現はなんか違う希ガス。
Androidは新らしく出現したjava環境でJavaMEのリソースは
殆ど流用できないんじゃまいか(外部apiに殆ど依存していな
い抽象ライブラリとかを除いて)
URLリンク(blogs.sun.com)
↑このブログ主JavaMEの伝道師らしいがAndroidには攻撃的だ。


347:デフォルトの名無しさん
08/06/26 17:58:40
AndroidはOSじゃないし
、WMはスマートフォンが主だから活躍の場が違うと思う
普通に住み分けがされるだけじゃないかな

348:デフォルトの名無しさん
08/06/26 18:11:28
Androidは開発環境がJava SE5.0+αだからME関係ないな。
スマートフォンにはCLDC+MIDPじゃなくてCDC+PP積んでほしい。できればAGUIも欲しいが。

349:デフォルトの名無しさん
08/06/26 22:56:38
Java SEのライブラリは使えないよ
開発環境やコンパイラを流用して最後に実行コードをDalvik用に変換するだけ
ずるいと言えばずるい

350:デフォルトの名無しさん
08/06/26 23:10:51
質問があるんですが…
WTKのfillTriangle()はJavaSEのawtと同じ仕様なんですが
MEXAエミュレータでは右下方向に1pixel拡大されるようです
手持ちの実機でも同様でした
これはSoftBank共通仕様と考えていいんでしょうか?

351:350
08/06/27 02:22:50
すみません。自己解決しました

WTKのエミュレータでは隣接する三角形のエッジを共有せず、MEXAは共有する仕様のようで
どちらもMIDPの実装としては有りのようです
両方に対応するため、起動時にテスト描画してエッジの色を調べることにしました

352:デフォルトの名無しさん
08/06/27 05:15:26
アプリゲットが2G対応を2007年10月末に終了させていたことに、
今更ながら気づいたぜ。

これって、
もはや一般クリエータは2G端末(P4,P5,P6)向け配信を
(既存アプリ含め)一切できないってことだよね?

353:デフォルトの名無しさん
08/06/27 12:33:13
>>352
他は?
URLリンク(developers.softbankmobile.co.jp)

354:352
08/06/28 02:38:17
アプリLiveもとっくに終わってるものだと思ってたけど、
一応ゲームチャンネルとしてまだ残ってたのね、、thx

355:デフォルトの名無しさん
08/06/28 18:59:46
最近DocomoのAPIを分けるやり方が一番賢い気がしてきた
無駄に制限だらけのauとSoftbankなんて潰れてしまえ・;(`ε()゙

356:デフォルトの名無しさん
08/06/28 20:50:14
海外MIDP端末とwillcomは自由だぞ

357:デフォルトの名無しさん
08/06/30 20:51:44
S!アプリを作っているのですが、703SHにてOutOfErrorが出てしまいます。
OutOfErrorなのでリソースを削るのが定石だと思うのですが、
実機でRuntime#freeMemory()とRuntime#totalMemory()を使ってメモリ状況をモニタリングしていると、
突然freeMemory()が増える(使用メモリが減る)タイミングがあります。
起動時に大きくリソースを読み込み、4MBのヒープの3.7MB前後をしばらく推移し、
その状態でリソースを読み替えの場面を行き来するとOutOfErrorが起きやすいのですが、
freeMemory()が増えたあとは2Mあたりを推移し、上記場面でのOutOfErrorは今現在発生していません。
freeMemory()が増えるタイミングまちまちで、大きくリソースを読み込んだ後1・2分程放置することで基本的になります。
この時に起きているであろう解放を明示的に起こす方法はありますでしょうか?
読み込み時は1ファイル毎にSystem.gc()を読んでおりますが、効果はありませんでした。
MEXA Emulator及び905SHでは、大きくリソースを読み込んだ後から既に2Mあたりを推移すると言う状況です。
何かご存知でありましたらご教授をお願い致します。

358:357
08/06/30 21:01:04
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.1
MIDxlet-API: JSCL-1.2.2
を対象に開発を行っています。
他不足情報があるかもしれませんが、恐れ入りますがよろしくお願い致します。

359:デフォルトの名無しさん
08/06/30 21:45:58
GCの実装の問題だからどうしようもないと思うんだけど。
リソースのサイズ減らすしかないんじゃない?

360:デフォルトの名無しさん
08/06/30 22:39:31
んだね
あとは自分の実装を見直してみること
gc呼んでも全く効果なしなら別に原因があるとも考えられる

361:デフォルトの名無しさん
08/07/01 19:58:59
1ファイル毎など生ぬるい。毎フレームだ。

362:デフォルトの名無しさん
08/07/01 23:29:12
そんなことしてもだいたいキューに溜められるだけなんだが

363:デフォルトの名無しさん
08/07/02 01:16:07
何作ってるか知らんが一度に数メガ単位のリソース読むなんて非常識

364:デフォルトの名無しさん
08/07/04 18:08:24
待ち受けとかノベル系のアプリ作っててふと思ったのですが、長時間キー操作がないとアプリの処理速度って遅くなりません?
で、関係ないキーとか押してみるとまた速度が元に戻る…の繰り返し。
これを解決するには一定時間ごとにアプリ側に制御を渡すような処理が必要なんでしょうか?


365:デフォルトの名無しさん
08/07/04 18:52:38
電池馬鹿食いの待ち受けになりそうだなw

366:デフォルトの名無しさん
08/07/04 18:58:05
ノベルゲームってキー待ちじゃないの
入力がない間に処理が遅くなるってわかるの?

367:デフォルトの名無しさん
08/07/04 20:06:12
>>366
キャラがアニメーションしてるとかじゃねーの?

368:デフォルトの名無しさん
08/07/05 03:09:14
携帯電話の本質から考えると当然の仕様じゃないかと思う
参考までに現行の一般的な携帯の初期設定だと、
数十秒操作がないとバックライトも消えて低電力モードに移る
しかし勝手アプリでその辺りの制御をできるとは考えにくい
素人に電池馬鹿食いアプリ作られて困るのは各キャリアだからね

369:デフォルトの名無しさん
08/07/05 03:52:47

バックライトの制御くらい普通にできるんじゃないの?

370:デフォルトの名無しさん
08/07/05 14:21:04
実装はどうあれ、10ms以上ならsleep()入れてくれさえすりゃいいんだが
なんでループぶん回すかな、みんな…

371:デフォルトの名無しさん
08/07/05 15:12:59
>>369
バックライトやバイブの制御などは簡単に出来るのですが、それでアプリ側に処理を移したつもりでも、描画速度がガタ落ちしてるんですよね。
ループで延々と描画を続けるアプリはみんなこんな感じなのかな…

372:デフォルトの名無しさん
08/07/05 15:36:58
>>371
繰り返す処理の内容にもよるから一概には言えない

373:デフォルトの名無しさん
08/07/05 22:43:00
可変FPSにして余った分sleepしてる

374:デフォルトの名無しさん
08/07/06 01:24:40
>>369
少し言い方悪かったね
分かりやすく言うとCPUの省電力動作の移行に関する操作までは
できないということ
でも省電力移行する程の期間で出力が必要な実装なんて
個人的にはあまり聞いたことが無い

375:371
08/07/06 14:30:40
>>372
シューティングゲームを作っているんですが、whileでぶん回しながら
自機、敵機の描画し、Thread.sleep(50)でウェイトをかけています。
通常ゲーム中のキー操作がある場合は速度が遅くなる事はないのですが、
ステージ間のアニメーション(敵機が決められた軌道上をスクロールする)
が長い箇所の場合20秒程あるんです。
要するにユーザがキー操作をせず描画処理だけが続く時間が最大20秒ほど
あるという事です。で、この時に徐々に速度が遅くなっていき、最後らへんには
見るも無残な速度になってしまいます。
途中、関係のないキーを押下してみたりしてアプリ側に処理が移ると速度が
元に戻ります。

376:デフォルトの名無しさん
08/07/06 16:21:38
>>375
上の人も言ってるけど
ユーザビリティ的に考慮する必要は無いと思うよ
携帯のゲームやったことあるなら分かるでそ?

377:371
08/07/06 18:09:29
>>376
なるほど…。
という事は勝手アプリを作る上で、数十秒程度のアニメーションは難しいという事ですよね。
色々ありがとうございました!

378:デフォルトの名無しさん
08/07/06 18:35:42
軽いモーションならまだしも、数十秒もあるアニメーションならムービーにして再生したほうが早いんじゃねえの

379:デフォルトの名無しさん
08/07/06 21:58:33
>>376
携帯使うときって基本バックライトが消えそうになったら
適当なキーを押すという使い方が一般的だからな
もちろんマニアックな設定をしてる人以外で

380:デフォルトの名無しさん
08/07/06 22:41:13
しかしそう考えると、ゲーム開始前で決定キーの
入力待ちの状態とかってあるじゃん。
アクションゲームとかそこでデモっぽいのが
流れてたりするけど、あれも放置してると速度が
遅くなるって事なのかな?
あんま携帯ゲームしないからよく分からないや。

381:デフォルトの名無しさん
08/07/06 23:28:39
携帯ゲーの場合デモ自体流さないな。
容量の関係とかで。
せいぜいタイトルで選択アイコンが点滅かアニメするだけ。

382:デフォルトの名無しさん
08/07/07 01:48:57
色々試してみたらdoja端末だとバックライトが消えても処理は重くならず
OAP端末だと暫く待つと重くなる。適当なフリーアプリをDLしてみても同じく。
特にRPGで常に手足がてくてくなってるアプリを見てたら明らかに手足の
速度が遅くなってワロタ(笑)

まぁ機種による可能性大だが…。


383:デフォルトの名無しさん
08/07/07 11:06:56
>>371
ガベージコレクションを自動的な発生に任せていると重くなる事があるけど、それかな?
適当な所でSystem.gc()してみ?

384:デフォルトの名無しさん
08/07/07 11:09:12
BREWは動作遅くなるのが仕様
Docomo、Softbankならおかしい

385:デフォルトの名無しさん
08/07/07 11:46:57
AOPはJBlend on BREWだからなぁ

386:デフォルトの名無しさん
08/07/07 13:18:42
本当にBREWはビチ糞だな。

387:デフォルトの名無しさん
08/07/07 13:20:56
個人的にはゲリじゃなくて便秘の方かな。

388:デフォルトの名無しさん
08/07/07 19:16:54
System.gc();は毎フレームやれってばっちゃが言ってた。

東芝の場合はしらんって怒られました

389:デフォルトの名無しさん
08/07/08 21:55:08
softbankで famiJSCL 使ってる人に質問

rom の内部読み込みはうまくいくけど
外部読み込みで「romの読み込みに失敗しました」
となります
対処法をご存知の方お願いします

390:389
08/07/08 23:14:52
ちなみにMEXA_EMULATORのコンソールには

起動エラー: java.lang.SecurityException: com.j_phone.io.Connector.StorageConnection.read was denied

と表示されます

391:デフォルトの名無しさん
08/07/09 00:17:44
famiJSCLって何?

Trustedでインストールしてないとか?

392:デフォルトの名無しさん
08/07/09 00:43:52
ググったけどスレ違いすぎる

393:389
08/07/09 01:18:36
やはりここもスレ違いでしたか
失礼いたしました

ちなみに Trusted でインストールしたら無事起動しましたが
実機ではやはりエラーが出ます


394:デフォルトの名無しさん
08/07/09 15:45:08
>famiJSCL
www.geocities.jp/v904shmania/#famiJSCL
--- 引用
ファミコン&ディスクシステムえみゅ


395:デフォルトの名無しさん
08/07/09 18:45:20
スレ違いで悪いけど、famiJSCLやゲームギアのって音有りになってるが
音源はどうやってエミュレートしてるのか気になる
spf?mmf?MIDI?

396:デフォルトの名無しさん
08/07/09 19:25:10
デコンパイルしてソース読めば?

397:デフォルトの名無しさん
08/07/09 20:01:36
>>396
そのつもりだったけどfamiJSCLのダウンロード先が見つからないんだ・・

398:デフォルトの名無しさん
08/07/09 21:22:37
>>397
smaf-phrase

"famiJSCL"でググったら最初に見付かるサイトの最後の方にzipあるよ。

399:357
08/07/09 22:44:49
今さらですが、取り合えずはなんとかは出来ましたのでご報告致します。
エミュや実機の動作の差分を見ていたところ、
703SHではゲーム用インナーのコンストラクタに入るところで急激に増えていました。
このクラスのメンバには一番多く変数が定義されており、
コピーコンストラクタで変数を大量に生成した後には703SHでは増えている感じでした
(エミュ・905SH・813SHでは約900KBに対し703SHでは約2MB)。
コンストラクタに入ったときにGCを呼んでも解放されなかったため、
 new byte[Runtime.getRuntime().freeMemory()]
を2回呼ぶことで空きメモリが必要である事を主張し解放を促しました。
これにより前記の領域を解放させることが出来ました。
タイミングによってはOutOfMemoryErrorが出るので、安全策として、
ここの部分でのみErrorをcatchしています。
Errorの性質上、かなり気持ち悪い実装となりましたが、
現状ではこの方法で回避するとこが出来ました。

400:357
08/07/09 22:45:46
>>359
そのGCの実装の差異を何とか吸収出来る様なテクニックがあればと思いまして。。。

>>360
GCで解放されているものもあり、全く効果が無いわけではありませんでした。
ただ、もっと解放して欲しい領域には及んではくれませんでしたが。

>>361
1フレームに1ファイル読み込んでGCを呼んでおります。

>>363
リソース自体は300K程度で、
SH問題で動的なものもあり、
起動時に読み込むのは200K程です。



と言うわけで、怒鳴られてしまいそうな実装ですが、一応解決したました。
どうもありがとうございました。

401:デフォルトの名無しさん
08/07/09 22:55:18
(´∀`)  スパーン!
   ⊂彡☆)´Д`)っ>>399

402:デフォルトの名無しさん
08/07/10 01:21:06
この流れでエミュエミュ言うから、うぜぇと思たら…
でもこれは駄目だろ
703shの実装以前に、何かが決定的に間違ってるはず
何がどれだけメモリを食ってるのかちゃんと調べたのか?

403:デフォルトの名無しさん
08/07/10 09:52:43
循環参照でもして、メモリーリークしてるんじゃね?

404:デフォルトの名無しさん
08/07/10 10:39:35
いくらなんでも弱参照カウンタくらい実装してるだろVMが。
マーク&スイープだったりするぞ。

405:デフォルトの名無しさん
08/07/10 11:05:35
バグでガベコレがうまく働かない機種があったけど
それが703shだったかは忘れてしまった

406:デフォルトの名無しさん
08/07/10 16:57:14
>>404
いまどきの、コンパクションすら行わない速度だけを求めた糞VMが、そんなことしてるかね?
アプリが終了するときはしっかりやってそうだが。

407:デフォルトの名無しさん
08/07/11 00:39:41
S!アプリのJSCL-1.1.x以降はメモリコンパクションをサポートしているらしいが?

408:デフォルトの名無しさん
08/07/11 01:01:31
>>357はキャンバススレッドにベターッと全てを実装してたりしてなwww

409:400
08/07/11 01:12:44
>>402
自分のコードに絶対的な自信を持っているわけではありませんが、
ただ、元々Dojaからの移植でDoja版は問題なく動作をしており、
納品済みで公開されております。
Softbank版ではクライアントの方でチェックされている中で703SHのみ
OutOfMemoryErrorが出ると言う報告のものでありました。
なので、元のコード自体に決定的な間違いがあるとは思い難いと思っています。
最も、メモリ容量の推移についてを先方にチェックしてもらっているわけではないので、
報告が無いことが703SHと同様の動作をしてないことと等価では無いとも思いますが。
703SHは一旦の対応で返却してしまったため、次の機会に"何"が"どれだけ"
食っているかを調べたいと思います。
今回は大幅に増えるタイミングタイミングがメンバ変数の初期化子しか
無い状態だったので、また対応の時間もあまり無く、深く追うことができませんでした。

>>403
メンバ変数はint等の値型の多次元配列がほとんどで、
メンバに参照を保持するようなメンバは持っていません。
また、メンバ変数の配列はコンストラクタ等で生成した後は解放しないで、
新たに作ることなく使いまわしているので、リークしそうなものがほとんど無い状態です。


410:デフォルトの名無しさん
08/07/11 01:27:17
J2MEで巨大な多次元配列とな

411:デフォルトの名無しさん
08/07/11 11:51:06
いまどきのKVMならコンパクション実装してるぞ。

412:デフォルトの名無しさん
08/07/11 13:21:42
>>411
そうなの?
少なくともDoCoMoは昔は実装してたのに、901あたりから一切コンパクションしなくなった
速さ優先のもよう

413:デフォルトの名無しさん
08/07/11 18:03:36
>>412
むしろP900、N900はコンパクション無いことが明記されているよ。
普通に組んでたら断片化を起こしているはずだし、
最近の物はほとんどコンパクションに対応してると思うよ

URLリンク(www.nttdocomo.co.jp)
URLリンク(www.nttdocomo.co.jp)

414:デフォルトの名無しさん
08/07/11 19:30:29
聞きかじった情報を信じるほど怖いことはない

415:デフォルトの名無しさん
08/07/11 21:17:14
>>409
プロならカバレッジ取るなりしてちょっとは自分で考えろ
たかが数100kのソースコードだろ

416:デフォルトの名無しさん
08/07/12 20:25:32
>>413
明記されてんのは知ってるよw
だが901か902からは全社コンパクション未対応だよ
FPS60出す化け物携帯にコンパクションなんて対応してねーっての
メモリー潤沢だからコンパクションが必要な場面はほとんどないけどな

417:デフォルトの名無しさん
08/07/12 22:32:34
>>416
ソースは?
60FPSってどのアプリよ
SHの画像メモリはちゃんとコンパクション
されているみたいだが

418:デフォルトの名無しさん
08/07/12 22:59:45
どっちが本当かは知らんけど、ドコモの902以降だったらマリオくらいだと60FPS出せるね

419:デフォルトの名無しさん
08/07/13 04:59:11
コンパクションするかどうかは、プログラムを組んで確認してみればわかること。


420:デフォルトの名無しさん
08/07/13 06:07:08
コンパクションしてるかってどうやって検証すんの?

421:デフォルトの名無しさん
08/07/13 09:43:08
1M 10KB 1M 10LB

422:デフォルトの名無しさん
08/07/13 09:43:38
1M 10KB 1M 10KB
って確保してうめうくしたあと、GCして、その後2Mとろうとしてみればいいんじゃね?

423:デフォルトの名無しさん
08/07/15 03:04:56
■■■■■■■■   ■=new int[1048576/4]
■□■□■□■□   □=null
System.gc()
new int[2097152/4]

424:デフォルトの名無しさん
08/07/16 03:15:57
なるほと理解した

425:デフォルトの名無しさん
08/07/17 01:56:42
ろれつが回らない口調が流行ってるのか?

426:デフォルトの名無しさん
08/07/17 02:48:40
解放しちゃらめぇ~

427:デフォルトの名無しさん
08/07/17 08:09:58
はーいたらちゃんです

428:デフォルトの名無しさん
08/07/17 22:43:45
プログラマーは赤ちゃん返り

429:デフォルトの名無しさん
08/07/19 11:18:15
現在、ソケット通信を行うS!アプリを作成中です。
エミュレーターでは動作しサーバープログラムと通信できるのですが、
実機(921SH)では下記の記述部分でSecurityExceptionが発生してしまいます。

Connector.open("socket://[IPアドレス]:[ポート番号]");

jadファイルとMANIFESTファイルには
MIDlet-Permissions: javax.microedition.io.Connector.socket
と記述しています。

エラーの内容は javax.microedition.io.Connector.socket was denied です。
原因をご存知であれば、ご教授お願い致します。

430:デフォルトの名無しさん
08/07/19 12:57:23
>>429
Socketアクセス出来ればメールも詐称しまくり送りまくりだよねえ。
フリーソフトにマルウェアとして仕込めば自分の手を汚さずに。

431:デフォルトの名無しさん
08/07/19 13:52:14
socket通信はできないんですか?

432:デフォルトの名無しさん
08/07/19 13:52:41
>>430
なぜわかった?w

433:デフォルトの名無しさん
08/07/19 13:53:52
>>431
そういうことをやりたいならS!なんて忘れることだ。

434:デフォルトの名無しさん
08/07/19 13:59:36
URLリンク(k-tai.impress.co.jp)
これはどういう意味なんでしょうか?

435:デフォルトの名無しさん
08/07/19 22:18:58
TCP/IP直叩き出来るようになる。

436:デフォルトの名無しさん
08/07/19 22:42:22
許された人達には

437:デフォルトの名無しさん
08/07/20 00:02:57
>>432
お前みたいなヒヨッコがクラッカー気取りで変なもの組もうとするから
規制がアホみたいに厳しくなるのですよ

438:デフォルトの名無しさん
08/07/20 09:35:52
>>436
あまりにもアレすぎて、ほとんどの人たちは許されませんでした

439:デフォルトの名無しさん
08/07/21 00:43:40
一部の公認アプリのみがsocket通信可能ということですか?

440:デフォルトの名無しさん
08/07/21 02:36:48
>>437
もともと禁止されていたんです。
私のせいで規制されたような言い方はやめてくださいw

441:デフォルトの名無しさん
08/07/21 02:43:50
>>439
こんなところで質問する暇があるなら職場の先輩にでも聞くといい

442:デフォルトの名無しさん
08/07/21 15:34:16
ググれカスで十分だ

443:デフォルトの名無しさん
08/07/22 00:41:55
socket通信?仕様書も読めないのか?
日本語とgoogleの使い方から勉強しろよ。

444:デフォルトの名無しさん
08/07/22 01:19:17
ググれカスがわからないからgooできいてきました

445:デフォルトの名無しさん
08/07/22 19:19:31
クマー!!

446:デフォルトの名無しさん
08/07/22 21:06:19
TextSS


447:デフォルトの名無しさん
08/07/22 21:12:17
>>439
 そういうことです。
sに相談してくださいな

448:デフォルトの名無しさん
08/07/23 15:05:59
Softbank端末で、S!アプリからモーションコントロールセンサーを使いたいと思って調べてみたんだが、
そのAPIに対応している端末が904SHしか見当たらない。
センサーそのものは搭載していても、MEXA経由でアプリにインターフェース公開しているのが
904SHだけしかないって理解でOKですか?
だとしたらなんとも残念だ。

449:デフォルトの名無しさん
08/07/24 11:51:26
>>そのAPIに対応している端末が904SHしか見当たらない。
センサーそのものを搭載している端末で出来なかったの?
どういう情報で"見当たらな"かったのだろうか

450:デフォルトの名無しさん
08/07/24 15:38:32
>>449
Softbank開発者向けのサイトMobile Creation(URLリンク(creation.mb.softbank.jp))で
「端末情報 MIDP2.0対応端末編 PartXX」のPDF資料を一通りさらったんだけど
「モーションコントロール対応可否」という項目が×ばかりだった。

たとえばセンサーは確かに搭載されているはずの921SHでも×になってた。

451:デフォルトの名無しさん
08/07/28 23:17:52
MEXAエミュレータでソフトキーを押すと、keyPressのほうにも通知がくるのはバグ?

452:デフォルトの名無しさん
08/07/29 09:31:32
>>451
バグではないよ。
ただ、実機だと端末によってキーコードが違うんじゃなかったっけ?

453:デフォルトの名無しさん
08/07/30 01:38:10
違うよ

454:デフォルトの名無しさん
08/07/30 10:51:15
iアプリのcom.nttdocomo.util.Phoneにあたる機能って
S!アプリにはないんですか?
USIMのIDが取得したいんですけど。

455:デフォルトの名無しさん
08/07/31 22:35:05
>>454
無い。
というかDojaだってUSIMのIDなんて取れない。

456:デフォルトの名無しさん
08/07/31 23:59:45
そのものじゃないけど、それに準じた固有IDは取れるじゃん。

457:デフォルトの名無しさん
08/08/01 21:30:18
準じとらん。
USIMのIDと端末のIDじゃ根本的に別物だろう。紐付くわけでもなし。

458:デフォルトの名無しさん
08/08/02 05:36:46
>>455
ドコモの場合、中から取れるかどうかは知らんが、外を経由すれば取れる。
URLリンク(www.limy.org)

459:デフォルトの名無しさん
08/08/02 06:41:05
URLリンク(www.enjoykorea.jp)

460:デフォルトの名無しさん
08/08/02 20:25:36
>>457

紐づいてるよ?
契約者ごとと端末ごとの2種類とれるよ?
単に元の値が類推できないようにはなってるけど。

461:デフォルトの名無しさん
08/08/05 19:34:49
S!アプリ(メガアプリ)からmexaの移植の話があるんだが、
ぶっちゃけコンパイラだけ変えて通せばOKなわけ?

そのままだと、折角だから品質向上させろとNGにされるんだろうけど...

462:デフォルトの名無しさん
08/08/05 23:57:09
>>461
言ってる意味が分からない。

463:デフォルトの名無しさん
08/08/06 00:07:43
>>461
Javaなのにコンパイラ変えてどうする

464:デフォルトの名無しさん
08/08/06 02:18:23
eclipseのコンパイラとか?

465:デフォルトの名無しさん
08/08/06 22:17:58
ぶっちゃけコンパイラっていうコンパイラがあるって話だろ

466:デフォルトの名無しさん
08/08/07 10:09:41
>>465
無い
というか意味不明
日本語でOK

467:デフォルトの名無しさん
08/08/07 16:21:28
SDKと言いたいのだろう?

わざわざmexaにコンバートしないでも、jsclのまま出しときゃいいじゃん。
それとも最近のは下位互換性なかったりするの?

468:デフォルトの名無しさん
08/08/07 17:18:41
eclipseでJConnector使いたいんだが、パス通してもNoClassDefFoundError: JConnectorがでで強制終了。何が悪いんだ?

469:デフォルトの名無しさん
08/08/07 17:35:08
>>468
JDKが新しいと、デフォルトパッケージの指定が出来ないので、
JDK1.3にするか、オプションつけるかなにかして対応しないといけないと思います。

(オプションで回避できるか、要調査ですが、無理だったような気もします。)

470:デフォルトの名無しさん
08/08/07 18:34:17
>>467
どっちもMIDP
コンバートなんて御大層なことは無い
JSCLの一部はMEXAでもUnit1に入ってるから
下位互換性があると言えばあるけど中途半端

471:デフォルトの名無しさん
08/08/11 13:33:19
すごい初歩的な質問なんだと思うんだけど、
そもそもMEXAエミュレータって
stubclassesに含まれているクラス以外を
参照してもNoClassDefFoundErrorになるのかな?

環境はEclipse 3.4、JDK1.4.2、MEXAエミュ2.1

472:デフォルトの名無しさん
08/08/12 01:06:44
>>471
イミフ
stubclassesに含まれて無いのならどこに含まれてる?
自分で定義したのならともかく
定義していないならそもそもコンパイルエラー

473:デフォルトの名無しさん
08/08/12 21:15:22
今、S!アプリで拡大縮小機能を自作していようと思い、作っているのですが
なかなかうまくいきません。以前、Cで同じメソッドを作ったのでそれを参考にしたのですが、そのときはchar型のポインタ配列を、freadで画像から読み込ませて
変形させたら何とか出来たのですが、Imageクラスの中身が何なのかわからないのでどうやって
ほかの型にデータを渡して変形させればいいのか皆目見当がつきません。
アドバイスをください。お願いします。

474:デフォルトの名無しさん
08/08/12 21:45:45
>473
MIDP2.0のAPIリファレンスくらい読みましょうよ
そしたら皆目見当がつかないなんてことないから

475:デフォルトの名無しさん
08/08/13 02:51:53
>>473
Cとかcharとか言ってるとこを見ると、
Imageオブジェクトの中の人に生でアクセスしたいんだろうけど、
それはムリ。
それができないようにクラス設計されてるんだし。

>474 のいうように、まずはリファレンス見てから考えれ。
・・というか、MIDPだけではムリじゃなかったっけ。

476:デフォルトの名無しさん
08/08/13 03:53:57
>>473
RGBの配列を取り出して、変形して、描画すればよい。


477:デフォルトの名無しさん
08/08/13 10:53:35
Image.getRGBで取得すればいい
んで、Graphics.drawRGBで描画
ただ、速度は遅いけどね

478:デフォルトの名無しさん
08/08/13 16:48:07
あれ、、、MIDPってリフレクションとかできないの?
どうすれバインダー。

479:デフォルトの名無しさん
08/08/13 17:52:52
そもそもリフレクション使う場面がない。設計からやり直せ

480:デフォルトの名無しさん
08/08/13 19:06:25
URLリンク(www.itmedia.co.jp)

481:デフォルトの名無しさん
08/08/15 16:14:53
>> 479
J2SEで作ってたものを移植しようとしてたんだけど
即効でつまづくね。。。

ディープコピーとかも
どうすんだこれ、、、


482:デフォルトの名無しさん
08/08/15 19:21:31
すいません質問させてください。
下記のリンク先にあるサンプルプログラムを実行したのですが、レコードストアがうまく動いていないようなんです。

サンプルプログラムではハイスコアを保存するようになっているはずなのですが、次回起動時にはその値がおかしくなってしまいます。
例えば570点を取っても、次回起動時には58点となってしまいます。
URLリンク(appget.com)

実行環境は同URL内の「第2回 はじめてのオープンアプリ(Java)の作成」に従って、
JDK 1.5とJ2ME Wireless Toolkit 2.2を使用しました。

原因もしくは対処法をご存知でしたら是非教えてください。よろしくお願いします。

483:デフォルトの名無しさん
08/08/15 19:29:34
>>482
byteで保存しているからだね
Intでやろう

484:482
08/08/15 20:16:09
>>483
無事解決しました!
ありがとうございました。


485:デフォルトの名無しさん
08/08/15 20:48:54
うーん、サンプルプログラムさんとしては、その辺は自己解決するように
仕向けているような気がするのは気のせいか。
ということで>>482はなぜbyteでは58点になってしまうのかレポート提出すること。

486:482
08/08/15 20:52:43
>>485
byteは1byteしか保存できないから256以上だと切り捨てられてしまうってことでいいんでしょうか?
今回の場合だと
570 - (256 * 2) = 58
ってことでしょうか?

487:デフォルトの名無しさん
08/08/15 23:44:16
>>481
ディープコピーなんて自前に決まってるだろ。
というかSEのプログラムをどうやってCLDC+MIDPに移植するんだ?
CDC+PPならともかく。
SEにあってCLDCにないものは基本全部自前だぞ。

488:デフォルトの名無しさん
08/08/16 00:07:07
・;(`ε()゙

489:デフォルトの名無しさん
08/08/16 17:21:07
>>486 OK。分かってしまえば簡単なことなんだけどな。

490:デフォルトの名無しさん
08/08/19 07:49:46
米Sun、Java ME向けUIライブラリをオープンソースに
URLリンク(opentechpress.jp)

Lightweight UI Toolkit(LWUIT)
URLリンク(lwuit.dev.java.net)

491:デフォルトの名無しさん
08/08/20 00:00:34
前からdev.java.netになかったけ?

492:デフォルトの名無しさん
08/08/20 02:16:29
WTKのエミュで動かせなかったのでw-zero3で動かした。
とくに問題はなかった。

493:デフォルトの名無しさん
08/08/23 23:42:47
オープンアプリの実行環境についてなんだけど
KCP端末とKCP+端末では性能が格段に違ったりする?
KCP+端末しか持ってないので旧機種との性能差が気になってる
10fpsも違ったりすることは無いよね?
知ってる方情報よろすこ

494:デフォルトの名無しさん
08/08/24 00:18:17
KCPってそもそもソフト側のプラットフォームじゃなかったっけ?
速度とかはのっけてるチップの問題だろ。

495:デフォルトの名無しさん
08/08/24 01:40:38
>>494
組み込みだからソフトっちゃソフトもだろうけど
デュアルコア採用だとかグラフィックにATIのチップセットだとか
言う噂を聞いたもんだからさ
そもそも基幹部分のチップセットはKCP時代からqualcomm製で統一されてるんでない?

496:デフォルトの名無しさん
08/08/24 10:43:35
>495が正しい。
チップセットのMSM7500(ARM9+ARM11のデュアルコア+IMAGEON(ATI))があり、
それに最適化したOSがKCP+。
KCP+世代内でもチップセットが進化する可能性はあるかもしれないけど。

で、KDDIはKCP+はKCPに比べて10倍早い!とか言ってた気がするけど、
たぶん3Dグラフィックについてのことだろう。
2Dのみのオープンアプリでそこまで速度差があるとは思えない。

でも某アプリ製作者のブログ見てたら結構な速度差があるとは書かれてた。
10fpsてのは基準が分からんし何とも言えないけど。

497:デフォルトの名無しさん
08/08/25 02:47:35
>>493
ハード性能は格段に上がってるけど、
OSやKCP+部分が足引っ張って、プラスマイナス0
って、だいぶ前に中の人に聞いたよ。


498:デフォルトの名無しさん
08/08/25 19:39:07
そんなにオーバーヘッドがあるのかそれともただの屑なのか・・・。

499:493
08/08/26 00:48:30
>>496-497

劇的に性能が上がってる分けでも無いのね
auはオープンアプリを拡張しないだろうし
ATIのチップ乗ってても一般人は恩恵に与れないわけだ

500:デフォルトの名無しさん
08/09/01 21:27:49
ファミコン版の三国志みたいなやつを
通信対戦できるようなゲームを作ろうと思う。
需要あるかな。

501:デフォルトの名無しさん
08/09/01 22:30:07
作り始めて技術的な問題が出てきたらまたおいで

502:デフォルトの名無しさん
08/09/02 01:09:37
>>500
そういうのはコーエーにやらせとけばいいの。

503:デフォルトの名無しさん
08/09/04 07:05:37
HTTP通信するアプリなんですが、実機で動作させると、下のソースの
c =(HttpConnection)JConnector.open(url, JConnector.READ);
でjava.io.IOExceptionになります。
POSTメソッドだとネットワークに接続しますか?と聞かれて通信がうまくいくのですが、GETメソッドだと聞かれず、IOExceptionとなります。
何か知ってる人がいたら助けてください。ちなみに実機は910Tです。

try {
try{
c =(HttpConnection)JConnector.open(url, JConnector.READ);
}catch (Exception e) {
// TODO: handle exception
info=e.toString();
}
c.setRequestMethod(HttpConnection.GET);
in =c.openInputStream();
out=new ByteArrayOutputStream();
rc = c.getResponseCode();
if (rc != HttpConnection.HTTP_OK) {
info2=Integer.toString(rc);
throw new Exception();
}
while (true) {
size=in.read(w);
if (size<=0) break;
out.write(w,0,size);
}
out.close();
in.close();
c.close();
return out.toByteArray();
}

504:デフォルトの名無しさん
08/09/05 20:24:07
>>503
情報が足りないので予想だが、
close()の記載がここだけだとするとclose()されてない可能性があるかと。

//修正ソース
try{
  c = Conector.open();
  in = c.openInputStream();
  in.read();
}catch(Exception e){
  System.out.println(e.getMessage());
}finally{
  //例外が発生してもしなくても最後に必ず実行される
  if(in != null) in.close();
  if(c != null) c.close();
}
こんな感じでfinally{}内でclose()したらどうだろ?
すでにしてるようならわからん。

505:デフォルトの名無しさん
08/09/06 14:18:13
>>504
改行制限のため省略しましたけど、closeはちゃんと行ってます。
現状として、ビジネスプロバイダforS!アプリのサーバにアップしてるのですが、そこで配布してるJConnector.classを使うと実機でGETメソッドがうまく使えなくなります。
Connectorを使うならGETメソッドでもうまく通信できるのですが、これだと通信と個人情報取得の両方の利用ができなくなります。
だれかここら辺の事詳しい人いませんか?

506:デフォルトの名無しさん
08/09/06 15:00:25
過去ログpart5に出てた。この人はこれで解決してる。

ビジネスプロバイダforS!アプリの基準では
>アップロード時の設定ファイルに接続先ドメインを書かなければならない

507:デフォルトの名無しさん
08/09/06 15:18:51
>>506
設定ファイルには接続先ドメインを書いてます。
書き方が悪いのかな?けどそれだとなぜPOSTメソッドの場合だけ成功するのかがわからない。

508:デフォルトの名無しさん
08/09/06 15:58:54
そのJConnectorの開発元や配布元へは質問出してるの?

509:デフォルトの名無しさん
08/09/06 18:59:30
ってかココ(URLリンク(support.sappli.com))と、
「各種説明」の内容は読んだ上で質問してますか?
・・・いや、俺はID持ってないから「各種説明」に何が書かれているか知らんけど。

ビジネスプロバイダ契約してるなら、メールで質問投げればちゃんと返信来ますよっと。

510:デフォルトの名無しさん
08/09/07 19:33:28
>>509
もちろん読みましたよ。
そんじゃそっちに質問してみます。


511:デフォルトの名無しさん
08/09/08 15:45:43
以前もここで聞いた事があるのですが、オープンアプリの実行中に一定時間キー入力が
なかった場合、描画速度が極端に落ちてしまいます。
whileでループさせてpaintに飛ばして画面に描画…という単純なプログラムです。
同じ仕組みのアプリでも、DoCoMo端末、SoftBank端末では一切速度が落ちません。

で、前回質問させて頂いた際、DoCoMoとSoftBankは大丈夫だけどオープンアプリは
仕様だから仕方ない、という結論を頂いたのですが、最近mo○oゲームのオープンアプリ版
をダウンロードしてみた所、どれだけキー入力しても画面上の描画速度が一切
落ちていない事に気付きました。

一体どんなテクを使っているのでしょうか??
本人に質問できないチキン野郎ですみません。

512:デフォルトの名無しさん
08/09/08 17:55:29
伏字すぎてなんのことだかわからん
そもそもなぜ伏字にする必要がある?

513:デフォルトの名無しさん
08/09/08 18:58:42
アプリからネイティブプログラムの操作をして
音声通話の発信が出来そうなのですが
通信状態の判断をして場合によっては切断することは可能でしょうか?
音声通話の発信をして相手がすぐに出れればそのまま通話
もし相手側が話中だったり電話に出ない状態が15秒くらい続けば
一度切断して10分位してから再発信させたいです

通話しているときはアプリはサスペンド状態らしいです
通話が終了すればレジュームすると記載されていました
ということは通話状態なのかそうでないのかは判断できるってことですよね
発信から15秒後にアプリがサスペンド状態でなければ
切断して待機して10分後に再発信というのが理想です
Q.1通話状態の判定
Q.2発信していた音声通話を”切断”する(アプリがアクティブであればですが)
どなたかよろしくお願いいたします


514:デフォルトの名無しさん
08/09/08 19:07:33
アプリから電話なんてかけられたっけ?・;(`ε()゙

515:デフォルトの名無しさん
08/09/08 19:17:46
>>513
どこまで調べたのかもう少し詳しく
あと、キャリアはどこか

516:デフォルトの名無しさん
08/09/08 20:02:32
docomoでの実現をを目指していましたが
docomoに電話で確認したけどわからないままです
ていうか「作ろうiアプリ」のページに記載されていないことは答えませんってことでした
調べたところDoJa-2.0でネイティブ機能の呼び出しが出来るようになりましたが
当時はバックライトの点滅だけでした
しかしDoJa-3.0になって音声通話機能の呼び出しにも対応したようです
手持ちのMIDP解説本にはダイヤラを呼び出して音声通信の発信までは解説されているのですが
”状態判定”と”切断”については記述されていません
ネイティブ機能の呼び出しはNativeCanvasクラスで呼び出すと記載されています
iアプリ対応解説本にはネイティブ機能はPhoneSystemクラスで呼び出すと記載されています
(iアプリ対応の解説本は少々古いのでバックライト点滅などしか解説していないのですorz)
しかしdocomoのサイトでダウンロードして見れる技術解説には
DoJa-3.0以降のバージョンで音声通話機能の呼び出しも可能になったと記載されていました
ダイヤラを使って発信は可能なのですが切断がわかりません
実現できるのであればキャリアはsでもauでも構わないです
よろしくお願いいたします

517:デフォルトの名無しさん
08/09/08 20:21:59
Docomoはスレ違いだが・;(`ε()゙
多分電話かけるのは公認コンテンツプロバイダじゃないと無理。
会社として企画書持ってDocomoへGO!
BREWならできると思うけど、それも会社として企画書持ってauにGO!

他のキャリアはそもそも無理だと思うが、芋場あたりはシラネ。

518:デフォルトの名無しさん
08/09/08 22:52:48
SoftbankならPhoneConnectionクラスで
・電話をかけること
・通話が終了した理由の取得
はできるが、切断は無理かと

519:デフォルトの名無しさん
08/09/08 23:24:22
>>517
>>518
レスありがとです
アプリでは無理なのかもしれませんね
私が実際に普段使ってるソフトはパソコンと携帯をusb接続して
パソコンから携帯を制御し発信→状態確認→通話もしくは切断、再発信してるんです
やっぱりパソコン接続から切り離すのは難しいのかもしれませんね
パソコンソフトで発信切断できたので携帯単体での動作を目指したのです
もし何かわかりましたらまたお願いします
ありがとうございました

520:デフォルトの名無しさん
08/09/09 03:00:42
>私が実際に普段使ってるソフトはパソコンと携帯をusb接続して
>パソコンから携帯を制御し発信→状態確認→通話もしくは切断、再発信してるんです

なんでそんなかけ方してるのか、の方が興味ある

521:デフォルトの名無しさん
08/09/09 03:05:57
>>520
人に聞くときは自分から言えよ
あなたのやり方をまず聞いてから答えるよ
それともネタ聞き出すだけの泥棒くんかw


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch