Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Xây dựng Android

Thực hiện theo các hướng dẫn này để bắt đầu xây dựng Android.

Thiết lập môi trường

Khởi tạo môi trường với tập lệnh envsetup.sh :

source build/envsetup.sh

hoặc

. build/envsetup.sh

Xem tập lệnh tại platform/build/envsetup.sh để biết mô tả về các lệnh liên quan, bao gồm cả bữa trưa để chọn mục tiêu thiết bị và món tapas để xây dựng các ứng dụng không được nhóm, chẳng hạn như ứng dụng TV tham chiếu .

Bạn cần phát hành lại lệnh này sau mỗi lần repo sync để nhận bất kỳ thay đổi nào đối với tập lệnh đó. Lưu ý rằng thay thế source bằng . (một dấu chấm đơn) lưu một vài ký tự và dạng viết tắt được sử dụng phổ biến hơn trong tài liệu.

Tập lệnh envsetup.sh nhập một số lệnh cho phép bạn làm việc với mã nguồn Android, bao gồm các lệnh được sử dụng trong bài tập này.

Để xem danh sách đầy đủ các lệnh có sẵn, hãy chạy:

hmm

Lựa chọn mục tiêu

bữa trưa

Chọn mục tiêu để xây dựng với lunch . lunch product_name - build_variant chọn product_name làm sản phẩm để xây dựng và build_variant làm biến thể để xây dựng, đồng thời lưu trữ các lựa chọn đó trong môi trường để đọc bằng các lệnh gọi tiếp theo của m và các lệnh tương tự khác.

Cấu hình chính xác có thể được chuyển thành đối số. Ví dụ: lệnh sau đây đề cập đến một bản dựng hoàn chỉnh cho trình giả lập, với tất cả tính năng gỡ lỗi được bật:

lunch aosp_arm-eng

Nếu chạy mà không có đối số, lunch sẽ nhắc bạn chọn mục tiêu từ menu, nhưng lưu ý rằng menu không bao gồm mọi khả năng. Xem phần Chọn bản dựng thiết bị để biết cấu hình bản dựng của tất cả các thiết bị được hỗ trợ trong AOSP hoặc nói chuyện với mọi người trong nhóm của bạn về bữa trưa phù hợp cho thiết bị mà bạn đang làm việc.

Tất cả các mục tiêu xây dựng đều có dạng BUILD-BUILDTYPE , trong đó BUILD là tên mã đề cập đến tổ hợp tính năng cụ thể. BUILDTYPE là một trong những điều sau đây.

kiểu xây dựng Sử dụng
người dùng Truy cập hạn chế; thích hợp cho sản xuất
gỡ lỗi người dùng Giống như người dùng nhưng có quyền truy cập root và khả năng gỡ lỗi; ưa thích để gỡ lỗi
tiếng anh Cấu hình phát triển với các công cụ sửa lỗi bổ sung

Bản dựng userdebug phải hoạt động giống như bản dựng user , với khả năng bật gỡ lỗi bổ sung thường vi phạm mô hình bảo mật của nền tảng. Điều này làm cho bản dựng userdebug phù hợp để thử nghiệm người dùng với khả năng chẩn đoán tốt hơn. Khi phát triển với bản dựng userdebug , hãy làm theo hướng dẫn userdebug .

Bản dựng eng ưu tiên năng suất kỹ thuật cho các kỹ sư làm việc trên nền tảng. Bản dựng eng tắt các tối ưu hóa khác nhau được sử dụng để cung cấp trải nghiệm người dùng tốt. Mặt khác, bản dựng eng có hành vi tương tự như bản dựng useruserdebug để nhà phát triển thiết bị có thể xem cách mã hoạt động trong các môi trường đó.

Để xem cài đặt bữa trưa hiện tại, hãy chạy lệnh:

echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

Để biết thêm thông tin về cách xây dựng và chạy trên phần cứng thực tế, hãy xem Thiết bị nhấp nháy .

tapas

Lệnh tapas định cấu hình bản dựng của các ứng dụng chưa được nhóm. Nó chọn các ứng dụng riêng lẻ được xây dựng bởi hệ thống xây dựng Android. Không giống như lunch , tapas không yêu cầu xây dựng hình ảnh cho thiết bị.

Chạy tapas help để biết thêm thông tin về lệnh.

xây dựng mã

Phần này là một bản tóm tắt nhanh chóng để đảm bảo rằng quá trình thiết lập đã hoàn tất.

Xây dựng mọi thứ với m . m có thể xử lý các tác vụ song song với đối số -jN . Nếu bạn không cung cấp đối -j , hệ thống xây dựng sẽ tự động chọn số lượng tác vụ song song mà nó cho là tối ưu cho hệ thống của bạn.

m

