[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/03 10:29 / Filesize : 229 KB / Number-of Response : 913
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:36:05 ]
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。
Doja、Starいずれも扱います。質問時には明記してください。
次スレは>>980が宣言して立ててください。

※DoCoMo以外は下記スレへ。
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/

■ iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレッド116【歓迎】
ttp://pc11.2ch.net/test/read.cgi/tech/1213347130/

■関連スレ
【日本携帯】Mascot Capsule/Micro3D【標準】
ttp://pc11.2ch.net/test/read.cgi/tech/1117773530/

641 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 20:33:49 ]
今iアプリのグループ製作をしていて俺が音楽部分を担当してるんだが、原因不明のバグにぶち当たったので知恵をお借りしたい。


クラスをファイルごとメインキャンバス(MainCanvas)と音楽再生用(MainMusic)に分けて、グループ製作で統一しやすいようにした。
それでメインキャンバス側から再生用ファイルにあるメソッドを呼び出して、キー操作で音楽の再生、停止ができるようにと考えている。

で、結果再生の方は上手くいったのだが停止ボタンを押して停止させようとしたら例外が発生して落ちる。
もう少し具体的に書くと


音楽再生のファイルでsoundを取り込み、use→AudioPresenter型の引数に音楽をセット。
メインキャンバス側で、mc = new MainMusicしたあとのキー1押したイベントでmc.play();
これは成功だった。


その音楽が鳴っている状態でキー2押したイベントにmc.stop()を割り当て、実際に停止させようとしたら例外発生で落ちる。
例外はMedia sound is not setというもの。

マジでこのエラーで今遅れてる状態なのでどなたか原因と、できれば対処法も教えてください。

642 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 20:52:28 ]
状況がわからん

とりあえずキーイベント内での音楽再生とかやめれ

643 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:01:58 ]
mc.stop() 内で AudioPresenter.getAudioPresenter() したりしてないよね

644 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:44:06 ]
そもそもの設計が可笑しいってのは無し?

645 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:47:46 ]
どこまでをメインキャンバスで処理して、どこからをMainMusicのメソッドで処理してるかいまいち不明だけど、
mc.play() の時に生成したインスタンスをmc.stop() の時のmcに渡していないだけじゃないだろうか。

646 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:57:35 ]
多分ソース見たら速攻直せると思うんだがw

mcを毎回作り直したりしてないだろうか。

647 名前:641 mailto:sage [2009/07/09(木) 21:59:46 ]
皆さん色々と意見ありがとうございます。
やっぱり文じゃ伝わらないので明日ソースを上げます。

648 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:08:05 ]
とりあえず、再生した時のAudioPresenterと
停止する時のAudioPresenterが違う物のような気がする。

649 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:29:11 ]
Java5で追加された機能をJava4でも使えるようにするという
JSR14はiアプリでは使えないんですか?



650 名前:デフォルトの名無しさん [2009/07/10(金) 05:02:50 ]
チャットでデコレル
www.youtube.com/watch?v=fHTq_NV_joA&feature=channel_page

651 名前:639 mailto:sage [2009/07/10(金) 09:28:45 ]
>>640

すみません。

full.exe は iαppli Development Kit for Star-1.0 インストールフォルダの
iDKStar1.0\bin\full.exe です。

652 名前:640 mailto:sage [2009/07/10(金) 11:33:03 ]
>>651
Starの環境がなかったので気付きませんでした。

Javaがどうのというよりエミュレータのバグっぽい気がします。
iαppli Development Kit for Star-1.1 にアップデートしてみてはどうでしょうか。


