ภาพรวมการกําหนดค่า

AOSP มีตัวเลือกต่อไปนี้สำหรับการจัดเก็บข้อมูลการกำหนดค่าในอุปกรณ์

  • พร็อพเพอร์ตี้ของระบบ
  • พร็อพเพอร์ตี้ของ Hardware Abstraction Layer (HAL)
  • ไฟล์ XML การกำหนดค่าระบบ
  • การซ้อนทับทรัพยากร (แบบคงที่และรันไทม์)

พร็อพเพอร์ตี้ของระบบ

พร็อพเพอร์ตี้ของระบบคือคู่คีย์/ค่าสตริงที่จัดเก็บไว้ในbuild.prop พจนานุกรมส่วนกลาง พร็อพเพอร์ตี้ของระบบคือทรัพยากรทั่วทั้งระบบที่ใช้งานง่ายและมีค่าใช้จ่ายด้านประสิทธิภาพต่ำ เมื่อใช้พร็อพเพอร์ตี้ของระบบ คุณไม่จำเป็นต้องใช้การสื่อสารระหว่างโปรเซส (IPC) แม้ว่าพร็อพเพอร์ตี้ของระบบจะแชร์ในหลายกระบวนการก็ตาม อย่างไรก็ตาม พร็อพเพอร์ตี้ของระบบคล้ายกับตัวแปรส่วนกลาง และอาจเป็นอันตรายได้หากใช้ในทางที่ผิด การใช้พร็อพเพอร์ตี้ของระบบในทางที่ผิดอาจ ส่งผลให้เกิดปัญหาต่างๆ เช่น ช่องโหว่ด้านความปลอดภัย และแอปเข้าถึงไม่ได้ สำหรับผู้ใช้ โปรดพิจารณาตัวเลือกการกำหนดค่าอื่นๆ ก่อนใช้พร็อพเพอร์ตี้ของระบบเพื่อจัดเก็บข้อมูลการกำหนดค่า

ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้ของระบบได้ที่ เพิ่มพร็อพเพอร์ตี้ของระบบ

พร็อพเพอร์ตี้ HAL

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

ไฟล์ XML การกำหนดค่าระบบ

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

การซ้อนทับทรัพยากร

คุณสามารถใช้การซ้อนทับทรัพยากรเพื่อปรับแต่งผลิตภัณฑ์ได้ การซ้อนทับทรัพยากรมี 2 ประเภท ได้แก่

  • การวางซ้อนทรัพยากรมาตรฐานที่ใช้ในการปรับแต่งผลิตภัณฑ์ในเวลาบิลด์ ดูข้อมูลเกี่ยวกับการวางซ้อนทรัพยากรมาตรฐานได้ที่การปรับแต่งบิลด์ด้วยการวางซ้อนทรัพยากร

  • การซ้อนทับทรัพยากรรันไทม์ (RRO) ใช้เพื่อเปลี่ยนค่าทรัพยากร ของแพ็กเกจเป้าหมายขณะรันไทม์ เช่น แอปที่ติดตั้งในอิมเมจระบบ อาจเปลี่ยนลักษณะการทำงานตามค่าของทรัพยากร RRO ที่ติดตั้งในพาร์ติชันอื่นจะเปลี่ยนค่าของทรัพยากรของแอปในขณะรันไทม์ได้ แทนที่จะ ฮาร์ดโค้ดค่าทรัพยากรในเวลาบิลด์ ดูข้อมูลเพิ่มเติมเกี่ยวกับ RRO ได้ที่เปลี่ยนค่าของทรัพยากรของแอปในรันไทม์