2006/06/23(金) [n年前の日記]
#1 [iappli] ひたすらバグ取り
機種依存バグがボロボロと上がってきているような感が。特定機種だけ動かないってのは何なのだ。
どうしても一つだけ、原因がさっぱり推測できないものが。D505iで起きてるらしいが…。とりあえず、 _アズぶログ: 予期しない例外を丸ごと端末に送る を参考にして、メインループを try 〜 catch で挟み込んだ。メイン処理の各所で、特定変数に数値を入れて、エラーが出た際には catch の中で、その特定変数の値を画面に表示することに。エラーが出て画面に数字が出てくれば、どこの処理でおかしなことが起きたか、たぶん判る。のではないかと淡い期待を。…画面にそれが出ないまま落ちたら、ネイティブヒープが足りなくて問答無用で落ちてるとか、あるいはメインループ外でのエラーなのだろうと推測できるのではないかと。
どうしても一つだけ、原因がさっぱり推測できないものが。D505iで起きてるらしいが…。とりあえず、 _アズぶログ: 予期しない例外を丸ごと端末に送る を参考にして、メインループを try 〜 catch で挟み込んだ。メイン処理の各所で、特定変数に数値を入れて、エラーが出た際には catch の中で、その特定変数の値を画面に表示することに。エラーが出て画面に数字が出てくれば、どこの処理でおかしなことが起きたか、たぶん判る。のではないかと淡い期待を。…画面にそれが出ないまま落ちたら、ネイティブヒープが足りなくて問答無用で落ちてるとか、あるいはメインループ外でのエラーなのだろうと推測できるのではないかと。
◎ _N505のファイルDL時の謎の挙動 :
N505では、ファイルをDLした時とそうでない時では、ネイティブヒープの使用量に違いがある可能性があります。同じだ! これが出てるのであります。
N505では、ファイルをDLした直後に画像をImageとして読み込んでいると、ある程度の画像を読み込んだ時点で「Out Of Memory Err」が発生します。しかし、同じ量の画像を読み込んでも、ファイルをDLしていない時にはエラーが起こりません。ちなみに、DLした直後も、DLしていないときも、Javaヒープの使用メモリ量に差はありませんでした。i-appli 開発情報 より
◎ _通信時にメモリの確保をしておかないと、エラーになりやすい :
N503i についての機種依存項目にこんな内容が。メモリの確保ってどうやるんだ。
と思って検索してのだけど。とある掲示板で見かけた話によると、どうやら起動直後にドカンとデカイ配列を確保して、通信の直前に開放するらしい。例えば、 byte[] b = new byte[204800]; とかやって確保して、b = null; System.gc(); …とかそんな感じらしい。<これで合ってるのかどうかはよくわからない。
と思って検索してのだけど。とある掲示板で見かけた話によると、どうやら起動直後にドカンとデカイ配列を確保して、通信の直前に開放するらしい。例えば、 byte[] b = new byte[204800]; とかやって確保して、b = null; System.gc(); …とかそんな感じらしい。<これで合ってるのかどうかはよくわからない。
[ ツッコむ ]
以上です。