653 名前:641 mailto:sage [2009/07/11(土) 22:15:43 ]
遅れたけどコードUP カキコできる行の関係で細かいところははしょってます。
これがMainCanvas.java
class MainCanvas extends Canvas
{
public MainCanvas(){
setSoftLabel(Frame.SOFT_KEY_1,"再生");
setSoftLabel(Frame.SOFT_KEY_2,"停止");
}
public void processEvent( int type, int param ) {
if( type == Display.KEY_PRESSED_EVENT ) {
Music ongaku = new Music();
if( param == Display.KEY_SOFT1 ) {
try { ongaku.saisei(i);
}catch(Exception e){
Dialog dialog = new Dialog(Dialog.DIALOG_INFO, "エラー");
dialog.setText("エラーが発生。");
dialog.show();
IApplication.getCurrentApp().terminate();
}
}
if(param == Display.KEY_SOFT2){
try{
ongaku.teisi();
}catch(Exception e){
Dialog dialog = new Dialog(Dialog.DIALOG_INFO, "エラー");
dialog.setText("エラーが発生。");
dialog.show();
IApplication.getCurrentApp().terminate();
}
}
}

654 名前:641 mailto:sage [2009/07/11(土) 22:18:58 ]
続いてMainMusic.java
//外部から呼び出される音楽再生のためのメソッド
class Music implements MediaListener{
MediaSound sound[] = new MediaSound[2];
AudioPresenter ap = AudioPresenter.getAudioPresenter();
public void saisei(int i){
//音楽を入れるための配列
sound[1] = MediaManager.getSound("resource:///mld/bgm1.mld");
sound[0] = MediaManager.getSound("resource:///mld/bgm2.mld");
try {
sound[i].use();
}catch(Exception s){
Dialog dialog = new Dialog(Dialog.DIALOG_INFO, "エラー");
dialog.setText("saiseiでエラーが発生。");
dialog.show();
IApplication.getCurrentApp().terminate();
}
ap.setSound(sound[i]);
ap.play();
}
//停止のためのメソッド
public void teisi(){
try{ap.stop();
}catch(Exception e){
Dialog dialog = new Dialog(Dialog.DIALOG_INFO, "エラー");
dialog.setText("teisiでエラーが発生。");
dialog.show();
IApplication.getCurrentApp().terminate();





655 名前:641 mailto:sage [2009/07/11(土) 22:20:51 ]
エラーを吐くのはMainMusic側のteisi()の部分。
エラー内容がMedia sound is not setだった。
どなたかエラー原因と対処方法を教えてくださいまし

656 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:34:00 ]
>653
public void processEvent( int type, int param ) {
if( type == Display.KEY_PRESSED_EVENT ) {
Music ongaku = new Music();
} ←どこにもongaku を渡してないから、以降はongaku への処理が全部不正に。

どう見てもこれが原因じゃんか。

657 名前:648 mailto:sage [2009/07/11(土) 23:03:46 ]
だから言っただろう

658 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 23:25:01 ]
限りなくぬるぽに近いな

659 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 00:14:44 ]
Canvas側も音楽側も平等におかしいので
>>644が正解



660 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 00:34:43 ]
sound[]は必要ない

661 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 09:54:41 ]
例外を表示すればいいのに

662 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 12:16:59 ]
原因:
>>648

対策:
再生・停止させる度にMusicクラスをNewするのをやめる。
AudioPresenterは一度取得するだけでよい。


663 名前:641 mailto:sage [2009/07/13(月) 18:50:58 ]
皆さん指摘ありがとうございました。
ひとまず>>648がヒントになり無事解決できました。

664 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 23:51:49 ]
Doja5.1です。
Audiopresenterを2つ使い、音楽の同時再生を行っているのですが
エミュレータ上で実行するとノイズがひどく、聞くに堪えない状況です。
実機上ではノイズも無く再生されるのですが、エミュレータ上でも
ノイズ無く再生することは出来ないでしょうか?
ファイルの型式はmldで、Audiopresenterにはポート0とポート1を与えています。
エミュレータのサウンド設定も弄って見ましたが改善はされませんでした。


665 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 01:25:58 ]
>>664
OSをVistaからXPに変えるといいよ


