Hatena::ブログ(Diary)

課題をやる

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
    インストールを行うOSCPUやバージョンを調べたり,
    必要な関連ツールを調査する。そして,これらの状況を記述した
    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

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/fkouponf_37/20110619/1308489715