Sebelum rilis Android 7.0, Android menggunakan
GNU Make
secara eksklusif untuk menjelaskan dan mengeksekusi aturan build-nya. Sistem build Make didukung dan digunakan secara luas, tetapi pada skala Android, sistem ini menjadi lambat, rentan terhadap error, tidak dapat diskalakan, dan sulit diuji. Sistem build Soong
memberikan fleksibilitas yang diperlukan untuk build Android. Kami membuat perubahan signifikan pada sistem build Android, menghentikan penggunaan sistem build Make (Android.mk
) dan menggantinya dengan Soong (Android.bp
).
Oleh karena itu, developer platform diharapkan beralih dari Make dan mengadopsi Soong sesegera mungkin. Kirim pertanyaan ke Grup Google Android Building untuk mendapatkan dukungan.
Apa itu Soong?
Sistem build Soong diperkenalkan di Android 7.0 (Nougat) untuk menggantikan Make. Fitur ini memanfaatkan alat clone GNU Make Kati dan komponen sistem build Ninja untuk mempercepat build Android.
Lihat deskripsi Sistem Build Make Android di Android Open Source Project (AOSP) untuk mengetahui petunjuk umum dan Perubahan Sistem Build untuk Penulis Android.mk untuk mempelajari modifikasi yang diperlukan untuk beradaptasi dari Make ke Soong. Lihat entri terkait build dalam glosarium untuk mengetahui definisi istilah utama dan Referensi Modul Soong untuk mengetahui detail selengkapnya.
Perbandingan Make dan Soong
Berikut perbandingan konfigurasi Make dengan Soong yang melakukan hal yang sama dalam file konfigurasi Soong (Blueprint atau .bp
).
Buat contoh
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libxmlrpc++
LOCAL_MODULE_HOST_OS := linux
LOCAL_RTTI_FLAG := -frtti
LOCAL_CPPFLAGS := -Wall -Werror -fexceptions
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/src
LOCAL_SRC_FILES := $(call \
all-cpp-files-under,src)
include $(BUILD_SHARED_LIBRARY)
Contoh Soong
cc_library_shared {
name: "libxmlrpc++",
rtti: true,
cppflags: [
"-Wall",
"-Werror",
"-fexceptions",
],
export_include_dirs: ["src"],
srcs: ["src/**/*.cpp"],
target: {
darwin: {
enabled: false,
},
},
}
Untuk contoh konfigurasi Soong khusus pengujian, lihat Konfigurasi build sederhana.
Prosedur konversi dasar
Konversi file Android.mk
ke file Android.bp
biasanya mengikuti alur kerja umum ini menggunakan alat bantu androidmk
. Secara umum, langkah-langkah berikut dilakukan dalam konversi.
Siapkan lingkungan terminal dan buat alat
androidmk
.androidmk
adalah alat command line yang mengurai fileAndroid.mk
dan mencoba menghasilkan fileAndroid.bp
yang serupa. Alat ini dapat mengonversi sebagian besar fileAndroid.mk
menjadiAndroid
.bp dengan sedikit atau tanpa perubahan manual.cd <root-of-the-tree> source build/envsetup.sh lunch <lunch-target> m androidmk
Build dengan
Android.mk
:sh m <module-name>
Jalankan alat konversi
androidmk
:sh androidmk <path-to-Android.mk>/Android.mk > <path-to-Android.bp>/Android.bp
Edit file
Android.bp
secara manual:- Atasi peringatan apa pun yang dikeluarkan oleh alat
androidmk
. - Mempertahankan atau menambahkan header hak cipta. Jika menambahkan yang baru, gunakan tahun saat ini.
- Atasi peringatan apa pun yang dikeluarkan oleh alat
Hapus file
Android.mk
dan bangun dengan fileAndroid.bp
.Validasi konversi dengan membandingkan artefak yang dibuat atau menjalankan pengujian unit dan fungsional.
Simpan perubahan dan upload untuk ditinjau.
Lihat format file Android.bp untuk mengetahui informasi selengkapnya.