Google Play에서 비즈니스를 성장시키는 데 도움이 되는 무료 웹 세미나 시리즈에 참여하세요. 지금 등록하기

Google Play의 대상 API 레벨 요구사항 충족하기

APK를 업로드하는 경우 Google Play의 대상 API 레벨 요구사항을 충족해야 합니다. Google Play에서는 새로운 앱은 2019년 8월 1일부터, 앱 업데이트는 2019년 11월 1일부터 Android 9.0(API 레벨 28) 이상을 타겟팅하도록 요구할 예정입니다. 이 날짜 이전의 새로운 앱 및 앱 업데이트는 Android 8.0(API 레벨 26) 이상을 타겟팅해야 합니다.

새로운 Android 버전이 출시될 때마다 보안 및 성능이 크게 개선되며 전반적으로 Android 사용자 환경이 향상됩니다. 이 중 일부 변경사항은 targetSdkVersion 매니페스트 속성(대상 API 레벨이라고도 함)을 통해 지원을 명시적으로 선언한 앱에만 적용됩니다.

최신 API 레벨을 타겟팅하도록 앱을 구성하면 사용자가 이러한 개선사항의 혜택을 받을 수 있으며, 이전 Android 버전에서도 계속해서 앱을 실행할 수 있습니다. 최신 API 레벨을 타겟팅하면 앱에서 플랫폼의 최신 기능을 활용해 사용자 환경을 개선할 수 있습니다.

이 문서에서는 대상 API 레벨을 업데이트하여 Google Play 요구사항을 충족할 때 알아 두어야 하는 중요사항에 관해 다룹니다. 계속 진행하려면 앱의 현재 API 레벨을 클릭하세요.

참고: Gradle 파일에 매니페스트 항목이 포함되어 있는 경우 빌드 구성에 설명되어 있는 대로 앱의 Gradle 파일에서 targetSdkVersion의 현재 값을 확인하거나 변경할 수 있습니다. 또는 <uses-sdk> 요소 문서에 설명되어 있는 대로 매니페스트 파일에 있는 android:targetSdkVersion 속성을 사용할 수 있습니다.

Android 5.0(API 레벨 21) 이전

아래 버전에서 도입된 변경사항이 앱에 적용되었는지 확인하려면 각 버전별 동작 변경사항 페이지를 참조하세요.

다음 섹션의 안내를 따라 계속하세요.

Android 6.0(API 레벨 23) 이전

다음 항목은 Android 6.0 이상 버전을 타겟팅하는 앱에 적용됩니다.

  • 런타임 권한
    • 위험한 권한은 런타임에만 부여되기 때문에 UI 흐름에 이러한 권한을 부여할 여유가 확보되어야 합니다.
    • 가능한 경우 앱에서 권한 요청 거부를 처리할 준비가 되어 있어야 합니다. 예를 들어 사용자가 기기 GPS 액세스 권한 요청을 거부하면 앱에서 다른 방법으로 진행할 수 있어야 합니다.

Android 6.0(API 레벨 23)에서 도입된 변경사항의 전체 목록을 확인하려면 해당 버전의 Android를 다루는 동작 변경사항 페이지를 참조하세요.

다음 섹션의 안내를 따라 계속하세요.

Android 7.0(API 레벨 24) 이전

다음 항목은 Android 7.0 이상 버전을 타겟팅하는 앱에 적용됩니다.

  • 잠자기 및 앱 대기

    잠자기 및 앱 대기 최적화에 설명되어 있는 동작을 고려하여 설계해야 합니다. 여기에는 여러 차례의 플랫폼 출시를 통해 도입된 점진적인 변경사항이 모두 포함됩니다.

    기기가 잠자기 및 앱 대기 모드일 때, 시스템은 다음과 같이 작동합니다.

    • 네트워크 액세스를 제한합니다.
    • 알람, 동기화, 작업을 연기합니다.
    • GPS 및 Wi-Fi 검색을 제한합니다.
    • 일반적인 우선순위를 갖는 Firebase 클라우드 메시징 메시지를 제한합니다.
  • 권한 변경사항
    • 시스템에서 앱 비공개 디렉토리 액세스를 제한합니다.
    • 앱 외부에 file:// URI를 노출하면 FileUriExposedException이 트리거됩니다. 앱 외부로 파일을 공유해야 하는 개발자는 FileProvider를 구현해야 합니다.
  • 시스템에서 NDK가 아닌 라이브러리로의 링크를 금지합니다.

Android 7.0(API 레벨 24)에서 도입된 변경사항의 전체 목록을 확인하려면 해당 버전의 Android를 다루는 동작 변경사항 페이지를 참조하세요.

다음 섹션의 안내를 따라 계속하세요.

Android 8.0(API 레벨 26) 이전

다음 항목은 Android 8.0 이상 버전을 타겟팅하는 앱에 적용됩니다.

Android 8.0(API 레벨 26)에서 도입된 변경사항의 전체 목록을 확인하려면 해당 버전의 Android를 다루는 동작 변경사항 페이지를 참조하세요.

다음 섹션의 안내를 따라 계속하세요.

Android 9.0(API 레벨 28) 이전

Android 9.0(API 레벨 28)에서 도입된 변경사항의 전체 목록을 확인하려면 동작 변경사항을 참조하세요.

앱 현대화하기

앱의 대상 API 레벨을 업데이트하면서 Android의 최신 기능을 도입하여 앱을 현대화하고 사용자 환경을 개선할 방법이 있는지 생각해 보세요.

SDK 및 라이브러리 확인 및 업데이트하기

타사 SDK 종속성 항목이 API 26을 지원하는지 확인하세요. 일부 SDK 제공업체는 종속성 항목을 매니페스트에 게시하며 추가적인 조사를 요구하는 곳도 있습니다. API 26을 지원하지 않는 SDK를 사용하는 경우 우선 SDK 제공업체와 함께 문제를 해결해야 합니다.

또한 앱이나 게임의 targetSdkVersion이 비공개 Android 플랫폼 라이브러리 액세스를 제한할 수 있습니다. 자세한 내용은 플랫폼 라이브러리에 연결되는 NDK 앱을 참조하세요.

사용 중인 Android 지원 라이브러리 버전에 있을 수 있는 모든 제한사항도 확인해야 합니다. 항상 Android 지원 라이브러리의 주요 버전과 앱의 compileSdkVersion이 호환되는지 확인해야 합니다.

지원 라이브러리의 주요 버전 이하의 targetSdkVersion을 선택하는 것이 좋습니다. 최신 호환 기능 및 버그 수정을 활용하려면 호환되는 최신 지원 라이브러리로 업데이트하는 것이 좋습니다.

앱 테스트

앱의 API 레벨과 기능을 적절하게 업데이트하고 나면 몇 가지 핵심 사용 사례를 테스트해야 합니다. 다음 제안사항에 전체 내용이 포함된 것은 아니지만, 테스트 프로세스의 길잡이로 삼기에 좋습니다. 테스트에서 다음 항목을 확인하시기 바랍니다.

  • 앱이 오류나 경고 없이 API 26으로 컴파일됩니다.
  • 앱이 사용자가 권한 요청을 거부하는 경우를 대비한 전략을 갖추고 있으며 사용자에게 권한 요청 메시지를 표시합니다. 방법은 다음과 같습니다.
    • 앱의 앱 정보 화면으로 이동하여 각 권한을 사용 중지합니다.
    • 앱을 열고 비정상 종료가 발생하지 않는지 확인합니다.
    • 핵심 사용 사례 테스트를 실행하여 필수 권한이 다시 요청되는지 확인합니다.

  • 잠자기가 예상대로 동작하고 오류가 발생하지 않습니다.
    • adb를 사용하여 앱이 실행되고 있을 때 테스트 기기를 잠자기로 설정합니다.
      • Firebase 클라우드 메시징 메시지를 트리거하는 사용 사례를 테스트합니다.
      • 알람 또는 작업을 사용하는 사용 사례를 테스트합니다.
      • 백그라운드 서비스의 종속성을 제거합니다.
    • 앱을 앱 대기 모드로 설정합니다.
      • Firebase 클라우드 메시징 메시지를 트리거하는 사용 사례를 테스트합니다.
      • 알람을 사용하는 사용 사례를 테스트합니다.

  • 새로운 사진/동영상 촬영이 정상적으로 처리됩니다.
    • 앱에서 제한된 ACTION_NEW_PICTUREACTION_NEW_VIDEO 브로드캐스트를 제대로 처리하는지 확인합니다(JobScheduler 작업으로 이동).
    • 이러한 이벤트에 의존하는 주요 사용 사례가 작동하는지 확인합니다.
  • 다른 앱과의 파일 공유가 정상적으로 처리됩니다.
    • 다른 앱과 파일 데이터를 공유하는 사용 사례를 테스트합니다(동일한 개발자의 다른 앱인 경우도 포함).
    • 다른 앱에 콘텐츠가 표시되며 비정상 종료가 트리거되지 않는지 테스트합니다.

추가 정보

Google에서 월간 파트너 뉴스레터를 포함한 Android 및 Google Play의 주요 소식 및 공지사항을 보내 드릴 수 있도록 Google Play Console에서 이메일 수신에 동의해 주세요.