안드로이드 프로젝트 트레블은 안드로이드의 아키텍처를 개선하여 운영체제(OS) 업데이트를 더욱 빠르고 쉽게 하기 위한 프로젝트이다. 안드로이드 8.0 오레오 버전에서 처음 도입된 트레블 (Treble)은, 안드로이드 프레임워크와 하드웨어 추상화 계층(Hardware Abstraction Layer, HAL)을 분리하여, OS의 업데이트가 하드웨어 제조사나 칩셋 제조사에 의존하지 않도록 했다.
기존에는 새로운 안드로이드 버전을 기기에 적용하기 위해 모든 하드웨어 종속적인 코드를 함께 수정해야 했으나, 트레블을 통해 OS와 하드웨어 간의 표준 인터페이스가 분리됨으로써, OS 업데이트가 보다 독립적으로 가능하게 되었다. 이를 통해 안드로이드 기기들이 더욱 빠르고 효율적으로 최신 OS 버전으로 업데이트될 수 있는 환경이 조성되었다.
대부분의 Vendor 부분은 SoC 벤더에 의해서 제공되고 그 윗 부분은 안드로이드 프레임워크와 애플리케이션이 올라간다. Vendor Interface 가 잘 정의되어 있어서 호환이 되면 Android upgrade가 쉽게 올라간다. 또한 SoC도 쉽게 다른걸로 갈아치울 수 있다.
과연 이게 정말 잘 동작할까 했는데, 최근에 SoC 벤더에서 Android 13기반으로 Vendor와 System이 올라가 있었는데 System 부분에 있는 안드로이드 프레임워크만 14로 올렸는데 바로 동작했다. 물론 모든 기능이 다 잘 동작하는지 테스트는 못해봤지만 기본은 잘 동작한다.
아래 그림은 Vendor Interface, Vendor NDK, HIDL (Hardware Interface Definition Language) 가 어느 범위에 정의 되어 있는지를 보여주는데 Kernel 도 그중 하나이다. 좀 더 자세한 건 아래 Youtube 영상을 참고하기 바란다.
아래 유투브는 6년전 버전이지만 Treble에 대해서 잘 설명해 놨다. 또한 이 채널에서 안드로이드 관련 좋은 영상이 많이 있어서 전체적으로 한번 쭉 훓어볼 예정이다. 링크: https://www.youtube.com/watch?v=2XJAdK9XKcQ
구글에서는 많은 고민을 가지고 HAL, Treble, VTS (Vendor Test Suite)을 잘 정리해서 만들었다. 물론 제품쪽에서 잘 관리하고 구현해야겠지만 기본 큰 틀은 잘 동작하는 것 같다.
'Android (Automotive)' 카테고리의 다른 글
Android 도구 screen copy (0) | 2024.11.25 |
---|---|
Android Cuttlefish (안드로이드 커틀피쉬) (1) | 2024.11.08 |
소스 코드에서 Android 버전 확인 방법 (1) | 2024.10.02 |
Android Automotive OS (안드로이드 오토모티브 OS) (1) | 2024.09.20 |