facebook twitter hatena line google mixi email

Linux/android sdkインストール

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

ダウンロード

cd /usr/local/src
wget http://dl.google.com/android/android-sdk_r13-linux_x86.tgz

展開

tar zxvf android-sdk_r13-linux_x86.tgz

環境パス登録

vi ~/.bashrc で最下へ登録
export PATH=$PATH:/usr/local/src/android-sdk-linux_x86/tools/
source ~/.bashrc #環境パス更新

java(JREでなくJDK)が入ってないときはjavaをインストール

# yum install java

アンドロイドSDKを更新

cd /usr/local/src/android-sdk-linux_x86/
# mkdir /usr/local/src/android-sdk-linux_x86/temp
# /usr/local/src/android-sdk-linux_x86/tools/android update sdk -u
# /usr/local/src/android-sdk-linux_x86/tools/android list target

antインストール

cd /usr/local/src
wget http://ftp.riken.jp/net/apache/ant/binaries/apache-ant-1.8.4-bin.tar.gz
# wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.8.4-bin.tar.gz
tar zxvf apache-ant-1.8.4-bin.tar.gz
vi ~/.bashrc で最下へ登録
export PATH=$PATH:/usr/local/src/apache-ant-1.8.4/bin
export ANT_HOME=/usr/local/src/apache-ant-1.8.4
source ~/.bashrc #環境パス更新
ant -version
Apache Ant(TM) version 1.8.4 compiled on May 22 2012

helloworldプロジェクト作成

$ android create project -n AndroidHelloworldLinux -t 1 -k info.nonip.AndroidHelloworldLinux -p /var/www/android/AndroidHelloworldLinux -a AndroidHelloworldLinux
Created directory /var/www/android/AndroidHelloworldLinux/src/info/nonip/AndroidHelloworldLinux
Added file /var/www/android/AndroidHelloworldLinux/src/info/nonip/AndroidHelloworldLinux/AndroidHelloworldLinux.java
Created directory /var/www/android/AndroidHelloworldLinux/res
Created directory /var/www/android/AndroidHelloworldLinux/bin
Created directory /var/www/android/AndroidHelloworldLinux/libs
Created directory /var/www/android/AndroidHelloworldLinux/res/values
Added file /var/www/android/AndroidHelloworldLinux/res/values/strings.xml
Created directory /var/www/android/AndroidHelloworldLinux/res/layout
Added file /var/www/android/AndroidHelloworldLinux/res/layout/main.xml
Added file /var/www/android/AndroidHelloworldLinux/AndroidManifest.xml
Added file /var/www/android/AndroidHelloworldLinux/build.xml
Added file /var/www/android/AndroidHelloworldLinux/proguard-project.txt

build.xml他だけ作りたい時

サンプルプロジェクトを作ってそこからコピーする

cp ../AndroidHelloworldLinux/build.xml build.xml 
cp ../AndroidHelloworldLinux/local.properties local.properties
cp ../AndroidHelloworldLinux/ant.properties ant.properties

build.xmlのプロジェクト名を適宜を変更

デバッグ&ビルド

cd AndroidHelloworldLinux
ant debug

以下エラーが発生した場合はantのバージョン(1.6.5)に問題があるのでantを1.8.xへバージョンアップ

Buildfile: build.xml
BUILD FAILED
/var/www/android/AndroidHelloworldLinux/build.xml:81: The following error occurred while executing this line:
/usr/local/src/android-sdk-linux_x86/tools/ant/build.xml:197: Class org.apache.tools.ant.taskdefs.condition.And doesn't support the nested "matches" element.
  • ant1.6.5をアンインストール
# yum remove ant.x86_64

apk作成

cd AndroidHelloworldLinux
ant release

binの下にAndroidHelloworldLinux-release.apkができている

apk作成がkeystoreがなくてエラーが出る場合

既にkeyを作成済みの場合は、ant.propertiesにkeystoreのパスを追加

key.store=/var/www/android/android.keystore
key.alias=release_project1
key.store.password=[キーストアのパスワード]
key.alias.password=[キーストア別名のパスワード]

apacheでコンパイルするには

以下をant releaseするバッチ内に書いておく

export PATH=$PATH:/usr/local/src/android-sdk-linux_x86/tools/
export PATH=$PATH:/usr/local/src/apache-ant-1.8.4/bin

ant実行時に以下エラーが発生した場合

/usr/local/src/android-sdk-linux_x86/platform-tools/aapt: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
cp /usr/lib64/libstdc++.so.6.0.17 /usr/lib/libstdc++.so.6.0.17
ln -s /usr/lib/libstdc++.so.6.0.17 /usr/lib/libstdc++.so.6

apkを署名

# apk署名
$ /usr/bin/jarsigner -verbose -keystore my-release-key.keystore my_application.apk alias_name
# 署名確認
$ /usr/bin/jarsigner -verify my_signed.apk

zipalignでapk最適化

RAM の総使用量を減らすことができる

# 最適化実行
~/tools/zipalign -v 4 in.apk out.apk
# 確認
~/tools/zipalign -c -v 4 out.apk

参考

http://d.hatena.ne.jp/unagi_brandnew/20110908/1315420036