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

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