Locked History Actions

Android

Android

※Androidについてはネット上にいくらでも資料が見つかるので、ここではほぼ流れだけを記述していく。 基本的にEclipse上での開発を想定している。

リンク

Android徹底批判

もろもろ

開発環境の使い方

トラブル

インストール

開発環境は以下のもの。

  • eclipse + ADTプラグイン
  • Android SDK

以上二つは別ディレクトリになる。Android SDKは単にダウンロードして展開すればよい。

Eclipseは3.5を使う。2010/9現在、3.6で動作するのかどうなのか明確な記述が無い。 マニュアル通りにADTプラグインをインストールするが、その前にeclipseの既存のプラグインの更新を行っておいた方がよい。 どうもADTプラグインのインストール時に勝手にこれを行っているらしく、プラグインインストールの進捗がフリーズしたように見えてしまう。

Eclipseを起動させたら、ウインドウメニューの「Android SDK and AVD Manager」を選択し、 先のAndroid SDKを展開させたフォルダを指定する。要するに、Eclipse用プラグインだけでは何もできず、 Android SDKも必要ということ。

また、この画面の中で各種パッケージ(SDK Platform, Samples, Google API,など)をインストールしておく。 とても重要なことは、エミュレータ用のVirtual Deviceが一つも定義されていないこと。 とりあえず一つを適当に作成する。

NewボタンをクリックしNameを適当に選択し、Targetを適当に選択して「Create AVD」。

Eclipseのプロジェクト作成とエミュレータ上での実行

プロジェクト作成時は、Javaプロジェクトではなく、Android Projectを選択する。 このとき、「Create project from existing sample」を選択すれば、SDKに内蔵サンプルのプロジェクトが作成されるので、 それを適当にいじってみることができる。

※1:ただしこの場合、eclipseのワークスペースには何も作成されない。SDK内蔵サンプルをワークスペースにコピーしてくるのではなく、ワークスペースからSDK内蔵サンプルを参照している状態になる。この状態でビルドすると、SDK内蔵サンプル(samples\android-?\サンプルフォルダ)の中に実行形式が作成されることになる。

※2:New Android Projectのウィザードには、上記の「create project from existing sample」のほかに、「create project from existing source」という選択肢もあるが、いずれにしてもeclipseのワークスペースにソースがコピーされるわけでは無い。それらのソースは元の場所のまま、ワークスペース内にプロジェクトが作成されるに過ぎないことに注意。

※3:サンプルソースをワークスペース内にコピーするには、まずワークスペース内に空のandoidプロジェクトを作成しておき、そこに「import」を行う必要があるようだ。eclispe上でこれ以外の方法は今のところ不明。そりゃ自分でソースをコピーしてくれば良い話ではあるが。

プロジェクトを右クリックし「Run As Android Application」を選択すると、エミュレータ画面が表示されてアプリケーションが実行される (通常のJavaプログラムの実行方法とは異なる)。 ただし、この実行には非力なマシンだとかなりの時間がかかる。

Eclipse(+ADTプラグイン)とエミュレータの関係

エミュレータについて

実行形式はどこに?

androidの実行形式は.apkという拡張子のファイルだが、これは通常のeclipse-javaプロジェクトと同様にbinディレクトリ(eclipse-IDE上では見えない)に、.classファイルと共に作成される。

何がapkとしてまとめられるか?

apkとしてまとめられる実行形式には、そのプロジェジェクトのJavaソースをコンパイルした.classファイルだけではない。 以下もこのapkの中に格納さrている。

  • ビルドパスのライブラリに指定されたjarファイル。
  • ビルドパスの外部プロジェクトと指定されたプロジェクトのソースをコンパイルしたもの。

要するに、このプロジェクトを動作させるのに必要なものはすべて自動的にapkファイルに格納される。

これを確認する方法は(動作させてみればわかるのだが)、dexdumpを使用してapkに格納されるdexファイルを解析してみればよい。

※dexdumpはSDKのtoolsディレクトリではなく、platforms\android-8\toolsなどに格納されている。

ドキュメント

Eclipse上でDocumentation for Android SDKをダウンロードすると、Eclipse上でAPIドキュメントを閲覧できるとマニュアルにはあるが、やり方が一切不明。通常のEclipseのHelpビューアの目次にも表示されていない。

SDK自体に含まれるドキュメント(Windowsの場合)は「SDKインストールフォルダ\docs\offline.html」になる。

サンプル

先のプロジェクト作成時に選択できるサンプルは「SDKインストールフォルダ\samples\android-?」の下にあるものらしい。

サンプルの説明は、SDKの中だと「SDKインストールフォルダ\docs\resources\samples\index.html」であるが、 当然オンライン上にもある。 List of Sample Appsがそれ。

※オフラインのドキュメントには何の意味があるのか不明。

そのほか、サンプルを集めたサイトがapps-for-android

エミュレータのみを動作させる

「ボス」に見せるのに、いちいちeclipseを操作してもらうのは大変である。 少なくとも、JavaとAndroid SDKがインストールされていれば、エミュレータを実行することができる (Javaもいらないという話もあり。androidは純正Java-VMで動作するわけではないので)。

  • コマンドプロンプトを開く
  • cd SDKインストールフォルダ\tools
  • start emulator -avd eclipse上で作成したAVD名称

とする。

表示を日本語にするのは以下のとおり。

  • 「Settings」のアイコンをクリック
  • スクロールして「Language & Keyboard」を選択

  • 「Select Language」をクリックして、「日本語」を選択

Eclipseで開発し、Eclipseから起動してエミュレータ上で動作させたアプリは勝手にSDKインストールフォルダにインストールされているので、SDKインストールフォルダをzipして「ボス」に渡し、先の「start emulator云々」をやってもらえばOK。

。。。と思ったが、これはサンプルプロジェクトの場合だけかも。