LinuxにAndroidSDKをインストール
Eclipse無しでLinuxにAndroidSDKをインストールして、コマンドラインからコードを修正したり、ビルドしたりしてみます。通常はEclipseで開発すれば何も問題無いので、そちらをおすすめします。
Linuxにrootでログインしてgoogleというユーザーを作るところから始めます。
まずは、googleグループの作成
[google@localhost android]$ groupadd -g 542 google
次に、googleユーザーの作成 -g 542 で先ほど作成したgoogleグループを指定し、 -s /bin/bash でログインシェルはbashを指定、-d /home/googleでホームディレクトリの指定
[google@localhost android]$ useradd -g 542 -u 542 google -s /bin/bash -d /home/google
googleユーザーが作成できたのでrootからgoogleユーザーにチェンジ
[google@localhost android]$ su - google
androidディレクトリの作成、androidに関する作業はこの下で行うことにします。別に何でもいいんですが…
[google@localhost android]$ mkdir android
androidディレクトリへ移動
[google@localhost android]$ cd android/
wgetでandroid_sdk_linux_m3-rc22a.zipをダウンロード。
[google@localhost android]$ wget http://dl.google.com/android/android_sdk_linux_m3-rc22a.zip
--11:22:03-- http://dl.google.com/android/android_sdk_linux_m3-rc22a.zip
=> `android_sdk_linux_m3-rc22a.zip'
dl.google.com をDNSに問いあわせています... 72.14.203.91
dl.google.com|72.14.203.91|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 55,322,693 (53M) [application/zip]
100%[===========================================================================================================================>] 55,322,693 832.51K/s ETA 00:00
11:23:13 (782.97 KB/s) - `android_sdk_linux_m3-rc22a.zip' を保存しました [55322693/55322693]
落としたファイルは解凍する前にMD5のチェックをします。これはダウンロードしたファイルが改ざんされていないかどうか確認するためのものです。
[google@localhost android]$ md5sum android_sdk_linux_m3-rc22a.zip
84b3455de5cdfd841a172c13d24c382e android_sdk_linux_m3-rc22a.zip
md5sumで対象のファイルを指定すると何やら「84b3455de5cdfd841a172c13d24c382e」と文字が出ます。この文字をダウンロード元のMD5 Checksumと比べます。
目視で比べて大丈夫そうならおkでいいかもしれませんが、厳密にやりたい方はコピペでエディターに貼り付けて比較するなり、diff使うなり色々あると思います。私は面倒なので目視でいきます。
[google@localhost android]$ md5sum android_sdk_linux_m3-rc22a.zip > check.txt
[google@localhost android]$ more check.txt
84b3455de5cdfd841a172c13d24c382e android_sdk_linux_m3-rc22a.zip
[google@localhost android]$ echo 84b3455de5cdfd841a172c13d24c382e >> check.txt
[google@localhost android]$ more check.txt
84b3455de5cdfd841a172c13d24c382e android_sdk_linux_m3-rc22a.zip
84b3455de5cdfd841a172c13d24c382e
md5sumの結果をファイルに入れてみたりとか
問題なさそうであれば解凍します。
[google@localhost android]$ unzip android_sdk_linux_m3-rc22a.zip
ずらーっと何か画面に表示されると思います。
次に必ず必要と言うわけではありませんが、
[google@localhost android]$ ln -s android_sdk_linux_m3-rc22a android_sdk
android_sdk_linux_m3-rc22aは長ったらしいので、android_sdkという名前でシンボリックリンク貼っておきます。
[google@localhost android]$ ls -lt
lrwxrwxrwx 1 google google 26 11月 20 11:26 android_sdk -> android_sdk_linux_m3-rc22a
cdで移動する時など、
cd android
で移動できます。
次にprojectsというディレクトリを作成します。この中にandroidのプロジェクトを作成していきます。
[google@localhost android]$ mkdir projects
projectディレクトリに移動
[google@localhost android]$ cd projects/
projectsディレクトリの中に更にHelloAndroidディレクトリを作成し、移動します。
[google@localhost projects]$ mkdir HelloAndroid
[google@localhost projects]$ cd HelloAndroid/
いよいよandroid_sdk/tools/のactivityCreator.pyを使ってプロジェクトを作成します。Eclipseの場合、プロジェクトを作成した段階で出来るファイルをこのバッチプログラムを使って作成します。
activityCreator.py com.google.android.samples.HelloAndroid
という風に引数を指定して実行します。
[google@localhost HelloAndroid]$ ../../android_sdk/tools/activityCreator.py com.google.android.samples.HelloAndroid
package: com.google.android.samples
out_dir: /home/google/android/projects/HelloAndroid
activity_name: HelloAndroid
Created directory /home/google/android/projects/HelloAndroid/src/com/google/android/samples
Added file /home/google/android/projects/HelloAndroid/src/com/google/android/samples/HelloAndroid.java
Created directory /home/google/android/projects/HelloAndroid/bin
Created directory /home/google/android/projects/HelloAndroid/res/values
Added file /home/google/android/projects/HelloAndroid/res/values/strings.xml
Created directory /home/google/android/projects/HelloAndroid/res/layout
Added file /home/google/android/projects/HelloAndroid/res/layout/main.xml
Added file /home/google/android/projects/HelloAndroid/AndroidManifest.xml
Added file /home/google/android/projects/HelloAndroid/build.xml
ここで必ず必要ではないですが、通常のコマンドと同じように実行できるようにactivityCreator.pyのあるtoolディレクトリへパスを通しておきます。
[google@localhost ~]$ vi .bashrc
[google@localhost ~]$ more .bashrc
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
#PAHT
export PATH=$PATH:/home/google/android/android_sdk/tools
.bashrcをエディターで開いて
export PATH=$PATH:/home/google/android/android_sdk/tools
を最後に追記すればいいです。
.bashrcの変更をすぐに反映させるため以下のコマンドを打ちます。
[google@localhost ~]$ source .bashrc
コマンドを打たなくてもログインし直したり、OSを再起動すると変更が常に有効になります。
以上の変更がうまくいったかどうか試しにHelloAndroidを作成したのと同様にHelloAndroid2を作成してみます。
[google@localhost android]$ cd android/projects/
[google@localhost android]$ mkdir HelloAndroid2
[google@localhost android]$ cd HelloAndroid2/
[google@localhost HelloAndroid2]$ activityCreator.py com.google.android.samples.HelloAndroid2
package: com.google.android.samples
out_dir: /home/google/android/projects/HelloAndroid2
activity_name: HelloAndroid2
Created directory /home/google/android/projects/HelloAndroid2/src/com/google/android/samples
Added file /home/google/android/projects/HelloAndroid2/src/com/google/android/samples/HelloAndroid2.java
Created directory /home/google/android/projects/HelloAndroid2/bin
Created directory /home/google/android/projects/HelloAndroid2/res/values
Added file /home/google/android/projects/HelloAndroid2/res/values/strings.xml
Created directory /home/google/android/projects/HelloAndroid2/res/layout
Added file /home/google/android/projects/HelloAndroid2/res/layout/main.xml
Added file /home/google/android/projects/HelloAndroid2/AndroidManifest.xml
Added file /home/google/android/projects/HelloAndroid2/build.xml
[google@localhost HelloAndroid2]$ pwd
/home/google/android/projects/HelloAndroid2
[google@localhost HelloAndroid2]$ ls
AndroidManifest.xml bin build.xml res src
以上でプロジェクトの作成は上手く行きました。
次にHelloAndroidのソースを変更してエミュレーターの画面に「Hello,Android」と表示できるようにします。
[google@localhost HelloAndroid]$ more src/com/google/android/samples/HelloAndroid.java
package com.google.android.samples;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
以上のようにソースを編集してください。Eclipseで編集した時と同じです。
ソースの編集をするとEclipseでは、Eclipseが勝手に動いてコンパイルしたり色々やってくれたわけですが、コマンドラインからは自分でコンパイルして色々調整しないといけません。
ただ、それだと面倒なのでantを使えば一発でコンパイルから何からやってくれます。
今回はantが入っていなかったのでダウンロードしてきてantが使えるようにしました。
まずは、antをダウンロードします。android_sdk_linux_m3-rc22a.zipをダウンロードしてmd5sumをチェック、解凍の流れと同じです。
[google@localhost ~]$ cd
/home/googleに移動、ここにantをインストールします。
[google@localhost ~]$ wget http://ftp.kddilabs.jp/infosystems/apache/ant/binaries/apache-ant-1.7.0-bin.tar.gz
--12:16:22-- http://ftp.kddilabs.jp/infosystems/apache/ant/binaries/apache-ant-1.7.0-bin.tar.gz
=> `apache-ant-1.7.0-bin.tar.gz'
ftp.kddilabs.jp をDNSに問いあわせています... 192.26.91.193, 2001:200:601:10:206:5bff:fef0:466c
ftp.kddilabs.jp|192.26.91.193|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 8,958,777 (8.5M) [application/x-gzip]
100%[===========================================================================================================================>] 8,958,777 825.42K/s ETA 00:00
12:16:34 (752.44 KB/s) - `apache-ant-1.7.0-bin.tar.gz' を保存しました [8958777/8958777]
MD5のチェック
[google@localhost ~]$ md5sum apache-ant-1.7.0-bin.tar.gz
d721b0add40355d7049ec694b91eb332 apache-ant-1.7.0-bin.tar.gz
[google@localhost ~]$ echo d721b0add40355d7049ec694b91eb332
d721b0add40355d7049ec694b91eb332
解凍します。
[google@localhost ~]$ tar zxvf apache-ant-1.7.0-bin.tar.gz
またもやシンボリックリンク貼っておきます。
[google@localhost ~]$ ln -s apache-ant-1.7.0 ant
[google@localhost ~]$ ls -lt
合計 8776
lrwxrwxrwx 1 google google 16 11月 20 12:18 ant -> apache-ant-1.7.0
そして、またもやパスに追加しておきます。
[google@localhost ~]$ more .bashrc
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
#PAHT
export PATH=$PATH:/home/google/android/android_sdk/tools
export ANT_HOME=$ANT_HOME:/home/google/ant
export PATH=$PATH:$ANT_HOME/bin
パスに追加したのを有効にします。
[google@localhost ~]$ source .bashrc
antのインストールされている場所の確認
[google@localhost ~]$ which ant
~/ant/bin/ant
ついでにantのバージョンの確認。
[google@localhost ~]$ ant -version
Apache Ant version 1.7.0 compiled on December 13 2006
ここまで、出来ればantインストール完了。この変でつまずいたらパスが通ってないとかそういう感じです。
先ほど作成したHelloAndroidをビルド(コンパイルとか色々)します。build.xmlのあるディレクトリでantと打つだけです。
[google@localhost ~]$ cd android/projects/HelloAndroid
[google@localhost HelloAndroid]$ ls
AndroidManifest.xml bin build.xml res src
[google@localhost HelloAndroid]$
[google@localhost HelloAndroid]$ ant
Buildfile: build.xml
dirs:
[mkdir] Created dir: /home/google/android/projects/HelloAndroid/bin/classes
resource-src:
[echo] Generating R.java...
aidl:
compile:
[javac] Compiling 2 source files to /home/google/android/projects/HelloAndroid/bin/classes
dex:
package-res:
package-res-no-assets:
[echo] Packaging resources...
package-dex:
[echo] Packaging dex...
package:
BUILD SUCCESSFUL
Total time: 7 seconds
無事何かできました。
binの下に出来る.apkという拡張子付きのファイルが作成したアプリらしいです。こいつをエミュレーターなり、実機なりに入れれば動くらしいです。
[google@localhost HelloAndroid]$ ls bin/
HelloAndroid.apk classes classes.dex
.apkのついたファイルのエミュレーターでの実行方法は、こちらが参考になります。
試しに私も以下のような感じで,LinuxからHelloAndroid.apkを持ってきて、ウィンドウズ上で試してみました。
cd C:\tmp
start emulator
C:\tmp>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 98FF-5459 です
C:\tmp のディレクトリ
2007/11/20 12:33 <DIR> .
2007/11/20 12:33 <DIR> ..
2007/11/20 12:27 4,386 HelloAndroid.apk
2007/10/16 18:03 3,638 index.html
2007/11/20 12:34 29 slirp.log
2007/10/22 12:45 0 UIDbgMon.out
2007/06/27 17:06 <DIR> 新しいフォルダ
4 個のファイル 8,053 バイト
3 個のディレクトリ 17,573,523,456 バイトの空き領域
C:\tmp>adb install HelloAndroid.apk
68 KB/s (0 bytes in 4386.000s)
C:\tmp>
なんかadb install HelloAndroid.apkでうまくファイルがエミュレーターに渡らず上手くいきませんでした。
このへんと同じ問題な気もするけど、とりあえず今日の所はここまで。そのうち解決します。
| 固定リンク | コメント (0) | トラックバック (0)

