[アンドロイド]プロジェクトディレクトリー構成(Android Project Folder Contents)
1.プロジェクトRootフォルダ構成
Eclipse IDEとかほかのツールを使用し新しいアンドロイドプロジェクトを作ればプロジェクトのルーツフォルダは次のようなファイル/フォルダが生まれます。
AndroidManifest.xml - アプリケーションの情報を含むコンポーネント(activity, Content Provider など)が書いてあるxml。
build.xml: アプリケーションをコンパイルし、アンドロイドデバイスにインストールするとき使われるAnt Script。(Ant Script : makeみたいな各種shellにdependentしたビルドツールのかわりにすべてのフラットホームにユニバーサルに使えるxmlファーマッド文書をbuild scriptに使用するbuild tool. Apacheプロジェクトの一環 (http://ant.apache.org/ ))
default.property: Ant Scriptが使うプロパティーファイル
bin フォルダ: コンパイルしたバイナリが保存されるフォルダ
libs フォルダ: アプリケーションに必要な外部JARファイルを保存するフォルダ
src フォルダ: アプリケーションのJava原始コードを保存
res フォルダ: アプリケーションのレイアウト、使われる画像/文字などコンパイルされたJavaコードと一緒にPackageされるリソースを保存。ここに保存されたリソースはAAPT(Android Asset Packaging Tool)によってコンパイルされリソース明細がプロジェクトフォルダ\gen\R.java という自動生成ファイルに整理されます。ソースコード上にはRクラス(Ex: R.layout.main)を通じてコンパイルされたリソースを見れます。
asset フォルダ : アプリケーション配布ときstaticにパッケージに含ませるリソースを保存。resフォルダ二保存されたリソースと違う点はここに保存されたりソースはコンパイルされずraw形でpackagingされます。ソースコード上、AssetManagerクラスを利用しバイトストリーム形式に使用する。
2.アンドロイドプロジェクト生成のとき自動的に生成される要素
srcフォルダなどソースファイル : ソースファイルはプロジェクトを作ったとき使用者が提供したmain activityの名前によってプロジェクトフォルダ\src\main_activy_名前.javaファイルが生成。このフォルダに保存されるファイルは自由に編集、追加できます。
gen フォルダ等 R.java : プロジェクトルーツフォルダの下に genという名前のフォルダができて内部には R.javaが自動的に生じます。R.javaファイルは実行コード内部でリソースを使いやすくしてくれるRオブジェクトインスタンスの基本になるクラスで、内部にはaaptによってコンパイルされたリソース(\res)たちを見分けるリソース identifier が自動的に保存されるので修正しちゃいけません。 (eclipse開発環境に res\下にリソースを追加した後、プロジェクトを保存すれば自動的にR.javaクラスがupdate)
3.res フォルダ内部
プロジェクト\res\に次のようなそれぞれ違うリソースがフォルダ別に保存されます。
res\anim : animationを指定するxml形の文書を保存。frame by frame(フレーム別アニメーション設定)または tweened(アニメーションの始めと終わりの形を指定したら自動的に間が詰められる)二種類のAnimationを支援。
res\drawalbe : png、jpegなどイメージ
res\layout : UI layout 関連 xml
res\menu : menu 関連 xml
res\raw : コンパイルされてないリソース保存 (ex. CVSファイル) JavaコードではResources.openRawResource()メソッドでリソースに接近。
res\values : string、オブジェクトの大きさ等
res\xml : アプリケーションに含ませるxml
4.産出物保存
プロジェクトコンパイル後プロジェクトフォルダ\bin\フォルダの構成
bin\classes フォルダ : コンパイルJavaコード
bin\classes.dex : 実行可能なコンパイルJavaコード
bin\AppName.ap : res フォルダ下のリソースが zip圧縮アルゴリズムを使用し圧縮されたファイル
bin\AppName-debug.apk 又は bin\AppName-unsigned.apk : install 可能なアンドロイドアプリケーション(-debugがついたapkファイルは特定エミュレーターの電子署名キーで電子署名されたことを言います。反面 -unsignedを含むapkファイルは release ビルドだけど正式電子署名キーと jarsignerを利用し電子署名して最終リリース可能)
Install可能な.apk ファイルは zip 圧縮アルゴリズムを使用した圧縮ファイルで次のような要素を含みます。
.dex ファイル : コンパイルされたファイル
AppName.arsc : コンパイルされたリソースファイル
コンパイルする必要のないリソース : \res\raw フォルダ下の資料など
AndroidManifest.xml