PostgreSQL 8.3.x のアンインストール
- PostgreSQLのアンインストール
open /Library/PostgreSQL/8.3/uninstall-postgresql.app
- JDBCドライバのアンインストール
open /Library/PostgreSQL/pgJDBC/uninstall-pgjdbc.app
- PostgreSQLフォルダをデータベースファイルごと削除。
rm -rf /Library/PostgreSQL/8.3
SMB対応ファイルマネージャー
ファイルサーバーに蓄えたファイルを Androidタブレットから閲覧したいので、SMB対応ファイルマネージャーを試して見た。
結論から言うとSMB対応という意味では納得できる解は見つからなかった。
どのアプリもSMBサーバーのファイルを他のアプリで利用するには一度ローカルにダウンロードする必要があった。
SMBサーバーのファイルを直接他のアプリで開けるようにするにはRoot化しドライブとしてマウントする必要があるようだ。
Sony Tablet Sは未だRoot化方法がないので今回は妥協するしかなかった。
結局今回インストールしたのは下記の二つ。
最終的には一つに絞るつもりだが、それぞれ利点があるので今は悩んでいるところだ。
- ファイルマネージャ HD (Honeycomb)
- タブレット向けに作成されており、左側にサイドメニュー用意されているなど工夫されている。しかしながら基本的な操作メニューは上にあったりとまだまだ工夫の余地があると思う。
- SMBサーバーのファイルをタップすると自動でダウンロードし、その上でアプリケーションの選択ができる。
- ちょっと見た目がすっきりしない。
- 広告あり(寄付すると消える)
- ES ファイルエクスプローラー
- タブレット向けの工夫はされておらず、操作メニューが上にあり使いづらい(特にタブレットを縦にしているとき)。
- SMBサーバーのファイルをタップしても自動でダウンロードしてくれず、ローカルにコピーする操作を行う必要がある。
- ファイルのコピーをキャンセルできない。結構致命的な欠陥。
- 見た目が綺麗。
- 広告なし。
アストロファイルマネージャー も試して見ようかと考えたが以下の理由からESファイルエクスプローラー以上のメリットはなさそうなので試していない。
- コメントを見る限り重いらしい。
- コメントを見るとアストロファイルマネージャーからESファイルエクスプローラーへ移行した人が結構いたが、一方逆はいなかった。
- SMB対応のためにプラグインが必要。
Handler と AsyncTask の使い分け
Android でバックグラウンド処理を走らせるのによく使う Handler と AsyncTask だが使い分けをどうしたらよいのか悩ましいところである。
ググってみると同じような悩みを持つ人がいるようで、Stack Overflow に次のような質問が投げられていた。
android - Handler vs AsyncTask - Stack Overflow
私の感覚としては一番目の回答者 Samuh の意見がもっとも近い。
AsyncTask は簡単に使えるのだが応用が利かない。
もっとも最たる点はバックグラウンド処理を実行するスレッドやHandlerが指定できないこと。
バックグランド処理だがシーケンスに実行したい場合には全く使い物にならない。
ちなみに何個スレッドを立てるかはOSに依存する。
Android 2.1だと1つしかスレッドをたてないが、一方Android 2.2だと最高128までスレッドを立ててしまう。
Google公式のAndroid UIデザイン学習サイトがよさそう
AndroidのUIデザインについてはこれまで Android Design Pattern が参考になったが、Google公式の Android Design が負けず劣らず参考になりそう。
まだ軽く目を通しただけだが、空き時間を使って目を通して見ることにしよう。
EclipseからGoogle Chromeを開く
Google Chrome をデフォルトのブラウザにしているにもかかわらず、Eclipseから開くと元々利用していたFirefoxが立ち上がってしまっていたので Google Chrome で開くように設定した。
まず結論から書くと以下の手順で設定できる。
- Eclipseの設定ダイアログの [General - Web Browser] を開く。
- 「Use external web browser」のラジオボタンを選択。
- 「External web browsers:」に Google Chrome を追加。
- アクセス可能な場所に以下の内容のシェルスクリプトを作成する。
#!/bin/sh open -a 'Google Chrome' $1 &
- Eclipseの設定ダイアログの[New...]ボタンをクリック。
- [Add External Web Brawser]ダイアログに以下を入力。
- Name: Google Chrome
- Location: 先ほど作成したスクリプトのパス
- Parameters: %URL%
- アクセス可能な場所に以下の内容のシェルスクリプトを作成する。
- 「External web browsers:」で Google Chrome を選択する。
- Eclipseの設定ダイアログを閉じる
3の手順が複雑な理由
- [Search..] ボタンをクリックしても Firefox はヒットするが Google Chrome はヒットしない。
- [Add External Web Brawser]ダイアログで直接 Google Chrome を指定すると、 Google Chrome がすでに起動している状態で失敗する。
EclipseのLogcatビューアのみを使っていると起こる勘違い
Android の Logcatビューアを使っていると Application や Text で絞り込みできそうに思えるが、logcatコマンドの引数にはそのような絞り込み機能はないようだ。
さらにいうと PID は出力できるが Application の値を出力されるオプションはなさそうだ。
logcatコマンドでPIDを含めて出力し、そのテキストをPIDでフィルタリングするとよさそう。