Thiết lập môi trường xây dựng

Phần này mô tả cách thiết lập môi trường làm việc cục bộ của bạn để xây dựng tệp nguồn Android. Bạn phải sử dụng Linux; xây dựng trong MacOS hoặc Windows không được hỗ trợ. Hãy ghi nhớ thay đổi quan trọng đối với tệp nhị phân /usr/bin/python .

Để biết tổng quan về toàn bộ quy trình xem xét mã và cập nhật mã, hãy xem Vòng đời của một bản vá .

Lựa chọn chi nhánh

Một số yêu cầu đối với môi trường xây dựng được xác định bởi phiên bản mã nguồn mà bạn dự định biên dịch. Để biết danh sách đầy đủ các nhánh có sẵn, hãy xem Số bản dựng . Bạn cũng có thể chọn tải xuống và xây dựng mã nguồn mới nhất (được gọi là main ), trong trường hợp đó, bạn chỉ cần bỏ qua đặc tả nhánh khi khởi tạo kho lưu trữ.

Sau khi chọn một nhánh, hãy làm theo các hướng dẫn thích hợp bên dưới để thiết lập môi trường xây dựng của bạn.

Thiết lập môi trường xây dựng Linux

Các hướng dẫn này áp dụng cho tất cả các nhánh, bao gồm cả main .

Bản dựng Android thường xuyên được thử nghiệm nội bộ trên thử nghiệm Ubuntu LTS (14.04) và Debian. Hầu hết các bản phân phối khác nên có sẵn các công cụ xây dựng cần thiết.

Đối với Gingerbread (2.3.x) và các phiên bản cao hơn, bao gồm cả nhánh main , cần có môi trường 64 bit. Các phiên bản cũ hơn có thể được biên dịch trên hệ thống 32-bit.

Cài đặt các gói cần thiết (Ubuntu 18.04 trở lên)

Bạn cần phiên bản Ubuntu 64 bit.

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Cài đặt các gói cần thiết (Ubuntu 14.04)

Bạn cần phiên bản Ubuntu 64 bit (khuyên dùng 14.04).

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

Cài đặt các gói cần thiết (Ubuntu 12.04)

Bạn có thể sử dụng Ubuntu 12.04 để xây dựng các phiên bản Android cũ hơn. Phiên bản 12.04 không được hỗ trợ trên các bản phát hành main hoặc gần đây.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Cài đặt các gói cần thiết (Ubuntu 10.04-11.10)

Việc xây dựng trên Ubuntu 10.04-11.10 không còn được hỗ trợ, nhưng có thể hữu ích để xây dựng các bản phát hành AOSP cũ hơn.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc

Trên Ubuntu 10.10:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

Trên Ubuntu 11.10:

sudo apt-get install libx11-dev:i386

Định cấu hình quyền truy cập USB

Cài đặt bộ quy tắc udev mặc định do cộng đồng duy trì cho tất cả các thiết bị Android bằng cách làm theo hướng dẫn để Thiết lập thiết bị để phát triển .

Sử dụng một thư mục đầu ra riêng biệt

Theo mặc định, đầu ra của mỗi bản dựng được lưu trữ trong thư out/ thư mục con của cây nguồn phù hợp. Bạn có thể ghi đè điều này bằng cách xuất biến môi trường OUT_DIR . Ví dụ:

export OUT_DIR=out_mytarget

Điều này sẽ khiến đầu ra của bản dựng được lưu trữ trong thư mục out_mytarget/ của cây nguồn. Khi sử dụng cùng một cây nguồn để xây dựng cho nhiều mục tiêu, bạn nên sử dụng OUT_DIR riêng cho từng mục tiêu.

Trên một số máy có nhiều thiết bị lưu trữ, quá trình xây dựng sẽ nhanh hơn khi lưu trữ các tệp nguồn và đầu ra trên các ổ đĩa riêng biệt. Để có thêm hiệu suất, đầu ra có thể được lưu trữ trên một hệ thống tệp được tối ưu hóa về tốc độ thay vì độ bền khi gặp sự cố, vì tất cả các tệp có thể được tạo lại nếu hệ thống tệp bị hỏng.

Để thiết lập điều này, hãy xuất biến OUT_DIR_COMMON_BASE để trỏ đến vị trí lưu trữ các thư mục đầu ra của bạn.

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

Thư mục đầu ra cho mỗi cây nguồn riêng biệt được đặt tên theo thư mục chứa cây nguồn. Chẳng hạn, nếu bạn có cây nguồn /source/main1/source/main2 và nếu OUT_DIR_COMMON_BASE được đặt thành /output , các thư mục đầu ra là /output/main1/output/main2 .

Tránh để nhiều cây nguồn được lưu trữ trong các thư mục có cùng tên, vì các cây nguồn sẽ chia sẻ một thư mục đầu ra, dẫn đến kết quả không thể đoán trước. Điều này chỉ được hỗ trợ trên Jelly Bean (4.1) trở lên, bao gồm cả nhánh main .

Tiếp theo: Tải về nguồn

Môi trường xây dựng của bạn là tốt để đi! Tiến hành tải về nguồn .