บลูทูธเป็นโมดูล Mainline ที่ไม่บังคับตั้งแต่ Android 13 เป็นต้นไป โมดูล Mainline ของบลูทูธมีจุดประสงค์เพื่อมอบประสบการณ์การใช้งานบลูทูธที่มีคุณภาพสูงและสอดคล้องกันให้แก่ผู้ใช้ Android ทุกคน
แรงจูงใจ
แรงจูงใจหลักที่อยู่เบื้องหลังโมดูลบลูทูธคือการมอบประสบการณ์การใช้งานที่มีคุณภาพสูงให้แก่พาร์ทเนอร์ ผู้ใช้ และผู้พัฒนาแอป เราจะบรรลุเป้าหมายนี้ ด้วยวิธีง่ายๆ ต่อไปนี้
- เผยแพร่การอัปเดตได้เร็วขึ้นและบ่อยขึ้นด้วยฟีเจอร์ใหม่ๆ การแก้ไขข้อบกพร่องและการแก้ไขความสามารถในการทำงานร่วมกัน และการแก้ไขด้านความปลอดภัย
- ลดงานที่ต้องทำซ้ำๆ สำหรับพาร์ทเนอร์
- ลดค่าใช้จ่ายในการปรับฐานของโค้ดใหม่ทุกปี
- ลดค่าใช้จ่ายในการเปิดตัว OTA ไปยังอุปกรณ์รุ่นเดิม
- ลดการกระจาย Fragment และสร้างประสบการณ์ใช้งานที่สอดคล้องต่อเนื่องสำหรับนักพัฒนาแอปและผู้ใช้
- ปรับปรุงความปลอดภัยทั่วโลกภายในระบบนิเวศของ Android ช่องโหว่ด้านความปลอดภัยส่วนใหญ่ของ Android เกี่ยวข้องกับบลูทูธ
รูปแบบแพ็กเกจ
แพ็กเกจนี้เป็น APEX ที่มี APK ของบลูทูธ (ปัจจุบันกำหนดไว้ใน packages/modules/Bluetooth/android/app
) ไลบรารีแบบเนทีฟ (libbluetooth.so
และ libbluetooth_jni.so
) API (ในส่วน packages/modules/Bluetooth/framework/java/android/bluetooth
) และอินเทอร์เฟซ HIDL
ขอบเขตของโมดูล
รูปที่ 1 ขอบเขตโมดูลบลูทูธ
เรากําลังย้ายข้อมูลรีพอสิทที่มีอยู่ทั้งหมดไปยังรีพอสิทเดียวภายใต้ system/bt
รูปที่ 1 แสดงไดเรกทอรีปัจจุบันที่จะประกอบเป็นโมดูลของเรา
ทรัพยากร Dependency
โมดูลบลูทูธจะขึ้นอยู่กับสิ่งต่อไปนี้
- การใช้งาน
@hide
API ขาเข้าและขาออกที่จะล้างข้อมูล - ไลบรารีที่จำเป็นสำหรับ APK บลูทูธ,
libbluetooth.so
และlibbluetooth_jni.so