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