Bangun Android

Ikuti petunjuk di halaman ini untuk membuat Android.

Siapkan lingkungan build Anda

Dari dalam direktori kerja Anda, sumberkan skrip envsetup.sh untuk menyiapkan lingkungan build Anda:

$ source build/envsetup.sh

Skrip ini mengimpor beberapa perintah yang memungkinkan Anda bekerja dengan 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 sasaran

Sebelum membangun Android, Anda harus mengidentifikasi target yang akan dibangun. Untuk mengidentifikasi target yang akan Anda bangun, gunakan perintah lunch diikuti dengan target yang mengidentifikasi produk target Anda dan buat:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Lihat target saat ini

Untuk melihat pengaturan makan siang saat ini, jalankan:

$ echo "$TARGET_PRODUCT-$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 buat, seperti aosp_cf_x86_64_phone atau aosp_husky . product_name spesifik Anda dapat mengikuti format Anda sendiri, namun format yang digunakan Google memiliki komponen berikut:

    • aosp mengacu pada Platform Sumber Terbuka Android.
    • (opsional) cf disertakan ketika target dimaksudkan untuk dijalankan dalam emulator Cuttlefish.
    • arsitektur dan perangkat keras, seperti x86_64_phone atau husky (Pixel 8 pro).
  • release ini disetel ke trunk-staging .

  • Bagian build_variant dari string dapat berupa salah satu dari tiga nilai dalam tabel berikut:

    build_variant Keterangan
    user Varian build ini memberikan akses keamanan terbatas dan cocok untuk produksi.
    userdebug Varian build ini membantu pengembang perangkat memahami performa dan kekuatan rilis dalam pengembangan. Saat mengembangkan dengan build userdebug , ikuti Pedoman untuk userdebug .
    bahasa Inggris Varian build ini memiliki waktu build yang lebih cepat dan paling cocok untuk pengembangan sehari-hari jika Anda tidak peduli dengan performa dan daya.

Buat kodenya

Jalankan perintah berikut untuk membangun target Anda. Tergantung pada spesifikasi stasiun kerja Anda, pembangunan pertama dapat memakan waktu kurang dari satu jam dan hingga beberapa jam. Pembangunan selanjutnya membutuhkan waktu yang jauh lebih sedikit.

$ m

Output pertama yang akan Anda lihat adalah sinopsis target dan lingkungan build Anda:

============================================
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
============================================

Perintah m dibuat dari atas pohon, sehingga Anda dapat menjalankan m dari dalam subdirektori. Jika Anda telah mengatur variabel lingkungan TOP , perintah m akan menggunakannya. Jika TOP tidak disetel, perintah m mencari pohon dari direktori saat ini, mencoba menemukan puncak pohon.

Perintah m dapat menangani tugas paralel dengan argumen -jN . Jika Anda tidak memberikan argumen -j , sistem build secara otomatis memilih jumlah tugas paralel yang dianggap optimal untuk sistem Anda.

Anda dapat membuat modul tertentu alih-alih gambar perangkat lengkap dengan mencantumkan nama modul di baris perintah m Anda. Selain itu, perintah m menyediakan beberapa target semu, yang disebut tujuan . Misalnya, m nothing tidak membuat apa pun, tetapi mem-parsing dan memvalidasi struktur build. Untuk daftar tujuan yang valid, ketik m help .

Memecahkan masalah kesalahan build (8.0 atau lebih lama)

Jika Anda membuat AOSP 8 atau yang lebih lama, m mungkin dibatalkan ketika mengalami masalah dengan versi Java Anda. Misalnya, Anda mungkin menerima 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 Pengaturan untuk pengembangan AOSP (2.3 - 8.0) .
  • Ada JDK lain yang diinstal sebelumnya muncul di jalur Anda. Tambahkan JDK yang benar ke awal jalur Anda atau hapus JDK yang bermasalah.