• ベストアンサー

[iアプリ]スクラッチパッドへのアクセスと消耗などなど。。

今iアプリを作成しているのですが、グローバル変数が全部で60個ぐらいあります。そのうち配列変数が15個ほど。 各データ(画像や設定)を起動時に一気に読み込み、オプション設定画面やゲーム画面での画像読み込みや設定読み込みを殆ど行わないプログラムになっています。 画面の切り替えなどに殆ど時間がかからない為、これでもいいかな?と思っているのですが実際どうなのでしょう・・・? グローバル変数を現在の半分以下に落とし、常時保持しておくデータ(画像など)を削って、必要になったときに(ゲーム画面に移動したら)その都度スクラッチパッドからデータを読み出すプログラムの方が綺麗?な気もします。 そこで気になったのがスクラッチパッドへ何度も何度もアクセスすることはスクラッチパッドの消耗に繋がるのではないか・・・?ということです。 今回皆様に伺いたいのは、自分ならどのようなタイミングで各種データを読み出し、どのようなタイミングでデータを破棄しているのか? また、そうする事による長所と短所。それとタイトルのスクラッチパッドの消耗についてです。 皆様はどのような事に気をつけてiアプリ作成を行っていますでしょうか?どれか一つに対してでもよいので皆様の意見を伺えればと思います。 どうぞよろしくお願いいたします。

  • Java
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yokkou
  • ベストアンサー率30% (34/111)
回答No.2

利用頻度の高いものは起動時に取得してますが、局所的にしか使わないものは、その都度取得しています。 RPGみたいに大量データ必要なものを初回に全部読み込んだら、903でも動きませんよ(笑) エンカウントしたら敵画像読み込んで、倒したら破棄して 町に入ったら、町のマップ読み込んで・・・ と、必要なときにだけを考えてます 反対に常に使用する、マップ画像やアイテム情報などは持ち続けてます

その他の回答 (1)

noname#235174
noname#235174
回答No.1

私なら必要な時に必要なだけデータをロードして いらなくなったら即破棄です。 少なくとも私が作ったことのある時(504,505時代)はそうしないとOutOfMemoryで動きませんでした。 今は恐らくオンメモリに全て乗っけても平気なくらいなメモリ量なのかもしれませんが、資源は有限です。 スクラッチパッドの消耗ってなんでしょうか? HDDみたいに劣化するのでは?ってことですか? 端末の実装がどうなってるかは知りませんが あまり気にしたこと無いですし、気にするものではない と私自身は思っています。

