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 bằng tập lệnh envsetup.sh :

source build/envsetup.sh

hoặc

. build/envsetup.sh

Xem script tại platform / build / envsetup.sh để biết mô tả về các lệnh liên quan, bao gồm bữa trưa để chọn mục tiêu thiết bị và tapas để xây dựng các ứng dụng không 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) 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.

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

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 và 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 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 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 Chọn bản dựng thiết bị cho các 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 chính xác cho thiết bị bạn đang làm việc.

Tất cả các mục tiêu xây dựng 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 cách sau.

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 bản dựng userdebug, hãy tuân theo các nguyên tắc 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. Mặt khác, bản dựng eng có hành vi tương tự như bản dựng người dùng và người dùng gỡ lỗi để các nhà phát triển thiết bị có thể thấy mã hoạt động như thế nào trong các môi trường đó.

Để 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 việc xây dựng các ứng dụng không nhóm. 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 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ề 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 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 số a -j , hệ thống xây dựng sẽ tự động chọn số nhiệm 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ố giả mạo 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 một 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ó bản dựng tệp Android.mk .
  • m - Chạy xây 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ó tập biến môi trường TOP , nó sẽ sử dụng biến đó. 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ể 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 - Tạo 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 cũng giống như rm -rf out/ .

Chạy phần m help để xem các tiện ích giả khác mà 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 mục tiêu xây dựng của mình trong lunch , nên nó không có khả năng chạy trên 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 một thiết bị, hãy sử dụng fastboot , tính năng 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 phần Nhấp nháy thiết bị để biết 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â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 phần Tham số bản dựng của Tài liệu Định nghĩa Tương thích Android (CDD) để biết 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 lỗi để biết quy trình báo cáo sự cố 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 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ố sản phẩm và cài đặt tính năng sử dụng được cá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 mong đợi
  • 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 về cách tạo 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 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 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:

  • Không cài đặt đúng JDK như được chỉ định trong các yêu cầu 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 bị từ chối cấp quyền, 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ể loại bỏ nó bằng adb kill-server . Lệnh đó khiến ADB khởi động lại với cấu hình mới.