1) Android 10 플랫폼에서 실행되는 모든 앱
android.preference 라이브러리 지원 중단
Android 10부터 android.preference 라이브러리가 지원 중단됩니다. 개발자는 Android Jetpack의 일부인 AndroidX preference 라이브러리를 대신 사용해야 합니다. 이전 및 개발 지원용 추가 리소스는 업데이트된 설정 가이드와 함께 공개 샘플 앱 및 참조 문서를 확인하세요.
2) API 레벨 29 이상을 타겟팅하는 앱
Android 10(API 수준 29) 이상을 타겟팅하는 앱은 기본적으로 외부 저장소로 범위가 지정된 액세스 권한을 가지게 되고, 범위 지정 저장소가 부여됩니다. 이러한 앱은 외부 저장소의 앱별 디렉터리와 앱에서 만든 특정 유형의 미디어에만 액세스할 수 있게 됩니다.
새로운 저장소 정책, Scoped Storage
안드로이드 Q에서 외부 저장소를 다루는 새로운 정책, Scoped Storage가 소개되었습니다.
Q 이전의 기존 정책은 앱이 디바이스의 어떤 파일에 접근할 때 사용자에게 저장소 권한만 얻으면 되었습니다.
그럼 앱은 모든 폴더를 탐색할 수 있었고 파일의 Path를 얻어 데이터를 읽고 쓸 수 있었습니다.
하지만, Q의 Scoped Storage는 기본적으로 앱이 디바이스의 모든 파일을 탐색하지 못한다는 전제가 깔려있습니다.
공용 미디어 파일들은 READ_EXTERNAL_STORAGE 권한이 있어야 접근이 가능하고, 그 외의 파일들은 사용자에게 접근 권한을 개별로 받아야 합니다.
앱이 자유롭게 접근할 수 있는 것은 자신의 개인 앱 데이터 뿐입니다.
구글의 이런 정책은 요즘 트렌드인 보안을 향상시키기 위한 목적입니다. 사용자는 앱이 알 필요가 없는 파일들에 대한 접근 권한을 주지 않아도 되어, 개인 정보를 보호할 수 있습니다.
앱 개발자들은 바로 자신의 앱에 Scoped Storage를 적용하지 않아도 됩니다. Scoped Storage를 바로 적용할 준비가 안된 개발자들을 위해, 구글은 Q에서 이전 방식을 사용할 수 있도록 유예기간을 두었습니다.
앱이 Android 10 디바이스에서 Scoped storage 정책을 적용받지 않으려면 다음 중에 1가지 방법을 따라야 합니다.
- 안드로이드 API 28 이하를 Target SDK로 설정
- 안드로이드 API 29 이상을 Target SDK로 설정하는 경우, requestLegacyExternalStorage를 true로 설정합니다.
다음과 같이 앱의 AndroidManifest.xml에 requestLegacyExternalStorage 속성을 true로 설정하면 Scoped Storage 정책이 적용되지 않습니다.
Android 11(R)을 타겟팅하는 앱은 Scoped Storage 정책이 강제로 적용됩니다. requestLegacyExternalStorage 속성으로 이전 방식을 선택할 수 없습니다. 하지만 Android 10을 타겟팅하는 앱은 requestLegacyExternalStorage 속성으로 선택이 가능합니다.
출처:
developer.android.com/about/versions/10/behavior-changes-all?hl=ko
developer.android.com/about/versions/10/behavior-changes-10?hl=ko#execute-permission
developside.tistory.com/102
codechacha.com/ko/android-q-scoped-storage/
'안드로이드 > SDK version' 카테고리의 다른 글
Android 11 분석 (2) | 2021.05.31 |
---|---|
안드로이드 11 대응 (0) | 2021.03.25 |
안드로이드 Pie 9.0 대응 (0) | 2021.03.25 |
Android 8.0 Oreo 대응 (0) | 2021.03.24 |
안드로이드 7.0 Nougat 대응 (0) | 2021.03.24 |