บลูทูธ

บลูทูธเป็นโมดูล Mainline ที่ไม่บังคับตั้งแต่ Android 13 เป็นต้นไป โมดูล Mainline ของบลูทูธมีจุดประสงค์เพื่อมอบประสบการณ์การใช้งานบลูทูธที่มีคุณภาพสูงและสอดคล้องกันให้แก่ผู้ใช้ Android ทุกคน

แรงจูงใจ

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

  1. เผยแพร่การอัปเดตได้เร็วขึ้นและบ่อยขึ้นด้วยฟีเจอร์ใหม่ๆ การแก้ไขข้อบกพร่องและการแก้ไขความสามารถในการทำงานร่วมกัน และการแก้ไขด้านความปลอดภัย
  2. ลดงานที่ต้องทำซ้ำๆ สำหรับพาร์ทเนอร์
    1. ลดค่าใช้จ่ายในการปรับฐานของโค้ดใหม่ทุกปี
    2. ลดค่าใช้จ่ายในการเปิดตัว OTA ไปยังอุปกรณ์รุ่นเดิม
  3. ลดการกระจาย Fragment และสร้างประสบการณ์ใช้งานที่สอดคล้องต่อเนื่องสำหรับนักพัฒนาแอปและผู้ใช้
  4. ปรับปรุงความปลอดภัยทั่วโลกภายในระบบนิเวศของ 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