개발/Android

[Android] 안드로이드 11 변경 사항 정리

wom-bat 2024. 10. 23. 17:26

Android 11 업데이트는 사용자 개인정보 보호, 보안, 접근성 등 다양한 영역에서 중요한 변화를 가져왔습니다. 이번 글에서는 targetSdkVersion 30을 타기팅하는 앱들에 대한 영향과 targetSdkVersion과 관계없이 안드로이드 11 OS 기기에서 실행되는 앱들에 대한 영향을 나누어서 글을 써보려 합니다.

 

targetSdkVersion을 30으로 설정하는 앱의 동작 변경 사항

1. 개인정보 보호

범위 지정 저장소(Scope Storage) 적용

  • 앱은 외부 저장소에 접근할 때 앱별 디렉터리와 앱에서 생성한 특정 미디어 파일로 접근이 제한됩니다.
  • 만약 targetSdkVersion이 30 미만이라면 requestLegacyExternalStorage 플래그를 사용해 일시적으로 이 변경 사항을 무시할 수 있습니다. 하지만 targetSdkVersion이 30 이상인 경우 이 플래그는 무시됩니다.
<manifest>
  <application android:requestLegacyExternalStorage="true">
  </application>
</manifest>

권한 자동 초기화

  • 사용자가 앱과 오랜 기간 상호작용하지 않으면 시스템이 앱의 민감한 권한을 자동으로 초기화합니다. 사용하지 않는 앱의 권한을 자동으로 초기화하여 사용자의 개인정보를 보호합니다.

백그라운드 위치 액세스

  • 앱이 백그라운드에서 위치 정보에 접근하려면 사용자를 시스템 설정으로 리디렉션해 권한을 부여하도록 변경되었습니다.

패키지 공개 상태

  • 안드로이드 11에서는 기기에 설치된 앱 목록을 쿼리 할 때 필터링됩니다. 다른 앱과 상호작용하려면 매니페스트에 <queries> 태그를 추가해 명시적으로 허용해야 합니다.
<queries>
    <package android:name="com.kakao.talk" />
</queries>

2. 보안

커스텀 토스트 메시지 차단

  • 안드로이드 11 이상에서 백그라운드에서 커스텀 뷰를 포함한 토스트 메시지가 차단됩니다. setView 메서드는 SDK 레벨 30부터 사용 중단(deprecated)되었습니다.

3. 연결

APN 데이터베이스 접근 제한

  • Android 11에서는 APN 데이터베이스에 접근하려면 권한이 필요합니다. 매니페스트에 Manifest.permission.WRITE_APN_SETTINGS를 추가해야 합니다.

4. 접근성

TTS 엔진 상호작용

  • TTS 엔진과 상호작용하는 앱은 매니페스트에 queries 태그를 추가해 명시적으로 정의해야 합니다.

5. 패키징 및 설치

서명 체계

  • targetSdkVersion이 30 이상인 경우 APK 서명 체계 V2 이상을 사용해야 합니다. 앱의 서명 상태는 다음 명령어로 확인할 수 있습니다:
java -jar [apksigner.jar] verify -v --print-certs app.apk

 


targetSdkVersion에 관계없이 Android 11에서 실행되는 모든 앱의 동작 변경 사항

1. 개인정보 보호

일회성 권한

  • 사용자는 위치, 마이크, 카메라 등 민감한 권한에 대해 일회성 권한을 부여할 수 있는 옵션을 선택할 수 있습니다.

권한 대화상자 제한

  • 특정 권한에 대해 두 번 이상 거부되면, Android 11에서는 해당 권한 요청 대화상자를 더 이상 표시하지 않습니다.

시스템 알림 창 권한 변경

  • Android 11에서는 SYSTEM_ALERT_WINDOW 권한을 자동으로 부여하거나, 사용자가 명시적으로 거부하지 않으면 MediaProjection을 통해 화면 캡처 권한을 허용합니다.

2. 다른 앱과의 상호 작용

앱이 다른 앱과 콘텐츠 URI를 공유하려면, Android 11에서 계속해서 URI에 접근할 수 있도록 인텐트 플래그를 설정해야 합니다. 이를 위해서는 FLAG_GRANT_READ_URI_PERMISSION 또는 FLAG_GRANT_WRITE_URI_PERMISSION 중 하나 이상의 플래그를 반드시 설정해야 합니다.

 


정리한 안드로이드 11의 다양한 변경 사항을 잘 이해하고, 이에 적절히 대응함으로써 앱을 최적화하여 사용자에게 더욱 쾌적한 서비스를 제공할 수 있길 바랍니다.