2012-05-17 4 views
10

Android SDK 2.3.3 용 Android 앱을 작성했지만 Android 2.2.1을 실행하는 기기에서 테스트 해달라고 요청되었습니다. 그래서 타겟을 10 대신 8로 설정했습니다. 그렇지만 java.util.concurrent.TimeUnit은 java.util.concurrent.TimeUnit의 Java 1.6/1.7 기능 세트 대신 Java 1.5 기능 세트 만 가지고있었습니다. 그래서 나는 내 Android 패키지를위한 TimeUnit의 openjdk 6 구현을 내 패키지에 넣었습니다. 모든 것이 잘 작동합니다.어떤 버전의 자바에서 코딩을 지원하는 Android SDK의 버전은 무엇입니까?

예를 들어, 공식 SDK를 사용할 때 안드로이드 2.2는 Java 1.5 키워드/구문/API, Android 2.3을 사용하여 코딩되어야한다는 차트를 알려주는 문서를 어디에서 얻을 수 있는지 알고 있습니다. 3은 Java 1.6 키워드/구문/API 등을 사용하여 코딩 할 수 있습니다 ...?

+0

Java 1.6이 Android보다 오래 되었기 때문에 Android에서 1.5를 사용하도록 강요하는 것은 이상한 것 같습니다. 아마 여기에 더 많은 일이있을 것입니다. – jpaugh

+0

openjdk는 당시 1.5 개에 불과했고 그걸로 할 일이 있습니다. openjdk 7은 2011/07/28 –

+0

duplicates까지 릴리스되지 않았습니다. http://stackoverflow.com/q/7535385/324625 및 http://stackoverflow.com/q/390482/324625 –

답변

6

안드로이드를 자바의 서브 세트로 보려고합니다. 그들은 완전히 분리되어 있습니다. 안드로이드는 자바에서 나온 것이지만, 꽤 많이 벗어 났고, 두 버전 사이에 '버전 별'상관 관계가 없다.

당신이 볼 수있는 것은 Android 설명서입니다. 모든 명령/명령/메소드/속성에 대해 오른쪽 상단에서 해당 속성에 액세스 할 수있는 API 수준을 찾을 수 있습니다.

API 수준을 클릭하면 API 수준을 Android 버전으로 변환하는 표가 포함 된 페이지로 이동합니다.

속성을 사용할 수 있는지 쉽게 알 수있는 방법은 Eclipse를 사용하고 방금 한 일을하는 것입니다. 대상 API 수준을 변경합니다. 그런 다음 사용할 수없는 메서드 나 속성을 호출하면 치명적인 오류가 발생합니다.

+1

"더 이상 상관 관계가 없습니다. 두 사람 사이에. " 그건 사실이 아니야? – keyser

+0

@Keyser Yahel의 요지는 Android 버전을 직접 확인해야하는 이유를 알아보기 위해 Android 버전을 특정 Java 버전으로 매핑하면 안됩니다. –

+0

@ Keyser : 정교하게 신경 쓰는 사람 : – Yahel

관련 문제