最近、猫も杓子もスマートフォンで再来年にはシェアが 50% を超えると言われてる。
つー訳でおいらもミーハーに Android 開発をやって見たくなり、とりあえず開発環境をしらべて見た。

と言ってもいつもの如く FreeBSD & Eclispe使いたく無い なので偉く苦労するはめに。



Android の SDK は Google が公開している。
http://developer.android.com/sdk/index.html

Linux 版があるので動かしてみた。
ダウンローダみたいのは起動したが Linux とは認識されずダウンロード出来ない (;_;) /blog/20110206/android-sdk-linux.png
赤い×印が...

で、ググってたら bsdroid なる物が有志で移植されてるらしいのを見付けた。
http://bsdroid.org/tiki-index.php

ここから AOSP-2.2-20100709-i386, 14Mb を落してくる。
GUI でもできるけど基本 CUI でやる。



BSDroid.INFO に従ってまずは環境設定。

$ setenv ANDROID_SDK_ROOT /opt/android-AOSP-2.2-i386-distro-20100709
$ setenv SDK_UPDATER_URLS http://bsdroid.org/

でツール起動して更新パッケージを全部落す。

$ tools/android update sdk -u



AVD(AndroidVirtualDevice)を作る。

$ tools/android list target
Available Android targets:
id: 1 or "android-AOSP"
     Name: Android AOSP (Preview)
     Type: Platform
     API level: AOSP
     Revision: 20100709
     Skins: WQVGA432, HVGA (default), WVGA854, WQVGA400, QVGA, WVGA800

$ tools/android create avd --name test --sdcard 64M --target 1

状況確認。

$ tools/android list avd                                                  
Available Android Virtual Devices:
    Name: test
    Path: /home/xxxx/.android/avd/test.avd
  Target: Android AOSP (Preview) (API level AOSP)
    Skin: HVGA
  Sdcard: 64M



エミュレータの起動。起動が凄く重い。Core2Duoで2分かかる。

$ tools/emulator -avd test

↓2分...



adb サーバを起動する。adbはデバッガらしい。

$ tools/adb fork-server server
$ tools/adb start-server



プロジェクトを作る。

$ tools/android create project -t 1 -p projects/sample -k "com.sample.test" -a HelloWorld

mainのソースとインストールまでできる build.xml が生成される。

$ ls -1 projects/sample/
AndroidManifest.xml
bin/
build.properties
build.xml
default.properties
libs/
local.properties
res/
src/



インストールを行うにはリリース用の鍵が必要なので keytool で作る。 パスワードは "android" でないといけない。 変更できると思うが設定の場所がよく分からん。

$ cd ~/.android/
$ keytool -genkey -v -keystore debug.keystore \
	-alias androiddebugkey -keyalg RSA \
	-validity 10000 -dname "CN=Android Debug,O=Android,C=US"
passwd: android



メインクラスに HelloWorld 出力コードの修正。
projects/sample/src/com/sample/test/HelloWorld.java:

package com.sample.test; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView disp = new TextView(this); disp.setText("Hello world!"); setContentView(disp); } }



やっとコンパイルとインストール。

が、このままコンパイルするとこんなエラーが出る。

…/projects/sample/build.xml:78: For 'AOSP' SDK Preview, attribute minSdkVersion in AndroidManifest.xml must be 'AOSP'

よく分からんがググって出て来た設定を projects/sample/AndroidManifest.xml に追加。

< ?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sample.test" android:versionCode="1" android:versionName="1.0"> <application android:label="@string/app_name" android:icon="@drawable/icon"> <activity android:name="HelloWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="AOSP" /> <!-- これ追加 --> </manifest>



さらに、コンパイル時に tools/ant が無いと言われたら tools/ant を
http://bsdroid.org/tiki-index.php
の別のアーカイブから探してコピーする。

…/projects/sample/build.xml:78: Rules directory '…/tools/ant' is missing.



後は、エミュレータへのインストールまで ant がやってくれる。

$ cd projects/sample
$ ant install

エミュレータの画面を確認すると HelloWorld がアプリに追加されている。

実行してみる。

動いた!!

一応、これで最低限の開発環境が出来た。
でも実機持って無いんだよねオレ... orz



参考にしたページ:
http://d.hatena.ne.jp/isher/20100928/1285616799
http://blog.goo.ne.jp/quamtacq/e/416f3335540cee9e50b90dee47688bb4