666 名前:664 mailto:sage [2009/07/14(火) 03:11:30 ]
>>665
OSはXPを使っています。
OSの話が出るということは、プログラム側では無くシステム絡みの話になってくるんでしょうか。

追記になりますが、先ほど試しにエミュレータを2つ起動し、それぞれで1つずつの音楽を鳴らして見ました。
結果としては、1つのエミュレータで2つの音楽をならした時と同じく、ノイズが入りました。
なにか参考になるでしょうか。

667 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 05:00:02 ]
俺もXPだけど、音はめっちゃくちゃになるよ。
ノイズじゃなくて、再生スピードが速くなったり遅くなったり、ブツブツ途切れたり。


668 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 09:12:46 ]
>>666
音楽って、MIDI系?WAV系?
MIDI系はエミュでまともになるけど、WAV系の音はまともに再生されないよ。
少なくとも俺の環境ではw

669 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 12:19:51 ]
>>665 = >>530 = >>455 = >>407
ヒントは全角英数文字



670 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 12:25:09 ]
>>667
俺のでは途切れはしないけど、テンポが速くなったり遅くなったりする。
Wavは3音使うと遅延が起きる。
StarエミュだとMSGSしか鳴らない。

671 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:14:08 ]
OSを2000に変えるしかないね


672 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:17:17 ]
doja5.1のキット上でキーリスナセットして十字・決定キー拾いたいんだけどうまくいきません
ダイアルキーは拾えるんだけど、ソフトキーと十字・決定キーだとkeyPressed()自体呼び出されません
なぜかdoja1.0のキット上だと十字・決定キーを拾えるんですが解決策はありますか?
リファレンス見るかぎりでは、dojaのバージョンによって挙動が変わる部分ではないのですが。

673 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 23:03:10 ]
>>672
サンプルのプロジェクトは動く?

674 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 23:09:07 ]
>>673
動きます。

675 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 23:46:52 ]
>>674
じゃあDoJaのバージョンは関係ないんじゃねえの?
MIDPと混同してないかチェック

676 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 00:12:30 ]
>>675
パネルとキーリスナのテンプレ使って以下のとこだけ変えて動かしたらKEY_SELECTは受け取れた。
だけどKEY_SOFT1とKEY_LEFTが受け取れない。doja1.0でもdoja5.1でも同じだった。

public void keyReleased(Panel panel, int key) {
switch (key) {
case Display.KEY_SELECT:
this.setTitle("KEY_SELECT");
break;
case Display.KEY_SOFT1:
this.setTitle("KEY_SOFT1");
break;
case Display.KEY_LEFT:
this.setTitle("KEY_LEFT");
}
}
}

677 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 01:01:20 ]
keyに何が入ってるかダンプくらいさせたら

678 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 01:46:20 ]
開発ドキュメントを読んでないヤツ大杉。

【DoJa-2.0】
・方向(上下左右)キーはキーイベントを発生しません。
これらのキーは、スクロールおよびフォーカス制御のために
常にPanelで処理されます。


679 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 02:07:07 ]
>>673 >>675 >>677 >>678
ご迷惑をお掛けしました。的確な回答を頂けたことに感謝します。



680 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 02:56:41 ]
ソフトキーは
public synchronized void softKeyReleased(int key) {
  if (key == Frame.SOFT_KEY_1) {
  }
}
こんなんだったはず

681 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:07:36 ]
キー周りとか1回組んだら使いまわしだし、忘れるよなw

682 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:55:49 ]
赤外線通信を多用するのですが、確認ボタンを押す回数を減らす(または無くす)方法はありませんか

683 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 14:57:21 ]
Doja3.5プロファイルで開発していて、実機はN905を使ってます。
一回目のAudioPresenter#play()を呼び出してから制御が返るまで、
時間がかかって、2回目以降の呼び出しでは早めに制御が返って来るようです。
具体的には、1回目は500msぐらいかかりますが、2回目以降の呼び出しは20ms未満でした。

