2011-06-19
***********************************************************
■■目的
・Androidの開発環境を構築する
・コマンドの理解
参考にさせてもらったサイト。ほぼその通りに進めていった。
後々分かったこともあったのでほんの少しだけ変えたところもあったりなかったり。
第2回 Androidをビルドする - Androidのソース・コードを触ってみる:ITpro
■■eclipseのダウンロードとインストール
apt-get install eclipse
=eclipseのパッケージを取得してインストールする
→とりあえず、不要な作業だった。
■■git-coreのダウンロードとインストール
wget http://www.kernel.org/pub/software/scm/git-core//git-1.7.5.tar.bz2
=指定したURLのファイルをダウンロードする
→まず404 Not Foundのページを
見て、そのなかで最新なバージョンを指定した。
tar jxvf git-1.7.5.tar.bz2
cd git-1.7.5
■■gitのビルド
■準備
・ビルドに必要な「zlib.h」のインストール
sudo apt-get install zlib1g-dev
これをやったところで
「以下のパッケージが自動でインストールされましたが、もう必要とされていません:」
「libdns35 linux-headers-2.6.24-23-generic linux-headers-2.6.24-23」
「これらを削除するには 'apt-get autoremove' を利用してください。」
というメッセージがでたのでその通り実施した。
are you root?ってことで怒られたので
管理者権限で実行できるように以下を入力。
sudo apt-get autoremove
=依存関係がなく、不要と判断されたパッケージを自動で
削除(ubuntu edgy以降で利用可能)
■gitのビルド
./configure --with-tcltk=no
⇒詳しくは下記参照
make
⇒詳しくは下記参照
sudo make install
⇒詳しくは下記参照
cd
=ユーザ名のディレクトリに戻る
git --version
→「git version 1.7.5」と表示された。問題ないようだ。
■jdkをインストール
・git1.7.5ディレクトリに戻ってインストールを実行
apt-get install sun-java5-jdk
→結論いうとこれがダメっぽかった。
調べてわかったのは、参考にさせてもらったページの記事時点では
Java 6は@Overrideの非互換性のためサポートしていない」らしい
のだが
現時点ではjava 6がサポートしているらしい。
なので先に調べてからインストールするものを
選択しないといけないようだ。。
------------------------------------------------------
(追記)
vmwareで実行したubuntuでも同じことをやってみたら
以下のようなエラー(?)がでた。
$ sudo apt-get install sun-java6-jdk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
パッケージ sun-java6-jdk はデータベースには存在しますが、利用できません。
おそらく、そのパッケージが見つからないか、もう古くなっているか、
あるいは別のソースからのみしか利用できないという状況が考えられます
E: パッケージ sun-java6-jdk にはインストール候補がありません
そこでググったところ解決策がみつかったので記しておく
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298
(以上)
------------------------------------------------------
ライセンス確認の画面が出たらタブキーで移動させて、
「了解」を選択。
■ビルドに必要なパッケージ類のインストール
cd
→この辺で疑問に思っていたんだけど、
何でわざわざホーム/ユーザ名に戻る必要があるのか。
sudo apt-get install flex bison gperf libsdl-dev
libesd0-dev libwxgtk2.6-dev build-essential zip curl
■メモリリークの調査ツールのインストール
sudo apt-get install valgrind
■電子署名用のソフト「GnuPGoid」のインストール
sudo apt-get install gnupg
■Androidのソースコードを取得
・作業ディレクトリの作成
mkdir cd ~/eclipse/bin
→ここで場所を参考にさせてもらったサイトと
別の場所に作ってしまったので
そのままちょっとだけ変えて続行。
export PATH=~/eclipse/bin:$PATH
export=環境変数を設定
「export 変数名=設定する値」
$PATH=現時点で環境変数PATHに設定されているパス。
~/eclipse/bin:に$PATHを追加したものを新しい$PATHとする。
当たり前のことなんだけど$PATH:~/eclipse/bin
と記載しても可能。
・git用のツールである「Repo」をインストールし,
その作業ディレクトリmydroidを作成する。
curl http://android.git.kernel.org/repo >~eclipse/bin/repo
curl=Webサーバのコンテンツをダウンロードやアップロードする
コマンド
※wget等と違いはあるらしいが、調査不足。
chmod a+x ~eclipse/bin/repo
=実行権限を付与
mkdir mydroid
mkdir=ディレクトリを作成
cd mydroid
・Repoを使って作業ディレクトリmydroidを初期化
repo init -u git://android.git.kernel.org/platform/manifest.git
repo=googleリリースのgitを保管するツール、とのこと
下記を参照させてもらった
http://at-aka.blogspot.com/2009/02/repo-git.html
・ソースコードをダウンロード
cd mydroid
repo sync
cd
■Androidのソースのビルド
cd mydroid
sudo apt-get install libncurses5-dev
make
■問題、課題
・「jdkをインストール」のところでjdk5をインストールして続けた場合
ビルド時に以下のメッセージが表示されて失敗する。
You are attempting to build with the incorrect version
of java.
Your version is: java version "1.5.0".
The correct version is: 1.6.
Please follow the machine setup instructions at
http://source.android.com/source/download.html
ということになる。以下のサイトを参考にさせてもらった。
http://xiangcai.at.webry.info/201009/article_6.html
試行錯誤しながらこの辺りぐだぐだになってしまったけど
サイトを参考にこの辺は入力した。
sudo apt-get install sun-java6-jdk
java --version
update-alternatives --config java
・ビルドまだできていない
・そもそもビルドの必要性が分からない
・よってエミュレータで実行もできていない
後、コマンドの意味調べないと…。随時更新していくつもり。
■コメント
・xxxx.tar.gzのファイルのインストールの流れ
$ tar zxfv xxxxxxxx.tar.gz
$ cd xxxxxxxx
$ ./configure
インストールを行うOSのCPUやバージョンを調べたり,
必要な関連ツールを調査する。そして,これらの状況を記述した
Makefileファイルを作成する
$ make
configureで作成されたMakefileを基にしてソースコードを
コンパイルする。
ここでエラーが起こる場合には,configureで環境に沿った
パラメータを付加させなければならない。
# make install
「make install」は,makeで生成されたバイナリファイルなどを
規定のディレクトリにコピー(インストール)を行う。
インストール先のディレクトリは,自分で設定したい場合には
configureで「--prefix=/usr/xxxxxx」などとパラメータを
付加させる必要がある。
6月23日追記
エラーを載せる
xxx@yyyy:~/eclipse/bin/mydroid$ make
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)
============================================
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=3.1.4.1.5.9.2.6.5
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv5te
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
============================================
find: frameworks/base/frameworks/base/docs: No such file or directory
find: out/target/common/docs/gen: No such file or directory
find: frameworks/base/frameworks/base/docs: No such file or directory
find: out/target/common/docs/gen: No such file or directory
find: frameworks/base/frameworks/base/docs: No such file or directory
find: out/target/common/docs/gen: No such file or directory
find: frameworks/base/frameworks/base/docs: No such file or directory
find: out/target/common/docs/gen: No such file or directory
find: frameworks/base/frameworks/base/docs: No such file or directory
find: out/target/common/docs/gen: No such file or directory
参考にしているサイト
http://itpro.nikkeibp.co.jp/article/COLUMN/20091209/341844/?ST=android-dev&P=3
http://android.jpn.org/2011/02/build-the-android-23-gingerbread.html
- 20 http://pipes.yahoo.com/pipes/pipe.info?_id=tDfBdGWF3RGl9XNm1L3fcQ
- 10 http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298
- 8 http://search.minakoe.jp/rsss/rsss.asp?pgsz=100&qry=java¬wit=1&twit=0&debug=1&multi=1
- 4 http://pipes.yahoo.com/pipes/pipe.info?_id=12e453e301454b799b3ac6642aa089b5
- 3 http://d.hatena.ne.jp/keyword/curl
- 2 http://k.hatena.ne.jp/keywordblog/lucid
- 2 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADRA_jaJP410JP410&q=out/target/common/docs/gen
- 2 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CC4QFjAA&url=http://d.hatena.ne.jp/fkouponf_37/20110612/1307885791&rct=j&q=puppy linux 日本語版 ダウンロード&tbs=
- 2 http://www.google.com/custom?hl=ja&client=pub-9300639326172081&cof=FORID:13;AH:left;CX:Ubuntu%2010%2E04;L:http://www.google.com/intl/ja/images/logos/custom_search_logo_sm.gif;LH:30;LP:1;LC:#0000ff;VLC:%2
- 1 http://d.hatena.ne.jp/fusion2010/comment?date=20110621