แพลตฟอร์ม Android ให้การสนับสนุนสำหรับการพัฒนาส่วนประกอบระบบปฏิบัติการดั้งเดิมใน Rust ซึ่งเป็นภาษาการเขียนโปรแกรมระบบที่ทันสมัยซึ่งให้การรับประกันความปลอดภัยของหน่วยความจำด้วยประสิทธิภาพเทียบเท่า C/C++ Rust ใช้การผสมผสานระหว่างการตรวจสอบเวลาคอมไพล์ที่บังคับใช้อายุอ็อบเจ็กต์และความเป็นเจ้าของ และการตรวจสอบรันไทม์เพื่อให้แน่ใจว่ามีการเข้าถึงหน่วยความจำที่ถูกต้อง ดังนั้นจึงไม่จำเป็นต้องมีตัวรวบรวมขยะ
Rust นำเสนอฟีเจอร์ภาษาสมัยใหม่มากมาย ซึ่งช่วยให้นักพัฒนาทำงานได้อย่างมีประสิทธิภาพและมั่นใจในโค้ดของตนมากขึ้น:
- การเขียนโปรแกรมพร้อมกันอย่างปลอดภัย - ความง่ายในการทำให้ผู้ใช้สามารถเขียนโค้ดที่ปลอดภัยสำหรับเธรดที่มีประสิทธิภาพได้ก่อให้เกิดสโลแกน Fearless Concurrency ของ Rust
- ระบบประเภท Expressive - Rust ช่วยป้องกันจุดบกพร่องในการเขียนโปรแกรมเชิงตรรกะโดยอนุญาตให้มีประเภทที่แสดงออกอย่างสูง (เช่น wrappers Newtype และตัวแปร enum ที่มีเนื้อหา)
- การตรวจสอบเวลาคอมไพล์ที่แข็งแกร่งขึ้น - บักเพิ่มเติมที่ตรวจพบในเวลาคอมไพล์ช่วยเพิ่มความมั่นใจให้กับนักพัฒนาว่าเมื่อคอมไพล์โค้ดสำเร็จ โค้ดจะทำงานตามที่ตั้งใจไว้
- กรอบงานการทดสอบในตัว - Rust มีกรอบงานการทดสอบในตัวซึ่งสามารถวางการทดสอบหน่วยควบคู่ไปกับการใช้งานที่ทดสอบ ทำให้รวมการทดสอบหน่วยได้ง่ายขึ้น
- การบังคับใช้การจัดการข้อผิดพลาด - ฟังก์ชันที่มีความล้มเหลวที่กู้คืนได้สามารถส่งคืน ประเภทผลลัพธ์ ซึ่งจะเป็นตัวแปรความสำเร็จหรือตัวแปรข้อผิดพลาด คอมไพเลอร์ต้องการให้ผู้โทรตรวจสอบและจัดการตัวแปรข้อผิดพลาดของ
Result
enum ที่ส่งคืนจากการเรียกใช้ฟังก์ชัน ซึ่งจะช่วยลดโอกาสเกิดข้อบกพร่องที่เกิดจากความล้มเหลวที่ไม่สามารถจัดการได้ - การ เริ่มต้น - Rust กำหนดให้ทุกตัวแปรถูกเตรียมข้อมูลเบื้องต้นให้กับสมาชิกที่ถูกต้องตามกฎหมายในประเภทของมันก่อนใช้งาน เพื่อป้องกันการเริ่มต้นโดยไม่ได้ตั้งใจให้เป็นค่าที่ไม่ปลอดภัย
- การจัดการจำนวนเต็มที่ปลอดภัย ยิ่งขึ้น - การแปลงประเภทจำนวนเต็มทั้งหมดเป็นการแคสต์ที่ชัดเจน นักพัฒนาไม่สามารถแคสต์โดยไม่ได้ตั้งใจในระหว่างการเรียกใช้ฟังก์ชันเมื่อกำหนดให้กับตัวแปร หรือเมื่อพยายามคำนวณกับประเภทอื่นๆ การตรวจสอบโอเวอร์โฟลว์เปิดอยู่โดยค่าเริ่มต้นใน Android สำหรับ Rust ซึ่งกำหนดให้การดำเนินการโอเวอร์โฟลว์มีความชัดเจน
สำหรับข้อมูลเพิ่มเติม โปรดดูชุดของบล็อกโพสต์เกี่ยวกับการสนับสนุน Android Rust:
- สนิมในแพลตฟอร์ม Android
ให้ภาพรวมว่าเหตุใดทีม Android จึงแนะนำ Rust เป็นภาษาแพลตฟอร์มใหม่ - การรวม Rust เข้ากับ Android Open Source Project
อภิปรายถึงวิธีการแนะนำ Rust support ให้กับระบบบิลด์ และเหตุใดจึงตัดสินใจออกแบบบางอย่าง - การทำงานร่วมกันของ Rust/C++ ในแพลตฟอร์ม Android
กล่าวถึงแนวทางการทำงานร่วมกันของ Rust/C++ ภายใน Android