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

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

  • พร็อพเพอร์ตี้ของระบบ
  • คุณสมบัติของเลเยอร์แอบสแตรกต์ของฮาร์ดแวร์ (HAL)
  • ไฟล์ XML การกำหนดค่าระบบ
  • การซ้อนทับทรัพยากร (แบบคงที่และรันไทม์)

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

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

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

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

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

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

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

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

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

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

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