Jan 10, 2011

[Android] Android の開発環境を用意する

MacOS X に Android 開発環境を用意したので手順をメモ。

Android developers
http://developer.android.com/sdk/index.html
Android developers - Installing the SDK
http://developer.android.com/sdk/installing.html

Android SDK のインストール

Android developersページから SDK をダウンロードする。 ここでは android-sdk_r08-mac_86.zip を使用する。 ダウンロードが完了したらインストールを行う。

$ unzip android-sdk_r08-mac_86.zip
$ sudo mv ./android-sdk-mac_86 /usr/share
$ cd /usr/share
$ sudo ln -s ./android-sdk-mac_86 ./android-sdk

Android SDK のアップデート

次に Android SDK のアップデートを行う。 コマンドラインから以下のコマンドを実行すると、Android SDK Manager が起動しアップデートが行われる。
[update] [update]

$ cd /usr/share/android-sdk
$ ./android update sdk

ADT (Android Developer Tool) のインストール

Android 開発用の Eclipse plugin "ADT" をインストールする。 インストール方法は Installing the ADT Plugin を参照。
[install] [install]

ADT の設定

Eclipse を再起動したら設定画面より ADT の設定を行う。 とりあえずは Android SDK のパスを指定するだけで良い。
[configure]

Hello, Android World

とりあえず動作確認のため Hello, World チュートリアルに挑戦してみる。

Android プロジェクトの作成

"New" > "Other..." を選択し、"Android" > "Android Project" を作成する。
[create] [create] [create]

Hello, Android World のコーディング

package jp.in_vitro.android.helloandroidworld;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroidWorld extends Activity {
    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TextView view = new TextView(this);
        this.setContentView(view);

        view.setText("Hello, Android World");
    }
}

Hello, Android World の実行

プロジェクト (HelloAndroidWorld) を選択肢、メニューより "Run" > "Run As" > "Android Application" を実行する。 Emulator が起動し、しばらくするとアプリケーションの画面に切り替わる。
[run] [run] [run]

Posted in Android | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jan 09, 2011

[Android] VMWare Fusion に Android をインストール

x86 用にビルドされた Android を見つけたので、VMWare Fusion にインストールしてみた。

Android-x86
http://www.android-x86.org/

Android-86 のダウンロード

ダウンロードページ から iso ファイルをダウンロードする。 今回は froyo-generic-20110101.iso を使用した。

仮想マシンの作成

VMWare Fusion で「新規仮想マシンの作成」を実行し、「ディスクを使用せずに続行」ボタンで先に進む。 「オペレーティングシステムのインストールディスクイメージファイルを使用」を選択し、事前にダウンロードした iso ファイルを選択。 後の設定は以下の通り。

オペレーティングシステム その他
バージョン その他
メモリ 256M
ディスクサイズ(最大) 2G
ネットワーク 共有ネットワーク(NAT)

[create][create][create]
[create]

Android-x86 のインストール

Android-x86 の iso イメージから起動したら「Installation」を選択。 後は適当に Bootable なパーティションを作成して、NTFS でフォーマット、Bootloader をインストール、で終了。 基本的にインストーラの言いなりで問題無し。
[install][install][install]
[install][install][install]
[install][install][install]
[install][install][install]
[install]

Android-x86 の起動

インストーラの最後の画面で「Run Android-x86」を選択すると Android-x86 が起動する。 特に設定なども不要でインターネットにも接続できる。
[run][run][run]
[run][run]

Posted in Android | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jan 08, 2011

[Cloud] <apex:*> タグを jQuery で操作する

Salesforce の Visualforce Page で利用できる <apex:*> タグ (<apex:outputText>, <apex:outputPanel>, etc) は HTML にレンダリングされた際に少々クセのある ID を持つ。 jQuery にその ID を利用する方法をメモ。

apex タグは HTML にレンダリングされる際、(自動割り当てを含む) ID を持つ直近の親の ID と自身の ID を結合した文字列を HTML タグの ID として付与される。 例えば、下記の <apex:outputPanel> は HTML では "page:form:block:panel" という ID を持つ <div> タグとして展開される。

<apex:page id="page" >
  <apex:form id="form" >
    <apex:pageBlock id="block" >
      <apex:outputPanel layout="block" id="panel" />
    </apex:pageBlock>
  </apex:form>
</apex:page>
この "page:form:block:panel" を $("#page:form:block:panel") の様にそのまま jQuery の selector として利用しても動作しない。 selector で特殊な意味を持つ ":" をエスケープすることで jQuery でも利用可能となる。 上記の例では、$("#page\:form\:block\:panel") となる。

サンプル

<apex:page id="page" >
  <apex:includeScript value="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"/>
  <apex:form id="form" >
    <apex:pageBlock id="block" >
      <apex:outputPanel layout="block" id="panel" />
      <script type="text/javascript" language="javascript">
        var jq$ = jQuery.noConflict();
        function escapeVisualforceId(vfid) {
          return vfid.replace(/:/g,'\\:');
        }
        jq$(document).ready(function() {
          jq$('#' + escapeVisualforceId('page:form:block:panel')).text("Hello World");
        });
      </script>
    </apex:pageBlock>
  </apex:form>
</apex:page>

Posted in Cloud | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |