지난 겨울 블로그 포스트 (원문, 한국어)를 통해 알려드린 대로, 2018년 8월부터 Google Play Store에 제출되는 모든 새로운 앱과 게임은 대상 SDK API 레벨(Target SDK Level)이 26 이상(Android 8.0 Oreo)이어야 합니다. 또한 2018년 11월부터는 기존 앱과 게임을 업데이트할 때도 동일한 정책이 적용됩니다. 또한, 2019년 8월 부터는 네이티브 라이브러리를 포함한 새 앱과 앱 업데이트에서 32비트 버전 외에 64비트 버전도 함께 제공되어야 합니다. 이는 보안 및 성능에 최적화된 최신 API를 기반으로 앱이 만들어지고, 사용자가 그 혜택을 온전히 누릴 수 있도록 보장하기 위한 것입니다.




다음은 여러분이 알아야 하는 몇 가지 중요한 변경사항입니다.
  • 대상 API 23 이상으로 빌드된 앱은 반드시 런타임 권한 모델을 사용해야합니다.
  • 대상 API 24 이상으로 빌드된 앱은 정식 NDK에 포함되지 않은 라이브러리에 동적으로 링크할 수 없습니다. 비공식 라이브러리를 명시적으로 사용하고 있지 않더라도, 참조하고 있는 다른 라이브러리에서 비공식 라이브러리를 링크해 사용하고 있을 수 있습니다. 따라서 대상 API 레벨을 24 미만에서 26이상으로 변경한 후에는 꼭 Android 7.0 이 후 버전에서 동작하는 기기에서 앱 동작을 테스트 해야합니다. 네이티브 코드를 사용하는 앱의 경우 공개된 NDK API만 사용해야 합니다.
  • 푸시 알림을 사용하는 경우 Google 클라우드 메시징(메시지 수신용) 또는 Firebase 클라우드 메시징 중 하나를 사용할 것입니다. 이 때, API 레벨 26을 지원하기 위해서는 반드시 Google Play Service SDK 10.2.1 혹은 그 이상 버전 SDK (2017년 3월 21일 출시)를 사용해야합니다.
  • OBB - OBB 파일에 액세스하기 전에 해당 디렉토리에 액세스가 가능한지 확인이 필요합니다. 일부 단말에서는 기기상의 문제로 인해 외부 저장소 액세스 권한이 자동으로 부여되지 않습니다. 이런 경우에는 API를 사용하여 액세스 권한을 명시적으로 요청해야 하며, 이 권한이 부여되지 않은 경우는 매끄럽게 처리해야 합니다. 또한 외부 저장소 액세스를 위한 항목을 매니페스트에 추가하세요: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />




이 작업을 왜 수행하나요?
Android의 모든 새로운 버전에는 Android 사용자를 위한 새로운 개선 사항과 혜택이 있습니다. 그 중 앱과 게임이 최신 SDK를 대상으로 해야만 개선의 효과가 나타나는 항목들이 있습니다. 민감한 사용자 데이터(예: 연락처 또는 위치)에 대한 더 나은 제어, 개선된 배터리 수명, 메모리 사용량 감소, 엄격한 백그라운드 실행 제한 등이 있습니다.


API 26을 대상으로 하려면 언제 앱을 업데이트해야 하나요?
최대한 빨리 하는 것이 좋습니다. Android 8.0 Oreo SDK(API 레벨 26)를 설치해 보고 게임에 비호환성/문제가 없는지 확인해야 합니다.


Android 8.0을 대상으로 업데이트하려면 얼마나 많은 작업이 필요한가요?
몇 가지 요인에 따라 달라질 수 있습니다. 게임 업데이트를 정기적으로 출시하고 최신 Android SDK를 대상으로 하는 데 적극적인 분이라면 이미 API 26을 대상으로 할 가능성이 있으며 아니면 API 25를 API 26으로 마이그레이션하면 됩니다.


그러나 게임이 오래되고 API 26과 호환되지 않는 타사 SDK가 이 게임에 사용되는 경우에는, 이러한 외부 종속성을 업데이트하여 이러한 변경사항에 대비해야 합니다.


호환되지 않는 특정 광고 네트워크나 SDK를 사용 중인 경우에는 어떻게 해야 하나요?
먼저, 호환되지 않는 부분이 무엇인지 저희 (주> GDG Korea Android 채널을 활용해주세요) 에게 알려주세요.


둘째, 이 광고 네트워크나 SDK 개발업체의 담당자에게 연락하여 이번 변경사항과 관련하여 우려 사항이 있다고 알려주세요. 우리는 모든 사용자들의 이익을 위해 전체 Android 생태계가 이 변경사항을 수용하기를 희망합니다.


단순한 매니페스트 파일 변경사항인가요?
매니페스트 변경사항은 시작에 불과합니다. 현재 API 버전에 따라 다음과 같은 동작 변경 사항이 있을 수 있습니다. 개발자 사이트의 다음 내용을 참조하세요.


64비트 지원을 추가하라는 것은 무슨 뜻인가요?
앱이 64비트 환경에서 실행될 수 있습니다. 따라서 32비트 전용 라이브러리가 있는 분은 64비트 라이브러리도 함께 포함시키세요. 이것은 2019년 8월에 적용될 예정입니다.


내 앱이 매년마다 최신 API를 대상으로 해야 하나요?
모든 주요 Android 출시 후에는 앱이 “최근 Android API 레벨”을 대상으로 해야 합니다. 즉, 마지막 주요 Android 출시를 대상으로 합니다(예: P 출시의 경우 Oreo, Q 출시의 경우 P 등).


저는 Unity로 게임을 빌드하는데 영향이 있을까요?
네, 영향을 받을 가능성이 큽니다. 기본적으로 Unity는 시스템에 설치된 최고 레벨 SDK로 TargetSDK를 자동 설정합니다. 따라서 (Build Settings > Android > Player Settings)에서 Unity의 Android 빌드 설정을 확인하고, 현재 선택된 대상 API 레벨을 확인하는 것이 중요합니다. 최신 SDK를 설치하려면 Android Studio를 열고, “Tools > Android > SDK Manager > Android SDK > SDK Platforms”로 이동하여 Android 8.0 Oreo가 설치되었는지 확인하세요.