ディレクトリ構成

Posted by muchag | Android |
初回投稿:2011-04-17 (日) 0:50:31 | 最終更新:2011-07-06 (水) 16:40:15

まだまだ理解できない
Android プロジェクトのディレクトリ構成。

デフォルト

[ファイル]-[新規]-[プロジェクト]
から新しくプロジェクトを作成すると
左のようなフォルダ構成になっている。
新規プロジェクトの立ち上げ

 

src/

.java ファイルの格納場所。
パッケージ名が上位にあるところを見ると
Flex のときのようにパッケージを複数配置できるのかしら。
 

gen/

R.java の格納場所。

R.java には、リソースファイル群に付加した ID の一覧が書かれている。
コンパイル時?に自動的に書き加えられていく。
 

assets/

テキストファイルなどの自作ファイルの置き場所・・・らしい。

現時点ではまだまだ不明。
res/raw ディレクトリとの差異も不明。
 

res/

リソース格納場所。
Android Developers:Application Resources
Android Developers:Resource Types
 

res/drawable/

Android Developers:Providing Resources Grouping Resource Types
Android Developers:Drawable Resources
 
.png, .jpg, .gif などのビットマップファイルまたは XML ファイル置き場。

  • Bitmap files
  • Nine-Patches (re-sizable bitmaps)
  • State lists
  • Shapes
  • Animation drawables (Frame Animation)
  • Other drawables

drawable フォルダは、端末の Density ( dpi ) の判別してくれる。

しかし、Android OS のヴァージョン( API Level )によって異なる。
Android Developers:Supporting Multiple Screens

Android 1.5 (API Level 3)以前

drawable (160dpi 端末)
 

Android 1.6 (API Level 4)以降

drawable-ldpi (120dpi 端末)
drawable-mdpi (160dpi 端末)
drawable-hdpi (240dpi 端末)
drawable-nodpi (端末に対応するためにリサイズして欲しくないファイルの置き場)
 

Android 2.2 (API Level 8)以降

rawable-xhdpi (320dpi 端末)
 

Android 2.3 (API Level 9)以降

xlargeScreen に対応
 

<supports-screens>

AndroidManifest.xml に設定を行うことで
マーケットに端末でアクセスした場合に
当該端末が対応しているか否かを判別し
表示されるかどうか決まるらしい。

Android 1.6 以降ではデフォルトで全部 true だそうな。

  1. <supports-screens
  2.     android:resizeable=["true" | "false"]
  3.     android:smallScreens=["true" | "false"]
  4.     android:normalScreens=["true" | "false"]
  5.     android:largeScreens=["true" | "false"]
  6.     android:xlargeScreens=["true" | "false"]
  7.     android:anyDensity=["true" | "false"] />

Android Developers:<supports-screens>

単位 も参考にせよ。
 

識別子

また、res/drawable/ を res/drawable-ja/ とすることで、
端末に日本語設定がされているときに優先的にこちらを読ませることもできる。
詳しくは、アプリの多言語対応リソースファイルのネーミング
 

res/layout/

アクティビティのレイアウト XML ファイル置き場。
 

res/values/

Android Developers:Providing Resources Grouping Resource Types

以上のような、各種設定 XML ファイル置き場。
 

その他の決められたディレクトリ

Android Developers:Providing Resources Grouping Resource Types
 

res/anim/

トゥウィーンアニメーションを定義した XML ファイル置き場。
Android Developers:Animation Resources
 

res/color/

カラーステートリストを定義した XML ファイル置き場。
Android Developers:Color State List Resource
 

res/menu/

オプションメニュー、コンテキストメニュー、サブメニューなどの
アプリケーションメニューを定義した XML ファイル置き場。
Android Developers:Menu Resource
 

res/raw/

音楽データや画像データなどの自由なファイルの置き場。
コンパイルせずにアプリケーションに組み込みたい場合に利用。
 

res/xml/

独自の XML ファイル置き場。
あれこれサイトを見て回るとウィジェットなどを含む
アプリ設定画面に用いられることが多いようだ。
 

assets/ と res/raw/ の差異

参考サイト元にまとめてみると
 

assets/
  • アプリからの保存可
  • ファイル名制限なし
  • リソース ID なし
  • ディレクトリ管理あり(配下にフォルダを設置できる)
  • URL【file:///android_asset/】でアクセスできる
    (コロンの後ろの / スラッシュは3本である)

 

assets/hoge.txt
  1. AssetManager as = getResources().getAssets();
  2. InputStream stream_in = as.open("hoge.txt");

 

assets/hoge.png
  1. WebView webView = (WebView) findViewById(R.id.web);
  2. String strHtml = "<html><head><title>Test</title></head><body><img src='hoge.png' /></body></html>";
  3. webView.loadDataWithBaseURL("file:///android_asset/", strHtml, "text/html", "utf-8", null);

 

res/raw/
  • アプリからの保存不可
  • ファイル名制限あり([a-z] 英小文字、 _ アンダースコア、. ピリオドのみ)
  • リソース ID あり(R.raw.hoge)
  • ディレクトリ管理なし(配下にフォルダを設置でない)
  • drawable 同様に raw-ja, raw-mdpi などとネーミングすることで
    自動判別機能を利用できる

 

res/raw/hoge.png
  1. Resources resources = this.getResources();  
  2. InputStream inputStream = res.openRawResource(R.raw.hoge);

 
<参考元サイト>
Y05_net’s blog:Androidアプリにおけるassetsフォルダとres/rawの使い分け
整理できない底辺プログラマのメモブログ:任意データの置き場所は、/assets or /res/raw?
tappli blog:[Android] assetsのファイルを使う

Posted by muchag | Android |
初回投稿:2011-04-17 (日) 0:50:31 | 最終更新:2011-07-06 (水) 16:40:15

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment