2012-12-28 1 views
3

나는 froyo 이후 사용할 수있는 리플렉션을 통해 함수를 호출하고 있습니다. 이 호출에 froyo가 필요하다는 것을 어떻게 표시 할 수 있습니까?SDK 버전 필요 주석

주석이 @TargetApi(Build.VERSION_CODES.FROYO)이지만이 버전이 일치하지 않을 경우 경고를 생성하기 만하면됩니다.

SDK 사이트에서 방법이 없다면 그러한 주석을 쓸 수 있습니까? 나는 그것에 익숙하지 않다.

+0

[Android bug 42194] (http://code.google.com/p/android/issues/detail?id=42194)도 참조하십시오. – rekire

답변

1

주석은 메타 데이터 일 뿐이며 실제 처리하기위한 도구가 필요합니다. 원하는 것의 역순으로 수행 할 보풀 검사가 없습니다. http://tools.android.com/tips/lint-checks에 따라 특정 API가 필요함을 나타냅니다.

API를 제공하는 경우 호출자가 특정 호출에 Froyo가 필요하다는 것을 알 수 있도록 함수의 Javadoc에 요구 사항을 문서화하는 것이 가장 좋습니다. 함수에서이 사전 조건이 만족스럽지 않거나 다른 방식으로 처리하면 예외가 발생합니다.

또 다른 옵션은 라이브러리를 만드는 경우 해당 프로젝트의 minSdk 버전을 8 이상으로 설정하는 것입니다.

사용자 지정 검사를 수행 할 자체 린트 규칙을 작성할 수도 있습니다. 린트 규칙 작성에 대한 자세한 내용은 여기 http://tools.android.com/tips/lint-custom-rules입니다. 단점은 API 사용자가 규칙을 활성화하기 위해 몇 가지 맞춤 설정을 수행해야한다는 것입니다.

+0

당신은 맞을지도 모르지만 lint는 버전 x부터 기능을 사용할 수 있다는 것을 어떻게 알 수 있습니까? – rekire

+0

당신은 보푸라기 소스 코드를 파헤쳐 야합니다. 아마 안드로이드 SDK가 어떤 식 으로든 주석을 달았을 것입니다. – botteaap

+1

보풀 소스 코드를 확인했습니다 ... Lint는이 클래스를 가지고 있습니다. https://android.googlesource.com/platform/sdk/+/tools_r21.1/lint/libs/lint_checks/src/main/java/com/android/ tools/lint/checks/API 버전을 $ ANDROID_HOME/platform-tools/api/api-versions.xml에서로드하는 ApiLookup.java – botteaap