リソースを定義すると、Rクラスにリソースを参照するためのIDが自動生成される

Android用語集

カテゴリー: リソース  閲覧数:504 配信日:2013-05-27 09:01


概要


・リソースを定義すると、R.javaファイルのRクラスに「リソースを参照するためのID(リソースID)」が自動生成される

リソースIDとは?
・プロジェクトに設置したリソースをプログラムの中から利用するため、各リソースに割り当てられた番号( int型の値 )
・リソースIDは「R.java」ファイルで管理される
・リソースIDの割り当てはリソースの種類によって異なる

R.javaファイルとは?
・初めてプロジェクトをビルドした際作成され、その後ビルドが行われる度、自動的に更新されていく特別なファイル

R.javaファイルの特徴
・クラス毎に、リソース名の順番で自動記述
・リソースIDもクラス毎に自動採番号していく
※ユーザーはリソースの追加だけを行っておけば、リソースに対するID管理などを行う必要はない

R.javaファイルはどこにあるの?
・プロジェクト名/gen/パッケージ名/R.java

デフォルトで作成される「R.java」ファイル
・drawableクラスは「0x7f02」番台。stringクラスは「0x7f04」番台というように、予め決められている
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found.  It
* should not be modified by hand.
*/

package e1blue.androidstyle.hello;

public final class R {
   public static final class attr {
   }
   public static final class drawable {
       public static final int ic_launcher=0x7f020000;
   }
   public static final class layout {
       public static final int main=0x7f030000;
   }
   public static final class string {
       public static final int app_name=0x7f040001;
       public static final int hello=0x7f040000;
   }
}

クラス リソース名 リソースID 内容記述ファイル
attr
drawable ic_launcher 0x7f020000
layout main 0x7f030000 /res/layout/main.xml
4 string app_name 0x7f040001 /res/values/strings.xml
4 string hello 0x7f040000 /res/values/strings.xml
自動追記された、R.javaファイル例
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found.  It
* should not be modified by hand.
*/

package android.style;

public final class R {
   public static final class attr {
   }
   public static final class drawable {
       public static final int ic_launcher=0x7f020000;
   }
   public static final class layout {
       public static final int main=0x7f030000;
       public static final int test1_1=0x7f030001;
   }
   public static final class string {
       public static final int app_name=0x7f040001;
       public static final int cancel=0x7f040003;
       public static final int hello=0x7f040000;
       public static final int save=0x7f040002;
   }
}

クラス リソース名 リソースID 内容記述ファイル
attr
drawable ic_launcher 0x7f020000
layout main 0x7f030000 /res/layout/main.xml
layout test1_1 0x7f030001 /res/layout/main.xml
4 string app_name 0x7f040001 /res/values/strings.xml
4 string cancel 0x7f040003 /res/values/strings.xml
4 string hello 0x7f040000 /res/values/strings.xml
4 string save 0x7f040002 /res/values/strings.xml