1回目のplayで時間がかかってしまう理由はなぜでしょうか?
アプリ起動後、最初のタイトル画面でBGMを鳴らすときにモタついて、
別スレッドで走ってる描画処理に影響がでて画面がガタついてしまいます。
2回目以降のタイトル画面表示はスムーズにいきます。

最初のAudioPresenter#play()は時間がかかるものと諦めて、
無音のBGMを再生する処理とかを最初に入れるべきでしょうか?

684 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:41:11 ]
音源回路とスピーカーに電源が供給され準備ができるまでに500msかかるから

685 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:43:03 ]
ちなみに、マルチタクス切り替えからアプリに復帰した後の初めの再生も時間がかかる
理由は同じ

686 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 17:13:19 ]
>>684-685
回答ありがとうございます。
ちなみに、playのタイミング以外に、音源回路とスピーカーに電源供給を促し、
完了するのを待つような処理は可能でしょうか?
無音データを再生させるような処理をするか、最初の1回は諦めるしかないでしょうか?

687 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 17:24:09 ]
news.donga.com/fbin/output?n=200907150148&top20=1           記事入力 2009-07-15 02:59
“ナロ号発射直接見に行こう” 高興(コフン)は今‘部屋を手に入れる戦争’

■韓国最初宇宙ロケット発射D-15…現地表情

民宿はもちろんテントまで品切れになって

遊覧船予約も3日ぶりに終わり

肉眼観測するビューポイント選定

駐車場-特設舞台新設奔走

30日韓国最初宇宙ロケット‘ナロ号(KSLV-I)’発射を控えて韓半島南の端すそ全南(チョンナム), 高興
郡(コフングン)がうきうきしている。 発射当日を前後して, 峰来面(ポンネミョン),ナロ宇宙センター近隣
宿泊施設予約がほとんど終わって, 時宜外れの‘部屋を手に入れる戦争’も広がっている。 ‘宇宙都市’
高興郡(コフングン)は大韓民国の夢と希望をのせて宇宙へ行くナロ号発射祝い行事準備で忙しい。
ロケットが空へほとばしる場面を肉眼で見られる‘ビューポイント’を選定して発射特需を生かすために
観光商品も作った。


“残った部屋がないです。 民宿はもちろんで海水浴場モンゴル式テントまで….”

全南(チョンナム),高興郡(コフングン),影南面(ヨンナムミョン)ナムヨルリ。 この村はナロ宇宙センター
へ直線距離で15km離れているが, 肉眼で宇宙センター建物が見えるほど展望が良いところだ。
この村のマ・ヨンマン次長(63)は “29日から31日まで部屋を探し当てようとする人々のために大変な苦
労をしているが, それでも気持ちは良い”と笑った。

こちらは夏ならば10世帯余りが民宿を運営する。 先月開場した海水浴場には避暑客のためのモンゴ
ル式テント60棟が設置されている。 民宿とテント予約は先月10日ナロ号発射日が発表されてすぐ皆終
わった。 マ次長は “民宿世帯数を増やしてみるが, 駆せ参じる人々を受け入れるには力不足であるよ
うだ”と耳打ちした。 ナロ宇宙センターまで乗用車で40分の距離のトファミョン・パルポ海水浴場近隣ビ

688 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:53:57 ]
>>686
playしないと電源が入らない
iモードの接続と同じと思えばいい

689 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 11:41:04 ]
無駄な暗転と開発元ロゴとか流せばいいんじゃね



690 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 16:03:27 ]
実験すんのめんどくせいからてきとうだが
音量0か休符のみのデータでなんとかならんか

691 名前:686 mailto:sage [2009/07/16(木) 17:13:31 ]
>688-690
音量0で再生してチョット待ってからタイトル画面表示するようにしました。
レス・アドバイスありがとうございました。

