Android ย้ายไปที่ระบบบิลด์ Bazel

นักพัฒนาของ Google ผู้อยู่เบื้องหลังการพัฒนา Android ให้ เพื่อทราบผ่านการประกาศว่าโครงการกำลังจะย้าย โอเพนซอร์สของ Android (AOSP) เพื่อใช้ระบบสร้าง Bazel แทนที่จะเป็นระบบคอมไพล์ Soong, Ninja และ Make ในปัจจุบัน

เพิ่มการรองรับ Bazel ในที่เก็บ Android แล้วแต่ การเปลี่ยนแปลง ไปยังระบบบิลด์ใหม่ตามค่าเริ่มต้น se จะกระจายไปในหลายเวอร์ชัน แพลตฟอร์มเพื่อให้การย้ายข้อมูลง่ายและโปร่งใสที่สุด

ในปี 2020 และ 2021 คาดว่าจะไม่มีการเปลี่ยนแปลงที่สำคัญ ในขั้นตอนการก่อสร้างแพลตฟอร์มและการสนับสนุนสำหรับระบบการก่อสร้างที่มีอยู่จะได้รับการบำรุงรักษา

เพื่อให้การย้ายข้อมูลแบบค่อยเป็นค่อยไป การเปลี่ยนแปลงบางอย่าง เพื่อลดความซับซ้อนของการสร้าง Android รวมอยู่ใน Bazel แล้ว เช่นความสามารถในการแยกวิเคราะห์และเรียกใช้ไฟล์สร้างรูปแบบนินจา

เป็นที่ถกเถียงกันว่าสำหรับแพลตฟอร์ม Androidการเปลี่ยนไปใช้ Bazel จะเพิ่มความยืดหยุ่นในการกำหนดค่ากระบวนการสร้าง มันจะปรับปรุงการวิปัสสนา / การตรวจสอบความคืบหน้าของการสร้างและการเชื่อมต่อของการอ้างอิงใช้งานบิลด์ที่ทำซ้ำได้ลดความซับซ้อนของสคริปต์การสร้างที่ซับซ้อนปรับปรุงการรวมเข้ากับตัวจัดการบิลด์และการทดสอบต่างๆและลดเวลาในการสร้าง

การย้ายไปยัง Bazel จะอนุญาตให้ AOSP:

ให้ความยืดหยุ่นมากขึ้นในการกำหนดค่าการคอมไพล์ AOSP (รองรับเงื่อนไขได้ดีขึ้น)
อนุญาตให้มีการวิปัสสนามากขึ้นเกี่ยวกับความคืบหน้าการสร้าง AOSP และการอ้างอิง
เปิดใช้งานการสร้าง AOSP ที่ถูกต้องและเล่นได้ (กันน้ำ)
แนะนำกลไกการกำหนดค่าที่จะลดความซับซ้อนของการสร้าง AOSP
เปิดใช้งานการผสานรวมของกิจกรรมการก่อสร้างและการทดสอบเพิ่มเติม
รวมสิ่งเหล่านี้ทั้งหมดเพื่อผลักดันเวลาในการสร้างที่สำคัญและการปรับปรุงประสบการณ์
ประโยชน์ของการย้ายถิ่นไปยังชุมชน Bazel คือ:

การลงทุนครั้งสำคัญใน Bazel เพื่อรองรับการสร้างแพลตฟอร์ม Android
ระบบนิเวศและการขยายตัวของชุมชนของ Bazel ในขั้นต้นรวมถึงผู้พัฒนาแพลตฟอร์ม Android หลายหมื่นรายและผู้ผลิตอุปกรณ์ดั้งเดิมของโทรศัพท์ Android (OEM) และผู้จำหน่ายชิป
กฎ Bazel ของ Google ในการสร้างแอป Android จะเป็นโอเพ่นซอร์สที่ใช้ใน AOSP และดูแลโดย Google ร่วมกับชุมชน Android / Bazel
ความเข้ากันได้ของ Bazel ที่ดีขึ้นสำหรับการสร้างแอพ Android
การสนับสนุนกฎที่ดีกว่าสำหรับภาษาอื่น ๆ ที่ใช้ในการสร้างแพลตฟอร์ม Android (Rust, Java, Python, Go ฯลฯ )
การสนับสนุนอย่างมากสำหรับเวอร์ชัน Bazel Long Term Support (LTS) ซึ่งเป็นประโยชน์ต่อชุมชน Bazel ที่ขยายตัว
เอกสารที่ปรับปรุงใหม่ (แบบฝึกหัดและข้อมูลอ้างอิง)

ระบบนิเวศของ Bazel บน Android จะขยายจำนวนผู้เข้าร่วมที่เกี่ยวข้อง ในการพัฒนา จะทำให้แอปสร้างแอป Android ได้ง่ายขึ้น (รวมถึง Google ตั้งใจที่จะเปิดโค้ดเพื่อสร้างสคริปต์สำหรับแอปพลิเคชัน Android) จะปรับปรุงการรองรับภาษาโปรแกรมต่างๆที่ใช้ใน Android (Rust, Java, Python, Go) โดยจะให้ทรัพยากรสำหรับการสร้างเวอร์ชันที่มีระยะเวลายาวนานและ จะนำไปสู่การจัดทำเอกสารที่ดีขึ้นและครอบคลุมมากขึ้น

Bazel ได้รับการพัฒนาโดยวิศวกรของ Google และใช้ในการสร้างโครงการภายในของ บริษัท ส่วนใหญ่ โครงการ โดดเด่นด้วยความเร็วในการก่อสร้างที่สูง ซึ่งใช้เทคนิคการแคชและการขนานกันของกระบวนการก่อสร้าง

เครื่องมือด้วย ตรวจสอบการประกอบที่ทำซ้ำได้กล่าวอีกนัยหนึ่งผลลัพธ์ของการสร้างโปรเจ็กต์บนเครื่องของผู้พัฒนาจะเหมือนกับการสร้างบนระบบของบุคคลที่สามเช่นเซิร์ฟเวอร์การรวมแบบต่อเนื่อง มีการใช้งานฟังก์ชันเพิ่มเติมผ่านกลไกสำหรับการเชื่อมต่อส่วนขยาย

Bazel ใช้แนวทางระดับที่สูงกว่าซึ่งแตกต่างจาก Make และ Ninja เพื่อสร้างกฎการคอมไพล์ที่แทนที่จะกำหนดการผูกคำสั่งสำหรับไฟล์ที่กำลังคอมไพล์ให้ใช้บล็อกที่สร้างไว้ล่วงหน้าที่เป็นนามธรรมมากขึ้นและกำหนดแพลตฟอร์มเป้าหมาย / สร้าง

ส่วนประกอบของโครงการ อธิบายไว้ในไฟล์ข้อความ BUILD ในรูปแบบของแพ็คเกจของไลบรารีไฟล์ปฏิบัติการและการทดสอบโดยไม่มีรายละเอียดในระดับของไฟล์แต่ละไฟล์และคำสั่งเพื่อเรียกคอมไพเลอร์

ในไฟล์ BUILD การอ้างอิงทั้งหมดต้องได้รับการกำหนดอย่างสมบูรณ์ บนพื้นฐานของการตัดสินใจที่จะสร้างส่วนประกอบใหม่หลังจากทำการเปลี่ยนแปลง (เฉพาะไฟล์ที่แก้ไขเท่านั้นที่จะถูกสร้างขึ้นใหม่) และทำให้กระบวนการสร้างเป็นแบบขนาน

Fuente: https://developers.googleblog.com


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา