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

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

Đối với một cái nhìn tổng quan của toàn bộ mã rà soát và mã cập nhật quá trình, xem cuộc sống của một Patch .

Chọn một chi nhánh

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

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

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

Những hướng dẫn áp dụng đối với tất cả các chi nhánh, bao gồm master .

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

Đối với Gingerbread (2.3.x) và các phiên bản cao hơn, trong đó có master chi nhánh, một môi trường 64-bit là bắt buộc. Các phiên bản cũ 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)

Bạn cần một phiên bản 64-bit của Ubuntu.

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev 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 một phiên bản 64-bit của Ubuntu (14.04 được khuyến khích).

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib 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 phiên bản cũ của Android. Phiên bản 12.04 không được hỗ trợ trên master hoặc phát hành 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 g++-multilib 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)

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 cho việc xây dựng các phiên bản cũ của AOSP.

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 g++-multilib 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

Cấu hình truy cập USB

Cài đặt một bộ mặc định cộng đồng duy trì của udev quy tắc cho tất cả các thiết bị Android bằng cách làm theo các hướng dẫn để thiết lập một 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 từng xây dựng được lưu trữ trong out/ thư mục con của cây nguồn phù hợp. Bạn có thể ghi đè lên điều này bằng cách xuất khẩu các OUT_DIR biến môi trường. Ví dụ:

export OUT_DIR=out_mytarget

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

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

Để thiết lập, xuất OUT_DIR_COMMON_BASE biến để trỏ đến vị trí nơi thư mục đầu ra của bạn sẽ được lưu trữ.

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

Các thư mục đầu ra cho mỗi cây nguồn riêng biệt được đặt theo tên của thư mục giữ cây nguồn. Ví dụ, nếu bạn có cây /source/master1/source/master2 và nếu OUT_DIR_COMMON_BASE được thiết lập để /output , các thư mục đầu ra là /output/master1/output/master2 .

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

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 .