692 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 17:42:43 ]
>>682
確認ボタンって「通信しますか?」っていうダイアログに
ついてるボタンのこと?
赤外線はネイティブに制御が移るんで、
ダイアログを制御する方法はナイですよ。

693 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 20:53:02 ]
Doja3.5(エミュレータは5.1用を使用)、実機N905で開発してる者です。
newでメモリを確保する際、指定出来るサイズの制限はあるのでしょうか?
※もちろん、Runtime.freeMemory()で取得できる数値より小さい値を指定するのは大前提です。

下記のようなコードで、エミュレータと実機とで動作が違い困惑しています。
buff = new byte[SIZE];

・SIZE=512KB エミュレータ
 例外も投げずにエミュレータが強制終了してしまいます。

・SIZE=30KB エミュレータ
 正常に確保できてるようです。

・SIZE=512KB 実機
 正常に確保できてるようです。

・SIZE=9MBぐらい 実機
 正常に確保できてるようです。


694 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 22:42:15 ]
メールに対して返信しようとしたら「メモリ不足です」となって、新規メールからしかメールが送れないんですがどういうことでしょうか?

695 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 22:49:31 ]
>>693

で、肝心のRuntime#freeMemory()の値は?

エミュレータ(ヒープサイズ:6144KB)でやってみたけど、
空きメモリが約3.5MBのときに約3.4MBのnewに成功してる。

[]に指定できるサイズはInteger.MAX_VALUEまで。
配列のlengthがint型だから見当はつくだろうけど。


696 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 23:57:24 ]
>>693
エミュレータなんかアテにすんな。設定次第なんだから
としか言いようがない


どうでもいいがユーザからのメールで、どうでも良いようなことで
「どういうことでしょうか!!」ってフレーズを良く見るんだが
流行っているんでしょうか

697 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 07:34:31 ]
すみません、CLDC+MIDP+携帯電話用Javaスレッド part 8がどうやら落ちていたようなので、
板違いとは思いつつ質問させて頂きます。

pc11.2ch.net/test/read.cgi/tech/1206017034/l50>>72さんの質問に便乗なのですが、
SoftBank端末用にパズルのような物を練習で作成中で、SH端末の「アクセスの遅いメモリ領域」について頭を悩ませています。

完成画像が大きな一枚絵になるので、常に保持しておかなければならない画像が複数あり、
drawRegionでそれを分割バラバラにして表示させています。
常に保持しておかなければならないデータは以下の通りです。

@384×192(8.2kb)のPNG画像
A192×192(3.7kb)のPNG画像
B192×192(4.0kb)のPNG画像
C576×384(29.0kb)のPNG画像
D240×182(6.3kb)のPNG画像

更に連続正解などの特典としてキャラクターカットインをスクロールさせようと思い、時折上記を保持したまま、
E380×300の(25.5kb)PNG画像
を読み込んで描画させています。
ですので、一番保持量が多い瞬間は@〜Eという事になります。
ステージが変わる場合は、上記を全て一旦null→gc→別画像を読み込み、という流れで行っています。

ただ、上記の最大時のサイズは、X:1964 Y:1442なので、240*260*11より面積という面で見ると小さいと思うのですが
実際は@ABの3ファイルまでしか高速アクセスが出来ていない状況です。
※読み込みの順序によっては最初の1枚しか高速にならなかったりもします。


698 名前:697 mailto:sage [2009/07/17(金) 07:35:56 ]
そこで幾つか試してみたのですが、
1.画像の色数を極限まで落として容量を削減→変わらず
2.@ABを1枚の画像にまとめて、@CD+Eにしてみた→@ABのアクセスですら更に重くなる

という感じです。
考えられるのは、画像のXY長で管理しているとすれば、X,Yが240,260を超えた画像は、たとえ241pixとかでも
2枚分消費し、次の画像は3枚目のメモリ位置に格納するので11枚分を越えてアウト?
でも、実際は同じXY長でも色数等で容量が大幅に変わるのでそれはないかな、とも思っています。

