さて、ついにAndroid2.3が積まれているSDKが配信されたわけですが、これ入った時に色々とトラブルが起きたので一応メモ。

1.「JavaのPathが通ってない」と怒られた。
今までは特にエラーも出てなかったので気付かなかったんだけど、気持ち悪いので指示されている通りにやったんだけど直らない。
どうやら、パスにあるjava.exeの部分はいらない模様。
取ったらエラーを出さなくなりました。

2.EclipseでLogCatに「com.android.ddmuilib.logcat.LogPanel.setLogCatViewInterface(Lcom/android/ddmuilib/logcat/LogPanel$LogCatViewInterface;)V」とエラーが出たり、AVDマネージャとかが立ち上がらない。
Eclipseの入ってる所にあるeclipse.exe -clean.cmdを実行したら直った。

今の所はこれだけっぽいです。
Eclipseの部分はこれからも色々起きそうだから、覚えておくとしよう。

カテゴリ/タグ:私の記憶領域 /    
コメント (0)

ウィジェットを作っていて困った事があった。
4×4のフルサイズのウィジェットで、bitmapを動的に生成してRemoteViewsのsetImageViewBitmapで入れ替えるというプログラムを作っていたのだが、ログに「!!! FAILED BINDER TRANSACTION !!!」が出て期待通りに動かない。
ググってみたら、Intent時に容量が大きいデータを転送する時に発生するようです。
実験した結果、bitmap作成時にARGB_4444で4×3のサイズが限界でした。
ALPHA_8なら問題ないけど、モノクロで何をしろと言うのだ・・・(笑)
OSのバージョンで1.6と2.1で同じ症状だったんだけど、2.2でも起こるのだろうか?
次のバージョンアップでXperiaが2.2になる事はないと思うので、実験はしてないんだけどねー。
RGB_565を使ってアルファチャンネルを使わなければメモリ節減になると思うのだが、透過が使えなくなると色々と見た目がアレなんだよね。
何か他に方法は無い物か。

カテゴリ/タグ:私の記憶領域 /  ,    
コメント (0)

各種リソースを使用する時に、自動生成されるgenフォルダにあるR.javaより「R.yyyy.xxxx」と名前を直接指定してリソースのIDを取り出す事がほとんどだが、例えば複数個あるViewに同じ処理を使用とする時にこの方法は面倒な事になる。
言語によっては、Viewをグループ化して配列にするんて方法があると思うけど、Androidにはこの機能が付いているのだろうか?
とりあえず、私が知っている方法としては以下の方法がある。

1.コードに配列を作って、予めIDを入れておく。
int[] res_id = {R.yyyy.xxxx0 , R.yyyy.xxxx1 , R.yyyy.xxxx2};
2.ViewのIDに連番を付けて、getIdentifierを使ってリソースIDを取得する。
Resources res = getResources();   //Widgetの場合はcontext.getRssources();を使う。
int res_id;
for(int i = 0; i < 3; i++) {
    res_id = res.getIdentifier("xxxx" + i, "yyyy", getPackageName());
}

前者はViewが増えるとメモリが、後者は処理手順が増えるのかしら・・・。
他にも「R.class.getClasses()」を使うという方法もあるけど割愛しとく。
興味がある人はググるといい。

カテゴリ/タグ:私の記憶領域 /  , ,    
コメント (0)

多分、大体のWindowsは同じような作業をすれば問題ないと思う。

コントロールパネル→システム→システムの詳細設定で、出てきたウィンドウのタブで詳細設定→環境変数を押す。
上と下のリストにある「TMP」と「TEMP」が一時ファイルを保管するフォルダの位置なので、ここをフルパスで変えて再起動する。
以上である、簡単ネー。

カテゴリ/タグ:私の記憶領域 /    
コメント (0)

SSDの寿命を延ばす為に色々とやってる事を書いて行くとしよう。
今回はブラウザの一時キャッシュの位置を変えておく。

[Firefox3.x]
Firefoxを起動してアドレスバーに「about:config」を入力してエンター。
警告が出てくるけど、ボタンを押して次に進む。
フィルタに「browser.cache.disk.parent_directory」を入れてみて、欄が存在しないならリスト上で右クリックから新規作成→文字列で設定名を「browser.cache.disk.parent_directory」にして作成して、値にフルパスでキャッシュの保存場所を指定する。
後はFirefoxを落として、起動し直せば有効になります。

[Internet Explorer]
これは分かりやすく移動できる。
IEのツールかコントロールパネルからインターネットオプションを開いて、閲覧の履歴の設定ボタンを押せば、中にインターネット一時ファイルの項目にフォルダの移動ボタンがあるので、移動できる。
・・・出来るように見えるのだが、変更してログアウトを促されて、戻ってくると最初のフォルダに設定が戻されているという現象に見舞われた。
移動できないのだ。
誰か、このソフトをエクスプロージョンしてくれ。
で、何度か試してみてもうまく行かないので色々試してみた結果、Windowsをセーフモードにすれば動いてくれるようだ。
セーフモードのやり方は、Windows起動画面にF8キーを連打してれば選択肢が出てくるはずだ。
その場合、コントロールパネルにインターネットオプション無いので、ブラウザを立ち上げてツールから設定しよう。

しかし、IEはブラウザを使用しなくても何かにつけて動いているから怖いね。
でも、こいつが無いと見れないサイトがあるから困るな。
全くめんどくさい・・・。