Android HelloWorldプログラムについて 【Android TIPS】
前回までに、Android開発環境の構築とHelloWorldプログラムの作成・実行が終わっているかと思います。
今回はそのHelloWorldプログラムの概要を押さえていきます。
プロジェクト・エクスプローラーに表示されているHelloWorldを展開します。
1. srcフォルダ
このフォルダはjavaプログラムを配置するためのフォルダです。
HelloWorldプログラムではcom.example.helloworldパッケージが格納されており、
さらにその中にはMainActivity.javaが配置されています。(このパッケージはプロジェクト作成時に指定したものですね。)
MainActivityクラスはHelloWorldアプリケーションの画面を表すクラスで、
Androidアプリケーションでは画面のことをアクティビティと呼ぶためにこのようなクラス名となっています。
2. genフォルダ
このフォルダはADTによって自動生成されたjavaプログラムが配置されるフォルダです。
生成元となるのは、この後に説明するresフォルダ以下に配置されているリソースファイルとなります。
自動生成されるため、中を見たり修正したりということは基本的に必要ありません。
3. Android 2.1、Android Dependencies
リンクされているライブラリです。
4. assetsフォルダ
このフォルダはアプリケーション固有のファイル(XMLや画像など)を配置するフォルダです。
このフォルダ内のファイルへはjavaプログラム内から直接アクセスすることが可能です。
5. binフォルダ
このフォルダはAndroidアプリケーションパッケージ(APK)を作成するために必要なクラスファイルや各種リソースファイルが配置されるフォルダです。
ADTによって自動的に生成されるため、中を見たり修正したりということは基本的に必要ありません。
6. libsフォルダ
このフォルダはプロジェクトにリンクさせるjava外部ライブラリ(jarファイル)を配置するためのフォルダです。
Androidの場合は、java開発時のようにビルドパス等の設定は不要で、jarファイルをlibsフォルダ以下に配置するだけで自動的にリンクしてくれます。
7. resフォルダ
このフォルダは各種リソースファイルを配置するフォルダで、中にはdrawable-xxxx、layout、menu、values等のサブフォルダがあります。
Androidでリソースファイルというときは、画像や音声等のバイナリファイルもしくはXMLファイルのことを指します。
サブフォルダ | 格納されるファイル |
drawable-xxxx | アイコン等の画像バイナリファイル xxxxにはhdpi(解像度の高い端末用)やmdpi(解像度が中程度の端末用)等が当てはまり、プログラム側での対応を最小限に、解像度の異なるAndroid端末に対応させることができる。 |
layout | 画面レイアウトを定義するXMLファイル |
menu | メニューボタンを押下したときに表示されるメニューを定義するXMLファイル |
values | 文字列を定義するためのXMLファイル |
HelloWorldプログラムを作成した際に生成されるのは上記4種類のみですが、他にも汎用的なXMLファイルを配置するxmlフォルダや音声ファイルを配置するためのrawフォルダ等があります。
XMLやバイナリファイルは前述した「4. assets」フォルダにも配置することができますが、使い分けるポイントとなるのは以下の2点のようです。
- 実行環境によって異なるファイルを使いたい場合は、resフォルダを使う
解像度の異なる端末へ対応したり、多言語対応(アプリケーションを英語&日本語に対応)する場合にはresフォルダを使います。これは、javaプログラム側での対応を最小限にして、Android側で自動的にリソースファイルを切り替える仕組みです。
この機能を利用するために、コンパイル時にresフォルダ以下にR.javaというリソースインデックスファイルが作成されます。javaプログラムからresフォルダ以下にアクセスしたい場合は、このRクラスを参照することによって間接的にアクセスする仕組みになっています。
コンパイル時に確定しているリソースファイルしかこの機能を使用できないため、javaプログラムからファイルに修正を加えたりといったことはできないことになります。
- javaプログラムから保存や修正を行いたい場合は、assetsフォルダを使う
データの保存先として利用する場合にはこのassetsフォルダを使うことが適しています。
8. AndroidManifest.xml
Androidアプリケーション全体の設計図に相当するXMLファイルで、アプリケーション名やSDKバージョン、どのような機能を使っているか(インターネットアクセスやカメラ機能など)等の情報が書き込まれています。
今回は、HelloWorldプログラムの概要を押さえました。
特に重要な点は、genフォルダ、resフォルダ、AndroidManifest.xmlで、AndroidManifest.xmlについてはあまり触れませんでしたが近いうちに特集を組みたいと思っています。
次回はresフォルダ内のstring.xmlの修正を通して、リソースファイルがどのように使われているのかを実践したいと思います。