次に考えられるのは、起動時にすでに高速アクセス用のメモリが何者かによって占められている、という事かなと思い、
試しに起動直後、タイトル画像(240*240 2kb)のみを読み込み、描画した状態で
Runtime.getRuntime().totalMemory()、Runtime.getRuntime().freeMemory()を表示させてみたところ
2673000/4194292 からスタートし、空き領域急降下→自動GCを繰り返していました。

ちなみに@ABCD+Eの状態の場合は
1400000/4194292でした

とにかくいの一番に画像を読み込ませようと、宣言を一番初めにしたり、画像の読み込み処理を、
音楽ファイルやコマンドリスナーより先にしたりなどしてみましたが、どれも意味はありませんでした。

一体何が原因として考えられるのか、アドバイスを頂けるとすごく助かります。
長文乱文になり申し訳ありませんが、よろしくお願い致します。

699 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 10:03:25 ]
・切羽詰まった感は出てるがスレ違い
・画像は一枚に纏めるより、むしろ実画面サイズ以下に分割の方向で
・根本的に画像の使い方が粗い
・SHですねわかりますとか思ってたら本当にSHだったので嫌んなった
・ファイルサイズとヒープ消費量を同一視しないこと
・この場合freeMemory()等を頼りにしないこと
・端末機種のバ…特性に併せるか若しくは諦めることそれが一番だいじ



700 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 10:16:46 ]
スレ違いだな。

何とかしたかったら神に祈れ。
技術で何とかできるなんて考えは捨てて、仕様を直させろ。

701 名前:693 mailto:sage [2009/07/17(金) 11:25:27 ]
>>695
Runtime#freeMemory()は800kbちょいぐらいの値が返ってきてる状態での、
500KBの確保に失敗してます。
具体的には↓な感じです。
エミュレータのヒープ最大容量は2048kbにしてます。
-------------------------------
System.gc();
sleep(1000); // チョット待つ
Runtime#freeMemory(); //800kbぐらいの値が返ってくる
temp = new byte[512 * 1024]; // エミュレータ落ちる
-------------------------------
実機N905は12MBぐらいの空き容量で9MBの確保に成功してるので…
やっぱりエミュは不完全な部分もあるってことでしょうか。

>>696
エミュをアテにするなってことは、やっぱり最後は実機で確認が確実ってことですかね(^^;


702 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 11:42:15 ]
メモリ周りは運が絡む

703 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 12:31:03 ]
単なる別機種と化してるエミュレータなんて何考えてるんだろうな

704 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 13:11:32 ]
Docomoのエミュレータ程度の性能あれば十分だとは思う

705 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 13:16:42 ]
>>697
基本>>699の指摘が全てであるとは思うが、細かいノウハウはあると思うので
自分でCLDC+MIDP+携帯電話用Javaスレッド part 9を立てるか、確かどっかに、
スレ作成依頼スレがあったと思うのでそこに依頼して立てるのが吉だと思う。

706 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 13:29:46 ]
>>エミュをアテにするなってことは、やっぱり最後は実機で確認が確実ってことですかね(^^;

というかどういう状況で作成しているかは知らないが、N905iで動くからといって他の905iで
エミュみたいな不可解な動作をしない保証はまったくどこにも無い。趣味で自分の所有端末
向けに作っている匂いもするが、もしそうでないなら、最終的にはアプリ配布対象となる
全ての端末で実際に動作させて確認する必要がある。いや、マジな話。

707 名前:デフォルトの名無しさん [2009/07/17(金) 14:10:33 ]
これはチャット機能かな
www.youtube.com/watch?v=fHTq_NV_joA&feature=channel

708 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 14:29:51 ]
800KBしか残っていない状態で500KBとれたらかなり奇跡だろ
DojaのGCはメモリのコンパクションはしねーんだぞ

