2015-01-02 3 views

답변

12

하지만 왜 v4와 v7로 나뉘어져 있는지 이해할 수 없습니까?

"v4 및 v7로 나누어지지 않습니다." 그들은 기능적인 선을 따라 나뉘어져 있습니다.

compile 'com.android.support:appcompat-v7:21.0.0' 
compile 'com.android.support:cardview-v7:21.0.0' 
compile 'com.android.support:gridlayout-v7:21.0.0' 
compile 'com.android.support:leanback-v17:21.0.0' 
compile 'com.android.support:mediarouter-v7:21.0.0' 
compile 'com.android.support:palette-v7:21.0.0' 
compile 'com.android.support:recyclerview-v7:21.0.0' 
compile 'com.android.support:support-annotations:21.0.0' 
compile 'com.android.support:support-v13:21.0.0' 
compile 'com.android.support:support-v4:21.0.0' 

다른 대체품 이들의 유일한 사람은 support-v4support-v13 같습니다과 같은 안드로이드 지원 패키지의 많은 조각이있다. support-v13에는 support-v4에있는 모든 항목과 API 레벨 13 이상을 실행하는 기기에만 관련된 몇 가지 추가 클래스가 포함되어 있습니다.

이슈 이름에있는 -vNN 표기법은 해당 라이브러리의 코드가 사용하는 Android API 수준을 알려주는 것입니다.

왜 모든 버전에 하나의 지원 라이브러리를 사용하지 않습니까?

인류 역사에 기록 된 모든 코드 라인에서 컴파일하지 않는 것과 같은 이유로 우리는 필요하지 않습니다. appcompat-v7은 예를 들어 leanback-v17의 독립 라이브러리입니다. 그들은 내 라이브러리 중 하나와 관련이 있습니다.

또는 심지어 지원되는 모든 클래스가 SDK에 제대로 있습니까?

우리는 아직 타임머신을 발명하지 않았기 때문에 경우에 따라서는 이전 버전의 Android에서 다른 클래스와 메소드를 "재연"할 수 없습니다. 예를 들어 appcompat-v7이 존재하는 이유 중 일부는 API 레벨 7로 돌아가는 기기에서 작업 막대 패턴을 사용할 수 있도록 허용하는 것입니다. 네이티브 액션 바는 API 레벨 11에서만 나타났습니다.

안드로이드 디바이스를 빌드하는 데 필요한 RAM 및 플래시 스토리지의 양을 줄이기 위해 제조업체의 OS 다운 사이즈, 특히 프레임 워크 클래스에 대한 압박감이 있습니다 . 따라서 Android TV 스타일의 경험을위한 leanback-v17과 같은 일부 항목은 어디서나 필요하지 않기 때문에 OS의 일부가 아닙니다.

또한 라이브러리에 항목을 추가하면 앱이 기본 기기와 더 독립적입니다.예를 들어 일부 개발자는 support-v4 또는 support-v13에있는 프래그먼트의 백 포트를 사용합니다 (기본 프래그먼트가 도입 된 API 레벨 11보다 오래된 디바이스에서 실행되기 때문에가 아니라 동일한 작업을 수행하는 프래그먼트 구현을 원하기 때문입니다). 모든 Android 버전. 네이티브 조각 구현은 Android OS 버전에 따라 다릅니다.

6

v4는 Android의 버전 4와 호환됩니다. v7은 v7과 호환됩니다. 안드로이드 SDK v4가 더 제한되어 있으므로, 다시 포팅하기가 더 어렵습니다. (그리고 일부는 이전까지는 포팅 할 수 없을 수도 있지만 7로 포팅하는 것이 가능할 수도 있습니다). Google은 v4가 단지 고대 (활성 장치의 1 % 미만)이기 때문에 추가 된 어려움이 가치가 없다고 결정했습니다.

실제로 v8, v11 및 v13 지원 라이브러리가있는 것보다 더 많은 버전이 있습니다. 사용하기가 덜 일반적입니다.

+1

인 v4의 경우 -v4, v7의 경우 appcompat-v7? 왜 그것을 "지원 -v7"로 지명하지 않습니까? – Ashwin

+1

업데이트 : "버전 지원 및 패키지 이름"섹션을 확인하십시오. [here] (https://developer.android.com/topic/libraries/support-library/index.html) - 지원 라이브러리 24.2.0에서 v4 및 v7을 의미합니다. API 레벨 9까지 최소 지원. – j10

+0

@jitenshah 많은 것들을 지워줍니다. –

0

v4를 지원 라이브러리V7 지원 라이브러리 모두 지원 안드로이드 버전 2.3 (API 레벨 9) 높은 이상 장치에 대한 이전 버전과의 호환성을 위해 필요합니다.

차이

V4는 응용 프로그램 구성 요소, 사용자 인터페이스 기능, 데이터 처리, 네트워크 연결 및 유틸리티와 같은 다른 사람보다 API 년대의 가장 큰 세트가 있습니다.

v7은 앱에 독립적으로 포함될 수있는 특정 기능 세트를 제공했습니다.

이 또한 V7 AppCompactV13의 SupportLbrary :

V7 AppCompact - 액션 바의 사용자 인터페이스와 디자인에 대한. v4도 필요했습니다.

는 SupportLbrary V13

- V4 지원 다시 버전 4이고 V7 다시 버전 7 지원 경우 안드로이드 버전 3.2 (API 레벨 13) 이상과 지원 단편 사용자 인터페이스 패턴

다음 이유는 지원