Android Automotive 내부 저장소는 수천 회의 삭제 및 쓰기 주기가 있는 플래시 메모리를 사용합니다. 플래시 메모리가 실패하면 시스템을 사용할 수 없게 될 수 있습니다. 자동차는 수명이 길고 (일반적으로 10년 이상) 플래시 메모리는 매우 안정적이어야 합니다. 이 페이지에서는 플래시 메모리 동작과 OEM이 플래시 메모리 기기의 장애 위험을 완화할 수 있는 방법을 살펴봅니다.
플래시 메모리 성능
플래시 메모리 장치는 웨어 레벨링 기술을 사용하여 단일 블록에서 장애가 발생하지 않도록 데이터를 정렬하고 쓰기를 시스템 전체에 고르게 분산 비용이 많이 듭니다 플래시 메모리의 예상 수명은 다음에 따라 달라집니다.
- 쓰기 수
- 쓰기 패턴
- 사용 가능한 플래시 메모리 크기. 스토리지 크기가 커질수록 웨어 레벨링이 가능함 알고리즘이 더 많은 블록에 쓰기를 분산시킬 수 있습니다.
- 웨어 레벨링 기법
- 환경 요인. 예를 들면 다음과 같은 작동 온도 범위가 있습니다. 보통 섭씨 -20~85도입니다. 온도가 이 범위를 벗어나면 수명이 더 단축될 수 있습니다. 플래시 메모리의 작은 부분을 차지하게 됩니다.
플래시 메모리 수명은 다음 공식을 사용하여 계산할 수 있습니다.
그러나 플래시 메모리가 완전히 소모되기 훨씬 전에 시스템이 제대로 작동하지 않게 됩니다. eMMC는 사용 가능한 스토리지 크기가 줄어들기 때문에 수명이 더 짧을 수 있습니다. 사용하는 레벨링 기법과 쓰기 패턴을 설명합니다. 또한 이 추정치는 다음과 같은 방법으로 Automotive 시스템을 방해할 수 있는 오작동 또는 악성 앱의 영향을 고려합니다. 특별한 권한 없이 대량의 정크 데이터 블록을 작성하여 메모리를 플래시하는 행위.
플래시 메모리 장애가 실제로 발생하기 전에 이를 감지할 수 있도록 적절한 저장소 상태 모니터링은 전체 시스템 상태 모니터링의 일부로 포함되어야 합니다.
플래시 메모리 구현
Android Automotive는 OEM이 시스템을 보호하고 모니터링할 수 있는 기능을 지원합니다. 수명을 연장합니다.
플래시 마모 줄이기
내부 저장소의 플래시 마모를 우려하는 OEM은 또한 SD 카드를 채택된 스토리지로 사용됩니다 SD 카드는 다음과 같은 속성을 포함해야 합니다.
- SD 카드는 채택되면 암호화되어 앱 데이터를 안전하게 보관할 수 있습니다.
- SD 카드 슬롯은 안전한 위치에 있어야 합니다. 사용자가 SD 카드를 제거하지 않아도 됩니다. 자주 사용합니다.
- SD 카드는 Automotive 시스템과 컴퓨터 간에 데이터를 전송하는 데 사용할 수 없습니다.
- SD 카드를 꺼내도 실행 중인 시스템에는 영향을 주지 않습니다. 하지만 교체해야 합니다.
SD 카드에 있는 앱
Android Automotive 시스템의 내부 저장소를 추가로 보호하기 위해 OEM은 타사 앱은 내부 저장소에 설치할 수 있으므로 영구 볼륨 클레임을 사용해야 합니다 구성하려면 리소스 오버레이:
<bool name="config_allow3rdPartyAppOnInternal">false</bool>
다음의 경우 자동차 앱 개발자가 빌드한 세컨드 파티 앱이 SD 카드에 설치될 수 있도록 하기 위해
규정 준수를 위해 자동차 앱 개발자는
앱의 매니페스트 파일에서 android:installLocation=["auto" | "preferExternal"]
를 확인할 수 있습니다.
자동차에서 내부 저장소에 서드 파티 앱 설치를 허용하지 않는 경우 앱 설치
이 플래그 없이 실패하거나 installLocation=internalOnly
설정이 구성된 경우).
디스크 측정항목 가져오기
AAOS 13에서는 자동차의 일부로 플래시 메모리 초과 사용 모니터링 및 측정항목 수집을 도입했습니다. 감시자. 자세한 내용은 플래시 메모리 사용량 모니터링
Android 8에서는 디스크와 플래시를 샘플링하여 게시하는 시스템 서비스인 storaged가 도입되었습니다. 메모리 측정항목(예: 전체 디스크 사용량, 플래시 메모리 수명 예측, 앱별 디스크 I/O 통계입니다. OEM은 이 정보를 사용하여 내부 저장소가 실행될 때 사용자에게 경고할 수 있습니다. 또는 특정 앱이 너무 많은 디스크 I/O를 수행하는 경우 발생할 수 있습니다. 자세한 내용은 storaged를 구현합니다.