ホームページ Java &#&ベース r.java とは何のファイルですか?

r.java とは何のファイルですか?

Jul 27, 2021 am 11:25 AM

R.java ファイルはコンパイラによって自動的に生成されるため、開発者がそれを保守する必要はありません。 R.java は、現在のアプリケーションにすべてのリソースを自動的に組み込み、これらのリソースに基づいて対応する ID を作成します。 R.java は、単純に現在の Android アプリケーションのリソース ディクショナリとして理解できます。

r.java とは何のファイルですか?

#このチュートリアルの動作環境: Windows7 システム、Java10 バージョン、DELL G3 コンピューター。

1. R.java ファイルの概要

Android Studio では、R.java が存在するディレクトリは app/build/generated/source/r/arm/debug/com です。 example.dfanghu. myapplication/R.java

gen ディレクトリ内の R.java ファイルはコンパイラによって自動的に生成されるため、開発者がそれを保守する必要はありません。 R.java は、現在のアプリケーション内のすべてのリソースを自動的に収集し、これらのリソース (レイアウト リソース、制御リソース、文字列リソース、Drawable リソースなど) に基づいて対応する ID を確立します。 R.java は現在の Android アプリケーションのリソース ディクショナリとして単純に理解できます。

現在のプロジェクトにはエラーが含まれないという前提の下で、R.java ファイルは手動で削除され、コンパイラはただちに R.java ファイルを再生成し、新しいリソースが res/ ディレクトリに追加されます。およびコンパイラ プロセッサは、このリソースの ID をすぐに R.java ファイルに組み込みます。 , ただし、現在のプロジェクトにはエラーが含まれていてはいけないという前提があります。 R.java を更新した後にこのリソースが含まれていないことが判明した場合は、現在のプロジェクトにエラーがあるかどうかを確認する必要があります。

2. R.java ファイルのコンテンツ分析

#HelloWorld プロジェクトの R.java ファイル

package com.android.hellworld;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=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;
    }
}
ログイン後にコピー

R.java ファイルには、属性、ドローアブル、レイアウト、文字列などが含まれています。デフォルトでは、4 つの静的内部クラスがあります。各静的内部クラスは、リソースに対応します。たとえば、レイアウトの静的内部クラスは、レイアウト内のインターフェイス ファイルに対応します。各静的内部クラスの静的定数は、次のようなリソース識別子を定義します。 public static Final int main=0x7f030000; レイアウト ディレクトリの main.xml ファイルに対応します。

現在、[drawable-*dpi] ディレクトリには画像ファイル icon.png が 1 つだけあるため、現時点では、同じ名前で詳細が異なる icon.png ファイルは、ドローアブル内に常に 1 つのアイコン属性のみを持ちます。内部クラス。 [drawable-*dpi] ディレクトリに別の画像を追加すると、内部クラスにアイコン属性が自動的に追加されます。

PS: リソースの命名規則を追加します。リソース ファイルは小文字とアンダースコアのみで始めることができ、後続の名前には [a-z0-9_.] 文字のみを使用できます。それ以外の場合は、R.java ファイルが使用されます。自動的に更新されず、Eclipse によってエラーが表示されます。

R.java ファイル内のコンテンツのソースを理解します。つまり、開発者が res/ ディレクトリ内のサブディレクトリに対応するタイプのファイルを追加すると、ADT は対応する内部クラスをR.java ファイル 追加されたファイルのインデックスを作成するために、static int 型の定数が自動的に生成されます。新しいインターフェイスがレイアウト ディレクトリに追加されると、対応する static int 定数も public static Final クラス レイアウトに追加されます。逆に、res ディレクトリ内のファイルを削除すると、R.java 内の対応するレコードが ADT によって自動的に削除されます。

R.java ファイルには、リソースを自動的にマークするインデックス作成機能に加えて、別の主要な機能もあります。res ディレクトリ内のリソースがアプリケーションで使用されていない場合、コンパイル時にシステムがは、対応するリソースをアプリケーションの APK パッケージにコンパイルしません。これにより、Android スマートフォン上のリソースを節約できます。

3. R.java ファイルを通じて必要なリソースを参照する方法

1. Java プログラムでのリソースの参照

Java 構文に従った参照: R .resource_type .resource_name

注: resource_name にはファイル接尾辞は必要ありません

