Rumah > Java > JavaAsas > Apakah fail r.java?

Apakah fail r.java?

醉折花枝作酒筹
Lepaskan: 2023-01-13 00:40:02
asal
5145 orang telah melayarinya

Fail R.java dijana secara automatik oleh pengkompil, dan ia tidak memerlukan pembangun untuk mengekalkannya. R.java secara automatik akan memasukkan semua sumber dalam aplikasi semasa dan mencipta ID yang sepadan berdasarkan sumber ini. R.java boleh difahami secara ringkas sebagai kamus sumber aplikasi Android semasa.

Apakah fail r.java?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Java 10, komputer DELL G3.

1. Pengenalan kepada fail R.java

Dalam Android studio, direktori tempat R.java berada ialah: app/build/generated/source/r/arm/debug/com. example.dfanghu. Fail R.java dalam direktori myapplication/R.java

gen dijana secara automatik oleh pengkompil dan tidak memerlukan pembangun untuk mengekalkannya. R.java akan secara automatik mengumpul semua sumber dalam aplikasi semasa dan mewujudkan ID yang sepadan berdasarkan sumber ini, termasuk: sumber susun atur, sumber kawalan, Sumber rentetan, Sumber boleh lukis, dsb. Kami hanya boleh memahami R.java sebagai kamus sumber aplikasi Android semasa.

Atas premis bahawa projek semasa tidak boleh mengandungi sebarang ralat, fail R.java dipadamkan secara manual dan pengkompil akan segera menjana semula fail R.java, sumber baharu ditambahkan pada direktori res/, dan pengkompil Pemproses juga akan serta-merta memasukkan ID sumber ini ke dalam fail R.java. , tetapi terdapat premis, iaitu, projek semasa tidak boleh mengandungi sebarang ralat. Apabila didapati bahawa R.java tidak memasukkan sumber ini selepas mengemas kininya, anda perlu menyemak sama ada terdapat ralat dalam projek semasa.

2. Analisis kandungan fail R.java

Fail R.java dalam projek HelloWorld

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;
    }
}
Salin selepas log masuk

Fail R.java mengandungi attr, boleh dilukis, susun atur, There ialah empat kelas dalaman statik seperti rentetan Setiap kelas dalaman statik sepadan dengan sumber Sebagai contoh, susun atur kelas dalaman statik sepadan dengan fail antara muka Pemalar statik dalam setiap kelas dalaman statik mentakrifkan pengecam sumber public static final int main=0x7f030000 sepadan dengan fail main.xml dalam direktori susun atur.

Memandangkan pada masa ini hanya terdapat satu ikon fail imej.png dalam direktori [drawable-*dpi], fail icon.png dengan nama yang sama dalam butiran berbeza sentiasa mempunyai hanya satu atribut ikon dalam kelas dalaman boleh lukis. Jika kita menambah gambar lain dalam direktori [drawable-*dpi], atribut ikon akan ditambah secara automatik ke kelas dalaman.

PS: Tambah peraturan penamaan untuk sumber: fail sumber hanya boleh bermula dengan huruf kecil dan garis bawah, dan hanya [a-z0-9_.] aksara boleh muncul dalam nama berikutnya, jika tidak fail R.java Ia akan tidak dikemas kini secara automatik, dan eclipse akan menyebabkan ralat.

Fahami sumber kandungan dalam fail R.java, iaitu, apabila pembangun menambah fail jenis yang sepadan dalam mana-mana subdirektori dalam direktori res/, ADT akan menambah kelas dalaman yang sepadan dalam Fail R.java Pemalar jenis int statik dijana secara automatik untuk mengindeks fail yang ditambah. Jika antara muka baharu ditambahkan pada direktori susun atur, pemalar int statik yang sepadan juga akan ditambahkan pada susun atur kelas akhir statik awam. Sebaliknya, apabila kami memadamkan sebarang fail dalam direktori res, rekod yang sepadan dalam R.java akan dipadam secara automatik oleh ADT.

Sebagai tambahan kepada fungsi pengindeksan untuk menanda sumber secara automatik, fail R.java juga mempunyai satu lagi fungsi utama Jika sumber dalam direktori res tidak digunakan dalam aplikasi, ia akan menjadi Apabila menyusun, sistem tidak akan menyusun sumber yang sepadan ke dalam pakej APK aplikasi, yang boleh menjimatkan sumber pada telefon Android.

3. Cara merujuk sumber yang diperlukan melalui fail R.java

1. Sumber rujukan dalam program java

Rujukan mengikut sintaks java: R .resource_type .resource_name

Nota: resource_name tidak memerlukan akhiran fail

Sistem Android itu sendiri datang dengan banyak sumber, kami juga boleh merujuknya, kami hanya perlu menambah "Android. "Untuk mengisytiharkan bahawa sumber itu datang daripada sistem Android, iaitu: Android.R.resource_type.resouce_name

Contoh: icon.png di bawah [drawable-*hpi]

Imej berada dalam R Fail .java Pemetaan ialah parameter ikon di bawah kelas dalaman boleh lukis Jika anda ingin mendapatkan sumber, kaedah penulisan ialah: R.drawble.icon

2 dalam fail XML. Format: @[ package:]type/name

diperoleh melalui "@drawable/icon" dalam fail xml, seperti fail main.xml dan AndroidMainfest.xml. Antaranya, "@" mewakili kelas R.java. "drawable" mewakili kelas dalaman statik "drawable" dalam R.java, "/icon" mewakili atribut statik "icon" dalam kelas dalaman statik "drawable", dan atribut ini boleh menunjuk kepada "drawable-* dalam direktori res dpi" icon.png sumber. Jenis fail lain adalah serupa. Semua sumber yang ditakrifkan dalam fail R boleh diperoleh melalui "@Static_inner_classes_name/resource_name". Seperti "@id/button", "@string/app_name".

Jika anda mengakses fail yang disertakan dengan sistem Android, anda perlu menambah nama pakej "Android:". Contohnya: android:textColor="@android:color/red"

4. Cara menambah rekod sumber pada fail R.java

Dalam fail susun atur, apabila kita perlu menambah atribut Id sebagai pengecam beberapa komponen, kita boleh menggunakan ungkapan berikut: "@ id/string_name", di mana " " bermaksud menambahkannya pada kelas dalaman bernama id dalam R.java A rekod. Contohnya: "@ id/button" bermaksud menambah butang bernama pemalar pada id kelas dalaman statik dalam fail R.java Pemalar ini ialah pengecam sumber. Jika id kelas dalaman statik tidak wujud, ia akan dijana terlebih dahulu.

Tutorial video berkaitan yang disyorkan: Tutorial video Java

Atas ialah kandungan terperinci Apakah fail r.java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan