안드로이드 Min and Target 버전에 대하여
참고: 유다시티
안드로이드 1.0은 2008년에 출시되었고, 그 이후 총 13번의 주요 릴리즈 업데이트가 있었다. 각 릴리즈는 전통에 따라 달콤한 디저트이름으로 명명되었고, 이름은 알파벳 순서대로 정해졌다.
안드로이드 개발자 사이트에 들어가면 현재 활성화되어있는 기기에 어떤 플랫폼 버전이 어떤 비율로 돌아가고있는지 확인해 볼 수 있다.
각 플랫폼 버전별 사용자 퍼센티지가 완벽하진 않지만, 종모양의 분포를 보이는걸 확인할 수 있다. x축 좌측에 위치한 오래된 버전의 플랫폼의 점유 퍼센티지가 급격히 낮은 이유는 디바이스의 업그레이드나 교체때문으로 해석할 수 있다. 중간쯤의 플랫폼 버전의 상대적으로 높은 사용자 점유 퍼센티지를 보이는데, 이 버전을 사용하고있는 디바이스는 2년정도 전에 출시된 디바이스이다. 가장 최신의 플랫폼은 출시된지 얼마안된 디바이스이거나 업그레이드를 통해 새로운 버전을 설치한 경우이다.
그럼 왜 minSDK를 1로 설정하고 개발하지 않는것일까? 최소 SDK버전을 1로 설정하면 누구나 구글스토어에서 나의 앱을 다운받을수 있음에도 불구하고 말이다.
일반적으로 앱 개발자들은 가능한한 많은 사용자를 대상으로 앱을 만든다. 하지만 낮은 버전의 플랫폼을 지원하는덴 비용상의 문제가 발생한다. API가 변경되거나 업데이트됨에 따른 실행 경로 재설정이나 기기별로 상이한 스펙으로 인한 UX변경 등 말이다. 타겟 디바이스를 넓게 잡는것과 넓어진 타겟 디바이스를 지원하기위한 비용을 잘 생각하고 균형을 맞춰야하는게 이 때문이다.
또 주의할 점은 각 버전이 출시될 떄마다 해당 버전이 지원하는 하드웨어 기능 지원도 새롭게 더해진다는 것이다. 따라서 내가 설정한 minSDK버전에서 지원하지 않는 기능들을 내가 만든 앱이 사용하도록 하는것은 이치에 맞지 않다. 아래는 각 릴리즈마다 새롭게 추가 된 대표적인 하드웨어 서포트와 기능을 정리한 것이다.
안드로이드 1.0은 2008년에 출시되었고, 그 이후 총 13번의 주요 릴리즈 업데이트가 있었다. 각 릴리즈는 전통에 따라 달콤한 디저트이름으로 명명되었고, 이름은 알파벳 순서대로 정해졌다.
안드로이드 개발자 사이트에 들어가면 현재 활성화되어있는 기기에 어떤 플랫폼 버전이 어떤 비율로 돌아가고있는지 확인해 볼 수 있다.
각 플랫폼 버전별 사용자 퍼센티지가 완벽하진 않지만, 종모양의 분포를 보이는걸 확인할 수 있다. x축 좌측에 위치한 오래된 버전의 플랫폼의 점유 퍼센티지가 급격히 낮은 이유는 디바이스의 업그레이드나 교체때문으로 해석할 수 있다. 중간쯤의 플랫폼 버전의 상대적으로 높은 사용자 점유 퍼센티지를 보이는데, 이 버전을 사용하고있는 디바이스는 2년정도 전에 출시된 디바이스이다. 가장 최신의 플랫폼은 출시된지 얼마안된 디바이스이거나 업그레이드를 통해 새로운 버전을 설치한 경우이다.
minSDK에 대하여
minSDK는 내가 개발한 앱이 돌아갈수 있는 최소의 SDK버전을 의미한다. 어떤 버전을 선택하던 상관은 없다. 하지만 주의할점은 존재한다. minSDK를 설정하는것은 필터같이 작용하기 떄문이다. 내가 가진 스마트폰의 플랫폼 버전보다 더 높은 minSDK버전을 가진 어플리케이션은 구글플레이(구글 스토어)에 뜨지 않기 때문이다.그럼 왜 minSDK를 1로 설정하고 개발하지 않는것일까? 최소 SDK버전을 1로 설정하면 누구나 구글스토어에서 나의 앱을 다운받을수 있음에도 불구하고 말이다.
일반적으로 앱 개발자들은 가능한한 많은 사용자를 대상으로 앱을 만든다. 하지만 낮은 버전의 플랫폼을 지원하는덴 비용상의 문제가 발생한다. API가 변경되거나 업데이트됨에 따른 실행 경로 재설정이나 기기별로 상이한 스펙으로 인한 UX변경 등 말이다. 타겟 디바이스를 넓게 잡는것과 넓어진 타겟 디바이스를 지원하기위한 비용을 잘 생각하고 균형을 맞춰야하는게 이 때문이다.
또 주의할 점은 각 버전이 출시될 떄마다 해당 버전이 지원하는 하드웨어 기능 지원도 새롭게 더해진다는 것이다. 따라서 내가 설정한 minSDK버전에서 지원하지 않는 기능들을 내가 만든 앱이 사용하도록 하는것은 이치에 맞지 않다. 아래는 각 릴리즈마다 새롭게 추가 된 대표적인 하드웨어 서포트와 기능을 정리한 것이다.
- Home screen widgets (Cupcake)
- Multiple finger tracking (Froyo)
- Tablet (Honeycomb)
- Android Beam (Jellybean)
- Android TV, Auto, Wear (Lollipop)
- Pro Audio (Marshmallow)
targetSDK에 대하여
minSDK와는 달리 targetSDK는 (구글 스토어 내에서)필터같은 역할을 하지 않는다. targetSDK는 내가 만들고있는 앱을 어떤 플랫폼 버전에서 테스트할지를 명시해주는데 사용된다. 특정 버전을 targetSDK로 설정하게되면, 후방호환성을 보장받게된다. 이후에 발표되는 SDK에서도 작동된다는 의미이다.
안드로이드 스튜디오는 기본적으로 가장 최신의 버전을 targetSDK로 설정한다. 만약 새로운 어플리케이션을 개발하고자 한다면 가장 최신의 버전을 사용하지 않아야 할 이유는 없을것이다. 내가 만든 어플리케이션을 일단 릴리즈 하고난 후에는 targetSDK역시 업데이트 하고, 가능하면 빨리 최신의 버전에서 어플리케이션이 제대로 기능을 다 하는지 확인하는것이 중요하다. 이를 통해 최신버전이 가진 새로운 최적화 기능이나 기능향상을 내 앱에 적용할 수 있기 때문이다.
댓글
댓글 쓰기