ここで一度アンドロイド開発における基本としてアプリケーションパッケージのフォルダ構成を学んでいきたいと思います。
実際に私がアンドロイドアプリケーション開発においてコードを記述する場合、srcフォルダ内にあるjavaファイルをメインにコード記述を行うため、他のフォルダはどういった役目をもつのか疑問がのこっていました。何度かプログラミングを行うことである程度は理解は深まりましたが、一度ここでパッケージフォルダの構成について学習していきたいと思います。
でははじめにアンドロイドプロジェクトを新規作成した場合、アプリケーションパッケージのフォルダの構成はは次のようになっているはずです。
1.[src]フォルダ
作成したソースコードが保存されるフォルダであり、プログラムソースコードをもつ.javaの拡張子をもつファイルはこちらに保存されます。アプリケーションの機能を定義するためのソースコードを記述するメインのファイルです。
2.[gen]フォルダ
R.javaというファイルを生成するフォルダです。これはアプリケーション内部の部品がもつ固有のIDを定義づけるファイルということになります。
例えば次にある[res]フォルダ内にあるアプリケーションリソース(画像、値)を呼び出す際にR.java内で定義づけられた固有ID(定数)を使用することでそのリソースの読み込みが可能になります。
このファイルは自動生成される為、プログラミング時で直接ファイルに記述する必要はありません。
3. [res]フォルダ
[res]フォルダは画面のレイアウト、ウィジェットのレイアウト、テキストの値、画像などのアプリケーションリソースをxmlによって保存するフォルダです。
3.1 drawableフォルダ
drawableで始まるフォルダには画面で表示するための画像などの情報が保存されています。初めてアプリケーション作成時にはdrawableフォルダが3つもしくは4つになっていることに疑問をもたれることでしょう。これはそのリソースがその画面の大きさや解像度によって使い分けをする為にリソースフォルダがわけられており、その解像度に応じてリソースが使用されます。
3.2 layoutフォルダ
layoutフォルダにはそのままレイアウトの情報が保存されています。その中のファイルを開くと次のような画面がでてきます。これはウィジェットの内部にテキストビューとアナログ時計を組み合わせたレイアウトの記述例です。
これはウィジェットのバックグラウンドを#f5deb3にしテキストビューにはresフォルダ内部のvalue(値のリソースを保存する)のname=helloの文字列を読み込み、さらにIDがanalogclock1のアナログ時計を読み込んでいる記述です。
少しわかりにくいとお思いでしょうが、その場合は画面左下のタブのGraphical Layoutを選択するとその記述がグラフィカル表示されその次の図のようになります。
これなら画面上でグラフィカル操作ができるのでわかりやすくちょっとしたファンクションであれば簡単に設置することが可能になります。
これに関しては色々と自分なりに試してみてどうなるのか触ってみるのがよいのかなと思っています。
3.3 valuesフォルダ
次にValuesのフォルダについてですが前述したとおりテキストビューなどを読みこんだ際に表示する文字列や値を保存してあります。
これも上記の場合ではlayout内部にあるmain.xmlの@string/helloという記述によって、values内部のstrings.xml内にある
少しわかりにくいかとは思いますが実際にやってみると理解が深まるかと思います。
その他この[res]フォルダ内部に個別にレイアウト設定したい場合はxmlファイルを追加することで個別に設定が可能です。
4.assetsフォルダ
assetsフォルダには音声ファイルやフォントファイルなどのバイナリファイルとして保存されます。このフォルダに保存されたファイルはAssetsManagerなどを使用して呼び出すことができるようです。
5.AndroidManifest
アプリケーションを実行する上で必要な情報をAndroidへ伝えるのがこのマニフェストファイルです。アプリケーション実行時には必ず必要となるファイルでありアプリケーションが利用するコンポーネント宣言や使用するアンドロイドのバージョン等が記述されます。
このマニフェストで宣言されていないコンポーネントについてはシステムに認識されず実行されない為、宣言文の記述は必要不可欠となっているようです。このAndroidManifest.xmlの記述文については次回からのアプリケーション作成で再度見直しをしていきながら学習していきたいと思います。
【関連する記事】