천복만복 프로그래밍/천복만복 안드로이드

Non SDK Interface restriction

U&MeBlue 2023. 5. 26. 14:08
 

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 리스트들을 안드로이드 버전을 올려가면서 업데이트하는거라고 이해했다.

 

728x90