NO_NAME

適当に技術・仕事・ライフハックの話を書いていく予定です。

NeoOffice 2.2.x のアンインストール

  • Applicationフォルダから NeoOffice.app を削除。
  • ユーザのPreferencesフォルダ (ユーザのLibraryフォルダ内にある) から NeoOffice-* のフォルダを削除。
  • ユーザのPreferencesフォルダから org.neooffice.neooffice.plistファイルを削除。
  • /Library/ReceiptsフォルダからNeoOffice.pkgを削除
    参考したページには上記のように書いてあったが私のマシンには見当たらなかった。

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 - Is there a way to add Google Chrome as an external web browser in Flash Builder Standalone for Mac? - Stack Overflow



まず結論から書くと以下の手順で設定できる。


  1. Eclipseの設定ダイアログの [General - Web Browser] を開く。

  2. 「Use external web browser」のラジオボタンを選択。

  3. 「External web browsers:」に Google Chrome を追加。
    1. アクセス可能な場所に以下の内容のシェルスクリプトを作成する。

      #!/bin/sh
      open -a 'Google Chrome' $1 &
      


    2. Eclipseの設定ダイアログの[New...]ボタンをクリック。

    3. [Add External Web Brawser]ダイアログに以下を入力。
      • Name: Google Chrome
      • Location: 先ほど作成したスクリプトのパス
      • Parameters: %URL%


  4. 「External web browsers:」で Google Chrome を選択する。

  5. 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でフィルタリングするとよさそう。