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ả lunch để chọn mục tiêu thiết bị và tapas để xây dựng các ứng dụng chưa đượ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
. build/envsetup.sh8 để nhận bất kỳ thay đổi nào đối với tập lệnh đó. Lưu ý rằng việc thay thế
. build/envsetup.sh9 bằng
. build/envsetup.sh0 [một dấu chấm] sẽ tiết kiệm được 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
lunch aosp_arm-eng0 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
. build/envsetup.sh2.
. build/envsetup.sh3 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
. build/envsetup.sh4 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 đề cập đến một bản dựng hoàn chỉnh cho trình giả lập, 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ố,
. build/envsetup.sh2 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 có dạng
. build/envsetup.sh6, trong đó
. build/envsetup.sh7 là tên mã đề cập đến tổ hợp tính năng cụ thể.
. build/envsetup.sh8 là một trong những điều sau đâyBuildtypeUseuserTruy cập hạn chế;
Bản dựng userdebug phải hoạt động giống như bản dựng người dùng, với khả năng kích hoạ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 tốt cho việc thử nghiệm của 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 người dùng và userdebug để nhà phát triển thiết bị có thể xem cách mã hoạt động 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
. build/envsetup.sh9 đị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ư
. build/envsetup.sh2,
. build/envsetup.sh9 không yêu cầu xây dựng hình ảnh cho thiết bị
Chạy
hmm2 để biết thêm thông tin về lệnh
xây dựng mã
Phần này là phầ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
. build/envsetup.sh4.
. build/envsetup.sh4 có thể xử lý các tác vụ song song với đối số
hmm5. Nếu bạn không cung cấp đối số
hmm6, 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
hmm8
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
. build/envsetup.sh4 của bạn. Ngoài ra,
. build/envsetup.sh4 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ụ
hmm
9 -lunch aosp_arm-eng
0 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ênlunch aosp_arm-eng
1 -lunch aosp_arm-eng
2 xây dựng mọi thứ màlunch aosp_arm-eng
0 làm, cộng với mọi thứ không có thẻhmm
9. 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ệplunch aosp_arm-eng
5 đều được xây dựng. build/envsetup.sh
4 - Runs builds from the top of the tree. Điều này rất hữu ích vì bạn có thể chạylunch aosp_arm-eng
7 từ bên trong các thư mục con. Nếu bạn có bộ biến môi trườnglunch aosp_arm-eng
8, 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. build/envsetup.sh
4 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únghmm
80 - 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únghmm
81 - 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únghmm
82 -hmm
83 lên ngọn câyhmm
84 -hmm
85 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ưhmm
86
Chạy
hmm87 để xem các mục tiêu giả khác mà
. build/envsetup.sh4 cung cấp
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
. build/envsetup.sh2, 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 cho
Ghi chú. Hãy nhớ lấy các tệp nhị phân độc quyền nếu không bản dựng của bạn sẽ không khởi động thành công trên phần cứng mục tiêu của bạn. Đôi khi nguồn có thể có các tệp nhị phân khác nhau cho các bản dựng và nhánh khác nhau. Nếu bạn nhận được các đốm màu nhị phân tại thời điểm này, bạn cần giải nén chúng,
. build/envsetup.sh20 và xây dựng lại. Để biết thêm thông tin về quy trình này, hãy xem Lấy nhị phân độc quyền
Nhấp nháy với fastboot
Để flash thiết bị, hãy sử dụng
. build/envsetup.sh21, 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
The emulator is added to your path automatically by the build process. Để chạy trình giả lập, gõ
. build/envsetup.sh2
Hiểu dấu vân tay xây dựng
Để theo dõi và báo cáo các sự cố 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 cho 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 xây dựng một phiên bản Android không phù hợp với phiên bản Java của bạn, thì
lunch aosp_arm-eng7 sẽ hủy bỏ bằng một thông báo chẳng hạn như
. build/envsetup.sh6
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 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ường và Chọ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
. build/envsetup.sh23. Lệnh đó khiến ADB khởi động lại với cấu hình mới