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

Làm theo các hướng dẫn sau để 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 envsetup.sh kịch bản:

source build/envsetup.sh

hoặc

. build/envsetup.sh

Xem kịch bản tại nền tảng / build / envsetup.sh cho giới thiệu các lệnh liên quan, bao gồm cả ăn trưa để lựa chọn mục tiêu thiết bị và tapas để xây dựng các ứng dụng unbundled, chẳng hạn như các ứng dụng truyền hình tài liệu tham khảo .

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

Các envsetup.sh nhập khẩu kịch bản 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

Chọn mục tiêu

Bữa trưa

Chọn nhắm mục tiêu để xây dựng với lunch . lunch product_name - build_variant Selects product_name là sản phẩm để xây dựng, và build_variant như các biến thể để xây dựng, và các cửa hàng những lựa chọn trong môi trường để được đọc bởi lời 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 như một đối số. Ví dụ: lệnh sau đề cập đến một bản dựng hoàn chỉnh cho trình mô phỏng, với tất cả các tính năng gỡ lỗi được bật:

lunch aosp_arm-eng

Nếu chạy với không có đối số, lunch nhắc bạn chọn một mục tiêu từ trình đơn. Xem Lựa chọn một thiết bị xây dựng cho xây dựng cấu hình của tất cả các thiết bị hiện có.

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

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

Bản dựng userdebug phải hoạt động giống như bản dựng của người dùng, với khả năng cho phép 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 tốt cho việc kiểm tra người dùng với khả năng chẩn đoán cao hơn. Khi phát triển với userdebug xây dựng, hãy làm theo các hướng dẫn userdebug .

Bản dựng tương tác ư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 này. Bản dựng tương tác tắt các tính năng tối ưu hóa khác nhau được sử dụng để mang lại trải nghiệm tốt cho người dùng. Nếu không, bản dựng eng có hành vi tương tự như bản dựng user và userdebug để các nhà phát triển thiết bị có thể thấy cách mã hoạt động trong các môi trường đó.

Để biết thêm thông tin về việc xây dựng cho và chạy trên phần cứng thực tế, xem Flashing Devices .

tapas

Các tapas lệnh cấu hình xây dựng các ứng dụng unbundled. Nó chọn các ứng dụng riêng lẻ sẽ đượ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 việc xây dựng hình ảnh cho một thiết bị.

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

Xây dựng mã

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

Xây dựng tất cả mọi thứ với m . m có thể xử lý các tác vụ song song với một -jN tranh cãi. Nếu bạn không cung cấp một -j luận, xây dựng hệ thống tự động chọn một số nhiệm vụ song song mà nó nghĩ rằng 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 module cụ thể thay vì hình ảnh thiết bị đầy đủ bằng cách liệt kê tên của họ trong bạn m dòng lệnh. Bên cạnh đó, m cung cấp một số pseudotargets cho các mục đích đặc biệt. Một số ví dụ:

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

Chạy m help để xem những gì pseudotargets khác m cung cấp.

Chạy công trình

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 xây dựng mục tiêu của bạn với lunch , đó là khó có khả năng chạy trên một mục tiêu khác hơn là nó được xây dựng cho.

Nhấp nháy với fastboot

Để flash một thiết bị, sử dụng fastboot , mà cần được đưa vào con đường của bạn sau một xây dựng thành công. Xem Flashing một thiết bị để được hướng dẫn.

Giả lập thiết bị Android

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

emulator

Hiểu về 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. Tệp tham chiếu 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ả FINGERPRINT trong xây dựng thông số phần của nét tương thích Android Document (CDD) cho cú pháp chính xác.

Tệp tham chiếu bản dựng đại diện cho việc triển khai và sửa đổi 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 Báo cáo Bugs cho quá trình phát hành báo cáo-Android.

Tệp tham chiếu bản dựng đóng gói 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 cốt 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 sản phẩm và sử dụng-tính năng thiết lập được sử dụng bởi các ứng dụng với các thiết bị mục tiêu đáp ứng 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 một thiết bị mới để được hướng dẫn về việc tạo ra một thiết bị Android hoàn toàn mới.

Khắc phục các lỗi bản dựng phổ biến

Phiên bản Java sai

Nếu bạn đang cố gắng để xây dựng một phiên bản của Android đó là không phù hợp với các phiên bản của Java, make hủy bỏ với một thông điệp 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à những nguyên nhân có thể xảy ra và giải pháp:

  • Thất bại trong việc cài đặt JDK đúng như quy định trong yêu cầu JDK . Hãy chắc chắn rằng bạn đã làm theo các bước trong Thiết lập môi trườnglựa chọn một 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 một lỗi cho phép từ chối, hãy làm theo các hướng dẫn trong Cấu hình truy cập USB .

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