Eclipseを使わずにアプリをつくる場合に。
マーケットへの公開を考慮して署名も埋め込む。
CentOS上での環境作成はこちら。
署名キーの作成
$ keytool -genkey -v -keystore example.keystore \ -alias example -keyalg RSA -validity 10000
aliasとkeypassを変えて-genkeyを実行すれば、同一キーストアに対して複数のキーを登録することができるらしい。
プロジェクト作成
$ android create project -n HelloWorld \ -t 1 -k com.example.helloworld \ -p ~/workspace/HelloWorld -a HelloWorld
コーディング
Emacs や Vi とかで適当に。
署名を入れる
$ jarsigner -verbose -keystore ~/example.keystore \ ~/workspace/helloworld/bin/HelloWorld-unsigned.apk example
この状態で、すでに署名は入っているので確認する。
$ jarsigner -verify -verbose -certs \ ~/workspace/helloworld/bin/HelloWorld-unsigned.apk
適正化
適正化すると同時にファイル名も変更する。
$ zipalign -v 4 ~/workspace/helloworld/bin/HelloWorld-unsigned.apk \ ~/HelloWorld.apk $ zipalign -c -v 4 ~/HelloWorld.apk
マーケットアップロード時の制限
以上で作ったapkをマーケットで公開するにはいくつか制限がある。
できあがり
BrowserLauncher20110911013951826469564.apk
BrowserLauncher20110911072449000000.apk
少しレスポンスヘッダをいじるとよい。
header("Content-Type: application/vnd.android.package-archive"); header("Content-disposition: attachment; filename=" . $filename); header("Content-Length: $size"); readfile($filename);