2014年5月30日金曜日

Vagrantを試してみる

仮想環境構築ツール「Vagrant」をWindows7のマシンにインストールしてみます。
テストなどの用途に同じ仮想マシン環境をサクサク作れる便利なソフトみたいです。
読み方は”ベイグラント”みたいな感じ。意味は「放浪する,さまよう,流浪の,さすらいの」

Vagrantにはboxと呼ばれる、ディスクイメージや設定ファイル、メタデータなどをまとめて扱う仕組みがあります。(←これがキモなんですかね?)
仮想化ソフトウェアについてはVirtualBox、VMwareなどに対応しています。

操作はコマンドラインで行うので、GUIじゃなきゃ嫌だっ!という方にはおススメしません><



今回インストールする環境は↓で、VirtualBox用のCentOS6.5のマシンを作ります。
Windows7 Professional SP1
ruby 1.9.3
VirtualBox 4.3.12


・ VirtualBoxのディレクトリ(C:\ProgramFiles\Oracle\VirtualBoxなど)にパスを通しておく


http://www.vagrantup.com/ からWindows用のインストーラーをダウンロードしてインストール


インストールできました!
ここからはコマンドプロンプトで作業します!

http://www.vagrantbox.es/ でインストールしたいOSのboxを選んでURLをコピー


・ vagrantに「centos-6.5」という名前でboxを追加する


 vagrant box add centos-6.5 http://www.lyricalsoftware.com/downloads/centos65.box


・ 仮想マシンを置きたいディレクトリに移動する


cd C:\Users\Smoto\vagrant_test


・先ほど追加したboxを指定して初期化ファイル(Vagrantfile)を生成する

  ※Vagrantfileを編集することでいろいろな初期設定が行えます。


 vagrant init centos-6.5


・ 仮想マシンを(初回はインストール&)起動する


vagrant up



起動しました!
ちなみにVirtualBoxを起動しておくと、仮想マシンが起動する様子が観察できます。

・ vagrant(パスワードもvagrant)ユーザーが作成されているのでsshクライアントからログインしてみます。(IPは127.0.0.1、ポートは2222)


puttyからSSHでログインできました!

・仮想マシンをシャットダウンします


vagrant halt


・仮想マシンを削除します


vagrant destroy



以上、とりあえず仮想マシンを作成してから削除まで数分で行えました!

vagrant packageコマンドで自前のboxが作成できるので、一度boxを作ってしまえば
↓のようなコマンドですぐに同じ環境の仮想マシンが作れますありがとうございます!

vagrant init hoge hoge.box
vagrant up

以上ですビシッ


参考URL
http://knowledge.sakura.ad.jp/tech/1552/

2014年5月2日金曜日

サポートライブラリv7 searchViewをActionBar以外で使用する

アプリのホームに検索用のsearchViewをおきました。



■ xmlの記述
 
<LinearLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:customapp="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"

    android:layout_height="wrap_content" >


 <android.support.v7.widget.SearchView

                android:id="@+id/search_text"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:layout_gravity="center"

                android:layout_weight="1"

                customapp:iconifiedByDefault="false"

                customapp:queryHint="@string/item_search_hint_area" >

            </android.support.v7.widget.SearchView>

</LinearLayout>

viewのルート要素に名前空間をもうひとつ任意の文字[customapp]で「 http://schemas.android.com/apk/res-auto 」を設定します。

  名前空間についての説明
   ↑小さな脳みその私でもわかりやすかったです。(`@w@`)


 ・ xml上で入力前の文字列をいれたい場合
    customapp:queryHint="●●を入力してください"

・ 検索領域を表示したままにしたい。(今回はアプリTOPに表示したかった為)
     customapp:iconifiedByDefault="false" 


■ javaの記述
// searchView
  android.support.v7.widget.SearchView searchText = (android.support.v7.widget.SearchView) view
    .findViewById(R.id.search_text);
  searchText.setOnQueryTextListener(new OnQueryTextListener() {
   @Override
   public boolean onQueryTextChange(String arg0) {
    // TODO Auto-generated method stub
    return false;
   }

   @Override
   public boolean onQueryTextSubmit(String arg0) {
    // TODO Auto-generated method stub

    // **** 検索ボタンが押されたときの処理 **** //
    

    return false;
   }

  });