AOSP มีตัวเลือกต่อไปนี้สำหรับการจัดเก็บข้อมูลการกำหนดค่าในอุปกรณ์
- พร็อพเพอร์ตี้ของระบบ
- คุณสมบัติของเลเยอร์แอบสแตรกต์ของฮาร์ดแวร์ (HAL)
- ไฟล์ XML การกำหนดค่าระบบ
- การซ้อนทับทรัพยากร (แบบคงที่และรันไทม์)
พร็อพเพอร์ตี้ของระบบ
พร็อพเพอร์ตี้ของระบบคือคู่คีย์/ค่าสตริงที่จัดเก็บไว้ในพจนานุกรมส่วนกลาง build.prop
พร็อพเพอร์ตี้ของระบบคือทรัพยากรทั้งระบบที่ใช้งานง่ายและมีค่าใช้จ่ายด้านประสิทธิภาพต่ำ เมื่อใช้พร็อพเพอร์ตี้ของระบบ คุณไม่จำเป็นต้องใช้การสื่อสารระหว่างโปรเซส (IPC) แม้ว่าจะแชร์พร็อพเพอร์ตี้ระบบในหลายกระบวนการก็ตาม อย่างไรก็ตาม พร็อพเพอร์ตี้ของระบบจะคล้ายกับตัวแปรส่วนกลางและอาจเป็นอันตรายได้หากใช้ในทางที่ผิด การใช้พร็อพเพอร์ตี้ของระบบในทางที่ผิดอาจส่งผลให้เกิดปัญหาต่างๆ เช่น ช่องโหว่ด้านความปลอดภัยและแอปที่ผู้ใช้ไม่สามารถเข้าถึงได้ โปรดพิจารณาตัวเลือกการกำหนดค่าอื่นๆ ก่อนใช้พร็อพเพอร์ตี้ระบบเพื่อจัดเก็บข้อมูลการกำหนดค่า
ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้ของระบบได้ที่หัวข้อเพิ่มพร็อพเพอร์ตี้ของระบบ
พร็อพเพอร์ตี้ HAL
เมื่อแหล่งที่มาของข้อมูลจริงสำหรับการกําหนดค่ามาจากคอมโพเนนต์ฮาร์ดแวร์ในอุปกรณ์ HAL สําหรับฮาร์ดแวร์นั้นต้องระบุข้อมูลสําหรับคอมโพเนนต์นั้น กำหนดเมธอด HAL ใหม่ใน HAL ที่มีอยู่สำหรับการเข้าถึงการกำหนดค่า ดูข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนา HAL ได้ที่ AIDL สําหรับ HAL
ไฟล์ XML การกำหนดค่าระบบ
เมื่อข้อมูลการกำหนดค่าคงที่แต่ซับซ้อน (มีโครงสร้าง) ให้พิจารณาใช้ XML หรือรูปแบบดังกล่าวสำหรับข้อมูลการกำหนดค่า ตรวจสอบว่าสคีมาไฟล์ยังคงเสถียร สำหรับไฟล์ XML คุณสามารถใช้ xsd_config
เพื่อรักษาสคีมาให้เสถียรและใช้ประโยชน์จากโปรแกรมแยกวิเคราะห์ XML ที่สร้างขึ้นโดยอัตโนมัติ
การซ้อนทับทรัพยากร
คุณสามารถใช้การวางซ้อนทรัพยากรเพื่อปรับแต่งผลิตภัณฑ์ได้ การซ้อนทับทรัพยากรมี 2 ประเภท ได้แก่
การวางซ้อนทรัพยากรมาตรฐานที่ใช้ปรับแต่งผลิตภัณฑ์เมื่อสร้าง ดูข้อมูลเกี่ยวกับการวางซ้อนทรัพยากรมาตรฐานได้ที่การปรับแต่งบิลด์ด้วยการวางซ้อนทรัพยากร
การวางซ้อนทรัพยากรรันไทม์ (RRO) ใช้เพื่อเปลี่ยนค่าทรัพยากรของแพ็กเกจเป้าหมายขณะรันไทม์ เช่น แอปที่ติดตั้งอยู่ในอิมเมจระบบอาจเปลี่ยนแปลงลักษณะการทำงานตามค่าของทรัพยากร RRO ที่ติดตั้งในพาร์ติชันอื่นสามารถเปลี่ยนค่าของทรัพยากรของแอปขณะรันไทม์ได้ แทนที่จะกำหนดค่าทรัพยากรแบบฮาร์ดโค้ดไว้เมื่อสร้าง ดูข้อมูลเพิ่มเติมเกี่ยวกับ RRO ได้ที่เปลี่ยนค่าของทรัพยากรของแอปขณะรันไทม์