@hide, Android Javadoc에는 있으나 SDK에는 없는 클래스들
밥벌이2010. 5. 7. 17:47
안드로이드 Javadoc을 보다보면 SDK Reference에서는 볼 수 없는 클래스들이 보인다. 처음에는 주의를 기울이지 않고 봐서 그냥 SDK 버전이 다르겠거니 하고 있었는데, 오늘 특정 클래스가 안드로이드 소스에는 존재를 하지만 그 소스에서 빌드한 SDK의 android.jar에는 포함되지 않는 걸 보았다.
android.net.WebAddress 소스:
package android.net;
import java.util.regex.Matcher;import java.util.regex.Pattern;
/*** {@hide}** Web Address Parser** This is called WebAddress, rather than URL or URI, because it* attempts to parse the stuff that a user will actually type into a* browser address widget.** Unlike java.net.uri, this parser will not choke on URIs missing* schemes. It will only throw a ParseException if the input is* really hosed.** If given an https scheme but no port, fills in port**/
확인해 보니 SDK 쪽에 포함되지 않는 클래스들의 소스에는 @hide라는 표시가 있었는데, 관련해서 찾아보니 다음과 같은 내용을 확인할 수 있었다.
@hide has a very important meaning. It is used to mark public APIs
that are not to be exported in the SDK. This is used by the Android
team to have APIs accessible across packages without having them
available to applications. APIs marked with @hide are considered
private to the Android platform and can change at any time, you cannot
rely on them.
안드로이드 소스 내에서는 접근가능하게 하지만, 이걸 SDK로 배포하지는 않는다는 내용. 물론 다음 버전에서 어떻게 바뀔지 보장하지 않는다는 내용도 되겠다. 결국 타겟에 preload되는 어플을 개발할 경우에나 사용가능한 놈이다라고 생각하면 될 듯?
'밥벌이' 카테고리의 다른 글
리눅스에서 안드로이드 USB 디버깅 연결 설정하기 (0) | 2011.03.18 |
---|---|
DexClassLoader를 사용한 다른 패키지의 클래스 로딩 (1) | 2011.03.02 |
안드로이드 SDK 빌드 후 SD Card 문제 해결 #2 (0) | 2010.05.03 |
Linux용 SDK를 이용하여 Android Windows SDK 빌드하기 (2) | 2010.05.02 |
안드로이드 Native 단에서 GDB로 디버그하기 (4) | 2010.05.01 |