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