Android chuyển sang hệ thống xây dựng Bazel

Nhà phát triển của Google những người đứng sau sự phát triển của Android, đã cho để biết thông qua một thông báo rằng Dự án đang di chuyển Mã nguồn mở Android (AOSP) để sử dụng hệ thống xây dựng Bazel thay vì hệ thống biên dịch Soong, Ninja và Make hiện tại.

Hỗ trợ Bazel đã được thêm vào kho lưu trữ Androidnhưng sự chuyển đổi sang hệ thống xây dựng mới theo mặc định se sẽ trải rộng trên nhiều phiên bản nền tảng để giúp việc di chuyển dễ dàng và minh bạch nhất có thể.

Trong năm 2020 và 2021, dự kiến ​​sẽ không có thay đổi đáng kể nào trong quy trình xây dựng nền tảng và hỗ trợ cho các hệ thống xây dựng hiện có sẽ được duy trì.

Để cho phép di chuyển dần dần, một vài thay đổi để đơn giản hóa các bản dựng Android đã được đưa vào Bazel, chẳng hạn như khả năng phân tích cú pháp và chạy các tệp xây dựng định dạng Ninja.

Có ý kiến ​​cho rằng đối với nền tảng Android, chuyển sang Bazel sẽ tăng tính linh hoạt của việc định cấu hình quá trình xây dựng, Nó sẽ cải thiện việc xem xét / giám sát tiến độ xây dựng và kết nối các phần phụ thuộc, triển khai các bản dựng có thể lặp lại, đơn giản hóa các tập lệnh xây dựng phức tạp, cải thiện khả năng tích hợp với các trình xử lý xây dựng và thử nghiệm khác nhau, đồng thời giảm thời gian xây dựng.

Di chuyển sang Bazel sẽ cho phép AOSP:

Cung cấp tính linh hoạt hơn để định cấu hình biên dịch AOSP (hỗ trợ tốt hơn cho các điều kiện)
Cho phép xem xét nội tâm nhiều hơn về tiến trình xây dựng AOSP và sự phụ thuộc
Bật các bản dựng AOSP chính xác và có thể chơi được (kín nước)
Giới thiệu một cơ chế cấu hình sẽ làm giảm độ phức tạp của các bản dựng AOSP
Cho phép tích hợp hơn nữa các hoạt động xây dựng và thử nghiệm
Kết hợp tất cả những điều này để tăng thời gian xây dựng đáng kể và cải thiện trải nghiệm
Lợi ích của việc di cư này đối với cộng đồng Bazel là:

Đầu tư đáng kể đang được tiến hành vào Bazel để hỗ trợ các bản dựng nền tảng Android
Hệ sinh thái Bazel và mở rộng cộng đồng để ban đầu bao gồm hàng chục nghìn nhà phát triển nền tảng Android, nhà sản xuất thiết bị gốc điện thoại Android (OEM) và nhà cung cấp chip.
Các quy tắc Bazel của Google để tạo ứng dụng Android sẽ là mã nguồn mở, được sử dụng trong AOSP và được duy trì bởi Google với sự hợp tác của cộng đồng Android / Bazel.
Khả năng tương thích Bazel tốt hơn để tạo ứng dụng Android
Hỗ trợ quy tắc tốt hơn cho các ngôn ngữ khác được sử dụng để xây dựng nền tảng Android (Rust, Java, Python, Go, v.v.)
Hỗ trợ mạnh mẽ cho các phiên bản Hỗ trợ dài hạn (LTS) của Bazel, mang lại lợi ích cho cộng đồng Bazel mở rộng
Tài liệu cải tiến (hướng dẫn và tham khảo)

Hệ sinh thái của Bazel trên Android sẽ mở rộng số lượng người tham gia trong sự phát triển, sẽ đơn giản hóa ứng dụng để tạo ứng dụng Android (bao gồm cả Google dự định mở mã để xây dựng tập lệnh cho các ứng dụng Android của mình), nó sẽ cải thiện hỗ trợ cho các ngôn ngữ lập trình khác nhau được sử dụng trong Android (Rust, Java, Python, Go), nó sẽ cung cấp tài nguyên để tạo các phiên bản dài và sẽ dẫn đến tài liệu tốt hơn và phong phú hơn.

Bazel được phát triển bởi các kỹ sư của Google và được sử dụng để xây dựng hầu hết các dự án nội bộ của công ty. Dự án nổi bật với tốc độ xây dựng cao, mà các kỹ thuật bộ nhớ đệm và song song của quá trình xây dựng được sử dụng.

Các công cụ cũng vậy đảm bảo lắp ráp lặp lạiNói cách khác, kết quả của việc xây dựng dự án trên máy của nhà phát triển sẽ giống hệt như việc xây dựng trên các hệ thống của bên thứ ba, chẳng hạn như các máy chủ tích hợp liên tục. Chức năng bổ sung được triển khai thông qua cơ chế kết nối các tiện ích mở rộng.

Không giống như Make và Ninja, Bazel có cách tiếp cận cấp cao hơn để tạo các quy tắc biên dịch, thay vì xác định các ràng buộc lệnh cho các tệp đang được biên dịch, hãy sử dụng các khối dựng sẵn trừu tượng hơn và xác định các nền tảng mục tiêu / xây dựng.

Các thành phần của dự án được mô tả trong tệp văn bản BUILD dưới dạng một gói thư viện, tệp thực thi và thử nghiệm, mà không nêu chi tiết ở cấp độ tệp và lệnh riêng lẻ để gọi trình biên dịch.

Trong các tệp BUILD, tất cả các phụ thuộc phải được xác định đầy đủ, trên cơ sở đó đưa ra quyết định xây dựng lại các thành phần sau khi thực hiện thay đổi (chỉ các tệp đã sửa đổi mới được xây dựng lại) và song song hóa quá trình xây dựng.

Fuente: https://developers.googleblog.com


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.