関連するQ&A

  • [iアプリ]サーバから読み込んでスクラッチパッドに保存

    サーバにあるデータを読み込んで iアプリに表示し、同時にスクラッチパッドに保存しておき、 2度目のサーバアクセスからは スクラッチパッドに保存してあるデータを参照しながら新しいデータを表示する iアプリプログラムを作りたいと思っています。 サーバはFFFTPを使いたいと思っています。 サーバの設定方法から プログラムの作り方まで 初心者にも分かりやすく教えていただけるとありがたいです(>_<)

  • iアプリ:スクラッチパッド

    お世話になっております、dwtです。 テキストやWEB片手に独学でiアプリ開発をやっているのですが どうしても解決できない点があり質問させて頂きました。 現在、Eclipseを用いて開発していて エミュレータ上では意図する通り動くのですが 実機(SO506iC)では上手く動作しません。 動作させたい流れは以下となっております 初回起動かを確認 ↓ 特定のフラグが0なら初回読み込みと判定 WEBから画像をDLしスクラッチパッド2に保存 ↓ 読み込み済みフラグを書き込み ↓ その他の処理 という流れを行っているのですが 実機ではスクラッチパッドが書き込まれていないのか 常に初回起動扱いの動作をします。 読み込み部 //----------------------------------------- os_in = Connector.openInputStream("scratchpad:///0;pos=0"); byte_data = new byte[1]; int_size = (int)(os_in.read()&0xEF); byte_data = new byte[int_size]; os_in.read(byte_data); str_retdata = new String(byte_data , 0 , int_size ); WEBから画像を取得しスクラッチパッド2に画像を保存する処理 //------------------------------------ (コネクト部字数制限により略) OutputStream out = Connector.openOutputStream("scratchpad:///2;pos=0"); byte[] byte_buf = new byte[1000]; while(( int_size = in.read(byte_buf)) != -1) { out.write(byte_buf,0,int_size ); } また次の点も解決できずにいます。 ・gif画像を90kb程度のサイズにした場合、最初の画像表示部でエラー停止してしまう →画像サイズに制限? ・スクラッチパッド0のデータを読み込む際 最後まで読み込めず途中で途切れてしまう。 スクラッチパッド0のデータを途切れる事なくSTRING型に格納する良い方法は…? 何かご存知の方がいらっしゃいましたらお願いします。

    • ベストアンサー
    • Java
  • iアプリのスクラッチパッドについて

    自力が足りずこちらにて質問させて頂くことになりました。 スクラッチパッドへのデータの保存読み出しの仕組みが理解出来ず非常に困っています。 1.1234567などの256を超える整数(INT型など)を保存する場合、また読み出しのソース。 2.バイナリデータ(画像)などのデータを保存する場合、また読み出しのソース。 3.文字列(String)を保存する場合、また読み出しのソース。 4.("scratchpad:///0")の 0 はスクラッチパッド用領域の0バイト目との説明書きを見つけたのですが、では、("scratchpad:///1")のように数字を増やして使うこともあるのでしょうか? また、どのような時に使用するのでしょうか? 5.スクラッチパッドにデータを保存した場合、そのデータの終わり(区切り)の印は"null"などで判別出来るようになっているのでしょうか? 6.最初の5バイトは文字列、6~3000バイトまで画像、3001バイトから数値を保存するといった方法を使っても問題無いでしょうか? 出来る限り機種依存の少ないiアプリ作成に努めていますのでその点を考慮してご回答頂けますと幸いです。 質問の羅列になってしまい非常に申し訳ないのですがどうか宜しくお願いいたします(__。

    • ベストアンサー
    • Java
  • iアプリのスクラッチパッドの使用法

    iアプリのスクラッチパッドを使ってfloat型やDate型のデータを記録したいのですがさっぱりやり方がわかりません。 int型はreadを使って1バイトずつ読み書きすればいいことはわかったのですが、 float型やDate型は同じやり方をするとエラーになります。 それと、スクラッチパッドのデータをopenするときに、 openDataOutputStreamやopenDataInputStreamを使いますが、引数の "scratchpad:///0" はどういう意味でしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • java iアプリ に関する 「画像をスクラッチパッドに保存」 についての質問です

    java iアプリ に関する 「画像をスクラッチパッドに保存」 についての質問です。 画像をスクラッチパッドに保存したいのですが、初心者なので多数のサイト見てもイマイチわかりません。 try { DataOutputStream out = Connector.openDataOutputStream("scratchpad:///0;pos=" + basyo); out.writeUTF( out_data ); out.close(); System.out.println("スクラッチパッド文字 書込OK!"); } catch (Exception e) { System.out.println("スクラッチパッド文字 書込エラー"); } これは、文字を保存する為に書いたソースなのですが、画像の場合をわかりやすくご指導いただけないでしょうか? よろしくお願いいたします。

  • iアプリのサイズ

    iアプリを開発していますが、サイズがオーバーしてしまいます。 特に凝った事はしてなく(のつもりです。)、 画面はFrame,TextBox,Label,ListBox,Button程度で、 処理も四則演算、%演算子(余り)、スクラッチパッドの読み書き程度です。 Javaってどんな処理がサイズを食うのでしょうか。 また、最適化などの方法はないのでしょうか。 皆さんはどのようにしていますか?

    • ベストアンサー
    • Java
  • iアプリ画面の表示が・・・↓↓

    さっそく質問なんですが、現在ネットワークを用いウェブ上においてあるテキストファイルを、まずスクラッチパッドに保存しそこから呼び出してテキストファイルのデータを画面に表示させるプログラムを制作しています。 ファイルのデータを表示させるためにラベルで表示しているのですが、それでは一行しか表示することが出来ません。 複数行文字を表示させたい場合どうすればよいのでしょうか? このことでずっと悩んでいます。 初歩的なことかもしれませんが、お願いします。

  • メール本文等をiアプリで読み込むには

    メールの保存件数が少ないため、iアプリのスクラッチパッドへメールデータを保存するようなプログラムを作りたいのですが、メールの件名や本文に直接アクセスし、データを読み込むような動作をさせる事は出来るのでしょうか? また、スケジュール管理のiアプリを作りたいと考えているのですが、 PCで作成したスケジュールデータをメールとして携帯に送信し、 そのメール受信を切欠にiアプリを起動させ、スケジュールデータを更新させるような動作をさせる事は出来るのでしょうか? ご存知の方がいらっしゃいましたら、ソースなどが記述されたサイトへの誘導をお願い出来ればと思います。 質問ばかりで申し訳御座いません。 どうぞ宜しくお願いいたします(__)

    • ベストアンサー
    • Java
  • iアプリのブラウザ起動について

    はじめまして。 JAVAでiアプリの開発をしているのですが、わからないことがありますので、 ぜひお力添え願えませんでしょうか。ちなみに、JAVAでの開発は初めてです。 <開発環境> doja5.1 eclipse windows XP <質問> iアプリ起動時に、外部からUART通信にてHTMLデータを受信します。 受信したHTMLデータは、スクラッチパッドに格納します。 その後、スクラッチパッド上に格納したHTMLデータを読み込んで、ブラウザで起動したいのですが、 ここでブラウザの起動がうまくいっていません。 以下のようなコードでやってみましたが、うまくっていません。 launch(LAUNCH_BROWSER,           new String[]           {"scratchpad:///0;pos=0"}); や launch(LAUNCH_BROWSER,           new String[]           {"<HTML>~~~</HTML>(HTMLデータを埋め込み)"}); などしてみましたが、うまくいかず・・・。 ほかの方法があるかとネットや書籍を探して見ましたが、そういった類のコードが 見当たらなかったため、質問させていただいております。 このようなことができるのかもわからないまま開発しております。 どうかお力を貸してください。

    • ベストアンサー
    • Java
  • iアプリのせいでバッテリーの消耗が激しいのでしょうか?

    先週、F902iSに鉄道・バス設定アプリとモバイルSuicaアプリを入れて、モバイルSuicaを使い始めました。 すると、それまではフル充電から4~5日はもっていたバッテリーが、殆ど通話もせずカメラもiアプリも使わず、音楽も聴かず、ほぼ丸1位日たたんだままの日でも明らかに早く消耗するようになってしまいました。 バッテリーはほぼ新品なのにです。 例えば、 バッテリーほぼ空の状態で火曜日の朝10時頃からお昼近くまでかけてフル充電→午後2時頃に約3分通話 → 午後7時頃に約1分通話 → 午後8時頃に時刻表表示iアプリ(iNexttrain)を約1分使用(通信:しない設定)→ 翌水曜日は通話もiアプリの使用もなし → 水曜日の深夜25時バッテリー切れ警告音 → 自動的に電源OFF という状態でした。 一昨日のも午前8:30ごろフル充電完了して、日中3分くらい通話をしただけなのに、今、もう電池表示が残り1コマです。 私のF902iSはまだ購入後1ヶ月で、同時に購入した家内のF902iSはフル充電から1週間経ってもまだバッテリー表示が2コマ残っています。 私のだけ消耗が激しいということは、やはりモバイルSuicaをインストールしてあるからなんでしょうか? あのアプリと鉄道・バス設定アプリは通信可能設定で使う仕様なんですよね? アプリの注意書には「本iアプリは、お客さまの携帯電話におけるネットワーク接続可否設定の有無に関わらず一定期間毎にネットワークへ接続しパケット通信を行う必要があります」とあります。 このせいなんでしょうか? 「ネットワーク接続可否設定の有無に関わらず」ということは、iアプリの設定を「通信しない」にしても必要な時はネットワーク接続してくれると判断し、「通信しない」の設定にすればバッテリー消費が抑えられるんでしょうか? お分かりの方がいらっしゃいましたら、アドバイスをどうかよろしくお願いします。

専門家に質問してみよう