Android 17 플랫폼에는 앱에 영향을 줄 수 있는 동작 변경사항이 있습니다. targetSdkVersion과 관계없이 Android 17에서 실행되는 모든 앱에 적용되는 동작 변경사항은 다음과 같습니다. 이러한 변경사항을 적절히 지원해야 하는 경우 앱을 테스트한 후 필요에 따라 수정해야 합니다.
또한 Android 17을 타겟팅하는 앱에만 영향을 주는 동작 변경사항 목록을 검토해야 합니다.
보안
Android 17에는 기기 및 앱 보안이 다음과 같이 개선되었습니다.
usesClearTraffic 지원 중단 계획
향후 출시에서는 usesCleartextTraffic 요소를 지원 중단할 계획입니다.
암호화되지 않은 (HTTP) 연결을 만들어야 하는 앱은 네트워크 보안 구성 파일을 사용하도록 이전해야 합니다. 이 파일을 사용하면 앱이 일반 텍스트 연결을 만들어야 하는 도메인을 지정할 수 있습니다.
네트워크 보안 구성 파일은 API 수준 24 이상에서만 지원됩니다. 앱의 최소 API 수준이 24 미만인 경우 다음 두 가지를 모두 실행해야 합니다.
usesCleartextTraffic속성을true로 설정- 네트워크 구성 파일 사용
앱의 최소 API 수준이 24 이상이면 네트워크 구성 파일을 사용할 수 있으며 usesCleartextTraffic를 설정하지 않아도 됩니다.
암시적 URI 권한 부여 제한
Currently, if an app launches an intent with a URI that has the action Send,
SendMultiple, or ImageCapture, the system automatically grants the read and
write URI permissions to the target app. We plan to change this behavior in
Android 18. For this reason, we recommend that apps explicitly
grant the relevant URI permissions instead of relying on the system to grant
them.
사용자 환경 및 시스템 UI
Android 17에는 더 일관되고 직관적인 사용자 환경을 만들기 위한 다음 변경사항이 포함되어 있습니다.
회전 후 기본 IME 공개 상태 복원
Beginning with Android 17, when the device's configuration changes (for example, through rotation), and this is not handled by the app itself, the previous IME visibility is not restored.
If your app undergoes a configuration change that it does not handle, and the app needs the keyboard to be visible after the change, you must explicitly request this. You can make this request in one of the following ways:
- Set the
android:windowSoftInputModeattribute tostateAlwaysVisible. - Programmatically request the soft keyboard in your activity's
onCreate()method, or add theonConfigurationChanged()method.
미디어
Android 17에는 미디어 동작이 다음과 같이 변경되었습니다.
백그라운드 오디오 강화
Android 17부터 오디오 프레임워크는 오디오 재생, 오디오 포커스 요청, 볼륨 변경 API를 비롯한 백그라운드 오디오 상호작용에 관한 제한사항을 적용하여 이러한 변경사항이 사용자에 의해 의도적으로 시작되도록 합니다.
앱이 유효한 수명 주기에 있지 않은 동안 오디오 API를 호출하려고 하면 예외를 발생시키거나 실패 메시지를 제공하지 않고 오디오 재생 및 볼륨 변경 API가 자동으로 실패합니다. 오디오 포커스 API가 결과 코드 AUDIOFOCUS_REQUEST_FAILED로 실패합니다.
완화 전략을 비롯한 자세한 내용은 백그라운드 오디오 강화를 참고하세요.