Android システム自体には多くのリソースが付属しており、それらを参照することもできます。「Android.」を追加するだけです。リソースが Android システムからのものであることを宣言します。つまり、Android.R.resource_type.resouce_name

例: [drawable-*hpi] の下の icon.png

画像は R にあります。 .java ファイル マッピングはドローアブル内部クラス配下の icon パラメータ リソースを取得したい場合の記述方法は R.drawble.icon

2 XML ファイル内でのリソースの引用

形式: @[ package:]type/name

は、main.xml ファイルや AndroidMainfest.xml ファイルなどの XML ファイルの「@drawable/icon」を通じて取得されます。このうち「@」はR.javaクラスを表します。 「drawable」は R.java の静的内部クラス「drawable」を表し、「/icon」は静的内部クラス「drawable」の静的属性「icon」を表し、この属性は res ディレクトリ内の「drawable-*」を指すことができます。 dpi」アイコン.png リソース。他の種類のファイルも同様です。 R ファイルで定義されているすべてのリソースは、「@Static_inner_classes_name/resource_name」を通じて取得できます。 「@id/ボタン」、「@文字列/アプリ名」など。

Android システムに付属のファイルにアクセスする場合は、パッケージ名「Android:」を追加する必要があります。例: android:textColor="@android:color/red"

4. R.java ファイルにリソース レコードを追加する方法

レイアウト ファイルで、一部のコンポーネントの識別子として Id 属性を追加する必要がある場合、次の式を使用できます: "@ id/string_name"。ここで、" " は、それを id という名前の内部クラスに追加することを意味します。 R.java レコード。例: 「@id/button」は、R.java ファイルの静的内部クラス ID に button という名前の定数を追加することを意味します。この定数はリソースの識別子です。静的内部クラス ID が存在しない場合は、それが最初に生成されます。

推奨される関連ビデオ チュートリアル: Java ビデオ チュートリアル

以上がr.java とは何のファイルですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptを使用したスクリプトにJavaのナショーンエンジンを使用するにはどうすればよいですか? JavaScriptを使用したスクリプトにJavaのナショーンエンジンを使用するにはどうすればよいですか? Mar 14, 2025 pm 05:00 PM

Javaのナショーンエンジンは、Javaアプリ内でJavaScriptスクリプトを可能にします。重要な手順には、ナショーンのセットアップ、スクリプトの管理、パフォーマンスの最適化が含まれます。主な問題には、ナショーンのdeprecによるセキュリティ、記憶管理、将来の互換性が含まれます

自動リソース管理にJavaのリソース付きステートメントを使用するにはどうすればよいですか? 自動リソース管理にJavaのリソース付きステートメントを使用するにはどうすればよいですか? Mar 14, 2025 pm 04:59 PM

Javaのリソースでの試行は、ファイルストリームやデータベース接続などのリソースを自動的に閉じることでリソース管理を簡素化し、コードの読みやすさと保守性を向上させます。

Java Virtual Machine(JVM)とは何ですか?内部でどのように機能しますか? Java Virtual Machine(JVM)とは何ですか?内部でどのように機能しますか? Mar 14, 2025 pm 05:05 PM

この記事では、Java Virtual Machine(JVM)について説明し、さまざまなプラットフォームでJavaプログラムを実行する際の役割について詳しく説明しています。 JVMの内部プロセス、主要コンポーネント、メモリ管理、ガベージコレクション、およびパフォーマンスの最適化について説明します

Javaの酵素を使用して固定値のセットを表すにはどうすればよいですか? Javaの酵素を使用して固定値のセットを表すにはどうすればよいですか? Mar 14, 2025 pm 04:57 PM

Java Enumsは、固定された値のセットを表し、カスタムメソッドとコンストラクターを介してタイプの安全性、読みやすさ、および追加の機能を提供します。それらはコード組織を強化し、効率的なバリューハンドリングのためにスイッチステートメントで使用できます。

Java(シリアル、パラレル、CMS、G1、ZGC)のごみ収集アルゴリズムは何ですか? Java(シリアル、パラレル、CMS、G1、ZGC)のごみ収集アルゴリズムは何ですか? Mar 14, 2025 pm 05:06 PM

この記事では、さまざまなJava Garbage Collectionアルゴリズム(シリアル、パラレル、CMS、G1、ZGC)、そのパフォーマンスへの影響、および大きなヒープを持つアプリケーションの適合性について説明します。

See all articles