2011-09-12 2 views
3

Android 2.1 (Eclair, API 레벨 7)과 호환되어야하는 애플리케이션이 있습니다. Android 2.2+ (Froyo, API 레벨 8)에서만 지원되는 매니페스트 속성을 사용하고 싶습니다. 일반적으로 내 코드 내에서 직접 호출 (즉, 리플렉션을 통하지 않음)하지 않으려합니다. ANY 레벨 8 API를 사용합니다. 우리가 조심해야 지금낮은 API 레벨에 맞춰 상위 API 레벨의 매니페스트 속성을 지원합니까?

<uses-sdk android:minSdkVersion="7"/> 

주의해야한다 :

이 문제에 대한 허용 솔루션은 이전 버전과의 호환성을 표시하기 위해 프로 요 (API 8)에 대해 컴파일하고 manfiest에서 사용-SDK 태그를 포함하는 것입니다 Froyo 관련 API 호출을 실수로 사용하지 않았는지 확인하기 위해 Eclair에 대한 광범위한 테스트 (자동화 된 테스트 및/또는 수동으로).

내 의견으로는 이것은 거의 받아 들일 수없는 해결책입니다. 필자는 리플렉션을 사용하여 애플리케이션의 기본 요구 사항보다 높은 수준의 API를 호출하는 것을 선호하며 기본 수준 이상의 매니페스트 설정 만 지원하려고합니다. 깨끗하고 간단하게 해결할 수있는 방법이 있습니까?

현재 해결 방법은 기본 API와 호환되지 않는 매니페스트 항목을 제거하고 공개 릴리스 전에 테스트 컴파일을 수행하는 것입니다.

의견을 보내 주셔서 감사합니다.

답변

0

지금 할 수있는 최선의 방법입니다.

레이아웃 파일에서 지원되지 않는/사용되지 않는 속성을 사용하는 경우에도 마찬가지입니다. 매니페스트 파일이나 다른 리소스 파일에는 조건을 넣을 수있는 방법이 없습니다.

그러나 지금부터는 대부분의 사용자가 최신 버전 (4.0 이상)으로 전환하는 것을 볼 수 있기 때문에 큰 문제는 아닙니다.