Ikuti petunjuk di halaman ini untuk membangun Android.
Menyiapkan lingkungan build
Dari dalam direktori kerja Anda, dapatkan skrip envsetup.sh
untuk disetel
lingkungan build Anda:
source build/envsetup.sh
Skrip ini mengimpor sejumlah perintah yang memungkinkan Anda bekerja dengan Android
kode sumber, termasuk perintah yang
digunakan pada laman ini. Untuk melihat sumber
skrip, lihat
platform/build/envsetup.sh
Untuk melihat bantuan bawaan, ketik hmm
.
Pilih target
Sebelum membangun Android, Anda harus mengidentifikasi target yang akan di-build. Target
mencerminkan platform target yang
sedang Anda bangun. Untuk mengidentifikasi
target untuk dibuat, gunakan perintah lunch
diikuti dengan string yang mewakili
targetnya. Contoh:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Melihat target saat ini
Untuk melihat setelan makan siang saat ini, jalankan:
echo "$TARGET_PRODUCT-$TARGET_RELEASE-$TARGET_BUILD_VARIANT"
String yang mewakili target memiliki format berikut:
lunch product_name-release-build_variant
Komponen string ini adalah:
product_name adalah nama produk yang ingin Anda build, seperti
aosp_cf_x86_64_phone
atauaosp_husky
. Tujuan product_name dapat mengikuti format Anda sendiri untuk perangkat, tetapi format yang digunakan Google untuk perangkatnya memiliki komponen berikut:aosp
merujuk pada Platform Open Source Android.- (opsional)
cf
disertakan saat target dimaksudkan untuk dijalankan dalam Emulator cumi-cumi. - Arsitektur dan hardware (namakode), seperti
x86_64_phone
atauhusky
yang merupakan namakode untuk Pixel 8 Pro. Untuk mengetahui daftar namakode untuk Google perangkat, lihat Nama kode perangkat.
release disetel ke
trunk_staging
.Bagian build_variant dari string dapat berupa salah satu ketiga 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 kecanggihan 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 mementingkan performa dan daya.
Jika Anda menjalankan lunch
tanpa argumen, daftar target umum disediakan.
Anda juga dapat membuat {i>string<i} target Anda sendiri dengan menyusun elemen
string target menggunakan informasi di halaman ini dan namakode
yang mewakili hardware Google tertentu di
Nama kode perangkat.
Membangun kode
Jalankan perintah berikut untuk membangun target Anda. Tergantung spesifikasinya di workstation Anda, build pertama memerlukan waktu kurang dari satu jam dan hingga beberapa jam. Build berikutnya memerlukan waktu yang jauh lebih sedikit.
$ m
Output pertama yang akan Anda lihat adalah sinopsis target dan lingkungan:
============================================
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
============================================
Output build Anda muncul di $OUT_DIR
. Jika Anda
membangun target yang berbeda, setiap build target akan muncul dalam
$OUT_DIR
.
Perintah m
dibuat dari bagian atas hierarki, sehingga Anda dapat menjalankan m
dari dalam
subdirektori. Jika Anda sudah menetapkan variabel lingkungan TOP
, perintah m
yang menggunakan API tersebut. Jika TOP
tidak ditetapkan, perintah m
akan mencari hierarki dari
direktori saat ini, mencoba
menemukan bagian atas pohon.
Perintah m
dapat menangani tugas paralel dengan argumen -jN
. Jika Anda tidak
memberikan argumen -j
, sistem build akan otomatis memilih tugas paralel
jumlah yang dianggap optimal untuk sistem Anda.
Anda dapat membangun modul khusus, bukan image perangkat lengkap dengan mencantumkan
nama modul dalam command line m
. Selain itu, perintah m
menyediakan
beberapa target semu, yang disebut sasaran. Misalnya, m nothing
tidak dibuat
apa pun, selain mengurai dan memvalidasi struktur build. Untuk daftar valid
sasaran, ketik m help
.
Memecahkan masalah error build (8.0 atau yang lebih lama)
Jika Anda membangun AOSP 8 atau yang lebih lama, m
mungkin akan dibatalkan saat menemukan
masalah pada 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 ini kemungkinan penyebab dan solusinya:
- Anda gagal menginstal JDK yang benar seperti yang ditentukan dalam Bagian JDK dari Menyiapkan pengembangan AOSP (2.3 - 8.0) .
- Ada JDK lain yang sebelumnya diinstal yang muncul di jalur Anda. Tambahkan di awal memperbaiki JDK ke awal jalur Anda atau menghapus JDK yang bermasalah.