Androidアプリ/日記3
何から始めればいいのかな?
自分の作りたいAndroidアプリのおおよその姿が見えてきたので、実際に制作作業に入ってみようとおもいます。とりあえず、eclipseを起動して「Android Project」をNewします。
ProjectNameは「WeightManager」としておきました。
「Build Target」はどうしたものかちょっと悩みます。自分の端末はHTC Desireなので、Android 2.0向けにビルドすればいいのかなと思いましたが、国内の端末はAndroid 1.6が断然多いようにも思います。ボチボチAndroid 2.1端末の発売ラッシュになりそうでもありますが、はてさて・・・。とりあえず、新しいバージョンのAndroid OSの機能を使うようなこともなさそうなので、Android 1.6向けにビルドすることにしました。
「Application name」はプロジェクト名のまま「WeightManager」。
「Package name」は適当にうちの屋号を入れておきます。
「Create Activity」にチェックを入れておくとActivityを勝手に作ってくれるそうなので「ManageWeight」という名前のActivityを作ってもらうことにします。Activityのことは別途整理して考えることにしましょう。ここでは「アプリで何をするか(Activity)」→「体重を管理する」ということで暫定的に「ManageWeight」と名前を付けておきました。
「Min SDK Version」は、最低限必要な機能を持っているAndroid SDKのバージョンを書いておけばいいのだと思いますが、自分はどの機能がどのバージョンから追加されたかなんてことに精通しているわけではないので、とりあえずビルド対象のAndroid 1.6のAPI Levelである「4」を指定しました。
「Finish」ボタンを押すと新しいプロジェクトが生成されました。
プロジェクトのファイル構成
eclipseでAndroid Projectを新規に作成した結果、指定の場所にいろいろとファイルやディレクトリが作成されました。
- .settings
- org.eclipse.jdt.core.prefs
- assets
- bin
- gen
- (パッケージ)
- R.java
- res
- drawable-hdpi
- drawable-ldpi
- drawable-mdpi
- layout
- values
- (パッケージ)
- src
- (パッケージ)
- ManageWeight.java
- .classpath
- (パッケージ)
- .project
- AndroidManifest.xml
- default.properties
.settings/org.eclipse.jdt.core.prefs
多分、eclipseの設定ファイル。編集する必要はなさそう。
assets
空っぽのディレクトリ。アプリ上で使用するファイルを入れておくためのディレクトリのようです。ただし、リソースファイルは後述のresディレクトリに入れます。今回のアプリ開発では使わなそうなディレクトリ。
bin
空っぽのディレクトリ。名前から推測するにきっとビルドが終わったバイナリファイルが保存されることでしょう。
gen/(パッケージ)/R.java
後述のresディレクトリの中身が自動的に読み込まれて、javaのソースファイルとして勝手に生成されるようです。自分で手を加える必要はなさそう。
res
リソース保存用のディレクトリ。この中のファイルをアプリ中で呼び出したり、貼りつけたりできるようになります。リソースの種類ごとにディレクトリが分かれています。
ディレクトリ名 | リソースファイルの種類 |
anim | アニメーション表現用XMLファイル |
drawable | 画面描画用のPNGファイルやJPEGファイル |
layout | View表現用XMLファイル |
values | 文字列、カラーリング、サイズなどを表現するXMLファイル |
xml | ユーザの独自定義XMLファイル |
raw | 生データ |
res/rawのデータを覗いて、各リソースファイルはコンパイル時に最適な形にコンパイルされます。例えば、XMLリソースであればバイナリ化されるそうです。
また、ディレクトリ名に特定の接尾辞をつけることでリソースの使われる条件を特定することもできるそうです。生成されたプロジェクトのdrawableディレクトリには「-hdpi」「-mdpi」「-ldpi」という接尾辞がついていて、画面の解像度に応じて表示するアイコン(icon.png)のサイズが切り替えられるようになっていました。
res/drawable-hdpi/icon.png
高解像度画面用のアイコンファイル。72x72のアイコン。
res/drawable-mdpi/icon.png
中解像度画面用のアイコンファイル。48x48のアイコン。
res/drawable-ldpi/icon.png
低解像度画面用のアイコンファイル。36x36のアイコン。
res/layout/main.xml
「ManageWeight」という名前で自動生成されたActivityの画面レイアウトを定義するXMLファイルの模様。
res/values/strings.xml
アプリ中で使用する文字列を定義するファイル。多言語対応する場合は、このファイルを言語毎に作ってあげればいいのだろう、多分。
src/(パッケージ)/ManageWeight.java
「ManageWeight」という名前で自動生成されたActivityの動作を決めるjavaソースファイル。ここにアプリでやりたいことをガリガリ書いてあげればいいのだと思われる。
.classpath
中身をみると、コンパイル時のクラスパスに関する設定らしかった。編集する必要は特に今のところなさそう。
.project
このプロジェクトに関する設定ファイルの模様。編集不要っぽい。
AndroidManifest.xml
アプリに関する定義ファイル。どんなアプリか、何ができるのか、どんな権限が必要なのか・・・などの情報が定型的に書かれているようだ。「ManageWeight」という名前で自動生成されたActivityのことも書いてある。eclipse上では設定変更用の画面が用意されているので、こちらで編集すれば間違いなさそう。
Androidマーケットからアプリをダウンロードする際に、「このアプリは○○機能を使いますので、信用できないアプリは自己責任で使ってね」と暗に確認が出ますが、セキュリティ上の危険が起こりうる機能はこのファイルで明示的に宣言するみたいです。
default.properties
ファイルを開いてみるとAndroid Toolsで自動生成されたと書いてあった。あと勝手に編集するなとも書いてあった。バージョンコントロールシステムがこのアプリのビルド対象OSを確認するときに使われるファイルのようです。
最初の一歩、プロジェクトの作成はこんなところです。