Mulai tahun 2026, untuk menyelaraskan dengan model pengembangan stabil trunk kami dan memastikan stabilitas platform untuk ekosistem, kami akan memublikasikan kode sumber ke AOSP pada Kuartal 2 dan Kuartal 4. Untuk membangun dan berkontribusi ke AOSP, sebaiknya gunakan android-latest-release, bukan aosp-main. Cabang manifes android-latest-release akan selalu merujuk pada rilis terbaru yang di-push ke AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
Ekspansi Rekursif
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Jangan gunakan ekspansi rekursif di makefile konfigurasi produk/papan. Ekspansi rekursif adalah penggunaan raw = alih-alih a := untuk penetapan variabel di makefile. Ini menyebabkan variabel yang ditetapkan ke nilai variabel lain tidak mengevaluasi variabel lain tersebut sampai variabel itu sendiri dievaluasi. Ini adalah fungsi yang tidak didukung Starlark.
Menghapusnya sangat tergantung pada skenario spesifik tentang cara penggunaannya. Sebagian besar waktu itu melibatkan pemindahan tugas variabel ke tempat sebelum mereka digunakan. Misalnya, ganti:
MY_VAR_2 = foo
# Some stuff in between...
MY_VAR = $(MY_VAR_2)
MY_VAR_2 = bar
# $(MY_VAR) is bar here.
dengan:
MY_VAR_2 := foo
# Some stuff in between...
MY_VAR_2 := bar
MY_VAR := $(MY_VAR_2)
# $(MY_VAR) is bar here.
Menambahkan ke variabel dengan += menggunakan ekspansi rekursif jika variabel tersebut belum pernah ditetapkan dengan ekspansi sederhana sebelumnya. Jika Anda tidak yakin apakah variabel telah ditetapkan sebelumnya, += dapat diganti dengan MY_VAR := $(strip $(MY_VAR) new_value) .
Menghapus ekspansi yang ditangguhkan juga dapat mempercepat evaluasi Makefile bahkan sebelum konversi ke Starlark dilakukan. Jika variabel disetel ke hasil pemanggilan fungsi yang mahal, fungsi hanya akan dipanggil sekali dengan ekspansi sederhana tetapi berpotensi berkali-kali dengan ekspansi rekursif.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2022-06-06 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2022-06-06 UTC."],[],[]]