2013年7月1日月曜日

android コマンドライン

Androidのコマンドラインツールについて使ってみて理解を深める

1. コマンドラインでのビルドとパッケージの作成
 
== 準備 
Androidコマンドへのパスを通しておく
$ vi ~/.bash_profile
alias ls="ls -F"
export PATH=$PATH:\
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:\
/cocos/adt-bundle-mac-x86_64-20130522/sdk/platform-tools:\
/cocos/adt-bundle-mac-x86_64-20130522/sdk/tools:\
/cocos/android-ndk-r8e

== プロジェクトをダウンロード
$ git clone https://github.com/gabu/AnimCalc.git
$ cd AnimCalc

== 鍵ファイルの作成
$ export _JAVA_OPTIONS='-Dfile.encoding=UTF-8'
$ keytool -genkey -alias blues -keystore .keystore
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
キーストアのパスワードを入力してください:  
新規パスワードを再入力してください: 
姓名を入力してください。
  [Unknown]:  a
組織単位名を入力してください。
  [Unknown]:  personal
組織名を入力してください。
  [Unknown]:  blueskite
都市名または地域名を入力してください。
  [Unknown]:  tokyo
州名または地方名を入力してください。
  [Unknown]:  kanto
この単位に該当する 2 文字の国番号を入力してください。
  [Unknown]:  JP
CN=a, OU=personal, O=blueskite, L=tokyo, ST=kanto, C=JP でよろしいですか?
  [no]:  yes

 の鍵パスワードを入力してください。
 (キーストアのパスワードと同じ場合は RETURN を押してください):    <単純にReturnのみ>
$ ls -al .keystore   // 鍵ファイルの作成
-rw-r--r--  1 hoge  staff  1235 Jul  1 11:35 .keystore

$ vi ant.properties   // 新規作成
key.store=.keystore
key.alias=blues

// 以下も設定できるがソース管理を考慮して定義すること
key.store.password=******
key.alias.password=****** (上記例では同じパスワード)

== プロジェクトのビルド
$ android update project -p . -t 1  // パスとインストール対象のデバイス設定
   → sdk.dirの記述されたlocal.propertiesファイルが生成

$ ant  debug
...  BUILD SUCCESSFUL とでればOK  
$ ls -ltr bin/*   ...
AnimCalc-debug.apk // デバッグ用はこちらを使う
AnimCalc-debug-unaligned.apk  // zipalign(32bitに整えるツール)適用前ファイル(使わない)

$ ant release // ant.propertiesでパスワードを設定していなかったらきかれる
$ ls -ltr
AnimCalc-release-unsigned.apk   // 署名なしアプリはインストール出来ないので無視
AnimCalc-release-unaligned.apk // zipalign適用前ツール
AnimCalc-release.apk // リリース時はこちらを利用

$ ant clean  // binディレクトリを削除する

$ android list targets // 現在の開発環境で利用可能なターゲット
Available Android targets:
id: 1 or "android-17"
     Name: Android 4.2.2
     API level: 17   (....一部省略)
     ABIs : armeabi-v7a

== プログラムのインストール、アンインストール
※ ターゲットがあること(端末なら接続中、エミュレータなら起動中のこと)
- インストール
$ adb install bin/AnimCalc-release.apk 
1000 KB/s (368905 bytes in 0.359s)
 pkg: /data/local/tmp/AnimCalc-release.apk
Success

- パッケージ名の調査
$ adb shell
# cd /data/data
 # ls |grep -v com.android
net.gabuchan.android.animcalc  // 名前がわかった
# exit

- アンインストール
$ adb uninstall net.gabuchan.android.animcalc 
Success

== PCからアプリを起動
$ adb shell am stop -a android.intent.action.MAIN -n net.gabuchan.android.animcalc/.MainActivity


2. NDKの使い方を深める

 
$ ndk-build APP_ABI=all   // 4つのアーキテクチャでビルドする (引数を指定しなかったらarmeabi/ のみ)

$ ls libs/
armeabi/ armeabi-v7a/ mips/  x86/
$ ls libs/armeabi-v7a/
libnative-audio-jni.so*

$ ndk-build clean  // ビルドの初期化