709 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 14:31:57 ]
する奴としない奴があるんじゃ無かったっけ?



710 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 15:22:19 ]
>>709
905あたりだと微妙

>>706
全面的に同意するけど、
似たようなこと職場で言うと煙たがられるな

711 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 16:03:44 ]
WMは2003から6.5までごかんせいもんだいなんてほとんどおきないのに
なんであいあぷりはこんなにひどいんだろう

712 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 16:11:55 ]
>>709
新しい奴は片っ端からしない。
しなくなったのはN900iとP900iが最初
DoCoMoは最近は「コンパクションはしなくても良い」と規定していて、最近は処理速度を競っているので切られるのがほとんど。

(´・ω・`)DoCoMoも余計な規定緩和(って用語あるか?)してくれたもんだ

713 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 16:39:05 ]
>>712
それのソースはある?
疑ってるわけじゃないけど

714 名前:693 mailto:sage [2009/07/17(金) 16:51:30 ]
DOJAのGC、コンパクションないんだ。。。。
やべぇ。。。orz
一応仕事で作ってるものなので、最終的には900以降の全機種で動作チェックしないといけないんだ。。。。
厳しい・・・

レスありがとうございました。

715 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 17:13:19 ]
>713
自分>712じゃないが、ソースは出せない。コンフィデンシャル。
後はどういうことか察してくれ。

716 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 17:17:20 ]
confidentialな資料確認できる人は
このスレを鵜呑みにせずに自分で確認しましょう。

とだけ言っておく。

717 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 17:34:56 ]
712だけど、
別にGCがない機種があるという情報自体はコンフィデンシャルではないよ

iアプリコンテンツ開発ガイドにも、<アロケート可能な連続メモリ量の参照>の項目で

KVM がヒープコンパクション機能(ヒープ上に発生したフラグメントの除去機能)をサポートしている機種
では、このメモリ量は概ねjava.lang.Runtime.freeMemory()メソッドが返す値と同等となります。しか
しヒープコンパクション機能をサポートしていない機種では、このメモリ量は状況により
Runtime.freeMemory()メソッドが返す値より大幅に小さくなる場合があります。

とある。
つまりコンパクションをサポートしていない機種があるのは仕様。
で、最近のがコンパクション積んでないのばっかりというソースは無いな…。
ただ、実装が面倒な上、エンドユーザーから見れば遅くなるだけのコンパクションを、わざわざ営利企業が積むわけもなく…

718 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 17:46:33 ]
>717
>別にGCがない機種があるという情報自体はコンフィデンシャルではないよ

そこはどうでもいいよ。
後半に突っ込んだんだが、まぁやぶ蛇だからこれ以上はレスしない。

719 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:12:07 ]
900iが最初なら
503iはどうだったんだw
て話か



720 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:35:39 ]
やぶ蛇どころか、まったく信用ならんなんちゃってプロだってことは分かった
プロなら素人に誤解されるような説明はせんからな

721 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:09:32 ]
>>710
ああ、確かにもれもたまに煙たがる奴に遭遇する

そして、そういう奴にかぎって販売後に端末依存の不具合で客クレーム出して、
もれとかを巻き込んで徹夜騒ぎになって、以後、新人から煙たがれる立場になるw

722 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:23:51 ]
>>720
confidentialかどうか微妙だと判断したら、
プロなら素人に詳しい説明はしないんじゃないか?
引き際が綺麗かどうかは知らないが。

723 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:37:54 ]
DoJa5.1で、ComponentListenertとSoftKeyListenerを同時に使いたいけど
「MainPanel は abstract でなく、com.nttdocomo.ui.SoftKeyListener 内の abstract メソッド softKeyReleased(int) をオーバーライドしません」
class MainPanel extends Panel implements ComponentListener,SoftKeyListener{
こんなエラーが出てどうすればいいやら

724 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 20:26:58 ]
昔スゲー悩んだ末に解決したはずなのだが、忘れたw

うろ覚えで申し訳無いが、『softKeyReleased(int)はかならずオーバーライド
しないといけないんだけど、MainPanelはabstractでないんで、自動的に
オーバーライドしないんよ。だから、自前でオーバーライドしてちょうだい』
みたいな主旨のエラーだったと思う

725 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 21:44:23 ]
なんでEclipseを使わないんだろう。
> 型 MainPanel は継承された抽象メソッド SoftKeyListener.softKeyReleased(int)
> を実装する必要があります。
って分かりやすいメッセージが出るのに。

抽象クラスではない場合は、implementsしたインタフェースのメソッドは
すべて実装しないといけない。もう実装できる機会がないから。
抽象クラスの場合は、それを継承する先で実装すればいいから、
その時点ではエラーにならない。

726 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 21:56:56 ]
ありがとう。
雛形から作り直してみたら一応はうまくいったんだが…
どう見比べてみても今のソースと同じだし、何が悪かったんだろう

727 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 22:25:44 ]
引き数とかが微妙に違ってたり、メソッド名が1文字間違ってたり、そういうレベルの間違いだと思うぞ<どう見比べても

728 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:45:52 ]
ミニアプリの描画領域を透明にすることってできる?
背景の画像を透過GIFにしてCanvasの背景を透明にできればできると思ったんだけど、
そのCanvasの背景を透明にする方法がよくわかんないです。だれかたすけて><。

729 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:46:50 ]
>> Eclipse
昔使おうとした時にプリプロセッサとの絡みで面倒くさくなって、結局
使ってないんだけど、その辺今解決しているのかな?

いや、JAVA的に邪道であるとは思うけどw



730 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:53:22 ]
定数は諦めて、できるだけ元の形を残すプリプロセッサを使う。

そういう俺もEclipseはどうしても必要じゃない限りは使わないけどなw

731 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:03:30 ]
>>728
フェイス画像は全透明にできるけど、
描画領域は初期化の時点で真っ白になるので無理。
その上からいくら透過画像を使おうが無駄ァ!
数字だけ浮いてるデジタル時計を作ろうとしてたのに、
画像を作ってからできないことに気づいてorz

732 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:16:31 ]
>>731
ありがとう。
ドキュメントに、Graphics#getColorOfRGBでアルファ値含んだ値がとれるって書いてあったから、
Frame#setBackground に渡してみたけど、やっぱりだめだった…。

じゃあ、ADFに指定するフェイス画像をプログラム内で切り替える方法はあるでしょうか。
これができればCanvasが透明にならなくてもやりたいことができそうなんです。


733 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 01:52:10 ]
携帯もそろそろPCソフトが使えるようになりそうだから
iアプリの意味がなくなるな


734 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 02:31:30 ]
docomo端末上で好き勝手やらせてくれるとは思えないんだがそういう流れになってるの?

735 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 11:59:55 ]
林檎や窓ののったスマートフォンなら、専用に作り直せば自由だ罠
PCのソフトそのままは無理だろ、ARMでx86が動くわけないんだから

736 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 13:50:35 ]
そういう技術レベルの話じゃないだろ
フルブラウザだって一般にはほとんど普及してない
動くことに満足する技術者と使いやすさを求めるユーザとのギャップが一番の問題

737 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 16:12:28 ]
そういう論調
KDDIがBREW始めたころに良く見たわ

738 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 16:23:04 ]
どうせ移植する機種が増えるだけの話だ('A`)y-~~

739 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:14:19 ]
20個ぐらいのTextBoxの中身を全部調べて、もしNullなら埋める
みたいなことやりたいけど、パネルの名前に配列使ったりできないの?



740 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:33:54 ]
日本語で頼む。
・TextBoxの中身はnullにならない
・Panelに名前の概念はない

741 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 11:37:56 ]
分かりにくくて申し訳ない
パネル型変数を配列変数として宣言できないかということ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<229KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef