最近androidの開発をするのに、eclipseが定番ですが、eclipseが重くていやなので、非eclipse環境で開発するためのまとめです。ちなみに環境はMac OS Xですが、基本的にはどの環境でもいけると思います。

事前準備


必要なモノはandroidSDKとantを準備します。

android SDK
ここから入手ダウンロードして適当なフォルダに展開しておきます。展開したディレクトリ/toolsにパスを通しておきます。
ちなみに、Mac OS Xではこれだけだと、肝心なandroidの各バージョンのパッケージが入ってないので、tools/androidを実行して、立ち上がったウィンドウ > Avalable Packages必要なパッケージ(まぁ全部いれちゃっていいです)をインストールしておきましょう。

ant
antはJakartaプロジェクトで配布されているjava環境のビルドツールです。makeみたいなものですね。Mac OS XではXCode入れていればすでに入っていると思います。ほかの環境だったら、ここから入手してください。

プロジェクト作成

android create projectコマンドを使います
android create project
--target ターゲットID
--name プロジェクト名
--path /path/to/project
--activity アクティビティ名
--package パッケージ名

ターゲットIDはandroidで定義されるAPIレベルを指定します。どんな指定をすれば良いかは、android list targetコマンドで確認できます。

ex) android create project --target 4 --name sampleproj --path ./ --activity ExampleApp --package net.hackmylife.sampleproj


ビルド

ビルドはantを使います。antではデバック用とリリース用に分かれていて、デバック用のパッケージをビルドするときは
ant debug
と打てば自動でビルドされます。ちなみにantでビルドするためにはbuild.xmlが必要ですが、android create project で作れば自動的に生成してくれます。(eclipseで作ったプロジェクトは生成されてなかった)

リリース用のパッケージは
ant release
で生成できます。がこのままだと、インストール時に署名がないと怒られます。androidでは署名の入っていないapkはemulatorにすらインストールできません。先のant debugでビルドした場合は自動でデバック用の署名をいれてくれますが、androidマーケットでは配布できません。リリース用に署名をする必要があります。

署名のしかた

keytoolコマンドで生成できます。
keytool -genkey -v -keystore キーストア名 -alias 別名 -keyalg 生成アルゴリズム -validity 有効期限(日)
一つ大事な点として、androidマーケットにだすためには、キーストアの有効期間の終了日が2033年10月22日以降になるようにしないといけません。10000日以上が推奨されているようです。
ex) keytool -genkey -v -keystore hackmylife.keystore -alias hackmylife -keyalg RSA -validity 10000
コマンドを入力するとパスワードとロケーションをきかれます。特に注意する点はありません。 keystoreができたらjarsignerで署名をします。
jarsigner -verbose -keystore キーストア名 ビルドするアプリ名 キーストアのエイリアス

ちなみに、keytoolとjarsignerはandroidの独自ツールではなくjava付属のツールです。
ex ) jarsigner -verbose -keystore hackmylife.keystore MyApp.apk hackmylife
署名が必要なのは、あくまでreleaseパッケージのみです。debugパッケージはantでビルドするときに、debug.keystoreで署名してくれるので、手動で署名する必要はありません。が、ごくまれにemulatoreにdebugパッケージをおインストールしようとすると、署名がされていないとエラーになることがあります。ML等でもちょくちょく報告があるみたいですが、emulator側のバグのようで、一度インストールされているパッケージを明示的にアンインストールすると良いようです。それでもだめな場合は、バーチャルデバイスを一度作り直すしかないようです。

emulatorの環境作成(avd作成)


androidのemulatorは各バージョンごとの仮想デバイスを作成する必要があります。
android create avd -n 仮想デバイス名 -t ターゲットID
前にも出てきましたが、どのandoroidのバージョンがどのターゲットIDかはandroid list targetsでみれます。
ex) android create avd -n avd7 -t 7
emulatorを起動する際に、仮想デバイスが複数ある場合はデバイス名を指定する必要があります。
ex) emulator -avd avd7

emulatorや実機にインストール


インストールはadbコマンドを使います
adb -e install MyApp.apk
adbコマンドに-eオプションを指定すると、emulatorにインストールします。 実機いインストールするのはとても簡単で、実機をUSBで接続し、-eオプションの代わりに-dオプションを指定するだけです。あっさりインストールできます。このあたりはiPhoneよりかなり簡単ですね。

ログの確認

adb -e logcat
こちらも同じくオプションで取得先を変更できます。もちろんgrep等でフィルタすることも可能です。 とりあえずこのあたりがあれば、プロジェクト作成から、実機での動作確認まではいけると思います。 eclipseが重くてヤダなーと思っている人はコマンドラインからの開発に乗り換えるとかなり快適です。 といってもemulatorだけはどうにもならないので、そこだけは我慢が必要です。eclipse経由で使っていたときよりは安定している気がしますが、どうなんでしょうね?