https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces
비 SDK 인터페이스 제한사항 | Android 개발자 | Android Developers
비 SDK 인터페이스 제한사항 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 9(API 수준 28)부터 플랫폼에서는 앱에서 사용할 수 있는 비 SDK 인터페이스가
developer.android.com
새로운 안드로이드 운영체제 버전이 나오는 경우 Target SDK 을 올릴때 영향을 줄 수 있는 부분에서
Non SDK Interface restriction 리스트 업데이트가 항상 등장했다.
이게 보일때마다 뭔지 몰라서 넘기곤 했는데, 간단하게 정리해본다.
Non SDK Interface 란 간단하게 말하면 안드로이드 공식 문서에 나와있지 않은 api 를 의미한다.
내부 소스 코드로 감춰져 있기 때문에 직접적으로 사용하지는 못하지만,
리플렉션과 같은 기법을 이용하면 간접적으로 사용할 수 있었던것 같다.
그러나 이런 Non SDK Interface 는 구글 측에서 통보 없이 임의로 수정할 수 있는 부분이기 때문에
이 api 에 의존해서 앱을 작성하는것은 권장되지 않는 방법이다.
Android 9 이상부터는 구글측에서 공식적으로 Non SDK Interface 사용을 금지하고 있다.
이런 Non SDK Interface를 앱 개발시 사용하면 런타임에 예외가 발생할 수 있다.
하지만 Android 9 이전에 Non SDK Interface 를 사용하는 앱들을 한번에 수정하는 것은 어렵기 때문에
점진적으로 사용하면 안되는 Non SDK Interface 리스트들을 늘려가는 것 같다.
이런 금지된 Non SDK Interface 리스트들을 안드로이드 버전을 올려가면서 업데이트하는거라고 이해했다.
'천복만복 프로그래밍 > 천복만복 안드로이드' 카테고리의 다른 글
인텐트 필터 매칭 동작 정리 (0) | 2025.01.02 |
---|---|
Edge to Edge (2) | 2024.10.02 |
[Android] Access media files from shared storage (1) (0) | 2023.03.04 |
현재 다크모드 상태인지 체크하는 법 (0) | 2022.09.24 |
Access app-specific files 가이드 문서 정리 (0) | 2022.09.17 |