2013-10-25 1 views
1

일반적인 질문이라 할지라도, 이해하기 쉽도록 예제로 묻겠습니다.최신 OS에서 런타임에 코드가 실행되는 지원 라이브러리가있는 Android 앱

시나리오 : 나는 지원 라이브러리 (7)를 사용하여 작업 표시 줄 기능을 사용하고

  1. . 사용자가 Android 2.2 (API 8)가 설치된 기기에 앱을 설치하고 있습니다.
  2. 지원 라이브러리 7을 사용하고 작업 표시 줄 기능을 사용하고 있습니다. 사용자가 Android 4.3 (API 18)이 설치된 기기에 앱을 설치하고 있습니다.

런타임시 시나리오 1이 지원되는 라이브러리의 코드를 실행한다는 것은 명백합니다. 하지만 시나리오 2는 어떻게 될 것입니까? OS 코드 또는 지원 라이브러리 코드를 실행합니까?

정말 OS 코드가 실행되기를 바랍니다.

편집
(@adelphus가 쓴) 내가 곧 길이의 자바 작업 방법은 빌드시에 결정 정규화 된 이름으로 해결한다는 것을 알고있다. 따라서 지원 라이브러리 코드가 실행됩니다. 나는 지원 라이브러리를 구현하는 하나 경우에, 나는 일을했을 다음

  1. 는 OS가 전류를 가지고
  2. 경우 런타임에 OS의 버전을 확인 object/method OS 구현 (실제로이 경우 지원 라이브러리는 OS 기능의 래퍼 일뿐입니다)으로 호출합니다. 이 오래된 OS입니다 경우
  3. , 나는 나 자신

그래서,이 래퍼로서 최신 버전에 작용 않는, 또는 두 경우에 내부 구현을 사용하여 동작을 구현하는 것?

감사합니다.

+0

가능한 경우 os 코드를 사용하도록 최적화되었습니다. – danny117

+0

@ danny117이 사실을 설명하는 문서를 찾았습니까? – nheimann1

+0

예 @goBeepit dev 자신의 설명서를 읽어야합니다. – danny117

답변

1

지원 라이브러리가 실행됩니다.

Java (및 Android 앱)의 작동 방식은 메소드가 빌드시 결정된 완전한 이름으로 해결된다는 것입니다. 지원 라이브러리에 대해 App을 빌드 했으므로 실행중인 Android 버전에 관계없이 호출됩니다.

실제로 최종 사용자에게는 아무런 차이가 없어야합니다. 지원 라이브러리의 요점은 새 버전의 기능이없는 이전 버전의 Android에서도 동일한 동작을 제공하는 것입니다. 최종 결과가 동일하다면 왜 지원 라이브러리에 전화를 걸지 않겠습니까?

+0

. 나는 내가 의미 한 바를 더 잘 설명하기 위해 나의 질문을 편집했다. 질문과 같이 새 버전의 OS 용 래퍼로 구현된다고 생각하지만 확실하지 않습니다. – nheimann1

관련 문제