AOSP는 기기에 구성 정보를 저장하는 다음과 같은 옵션을 제공합니다.
- 시스템 속성
- 하드웨어 추상화 계층(HAL) 속성
- 시스템 구성 XML 파일
- 리소스 오버레이(정적 및 런타임)
시스템 속성
시스템 속성은 build.prop
전역 사전에 저장된 문자열 키-값 쌍입니다. 시스템 속성은 사용하기 쉽고 성능 오버헤드가 낮은 시스템 전체 리소스입니다. 시스템 속성을 사용하면 시스템 속성이 여러 프로세스에서 공유되는 경우에도 프로세스 간 통신(IPC)을 사용할 필요가 없습니다. 그러나 시스템 속성은 전역 변수와 유사하며 잘못 사용하면 위험할 수 있습니다. 시스템 속성을 잘못 사용하면 보안이 취약해지거나 사용자가 앱에 액세스할 수 없게 되는 등의 문제가 발생할 수 있습니다. 시스템 속성을 사용하여 구성 정보를 저장하기 전에 다른 구성 옵션을 고려하세요.
시스템 속성에 관한 자세한 내용은 시스템 속성 추가를 참고하세요.
HAL 속성
구성의 정보 소스가 기기의 하드웨어 구성요소에서 비롯된 경우 하드웨어의 HAL은 해당 구성요소의 정보를 제공해야 합니다. 구성에 액세스하기 위해 기존 HAL에서 새 HAL 메서드를 정의합니다. HAL 개발에 관한 자세한 내용은 HAL용 AIDL을 참고하세요.
시스템 구성 XML 파일
구성 데이터가 정적이지만 복잡한 경우(구조화된 경우) 구성 데이터에 XML이나 기타 유사한 형식을 사용하는 것이 좋습니다. 파일 스키마가 안정적으로 유지되는지 확인합니다. XML 파일의 경우 xsd_config
를 사용하여 스키마를 안정적으로 유지하고 자동 생성된 XML 파서를 활용할 수 있습니다.
리소스 오버레이
리소스 오버레이를 사용하여 제품을 맞춤설정할 수 있습니다. 리소스 오버레이에는 두 가지 유형이 있습니다.
표준 리소스 오버레이: 빌드 시간에 제품을 맞춤설정하는 데 사용됩니다. 표준 리소스 오버레이에 관한 자세한 내용은 리소스 오버레이로 빌드 맞춤설정을 참고하세요.
런타임 리소스 오버레이(RRO): 런타임에 타겟 패키지의 리소스 값을 변경하는 데 사용됩니다. 예를 들어 시스템 이미지에 설치된 앱은 리소스 값에 따라 동작을 변경할 수 있습니다. 빌드 시간에 리소스 값을 하드코딩하는 대신 다른 파티션에 설치된 RRO가 런타임에 앱의 리소스 값을 변경할 수 있습니다. RRO에 관한 자세한 내용은 런타임에 앱 리소스의 값 변경을 참고하세요.