Như đã giải thích ở trên, bạn có thể xây dựng các mô-đun cụ thể thay vì hình ảnh thiết bị đầy đủ bằng cách liệt kê tên của chúng trong dòng lệnh m của bạn. Ngoài ra, m cung cấp một số mục tiêu giả cho các mục đích đặc biệt. Một số ví dụ:

  • droid - m droid là bản dựng bình thường. Mục tiêu này ở đây vì mục tiêu mặc định yêu cầu tên.
  • all - m all xây dựng mọi thứ mà m droid làm, cộng với mọi thứ không có thẻ droid . Máy chủ xây dựng chạy điều này để đảm bảo rằng mọi thứ trong cây và có tệp Android.mk đều được xây dựng.
  • m - Chạy các bản dựng từ ngọn cây. Điều này rất hữu ích vì bạn có thể chạy make từ bên trong các thư mục con. Nếu bạn có bộ biến môi trường TOP , nó sẽ sử dụng biến đó. Nếu không, nó sẽ tìm kiếm cây từ thư mục hiện tại, cố gắng tìm đỉnh của cây. Bạn có thể xây dựng toàn bộ cây mã nguồn bằng cách chạy m mà không có đối số hoặc xây dựng các mục tiêu cụ thể bằng cách chỉ định tên của chúng.
  • mma - Xây dựng tất cả các mô-đun trong thư mục hiện tại và các phần phụ thuộc của chúng.
  • mmma - Xây dựng tất cả các mô-đun trong các thư mục được cung cấp và các phần phụ thuộc của chúng.
  • croot - cd lên ngọn cây.
  • clean - m clean xóa tất cả các tệp đầu ra và tệp trung gian cho cấu hình này. Điều này giống như rm -rf out/ .

Chạy m help để xem m cung cấp các mục tiêu giả nào khác.

Chạy bản dựng

Bạn có thể chạy bản dựng của mình trên trình giả lập hoặc flash nó trên thiết bị. Bởi vì bạn đã chọn mục tiêu xây dựng của mình với lunch , nên nó không có khả năng chạy trên một mục tiêu khác với mục tiêu được xây dựng.

Nhấp nháy với fastboot

Để flash thiết bị, hãy sử dụng fastboot , thiết bị này sẽ được đưa vào đường dẫn của bạn sau khi xây dựng thành công. Xem Nhấp nháy thiết bị để biết hướng dẫn.

Giả lập thiết bị Android

Trình mô phỏng được tự động thêm vào đường dẫn của bạn trong quá trình xây dựng. Để chạy trình giả lập, gõ:

emulator

Hiểu dấu vân tay xây dựng

Để theo dõi và báo cáo các vấn đề liên quan đến một bản dựng Android cụ thể, điều quan trọng là phải hiểu dấu vân tay của bản dựng. Dấu vân tay bản dựng là một chuỗi duy nhất, con người có thể đọc được chứa thông tin nhà sản xuất được cấp cho mỗi bản dựng. Xem mô tả VÂN TAY trong phần Thông số bản dựng của Tài liệu định nghĩa khả năng tương thích của Android (CDD) để biết cú pháp chính xác.

Dấu vân tay xây dựng đại diện cho một bản sửa đổi và triển khai Android cụ thể. Khóa duy nhất này cho phép các nhà phát triển ứng dụng và những người khác báo cáo sự cố với các phiên bản chương trình cơ sở cụ thể. Xem phần Báo cáo lỗi để biết quy trình báo cáo sự cố Android.

Dấu vân tay xây dựng gói gọn tất cả các chi tiết triển khai Android:

  • API: Android và bản địa, cũng như các hành vi API mềm
  • API lõi và một số hành vi giao diện người dùng hệ thống
  • Các yêu cầu về tính tương thích và bảo mật được xác định trong CDD
  • Thông số kỹ thuật của sản phẩm và cài đặt tính năng sử dụng được ứng dụng sử dụng để nhắm mục tiêu các thiết bị đáp ứng các yêu cầu dự kiến
  • Triển khai các thành phần phần cứng và phần mềm

Xem CDD để biết chi tiết đầy đủ và Thêm thiết bị mới để biết hướng dẫn tạo thiết bị Android hoàn toàn mới.

Khắc phục sự cố các lỗi xây dựng phổ biến

Phiên bản Java sai

Nếu bạn đang cố gắng tạo một phiên bản Android không phù hợp với phiên bản Java của mình, make hủy bỏ bằng một thông báo chẳng hạn như:

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

Dưới đây là các nguyên nhân và giải pháp có thể xảy ra:

  • Không cài đặt đúng JDK như được chỉ định trong các yêu cầu của JDK . Đảm bảo bạn đã làm theo các bước trong Thiết lập môi trườngChọn mục tiêu .
  • Một JDK khác đã được cài đặt trước đó xuất hiện trong đường dẫn của bạn. Thêm JDK chính xác vào đầu đường dẫn của bạn hoặc xóa JDK có vấn đề.

Không có quyền USB

Theo mặc định trên hầu hết các hệ thống Linux, người dùng không có đặc quyền không thể truy cập cổng USB. Nếu bạn thấy lỗi quyền bị từ chối, hãy làm theo hướng dẫn trong Định cấu hình quyền truy cập USB .

Nếu ADB đã chạy và không thể kết nối với thiết bị sau khi thiết lập các quy tắc đó, bạn có thể tắt nó bằng adb kill-server . Lệnh đó khiến ADB khởi động lại với cấu hình mới.