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

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 โปรดดูที่ การเปลี่ยนแปลงค่าของทรัพยากรของแอป ณ รันไทม์