Ikuti petunjuk di halaman ini untuk membuat Android.
Menyiapkan lingkungan build
Dari dalam direktori kerja, ambil skrip envsetup.sh untuk menyiapkan lingkungan build:
source build/envsetup.shSkrip ini mengimpor beberapa perintah yang memungkinkan Anda menggunakan kode sumber Android, termasuk perintah yang digunakan di halaman ini. Untuk melihat sumber
skrip, lihat
platform/build/envsetup.sh.
Untuk melihat bantuan bawaan, ketik hmm.
Pilih target
Sebelum membuat Android, Anda harus mengidentifikasi target yang akan dibuat. Target mencerminkan platform target yang Anda bangun. Untuk mengidentifikasi target yang akan dibangun, gunakan perintah lunch yang diikuti dengan string yang merepresentasikan target. Contoh:
lunch aosp_cf_x86_64_only_phone-aosp_current-userdebugAnda akan melihat sinopsis target dan lingkungan build Anda:
============================================
PLATFORM_VERSION_CODENAME=Baklava
PLATFORM_VERSION=Baklava
TARGET_PRODUCT=aosp_cf_x86_64_only_phone
TARGET_BUILD_VARIANT=userdebug
TARGET_ARCH=x86_64
TARGET_ARCH_VARIANT=silvermont
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.10.11-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=BP1A.250305.020
OUT_DIR=out
============================================String yang merepresentasikan target memiliki format berikut:
lunch product_name-release_config-build_variantKomponen string ini adalah:
product_nameadalah nama produk yang ingin Anda buat, sepertiaosp_cf_x86_64_only_phoneatauaosp_husky.product_namespesifik Anda dapat mengikuti format Anda sendiri untuk perangkat Anda, tetapi format yang digunakan Google untuk perangkatnya memiliki komponen berikut:aospmengacu pada Platform Open Source Android.- (opsional)
cfdisertakan saat target dimaksudkan untuk dijalankan dalam emulator Cuttlefish. - Arsitektur dan hardware (nama kode), seperti
x86_64_only_phoneatauhusky, yang merupakan nama kode untuk Pixel 8 Pro. Untuk mengetahui daftar nama kode untuk perangkat Google, lihat Nama kode perangkat.
release_configdisetel ke konfigurasi rilis, seperti konfigurasi rilis pengembangan yang disebutaosp_current. Konfigurasi rilis mengidentifikasi fitur dan kode tertentu yang berada di balik tanda peluncuran fitur dan diaktifkan atau dinonaktifkan untuk build. Untuk mengetahui informasi selengkapnya tentang konfigurasi rilis, lihat Menetapkan nilai peluncuran tombol fitur.Bagian
build_variantdari string dapat berupa salah satu dari tiga nilai dalam tabel berikut:build_variantDeskripsi userVarian build ini memberikan akses keamanan terbatas dan cocok untuk produksi. userdebugVarian build ini membantu developer perangkat memahami performa dan kemampuan rilis dalam pengembangan. Saat mengembangkan dengan build
userdebug, ikuti Panduan untuk userdebug.eng| Varian build ini memiliki waktu build yang lebih cepat dan paling cocok untuk pengembangan sehari-hari jika Anda tidak peduli dengan performa dan daya.
Jika Anda menjalankan lunch tanpa argumen apa pun, daftar target umum akan diberikan.
Anda juga dapat membuat string target sendiri dengan menggabungkan elemen
string target menggunakan informasi di halaman ini dan nama kode
yang merepresentasikan hardware Google tertentu di Nama kode perangkat.
Melihat target saat ini
Untuk melihat setelan makan siang saat ini, jalankan:
$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
Bangun kode
Jalankan perintah berikut untuk membangun target Anda. Bergantung pada spesifikasi workstation Anda, build pertama dapat memerlukan waktu kurang dari satu jam hingga beberapa jam. Build berikutnya akan memakan waktu yang jauh lebih singkat.
mOutput build Anda akan muncul di $OUT_DIR. Jika Anda membuat target yang berbeda, setiap build target akan muncul di $OUT_DIR.
Perintah m dibuat dari bagian atas hierarki, sehingga Anda dapat menjalankan m dari dalam
subdirektori. Jika Anda telah menetapkan variabel lingkungan TOP, perintah m akan menggunakannya. Jika TOP tidak ditetapkan, perintah m akan mencari hierarki dari
direktori saat ini, mencoba menemukan bagian atas hierarki.
Perintah m dapat menangani tugas paralel dengan argumen -jN. Jika Anda tidak
memberikan argumen -j, sistem build akan otomatis memilih jumlah tugas paralel
yang dianggap optimal untuk sistem Anda.
Anda dapat membuat modul tertentu, bukan image perangkat lengkap, dengan mencantumkan
nama modul di command line m. Selain itu, perintah m menyediakan
beberapa target semu, yang disebut sasaran. Misalnya, m nothing tidak membangun
apa pun, tetapi mengurai dan memvalidasi struktur build. Untuk daftar sasaran
yang valid, ketik m help.
Memecahkan masalah error build (Android 17 atau yang lebih tinggi)
Bagian ini berisi petunjuk untuk menangani error hanya baca yang dihasilkan dari upaya memodifikasi codebase hanya baca AOSP selama proses build.
Upaya untuk membangun menghasilkan error sistem file hanya baca
Selama pembuatan, hierarki sumber AOSP bersifat hanya baca. Jika build yang Anda jalankan mencoba mengubah pohon sumber selama konfigurasi produk atau bagian lain dari build, build mungkin gagal dan melaporkan error sistem file hanya baca. Opsi ini dapat digunakan untuk mengubah pohon sumber menjadi baca-tulis untuk sementara:
Untuk mengubah seluruh pohon sumber menjadi baca-tulis selama build, tambahkan
BUILD_BROKEN_SRC_DIR_IS_WRITABLE=trueke lingkungan build.Untuk mengubah sebagian pohon menjadi baca-tulis selama build, gunakan
BUILD_BROKEN_SRC_DIR_RW_ALLOWLIST="path1, path2, ..."Jalur harus berupa jalur direktori tempat operasi tulis diizinkan, relatif terhadap bagian atas ruang kerja.
Memecahkan masalah error build (8.0 atau yang lebih lama)
Jika Anda membuat AOSP 8 atau yang lebih lama, m mungkin akan dibatalkan saat menemukan masalah dengan versi Java Anda. Misalnya, Anda mungkin mendapatkan pesan ini:
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.
Please follow the machine setup instructions at
https://source.android.com/source/initializing.html
************************************************************
Berikut kemungkinan penyebab dan solusinya:
- Anda gagal menginstal JDK yang benar seperti yang ditentukan di bagian JDK pada Menyiapkan pengembangan AOSP (2.3 - 8.0) .
- Ada JDK lain yang sebelumnya diinstal dan muncul di jalur Anda. Tambahkan JDK yang benar di awal jalur Anda atau hapus JDK yang bermasalah.