Ikuti petunjuk di halaman ini untuk mem-build Android.
Menyiapkan lingkungan build
Dari dalam direktori kerja, sumberkan skrip envsetup.sh
untuk menyiapkan
lingkungan build:
source build/envsetup.sh
Skrip 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
.
Memilih target
Sebelum mem-build Android, Anda harus mengidentifikasi target yang akan di-build. Target
mencerminkan platform target yang Anda buat. Untuk mengidentifikasi
target yang akan di-build, gunakan perintah lunch
, diikuti dengan string yang mewakili
target. Contoh:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Anda akan melihat sinopsis target dan lingkungan build:
============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================
String yang mewakili target memiliki format berikut:
lunch product_name-release_config-build_variant
Komponen string ini adalah:
product_name
adalah nama produk yang ingin Anda build, sepertiaosp_cf_x86_64_phone
atauaosp_husky
.product_name
tertentu Anda dapat mengikuti format Anda sendiri untuk perangkat Anda, tetapi format yang digunakan Google untuk perangkatnya memiliki komponen berikut:aosp
mengacu pada Platform Open Source Android.- (opsional)
cf
disertakan jika target dimaksudkan untuk dijalankan dalam emulator Cuttlefish. - Arsitektur dan hardware (nama kode), seperti
x86_64_phone
atauhusky
, yang merupakan nama kode untuk Pixel 8 Pro. Untuk mengetahui daftar nama kode perangkat Google, lihat Nama kode perangkat.
release_config
disetel ke konfigurasi rilis, seperti konfigurasi rilis pengembangan yang disebuttrunk_staging
. 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 flag fitur.Bagian
build_variant
dari string dapat berupa salah satu dari tiga nilai dalam tabel berikut:build_variant
Deskripsi user
Varian build ini memberikan akses keamanan terbatas dan cocok untuk produksi. userdebug
Varian build ini membantu developer perangkat memahami performa dan kemampuan rilis yang sedang 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 disediakan.
Anda juga dapat membuat string target sendiri dengan menggabungkan elemen
string target menggunakan informasi di halaman ini dan nama kode
yang mewakili 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"
Mem-build kode
Jalankan perintah berikut untuk mem-build target Anda. Bergantung pada spesifikasi workstation Anda, build pertama dapat memerlukan waktu kurang dari satu jam hingga beberapa jam. Build berikutnya memerlukan waktu yang jauh lebih singkat.
m
Output build Anda akan muncul di $OUT_DIR
. Jika Anda
mem-build 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 mem-build modul tertentu, bukan image perangkat lengkap, dengan mencantumkan
nama modul di command line m
. Selain itu, perintah m
menyediakan
beberapa target pseudo, yang disebut sasaran. Misalnya, m nothing
tidak mem-build
apa pun, tetapi mengurai dan memvalidasi struktur build. Untuk daftar tujuan
yang valid, ketik m help
.
Memecahkan masalah error build (8.0 atau yang lebih lama)
Jika Anda mem-build AOSP 8 atau yang lebih lama, m
mungkin dibatalkan saat mengalami
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 dalam Menyiapkan untuk pengembangan AOSP (2.3 - 8.0) .
- Ada JDK lain yang diinstal sebelumnya yang muncul di jalur Anda. Tambahkan JDK yang benar ke awal jalur Anda atau hapus JDK yang bermasalah.