Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Membangun Android

Ikuti instruksi ini untuk mulai membangun Android.

Siapkan lingkungan

Inisialisasi lingkungan dengan skrip envsetup.sh :

source build/envsetup.sh

atau

. build/envsetup.sh

Lihat skrip di platform / build / envsetup.sh untuk deskripsi perintah terkait, termasuk lunch untuk memilih target perangkat dan tapas untuk membangun aplikasi yang tidak di-bundel, seperti aplikasi TV referensi .

Anda harus menerbitkan kembali perintah ini setelah setiap repo sync untuk mengambil setiap perubahan pada skrip itu. Perhatikan bahwa mengganti source dengan . (satu titik) menyimpan beberapa karakter, dan formulir pendek lebih umum digunakan dalam dokumentasi.

Skrip envsetup.sh mengimpor beberapa perintah yang memungkinkan Anda untuk bekerja dengan kode sumber Android, termasuk perintah yang digunakan dalam latihan ini. Berikut adalah beberapa contoh perintah penting:

  • lunch - lunch product_name - build_variant memilih product_name sebagai produk yang akan dibangun, dan build_variant sebagai varian yang akan dibangun, dan menyimpan pilihan-pilihan itu di lingkungan untuk dibaca oleh doa selanjutnya dari m dan perintah serupa lainnya.
  • m - Run membangun dari atas pohon. Ini berguna karena Anda dapat menjalankan make dari dalam subdirektori. Jika Anda memiliki set variabel lingkungan TOP , gunakan itu. Jika tidak, itu akan mencari pohon dari direktori saat ini, mencoba menemukan bagian atas pohon. Anda bisa membangun seluruh pohon kode sumber dengan menjalankan m tanpa argumen atau membangun target spesifik dengan menentukan nama mereka.
  • mma - Membangun semua modul di direktori saat ini, dan dependensinya.
  • mmma - Membangun semua modul di direktori yang disediakan, dan dependensinya.
  • croot - cd ke bagian atas pohon.

Untuk melihat daftar lengkap perintah yang tersedia, jalankan:

hmm

Pilih target

Pilih target mana yang akan dibangun dengan lunch . Konfigurasi yang tepat dapat dilewatkan sebagai argumen. Sebagai contoh, perintah berikut mengacu pada build lengkap untuk emulator, dengan semua debugging diaktifkan:

lunch aosp_arm-eng

Jika dijalankan tanpa argumen, lunch meminta Anda untuk memilih target dari menu. Lihat Memilih build perangkat untuk konfigurasi build semua perangkat yang ada.

Semua target bangun menggunakan bentuk BUILD-BUILDTYPE , di mana BUILD adalah nama kode yang mengacu pada kombinasi fitur tertentu. BUILDTYPE adalah salah satu dari yang berikut ini.

Buildtype Menggunakan
pengguna Akses terbatas; cocok untuk produksi
userdebug Suka pengguna tetapi dengan akses root dan kemampuan debug; lebih disukai untuk debugging
ind Pengembangan konfigurasi dengan alat debugging tambahan

Userdebug build harus berperilaku sama dengan build pengguna, dengan kemampuan untuk mengaktifkan debugging tambahan yang biasanya melanggar model keamanan platform. Ini membuat debugug baik untuk pengujian pengguna dengan kemampuan diagnosis yang lebih baik. Saat mengembangkan dengan build userdebug, ikuti panduan userdebug .

Engine eng memprioritaskan produktivitas rekayasa untuk insinyur yang bekerja di platform. Engine eng mematikan berbagai optimisasi yang digunakan untuk memberikan pengalaman pengguna yang baik. Jika tidak, build eng memiliki perilaku yang mirip dengan user dan userdebug build sehingga pengembang perangkat dapat melihat bagaimana kode berperilaku di lingkungan tersebut.

Untuk informasi lebih lanjut tentang membangun dan menjalankan perangkat keras yang sebenarnya, lihat Menjalankan Pembuatan .

Membangun kode

Bagian ini adalah ringkasan cepat untuk memastikan bahwa pengaturan selesai.

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

m

Seperti yang dijelaskan di atas, Anda dapat membangun modul khusus alih-alih gambar perangkat lengkap dengan mencantumkan nama mereka di baris perintah m Anda. Selain itu, m memberikan beberapa target semu untuk tujuan khusus. Beberapa contoh adalah:

  • droid - m droid adalah build normal. Target ini ada di sini karena target default memerlukan nama.
  • all - m all membangun semua yang dilakukan m droid , ditambah semua yang tidak memiliki tag droid . Server build menjalankan ini untuk memastikan bahwa semua yang ada di pohon dan memiliki file Android.mk dibangun.
  • clean - m clean menghapus semua file keluaran dan perantara untuk konfigurasi ini. Ini sama dengan rm -rf out/ .

Jalankan m help untuk melihat apa pseudotargets lainnya m menyediakan.

Menjalankannya!

Anda dapat menjalankan build di emulator atau mem-flash-nya di perangkat. Karena Anda sudah memilih target build dengan lunch , sepertinya tidak akan berjalan pada target yang berbeda dari yang dibangun untuk.

Berkedip dengan fastboot

Untuk mem-flash perangkat, gunakan fastboot , yang harus dimasukkan dalam jalur Anda setelah pembangunan yang berhasil. Lihat Mem-flash perangkat untuk instruksi.

Meniru perangkat Android

Emulator ditambahkan ke jalur Anda secara otomatis oleh proses build. Untuk menjalankan emulator, ketik:

emulator

Memecahkan masalah kesalahan build umum

Versi Java salah

Jika Anda mencoba untuk membangun sebuah versi Android yang tidak konsisten dengan versi Jawa, make dibatalkan dengan pesan seperti:

************************************************************
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:

  • Gagal menginstal JDK yang benar seperti yang ditentukan dalam Persyaratan JDK . Pastikan Anda telah mengikuti langkah-langkah dalam Menyiapkan lingkungan dan Memilih target .
  • JDK lain yang diinstal sebelumnya muncul di jalur Anda. Tambahkan JDK yang benar ke awal jalur Anda atau hapus JDK yang bermasalah.

Python versi 3

Repo dibangun berdasarkan fungsionalitas tertentu dari Python 2.x dan tidak kompatibel dengan Python 3. Untuk menggunakan Repo, instal Python 2.x:

apt-get install python

Sistem file case-insensitive

Jika Anda membangun sistem file HFS di macOS, Anda mungkin mengalami kesalahan seperti:

************************************************************
You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************

Ikuti instruksi di bagian Membuat disk image case-sensitive .

Tidak ada izin USB

Secara default pada sebagian besar sistem Linux, pengguna yang tidak mampu tidak dapat mengakses port USB. Jika Anda melihat kesalahan izin ditolak, ikuti instruksi di Mengkonfigurasi akses USB .

Jika [adb] (adb.md) sudah berjalan dan tidak dapat terhubung ke perangkat setelah menyiapkan aturan-aturan itu, Anda dapat membunuhnya dengan adb kill-server . Perintah itu menyebabkan adb untuk memulai kembali dengan konfigurasi baru.