2009-05-07
Android のビルド
私のマシンでフルビルドが2時間弱、これは早いのだろうか??
Cygwin での Android ビルドにはまだ対応していないらしい。
【コンパイル開始】
※ makefile がダウンロードされているディレクトリで行う。
$ cd ~/mydroid
$ make
コンパイルに失敗した場合は以下。
$ make -clean
$ make
=>ビルドに成功すると、
~/mydroid/out/
にファイルが生成される。
また、
~/mydroid/out/target/product/generic/
にイメージファイル「ramdisk.img」「system.img」「userdata.img」
~/platforms/android-1.5/images/
にある同名のイメージファイルと差し替えることで、
コンパイルしたバイナリをエミュレータ上で使用することが出来る。
※もしも、ビルドエラーが出てしまうのなら、
以下のライブラリを追加してみてほしい。
$ sudo apt-get install zlib1g-dev libncurses-dev
Android ソースをフレームワーク部分だけ限定して取得
全部ほしいけど。
$ git clone git://android.git.kernel.org/platform/frameworks/base.git
Windows ( Cygwin ) で Android ソースを取得
詳しくは前回の記事 Linux 版ソース入手方法を参照してほしい。
Cygwin インストーラの Category 中「Devel」に Git があるので、
忘れずにインストールすること(Git は 1.5.4 以上が必要)。
【2. Repo のインストール】
$ mkdir /cygdrive/c/android/bin
$ cd /cygdrive/c/android/bin
$ curl http://android.git.kernel.org/repo > /cygdrive/c/android/bin/repo
$ chmod a+x /cygdrive/c/android/bin/repo
【3. Repo の初期化】
$ mkdir /cygdrive/c/android/mydroid/
$ cd /cygdrive/c/android/mydroid/
$ /cygdrive/c/android/bin/repo init -u git://android.git.kernel.org/platform/manifest.git
もしくは無入力でも構わない(Enter で次へ)。
これらの情報はソースのコミット時に必要となる。
後で以下のコマンドでも登録が可能だ。
$ git config --global user.email "XXX@gmail.com"
$ git config --global user.name "Xxx Xxx"
【4. Android ソースの取得】
$ cd /cygdrive/c/android/mydroid
$ /cygdrive/c/android/bin/repo sync
これでソースの取得が出来た。
Android ソースの入手
その前に、Linux コマンドは以下が分かりやすい(かも)。
$ sudo apt-get install git-core gnupg
※ Git:
既にインストールされていれば飛ばしてもらって構わない。
※ Java のバージョン確認は「$ java -version」
$ sudo apt-get install sun-java6-jdk
【3. Android のビルドに必要なパッケージ類のインストール】
$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev
※
flex:字句解析器
bison:構文解析器
gperf:一部から完全ハッシュ関数を作るツール
build-essential:gcc や make などの基本開発ツール
...
【4. Valgrind のインストール】
$ sudo apt-get install valgrind
※ Valgrind:
メモリ周りのバグをチェックする為のツール
【5. Repo のインストール】
ダウンロードディレクトリを作成し、そこへダウンロードが完了したら、
Repo に実行可能権限を付与する。
$ mkdir ~/bin
$ cd ~/bin
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
※ Repo:
Git を補完するツール(スクリプト)、複数の Git レポジトリを管理する
(普通は、メインレポジトリに対して外部レポジトリを追加するが、
Repo は初めから複数を管理することが出来る)
【6. Repo の初期化】
作業用ディレクトリを作成し、そこで Repo を初期化する。
$ mkdir ~/mydroid
$ cd ~/mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git
「repo initialized in /mydroid」と出力されたら初期化成功。
が、無入力でも構わない(Enter で次へ)。
これらの情報はソースのコミット時に必要となる。
後で以下のコマンドでも登録が可能だ。
$ git config --global user.email "XXX@gmail.com"
$ git config --global user.name "Xxx Xxx"
【7. Android ソースの取得】
Repo を初期化した作業用ディレクトリへ移動し、ダウンロードを開始する。
$ cd ~/mydroid
$ repo sync
これで Android のソースが手に入った。
※もしも、この後のビルドでエラーが出てしまったら、
以下のライブラリを追加してみてほしい。
$ sudo apt-get install zlib1g-dev libncurses-dev
Intent のコンストラクタ
■ Intent のコンストラクタ ■
[1] Intent();
[2] Intent( Intent o );
[3] Intent( String action );
[4] Intent( String action, Uri uri );
[5] Intent( Context packageContext, Class cls );
[6] Intent( String action, Uri uri, Context packageContext, Class cls );
■ Intent 利用のサンプル ■
Action/Data で Intentを構成して Activity を起動するスタイルは、
とても分かりやすく、プログラム的にもやさしい。
Data 部分の「Content URI」は、Android プログラミングの基本要素だ。
[1] 電話帳からピックアップする
Intent myintent = new Intent( Intent.ACTION_PICK, Uri.parse("content://contacts/people") );
startActivity( myintent );
[2] 電話帳の一人の情報を編集する
Intent myintent = new Intent( Intent.ACTION_EDIT, Uri.parse("content://contacts/people/1") );
startActivity( myintent );
[3] Google Map を表示する
String address = addressfield.getText().toString();
address = address.replace( ' ', '+' );
Intent myIntent = new Intent( Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + address) );
startActivity( myIntent );
[4] Web ページを表示する
Intent myintent = new Intent( Intent.ACTION_WEB_SEARCH, Uri.parse("http://www.google.co.jp/ig?hl=ja") );
startActivity( myintent );
[5] 同アプリケーション内の Activity 遷移
Intent i = new Intent( this, NoteEdit.class );
startActivity( i );
Intent i = new Intent( this, NoteEdit.class );
i.putExtra( NotesDbAdapter.KEY_ROWID, id );
startActivity( i );
