Làm theo hướng dẫn trên trang này để xây dựng Android.
Thiết lập môi trường tạo bản dựng
Từ trong thư mục đang làm việc của bạn, hãy tìm nguồn tập lệnh envsetup.sh
để đặt
thiết lập môi trường tạo bản dựng:
source build/envsetup.sh
Tập lệnh này nhập một số lệnh cho phép bạn làm việc với hệ điều hành Android
mã nguồn, bao gồm các lệnh được sử dụng trên trang này. Để xem nguồn của
tập lệnh, tham chiếu đến
platform/build/envsetup.sh
.
Để xem trợ giúp tích hợp sẵn, hãy nhập hmm
.
Chọn mục tiêu
Trước khi xây dựng Android, bạn phải xác định mục tiêu cần xây dựng. Một mục tiêu
phản ánh nền tảng mục tiêu mà bạn đang xây dựng. Để xác định
mục tiêu cần tạo, hãy sử dụng lệnh lunch
, theo sau là một chuỗi biểu thị
mục tiêu. Ví dụ:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Xem mục tiêu hiện tại
Để xem chế độ cài đặt hiện tại cho bữa trưa, hãy chạy:
echo "$TARGET_PRODUCT-$TARGET_RELEASE-$TARGET_BUILD_VARIANT"
Chuỗi biểu thị mục tiêu có định dạng như sau:
lunch product_name-release-build_variant
Các thành phần của chuỗi này là:
product_name là tên của sản phẩm mà bạn muốn bản dựng, chẳng hạn như
aosp_cf_x86_64_phone
hoặcaosp_husky
. Thông tin cụ thể product_name có thể sử dụng định dạng riêng cho thiết bị của bạn, nhưng định dạng mà Google sử dụng cho các thiết bị của mình có các thành phần sau:aosp
đề cập đến Nền tảng nguồn mở Android.- (không bắt buộc)
cf
được đưa vào khi mục tiêu dự kiến sẽ chạy trong Trình mô phỏng con mực. - Cấu trúc và phần cứng (tên mã), chẳng hạn như
x86_64_phone
hoặchusky
là tên mã của điện thoại Pixel 8 Pro. Để biết danh sách tên mã của Google thiết bị, xem Tên mã thiết bị.
release được đặt thành
trunk_staging
.Phần build_variant của chuỗi có thể là một trong ba giá trị trong bảng sau:
build_variant Mô tả user
Biến thể bản dựng này cung cấp quyền truy cập bảo mật hạn chế và phù hợp để phát hành công khai. userdebug
Biến thể bản dựng này giúp nhà phát triển thiết bị nắm được hiệu suất và sức mạnh của bản phát hành đang trong quá trình phát triển. Khi phát triển bằng bản dựng userdebug
, hãy tuân thủ Nguyên tắc gỡ lỗi người dùng.eng
Biến thể bản dựng này có thời gian xây dựng nhanh hơn và phù hợp nhất để phát triển hằng ngày nếu bạn không quan tâm đến hiệu suất và sức mạnh.
Nếu chạy lunch
mà không có đối số nào, bạn sẽ thấy một danh sách các mục tiêu phổ biến.
Bạn cũng có thể tạo chuỗi mục tiêu của riêng mình bằng cách nối các phần tử của
chuỗi mục tiêu bằng cách sử dụng thông tin trên trang này và tên mã
đại diện cho phần cứng cụ thể của Google tại
Tên mã thiết bị.
Tạo mã
Chạy lệnh sau để tạo mục tiêu của bạn. Tuỳ thuộc vào thông số kỹ thuật của máy trạm, bản dựng đầu tiên có thể mất chưa đến một giờ và lên đến vài giờ. Các bản dựng tiếp theo sẽ mất ít thời gian hơn đáng kể.
$ m
Kết quả đầu tiên bạn sẽ thấy là bản tóm tắt mục tiêu và bản dựng môi trường:
============================================
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
============================================
Kết quả của bản dựng sẽ xuất hiện trong $OUT_DIR
. Nếu bạn
tạo các mục tiêu khác nhau, mỗi bản dựng mục tiêu sẽ xuất hiện trong
$OUT_DIR
.
Lệnh m
được tạo từ phần trên cùng của cây, vì vậy, bạn có thể chạy m
từ bên trong
thư mục con. Nếu bạn đã đặt biến môi trường TOP
, lệnh m
sử dụng nó. Nếu bạn không đặt TOP
, lệnh m
sẽ tra cứu cây từ
thư mục hiện tại, cố gắng tìm phần trên cùng của cây.
Lệnh m
có thể xử lý các tác vụ song song với một đối số -jN
. Nếu không
cung cấp một đối số -j
, hệ thống xây dựng sẽ tự động chọn một tác vụ song song
mà nó cho là tối ưu cho hệ thống của bạn.
Bạn có thể tạo các mô-đun cụ thể thay vì hình ảnh toàn bộ thiết bị bằng cách liệt kê
tên mô-đun trong dòng lệnh m
. Ngoài ra, lệnh m
cung cấp
một số mục tiêu giả, được gọi là mục tiêu. Ví dụ: m nothing
không tạo
bất kỳ thứ gì ngoại trừ phân tích cú pháp và xác thực cấu trúc bản dựng. Để có danh sách các tham số hợp lệ
mục tiêu, hãy nhập m help
.
Khắc phục lỗi bản dựng (8.0 trở xuống)
Nếu bạn đang tạo AOSP 8 trở xuống, thì m
có thể huỷ khi gặp một
vấn đề với phiên bản Java của bạn. Ví dụ: bạn có thể nhận được thông báo này:
************************************************************
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
************************************************************
Sau đây là một số nguyên nhân và giải pháp:
- Bạn không cài đặt đúng JDK như được chỉ định trong Phần JDK của Thiết lập để phát triển AOSP (Dự án nguồn mở Android) (2.3 – 8.0) .
- Có một JDK khác đã cài đặt trước đó đang xuất hiện trong đường dẫn của bạn. Thêm vào trước sửa JDK vào phần đầu đường dẫn của bạn hoặc xoá JDK có vấn đề.