Quantcast
Channel: @blog.justoneplanet.info
Viewing all articles
Browse latest Browse all 46

Androidのソースコードを取得してビルドする

$
0
0

EC2のAmazon Linux上でビルドする。おそらくUbuntuでやる方が多数派である。

■準備

curl http://repo.us-east-1.amazonaws.com/latest/main/mirror.list
sudo vim /etc/yum.repos.d/amzn-main-32.repo 

glibc-develの32bit版が必要になるので、以下のようにしてリポジトリを追加する必要がある。

[amzn-main-32]
name=amzn-main-Base-32
baseurl=http://packages.us-east-1.amazonaws.com/2012.09/main/201209eb6a01/i386
metadata_expire=300
priority=1
failovermethod=priority
fastestmirror_enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-ga
enabled=1

必要なパッケージをインストールする。その他は適宜。

sudo yum install make git bison libxslt flex gperf gcc-c++ glibc-devel zlib-devel

OpenJDKが邪魔なので一旦消す。

sudo yum remove java-1.6.0-openjdk 

OpenJDKでビルドしようとすると以下のようにエラーがでる。

Checking build tools versions...
************************************************************
You are attempting to build with an unsupported JDK.
 
You use OpenJDK but only Sun/Oracle JDK is supported.
Please follow the machine setup instructions at

https://source.android.com/source/download.html

************************************************************

oracleのサイトに行って、JDK6をダウンロードしてインストールする。かなり省略するが、以下の様な感じにPATHを通せば良い。

PATH=$PATH:$HOME/jdk1.6.0_39/bin
JAVA_HOME=$HOME/jdk1.6.0_39
export JAVA_HOME

oracleアカウントが必要になってかなりイライラさせられるが、ダウンロードの準備をする。

mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir android
cd android
repo init -u https://android.googlesource.com/platform/manifest
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

■ダウンロード

以下のコマンドでダウンロードする。恐らく1時間以上かかる。

repo sync

■ビルド

largeでも4時間以上かかるらしいのでそれよりも大きいインスタンスを選択する事を勧める。

make

ちなみにOpenWnnをビルドしたかったので以下のように実行した。smallインスタンスでも1時間以上かかるのでlarge以上にするのが良い。

make OpenWnn

共有ライブラリは以下のパスに生成される。

out/target/product/generic/obj/lib/libwnndict.so
out/target/product/generic/obj/lib/libWnnJpnDic.so
out/target/product/generic/obj/lib/libWnnEngDic.so

OpenWnnのソースの取得

リモートのソースをそのまま持ってきても問題ないのだが、OpenWnnのソースの取得だけだったら、以下のコマンドですぐに終わる。

git clone https://android.googlesource.com/platform/packages/inputmethods/OpenWnn.git

マスターは多分ビルドできないと思うので適切なブランチに切り替える。

git checkout -b ics-mr1-release origin/ics-mr1-release

以下のコマンドを実行してリモートの共有ライブラリをローカルに配置する。

cd OpenWnn/libs/
mkdir armeabi
cd armeabi
scp -i your_key.pem user@host:/home/user/android/out/target/product/generic/obj/lib/libwnndict.so ./
scp -i your_key.pem user@host:/home/user/android/out/target/product/generic/obj/lib/libWnnJpnDic.so ./
scp -i your_key.pem user@host:/home/user/android/out/target/product/generic/obj/lib/libWnnEngDic.so ./

EclipseのProject ExplorerでImport > Existing Android ProjectでImportする。この時、Copy projects into work spaceにチェックを入れる必要がある。

参考


Viewing all articles
Browse latest Browse all 46

Trending Articles