執筆中
目次
参考にするリンク
公式
- Android Developers
- http://developer.android.com/index.html
- Android Open Source
- http://source.android.com/source/index.html
- Get Involved Android Open Source
- http://source.android.com/source/index.html
構成
私がインストールした構成を掲載しておきます。
- 筐体
- VirtualBox 4.2.0 r80737
- OS
- Ubuntu 12.04 Server(64 bit)
- sdkのダウンロードパス
- /data/android/sdk
- repoのダウンロードパス
- /data/android/ ←ここに直接 repo ファイルを置きました。
- srcのダウンロードパス
- /data/android/src
- プロジェクト作成パス
- /data/android/project
- プロジェクト名
- test
事前準備
Sun Java JDK をインストール
ちなみに "deb
http://archive.ubuntu.com/ubuntu hardy-updates main multiverse" も書いてありますが、別になくてもインストールはできました。
あと、/etc/apt/sources.list の下の方に「Ubuntu's 'extras' repository」として登録があるので、両方のコメントアウトを外せばいいのかもしれません。
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
sudo apt-get update
sudo apt-get install sun-java6-jdk
適当にインストールに同意して、sun-java6-jdkはOKです。
add-apt-repositoryを使う場合
サイトの手順に則る場合、以下のソフトを事前にインストールしておく必要があります。
sudo aptitude install python-software-properties
Ubuntu環境だと。。。
Ubuntuでは、Javaは"OpenJDK"というのが最初動くようになっています。
これを"Sun Java JDK"に変更してやる必要があります。
sudo update-alternatives --config java
と叩いて、"java-6-sun"となっている行の番号を選びましょう。
ちなみに sudo が必要であることをみて「?」と思うことでしょう。
実はこれ、確認するとただのシンボリックリンクです。
which java
/usr/bin/java
ls -l /usr/bin/java
lrwxrwxrwx 1 root root ~~~ /usr/bin/java -> /etc/alternatives/java
ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root ~~~ /etc/alternatives/java -> /usr/lib/jvm/java-6-sun/jre/bin/java
他に要るもの
ソースをrepoから落とされる際は、精神衛生上、コーヒーなどの落ち着ける飲み物を用意することをオススメします。
Ubuntu 12.04 に環境を作ってみた
Android SDK
2012/09/30現在、Ubuntuで言えば最新は"android-sdk_r20.0.3-linux.tgz"のようです。
mkdir /data/android/sdk
cd /data/android/sdk
wget http://dl.google.com/android/android-sdk_r20.0.3-linux.tgz
落とし終わったら展開します。
tar zxf android-sdk_r20.0.3-linux.tgz
cd android-sdk-linux/
過去全てのバージョンを落とす必要は無いので、sdkのリストを取得して必要なものだけ入れます。
tools/android list sdk
すると以下のような文言のあとに番号と落とせる物のリストが出ます。
...
Packages available for installation or update: 76
1- Android SDK Platform-tools, revision 14
2- Documentation for Android SDK, API 16, revision 2
3- SDK Platform Android 4.1, API 16, revision 2
4- SDK Platform Android 4.0.3, API 15, revision 3
...
左の数字が落とせるデータの番号です。
"Android SDK Platform-tools"は必須でしょう。
あとは必要なSDKと参照用ソース、エミュレータを使うなら対応する「~ System Image, ~」等を落とします。
Eclipseを使う場合は、API 8を求められることがあるようなので、使う予定なら落としておきましょう。
tools/android update sdk --no-ui --filter 1,2,3,4
オプション--filterに続けてカンマ区切りで複数指定できます。
オプション--no-uiはコンソールでやりますよ、という宣言です。
プロジェクト作成
インストール済みのSDKとIDを確認しておきます。
tools/android list targets
先ほどのupdate sdkで落とせていれば「id: 1 or "android-15"」というのが見えます。
これがIDとSDK名です。
必要なSDK_IDが分かったらプロジェクトを作成します。
- コマンド
- android [global options] create project [action options]
| オプション |
説明 |
| -n --name |
プロジェクト名 |
| -t --target |
さっき調べたSDKのID |
| -p --path |
プロジェクトを作成するパス(ここにManifestとかできます) |
| -k --package |
プロジェクトのルートパッケージ名 |
| -a --activity |
Luncherから起動されるルートActivity名 |
私の環境では以下のようになります。
tools/android create project -n test -t 1 -p /data/android/project/test -k orz.bovecrach.test -a Main
サクサク出来上がります。移動して確認してみましょう。
こんな感じに展開されました。
cd /data/android/project/test
find ./ -type f
./build.xml
./local.properties
./src/orz/bovecrach/test/Main.java
./project.properties
./proguard-project.txt
./ant.properties
./AndroidManifest.xml
./res/values/strings.xml
./res/drawable-hdpi/ic_launcher.png
./res/drawable-mdpi/ic_launcher.png
./res/drawable-ldpi/ic_launcher.png
./res/layout/main.xml
ビルド
Antのインストール
Apache Ant 1.8 or later
と書いてありますので、UbuntuでインストールできるAntを確認します。
sudo aptitude show ant
以下のように表示されました。1.8以降ですので問題ないですね。
パッケージ: ant
新規: はい
状態: インストールされていません
バージョン: 1.8.2-4build1
ではインストール。
sudo aptitude install ant
Antでデバッグビルド
- 参考URL(英語)
- http://developer.android.com/tools/publishing/preparing.html
といっても、プロジェクトを作成した時点で build.xml が出来上がってるのでビルドするだけです。
配下に bin/ と gen/ が出来上がってビルドが完了します。
bin/*.apk というのがアプリケーション本体ですね。
cd /data/android/project/test
ant debug
インストールも簡単です。
ant install
普通は1回でやっちゃうので、
ant debug install
と書いてしまいます。
Antでリリースビルド(署名無し)
こちらも簡単です。
cd /data/android/project/test
ant release
Antでリリースビルド(署名付き)
ただ、リリースビルドする時は普通正式な署名を行うものなので、そちらもやりましょう。
- 参考URL(英語)
- http://developer.android.com/tools/publishing/app-signing.html
- 「Signing in Release Mode」あたりに書いてあります。
まぁ、平たく言うと
java が提供している keytool 使って署名作って当てて。
と書いてあります。
事前準備で
Sun Javaのインストールを終えていますので、あとは作るだけです。
実質、設定を決めるオプションは2つだけなので迷わないでしょう。
- コマンド
- keytool -genkey [option]
| -keystore |
作成するキーストアの名前 |
| -alias |
作成するキーストアのエイリアス名 |
| -keyalg |
暗号化形式(参考URLだとDSAかRSAの2択) |
| -keysize |
出来上がるキーストアのビット数。2048を推奨してそう。 |
| -validity |
有効期限。10000以上であればいいらしい。 |
さっそく作ってみるとこうなる。(aaaaとかxxxxxxxは本当はちゃんと入れてます)
keytool -genkey -v -keystore release-key.keystore -alias aaaa -keyalg RSA -keysize 2048 -validity 10000
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名を入力してください。
[Unknown]: xxxxxxx
組織単位名を入力してください。
[Unknown]: xxxxxxx
組織名を入力してください。
[Unknown]: xxxxxxx
都市名または地域名を入力してください。
[Unknown]: xxxxxxx
州名または地方名を入力してください。
[Unknown]: xxxxxxx
この単位に該当する 2 文字の国番号を入力してください。
[Unknown]: xx
CN=xxxxxxx, OU=xxxxxxx, O=xxxxxxx, L=xxxxxxx, ST=xxxxxxx, C=xx でよろしいですか?
[no]: yes
10,000 日間有効な 2,048 ビットの RSA の鍵ペアと自己署名型証明書 (SHA1withRSA) を生成しています
ディレクトリ名: CN=xxxxxxx, OU=xxxxxxx, O=xxxxxxx, L=xxxxxxx, ST=xxxxxxx, C=xx
<aaaa> の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください):
[release-key.keystore を格納中]
出来上がったら ant.properties に以下を書き込んでおきます。
書き方はこれまた ant.properties 内に載ってます。至れり尽くせり。英語ですが。
key.store=release-key.keystore
key.alias=aaaa
なお、パスワードも書けますがオススメはしません。自己責任で。
さぁ準備は完了しました。リリースしましょう。
cd /data/android/project/test
ant release
ビルド中に署名のパスワードを求められます。
...
-post-package:
-release-prompt-for-password:
[input] Please enter keystore password (store:release-key.keystore):
xxxxxxx
[input] Please enter password for alias 'aaaa':
xxxxxxx
...
bin/ の配下に [プロジェクト名]-release.apk が出来ていればOKです。
find bin/ -type f
...
bin/test-release.apk
...
丸ごとビルドしてみた
注意:アプリ開発にAndroid Sourceは必要ありません。
AndroidのSourceはアプリ開発には必要ありません。
APKを作る場合は
Android Developersだけで良いです。
ただ、エミュレータ環境は非常にストレスが溜まる開発環境ですので、
自分でVMを作ってみたりするのには良いと思います。
実際、私の開発環境は複数の端末を模したVM環境を作ってテストを行っています。
Android Source
サイトの通りにやっていきます。
- Android Open Source
- http://source.android.com/source/index.html
Installing the JDK
Installing required packages (Ubuntu [バージョン名])
全部入れてしまいましょう。
私は Ubuntu 12.04 に入れたので、指示通りのコマンドを丸ごとコピーしました。
GCCなどの環境を既に準備されている方はすぐに終わりますが、最初からの方は少し時間が掛かります。
数分程度、入れておいたコーヒーでも飲みながら待ちましょう。
Configuring USB Access
これはお持ちの端末の名前が登場するような方が入れるものです。
Nexus OneとかNexus 7を持っている方はやるといいです。
Setting up ccache
SSDなどを利用できる方は、指示通り設定するとビルドが高速になります。
私のようなマッタリ系の人種には特に用が無いのでSkip。
Using a separate output directory
出力先を変えても特に良いことは無いので、やっぱりSkip。
ファイルアクセスの早いディスクが欲しい。。。
Setting up a Mac OS X build environment
Macの設定なので飛ばします。
余談ですが、MacってiPhoneアプリもAndroidアプリも作れていいですね。
Downloading the Source Tree
ではrepoを利用してソースを拾いにいきましょう。
Installing Repo
repoを落とす環境について、~/binにパスを通すやり方にはなっていますが、別に必須ではないです。
頻繁にソースを更新しない人は通す必要はないでしょう。
mkdir /data/android/
cd /data/android/
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo
chmod a+x repo
ちなみに「chmod a+x」というのは“全員に実行権限を付与する”という意味です。
Initializing a Repo client
ここで指定したディレクトリにソースが落ちます。
私の場合は /data/android/src ですね。
cd /data/android/
mkdir ./src
cd ./src
../repo init -u https://android.googlesource.com/platform/manifest
この辺から気長に待つことになるでしょう。
入れておいた残りのコーヒーを温めつつ、飲みながらマッタリと待つといいです。
ちなみにブランチ(というかタグ)の指定名については、同サイトの以下URLにあるので確認してみます。
- Codenames, Tags, and Build Numbers Android Open Source
- http://source.android.com/source/build-numbers.html
- 左ペインの"Build Numbers"を選ぶだけの話ですが。。。
../repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r4
Getting the files
あとは取得が終わるまで待つだけです。非常に長いので私は寝ることにします。
では、おやすみなさい。
../repo sync
関連リンク
取得中です。
&trackback()
最終更新:2013年03月10日 12:02