지원 라이브러리 버전 자료실

이 페이지에서는 이전 지원 라이브러리 패키지 출시에 관한 세부정보를 제공합니다. 최신 지원 라이브러리 버전을 알아보려면 최신 지원 라이브러리 버전을 참고하세요.

버전 26.0.0 베타 2

(2017년 6월)

26.0.0-beta2는 출시 전 버전입니다. API 노출 영역은 변경될 수 있으며 지원 라이브러리의 최신 안정화 버전의 기능이나 버그 수정을 포함하는 것은 아닙니다.

중요: 지원 라이브러리는 이제 Google의 Maven 저장소를 통해 사용할 수 있습니다. SDK Manager에서 지원 저장소를 다운로드할 필요가 없습니다. 자세한 내용은 지원 라이브러리 설정을 참고하세요.

새로운 API

API의 차이

버그 수정

  • Android O SDK 드롭에서 TextViews의 기울임꼴 손실
  • MediaBrowserServiceCompat에 연결할 때 null 포인터 예외
  • TextInputLayout이 onProvideAutofillStructure()에서 힌트를 설정해야 함
  • O에서 TextView 자동 크기 조절을 사용할 때 스택 오버플로 발생

버전 26.0.0 베타 1

(2017년 5월)

26.0.0-beta1은 출시 전 버전입니다. API 노출 영역은 변경될 수 있으며 지원 라이브러리의 최신 안정화 버전의 기능이나 버그 수정을 포함하는 것은 아닙니다.

중요: 지원 라이브러리는 이제 Google의 Maven 저장소를 통해 사용할 수 있습니다. SDK Manager에서 지원 저장소를 다운로드할 필요가 없습니다. 자세한 내용은 지원 라이브러리 설정을 참고하세요.

중요 변경사항

  • FragmentActivity.setSupportMediaController()FragmentActivity.getSupportMediaController()가 삭제되었습니다. 새로운 정적 MediaControllerCompat.setMediaController()MediaControllerCompat.getMediaController() 메서드를 호출하세요.
  • 이제 BottomNavigationView는 이미 선택된 항목이 선택되었을 때 onNavigationItemSelected()를 호출하지 않고 onNavigationItemReselected()를 호출합니다.
  • findViewById() 메서드의 모든 인스턴스는 이제 View 대신 <T extends View> T를 반환합니다. 이 변경사항에는 다음과 같은 영향이 있습니다.
    • 이로 인해 이제 기존 코드의 반환 유형이 모호할 수도 있습니다. 예를 들어 findViewById() 호출의 결과를 가져오는 someMethod(View)someMethod(TextView)가 모두 있는 경우입니다.
    • 자바 8 소스 언어를 사용하는 경우 반환 유형에 제약이 없는 경우 View로 명시적으로 변환해야 합니다 (예: assertNotNull(findViewById(...)).someViewMethod())).
    • 최종이 아닌 findViewById() 메서드 (예: Activity.findViewById())를 재정의하면 반환 유형을 업데이트해야 합니다.

새로운 API

  • FragmentManagerFragment에는 상태 손실 없이 트랜잭션이 허용되는지 여부를 쿼리할 수 있는 isStateSaved() 메서드가 있습니다. 특히 트랜잭션을 실행하기 전에 onClick() 이벤트를 처리할 때 확인하는 데 유용합니다.
  • AnimatedVectorDrawableCompat에서 경로 모션이 지원됩니다. 경로 모션을 사용하면 한 객체 애니메이터가 한 경로를 기준으로 두 속성을 동시에 변경할 수 있습니다. 경로는 애니메이터의 XML에서 android:pathData로 지정됩니다.
  • 물리학 기반 애니메이션:
    • 새로운 FlingAnimation을 통해 초기 속도로 애니메이션하고 매끄럽게 속도를 줄일 수 있습니다.
    • DynamicAnimation의 서브클래스는 모든 객체의 맞춤 속성에 애니메이션을 적용하는 기능을 지원합니다.
    • SpringAnimationFlingAnimation는 이제 View 또는 Object를 연결하지 않고도 부동 값을 애니메이션으로 표시할 수 있습니다.

    자세한 내용은 스프링 애니메이션플링 애니메이션 미리보기 페이지를 참고하세요.

  • XML의 글꼴 지원:
    • ResourcesCompat.getFont를 사용하면 TextView.setTypeface()와 함께 사용할 수 있는 글꼴 리소스(글꼴 모음 XML 포함)를 로드할 수 있습니다.
    • AppCompat을 사용할 때 TextView는 android:fontFamily XML 속성을 통해 글꼴 리소스 또는 글꼴 모음 XML을 지정할 수 있도록 지원합니다.
    • XML 글꼴 모음을 사용하여 스타일과 두께가 다양한 글꼴 모음을 만듭니다. (이 작업을 위해 지원 라이브러리 클래스를 사용하는 경우 app: 속성과 android: 속성도 사용합니다.)
  • 다운로드 가능한 글꼴:
    • 새로운 FontsContractCompat를 사용하면 앱에서 글꼴을 번들로 묶는 대신 글꼴 제공자에게 글꼴을 요청할 수 있습니다.
    • 글꼴은 XML로 요청하고 레이아웃에서 사용할 수도 있습니다.
  • 그림 이모티콘 호환성 라이브러리:
    • EmojiCompat는 지정된 CharSequence를 처리하고 EmojiSpans를 추가할 수 있습니다.
    • EmojiTextView 및 기타 위젯: 그림 이모티콘을 표시합니다.
    • FontRequestEmojiCompatConfig: 글꼴 제공업체에서 그림 이모티콘 글꼴을 요청합니다.
  • TextView 자동 크기 조절:
    • TextViewCompat의 새로운 메서드와 XML 속성을 통해 TextView의 자동 크기 조절을 제어합니다.
  • 탐색 지원이 포함된 Leanback 재생 컨트롤:
    • 새로운 PlaybackTransportRowPresenter는 SeekBar가 있는 재생 컨트롤을 렌더링합니다.
    • 새로운 PlaybackTransportControlGlue PlaybackTransportRowPresenter와 함께 작동하며 탐색을 지원합니다.
    • 새로운 기본 클래스 PlaybackSeekDataProvider를 사용하면 앱이 PlaybackTransportControlGlue에 탐색 썸네일을 제공할 수 있습니다.
  • Preferences Data Store:
    • 이제 PreferenceDataStore를 사용하면 PreferencePreferenceManager의 새 메서드로 설정된 자체 환경설정 저장소를 구현할 수 있습니다.

알려진 문제

  • Google Play 서비스와 다운로드 가능한 글꼴 및 그림 이모티콘 호환성 통합은 현재 Google Play 서비스 베타 프로그램을 통해 제공되는 Google Play 서비스 v11 이상에서만 작동합니다.

버그 수정

  • MediaBrowserCompat.search() API가 작동하지 않음 (AOSP 문제 262170)
  • ViewCompat.postInvalidateOnAnimation()에서 예외 발생 (AOSP 문제 80146)
  • 소멸된 활동의 프래그먼트와 관련해 onActivityCreated()가 호출됨
  • 미리 가져오기 중에 RecyclerView.isComputingLayout()가 true를 반환해야 함
  • Fade 전환이 중단되고 취소되면 View는 애니메이션을 처음부터 시작합니다. (Android 프레임워크에서 포팅된 수정사항)
  • Transition.FadeView의 초기 알파를 무시합니다.(AOSP 문제 221820)

버전 26.0.0 알파 1

(2017년 3월)

26.0.0-alpha1은 출시 전 버전입니다. API 노출 영역은 변경될 수 있으며 지원 라이브러리의 최신 안정화 버전의 기능이나 버그 수정을 포함하는 것은 아닙니다.

중요 변경사항

참고: 최소 SDK 버전이 14로 상향되었습니다. 따라서 API 14 미만 호환성을 위해서만 존재했던 많은 API가 지원 중단되었습니다. 이러한 API의 클라이언트는 지원 중단된 각 API의 참조 페이지에 설명된 대로 동등한 프레임워크로 이전해야 합니다.

  • support-percent 모듈이 지원 중단되었습니다. 이 모듈의 클라이언트는 SDK Manager에서 별도의 아티팩트로 제공되는 새로운 ConstraintLayout 위젯으로 이전해야 합니다.
  • support-fragment 모듈이 더 이상 support-media-compat 모듈 종속 항목을 갖지 않습니다.

새로운 API

O 미리보기에 추가된 플랫폼 API의 하위 호환성 지원을 제공하기 위해 새로운 클래스, 메서드 및 상수가 다수 추가되었습니다.

  • IME_FLAG_NO_PERSONALIZED_LEARNING: IME는 브라우저와 같이 비공개 모드가 있는 앱의 'no learning' 플래그를 수신 대기할 수 있습니다. 이 기능을 사용하면 IME가 앱이 비공개 모드인지 파악할 수 있으므로 앱이 비공개 모드일 때 학습 또는 적응형 기능을 사용 중지할 수 있습니다.

25.2.0과 26.0.0-alpha1 사이의 API 변경사항 전체 목록은 지원 라이브러리 API 차이점 보고서를 참고하세요.

버그 수정

  • 경우에 따라 간단한 AutoTransition 애니메이션이 뷰 '점프'에 의해 중단될 수 있습니다. (AOSP 문제 221816)

버전 25.4.0

(2017년 6월)

중요: 지원 라이브러리는 이제 Google의 Maven 저장소를 통해 사용할 수 있습니다. SDK Manager에서 지원 저장소를 다운로드할 필요가 없습니다. 자세한 내용은 지원 라이브러리 설정을 참고하세요.

중요 변경사항

  • FragmentManager 상태 변경 중에는 executePendingTransactions(), commitNow(), popBackStackImmediate() 및 이와 유사한 트랜잭션 호출이 허용되지 않습니다. 트랜잭션의 재진입 실행은 안전하지 않으며 이제 FragmentManager는 상태가 변경되는 동안 재진입 실행을 시행합니다.
  • 이 지원 라이브러리 출시와 동시에 멀티덱스 버전 1.0.2도 출시됩니다. 이 버전에는 다음과 같은 중요 변경사항이 포함되어 있습니다.
    • 계측 APK의 멀티덱싱을 허용합니다.
    • MultiDexTestRunner를 지원 중단합니다. 대신 AndroidJUnitRunner를 사용해야 합니다.
    • 앱의 잘못된 보관 파일 추출 관리로부터 더 효과적으로 보호합니다.
    • 임시 파일 폐기를 초래할 수 있는 버그를 수정합니다.
    • 동시 프로세스에서 더 빠르게 설치할 수 있습니다.
    • API 19 및 20의 설치 버그를 수정합니다.

새로운 API 및 수정된 API

AnimatedVectorDrawableCompat에서 경로 모핑 및 경로 보간이 지원됩니다. 경로 모핑을 사용하면 복잡하고 매력적인 시각적 효과를 제공하기 위해 한 경로 (android:valueFrom로 지정됨)에서 다른 경로 (android:valueTo로 지정됨)로 도형을 변경할 수 있습니다. 경로 보간기를 사용하면 AnimatedVectorDrawableCompat의 보간기를 경로 (보간기의 XML에서 android:pathData로 지정)로 지정할 수 있습니다.

API의 차이

해결된 문제

  • MediaBrowserServiceCompat에 연결할 때 null 포인터 예외
  • MediaBrowserCompat.search() API가 작동하지 않음 (AOSP 문제 262170)
  • 25.3.0에서 BrowseFragment onItemClicked 콜백이 중단됨
  • 25.3.1의 VerticalGridView에서 위아래로 스크롤하는 동안 NullPointerException 발생
  • SimpleArrayMap.allocArrays()의 ClassCastException

버전 25.3.1

(2017년 3월)

해결된 문제

  • SwitchCompat에는 최소 SDK 버전 14 이상이 필요합니다. (AOSP 문제 251302)
  • 물리학 기반 애니메이션 updateListener이 첫 번째 프레임을 건너뜁니다.
  • BottomNavigationView 라벨 애니메이션이 중단됩니다.

버전 25.3.0

(2017년 3월)

중요 변경사항

Gradle에서 빌드할 때 지원 라이브러리 버전 메타데이터가 자동으로 AndroidManifest.xml에 추가되므로 공개 빌드의 버전 추적이 간소화됩니다. 예:

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

지원 중단

이 릴리스에서는 여러 메서드와 클래스가 지원 중단되었습니다. 이러한 지원 중단된 API는 향후 버전에서 삭제될 예정이며 개발자는 다른 API로 이전해야 합니다. 특정 API에서 이전하는 방법에 대한 자세한 내용은 해당 문서를 참조하세요.

ExifInterface
부울 메서드 getLatLong(float[])는 지원 중단되었습니다. 대신 인수를 사용하지 않고 double[]를 반환하는 새로운 메서드 getLatLong()를 사용하세요.
mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence)가 지원 중단되었습니다. 대신 새 메서드 setErrorMessage(int, CharSequence)를 사용하세요. 이 메서드에는 오류 코드 및 설명(선택사항)이 전달됩니다.
EXTRA_SUGGESTION_KEYWORDS가 지원 중단되었습니다. 대신 MediaBrowserCompat 검색 기능을 사용하세요.
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount()의 이름이 LinearLayoutManager.getInitialPrefetchItemCount()로 변경되었습니다. 이전 이름은 계속 지원되지만 이후 버전에서 삭제될 예정입니다.

새로운 API 및 수정된 API

appcompat-v7
새로운 메서드 ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean)를 사용하면 탐색 창 전환 아이콘의 애니메이션을 간단하게 사용 중지할 수 있습니다.
customtabs
메시지 채널 지원을 추가했습니다. 자세한 내용은 CustomTabsService.requestPostMessageChannel()CustomTabsService.postMessage() 참조를 확인하세요.
dynamic-animation
사용자 입력에 동적으로 반응하는 애니메이션을 빌드하기 위한 API 집합을 제공하는 새로운 물리학 기반 애니메이션 라이브러리입니다.
leanback-v17
시차 배경 지원을 추가했습니다. 자세한 내용은 Parallax 참조를 확인하세요.
TV 인터페이스의 시간을 선택하는 TimePicker 위젯을 추가했습니다.
mediacompat
검색 기능을 추가했습니다. 자세한 내용은 MediaBrowserCompat.search()MediaBrowserServiceCompat.onSearch() 참조를 확인하세요.
셔플 및 반복 모드 지원을 추가했습니다. 자세한 내용은 MediaSessionCompat.setRepeatMode()setShuffleModeEnabled() 참조를 확인하세요.

해결된 문제

버전 25.2.0

(2017년 2월)

중요 변경사항

해결된 문제

  • 이 출시에서는 A2DP 기기 및 미디어 라우팅 API를 사용할 경우 기기가 응답하지 않고 재부팅해야 하는 심각한 mediarouter 문제가 수정되었습니다.
  • 이제 FragmentManager.FragmentLifecycleCallbacks 클래스가 정적입니다.

해결된 문제

  • 화면 미러링으로 슬라이드 프레젠테이션을 표시하면 기기의 Wi-Fi 연결이 해제됩니다.
  • 미디어 버튼이 setMediaButtonReceiver()로 직접 등록되지 않은 미디어 앱을 제대로 처리하지 않음
  • 문자열 리소스의 VectorDrawable 오류 (AOSP 문제 232407)
  • 텍스트가 XML로 설정된 경우 TextInputLayout가 힌트와 텍스트를 오버레이함 (AOSP 문제 230171)
  • MediaControllerCompat의 메모리 누수 (AOSP 문제 231441)
  • 비정상 종료 RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
  • 뷰 홀더를 재활용할 때 RecyclerView가 비정상 종료됩니다 (AOSP 문제 225762).
  • WearableExtender 내부의 작업에 대해 getAllowGeneratedReplies()가 false를 잘못 반환합니다.

버전 25.1.1

(2017년 1월)

중요: 지원 라이브러리 버전 25.1.1 및 25.1.0의 android.support.v7.media.MediaRouter 클래스에는 알려진 버그가 있습니다. 앱에서 v7 MediaRouter를 사용하는 경우 지원 라이브러리 버전 25.2.0으로 업데이트해야 이 버그가 해결됩니다.

중요 변경사항

  • 이제 트랜잭션 내에서 그리고 트랜잭션 간에 프래그먼트 트랜잭션을 최적화할 수 있습니다. 프래그먼트 트랜잭션 작업을 최적화하면 취소하는 작업을 제거할 수 있습니다. 예를 들어 두 트랜잭션, 즉 프래그먼트 A를 추가하는 트랜잭션과 프래그먼트 A를 프래그먼트 B로 대체하는 두 번째 트랜잭션이 함께 실행된다고 가정해 보겠습니다. 이 경우 첫 번째 작업이 취소되고 프래그먼트 B만 추가될 수 있습니다. 즉, 프래그먼트 A는 생성/폐기 수명 주기를 거치지 않을 수 있습니다.

    이 최적화의 부작용은 프래그먼트의 상태가 예상 순서를 벗어나서 변경될 수 있다는 것입니다. 예를 들어 한 트랜잭션이 프래그먼트 A를 추가하고 두 번째 트랜잭션이 프래그먼트 B를 추가한 후 세 번째 트랜잭션이 프래그먼트 A를 삭제한다고 가정해 보겠습니다. 최적화하지 않으면 프래그먼트 B는 프래그먼트가 생성되는 동안 프래그먼트 A도 존재할 것으로 예상할 수 있습니다. 프래그먼트 B가 추가된 후에 프래그먼트 A가 삭제되기 때문입니다. 최적화의 경우 프래그먼트 B는 프래그먼트 B가 생성되는 동안 프래그먼트 A가 존재하는지 확인할 수 없습니다. 최적화에 의해 프래그먼트 A의 생성 및 폐기가 삭제될 수 있기 때문입니다.

    이러한 최적화는 기본적으로 사용 중지되어 있습니다. 최적화를 사용 설정하려면 FragmentTransaction.setAllowOptimization(true)를 호출합니다.

  • 프래그먼트는 이제 Fragment.postponeEnterTransition()Fragment.startPostponedEnterTransition()를 사용하여 준비될 때까지 전환과 애니메이션을 연기할 수 있습니다. 이 API는 활동 전환에 사용되는 Activity.postponeEnterTransition()Activity.startPostponedEnterTransition()과 비슷합니다.

해결된 문제

버전 25.1.0

(2016년 12월)

중요: 지원 라이브러리 버전 25.1.1 및 25.1.0의 android.support.v7.media.MediaRouter 클래스에는 알려진 버그가 있습니다. 앱에서 v7 MediaRouter를 사용하는 경우 지원 라이브러리 버전 25.2.0으로 업데이트해야 이 버그가 해결됩니다.

중요 변경사항

  • 중첩된 RecyclerView 위젯(예: 가로 스크롤 목록의 세로 스크롤 목록)의 클라이언트는 내부 RecyclerView 위젯의 레이아웃 관리자에게 화면에 스크롤되기 전에 준비할 항목 수를 알려 상당한 성능 이점을 얻을 수 있습니다. LinearLayoutManager.setInitialPrefetchItemCount(N)를 호출합니다. 여기서 N는 내부 항목당 표시되는 뷰 수입니다. 예를 들어 내부 가로 목록에 항목 뷰가 한 번에 최소 3.5개 표시되는 경우 LinearLayoutManager.setInitialPrefetchItemCount(4)를 호출하여 성능을 개선할 수 있습니다. 이렇게 하면 외부 RecyclerView가 스크롤되는 동안 RecyclerView에서 모든 관련 뷰를 일찍 만들 수 있으므로 스크롤 중 끊김 현상이 크게 줄어듭니다.
  • FragmentActivity.setSupportMediaController()FragmentActivity.getSupportMediaController()가 지원 중단되었습니다. 새로운 정적 MediaControllerCompat.setMediaController()MediaControllerCompat.getMediaController() 메서드를 사용하세요.
  • 클라이언트가 appcompat 색조 조정 (예: appcompat:buttonTint)을 통해 위젯 색조를 지정하면 클라이언트는 필요한 모든 상태 (예: '사용 중지됨', '눌림' 등)를 제공해야 합니다. 이는 프레임워크 색조 조정을 사용할 때 위젯 색조가 지정되는 방식과 일치합니다.

새로운 API 및 수정된 API

해결된 문제

  • 비밀번호 공개 상태 전환이 접근성 테스트에 실패했습니다.
  • Appcompat이 L 이전 기기에서 state_enabled를 적용하지 않습니다.
  • 포커스 복구 메커니즘을 RecyclerView에 추가했습니다. 이는 Android TV 기기에서와 같이 DPAD 탐색을 사용할 때 support pref 프래그먼트의 손상된 포커스도 수정되었습니다.
  • Leanback: 헤더가 사용되지 않고 어댑터가 비어 있을 때 BrowseFragment가 비정상 종료됩니다.
  • Appcompat: AlertDialog의 너비가 너무 큽니다.
  • InputContentInfoCompatreleasePermission()를 호출해야 할 때 requestPermission()를 호출합니다.
  • MediaBrowserCompat이 비정상 종료됩니다.
  • CoordinatorLayout은 가시성이 GONE로 설정되어 있을 때 뷰를 측정/배치합니다.
  • API 수준 24 미만에서 AnimatedVectorDrawableCompat의 색조를 적용할 수 없음
  • Leanback 라이브러리가 잘못된 린트 오류를 트리거함
  • 팔레트 라이브러리로 인해 모든 API 수준에서 테스트 실패가 발생함
  • RecyclerView가 Leanback에서 테스트에 실패했습니다.
  • 뷰 홀더를 재활용할 때 RecyclerView가 비정상 종료됩니다 (AOSP 문제 225762).
  • 백스택의 프래그먼트와 관련해 Fragment.onDestroy()가 호출되지 않음
  • 접었을 때 CollapsingToolbarLayout 스크림이 그려지지 않음
  • CoordinatorLayout.offsetChildByInset()에서 IllegalArgumentException 발생
  • RecyclerView 항목에 애니메이션을 적용하면 내부 RecyclerView가 분리되고 향후 미리 가져오기가 방지됩니다.
  • 첨부된 RecyclerView 항목은 중첩 또는 미리 가져올 수 없습니다.
  • 중첩된 RecyclerView 항목의 데이터 미리 가져오기가 첫 번째 레이아웃에서 삭제됨
  • 드래그 이벤트 두 개가 같은 위치에 도착하면 RecyclerView 미리 가져오기가 실패함
  • RenderThread가 렌더링되는 동안 RecyclerView는 추측으로 레이아웃해야 함
  • 드로어블로 변환된 야간 구성 색상 리소스가 리소스 캐시에서 제대로 삭제되지 않을 때도 있음
  • FloatingActionButton: 프로그래매틱 방식으로 BackgroundTintList 설정이 제대로 작동하지 않음 (AOSP 문제 227428)
  • TextInputLayout: Typeface가 ErrorView에 대해 설정되지 않습니다 (AOSP 문제 227803).
  • TextInputLayout가 API 23 미만에서는 항상 밝은 오류 색상으로 대체됩니다 (AOSP 문제 221992).
  • 포인터가 떠날 때 FloatingActionButton가 눌림으로 표시됨

공개 버그 수정의 전체 목록은 AOSP Issue Tracker에서 확인할 수 있습니다.

지원 중단

이 릴리스에서는 여러 메서드와 클래스가 지원 중단되었습니다. 이러한 지원 중단된 API는 향후 버전에서 삭제될 예정이며 개발자는 다른 API로 이전해야 합니다. 특정 API에서 이전하는 방법에 대한 자세한 내용은 해당 문서를 참조하세요.

버전 25.0.1

(2016년 11월)

해결된 문제

  • 개발자가 지정한 종료 드로어블을 불필요하게 덮어쓰지 않도록 TextInputLayout 비밀번호 전환이 이제 기본적으로 사용 중지됩니다. passwordToggleEnabled XML 속성을 통해 수동으로 사용 설정할 수도 있습니다.
  • 이제 BottomNavigationView 항목이 Material 사양과 일치하도록 한 줄로 표시됩니다.
  • 레이아웃 관리자가 null이면 미리 가져오기 중에 RecyclerView가 비정상 종료됩니다.
  • 이제 BottomNavigationView 고도가 올바르게 설정됩니다. (AOSP 문제 226182)
  • 프로그래매틱 방식으로 메뉴 항목을 추가할 때 BottomNavigationView가 비정상 종료됩니다. (AOSP 문제 225731)
  • TextInputLayout 왼쪽/오른쪽 복합 드로어블을 수정합니다. (AOSP 문제 225836)
  • 뷰 홀더를 재활용할 때 RecyclerView가 비정상 종료됩니다. (AOSP 문제 225762)
  • Leanback: 화면 분할 뷰에서 TalkBack에서 'null'이라는 단어를 자주 언급합니다.
  • RecyclerView: Android 스튜디오의 렌더링 문제입니다. (AOSP 문제 225753)
  • onNavigationItemSelected()가 false를 반환한 후에도 BottomNavigationView에 메뉴 항목이 여전히 선택된 상태로 표시됩니다. (AOSP 문제 225898)
  • ForwardingListener에서 NoSuchMethodError가 발생합니다. (AOSP 문제 225647)
  • TextInputEditText가 IME 추출 모드에서 힌트를 표시하지 않습니다. (AOSP 문제 221880)

공개 버그 수정의 전체 목록은 AOSP Issue Tracker에서 확인할 수 있습니다.

버전 25.0.0

(2016년 10월)

중요 변경사항

  • ContextCompat 생성자를 보호 조치했습니다. 이 클래스는 공개적으로 인스턴스화하면 안 되지만 최신 API 수준을 타겟팅하는 지원 라이브러리를 통해 확장될 수 있습니다.
  • ActivityCompat 생성자를 보호 조치했습니다. 이 클래스는 공개적으로 인스턴스화하면 안 되지만 최신 API 수준을 타겟팅하는 지원 라이브러리를 통해 확장될 수 있습니다.
  • getReferrer(Activity)가 정적으로 변경되었습니다.
  • android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)를 삭제했습니다. 이 메서드의 모든 클라이언트 구현은 삭제되어야 합니다.
  • android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)를 삭제했습니다. 더 적절한 이름의 메서드인 fromMediaSession()로 대체하여 사용해야 합니다.
  • android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)가 삭제되었습니다. 더 적절한 이름의 메서드인 MediaSessionCompat.QueueItem#fromQueueItem로 대체하여 사용해야 합니다.
  • android.support.v7.widget.Space를 삭제했습니다. android.support.v4.widget.Space로 대체하여 사용해야 합니다.

새로운 API

  • android.support.design.widget.BottomNavigationView 클래스는 Material Design 사양의 하단 탐색 패턴을 구현합니다.
  • 새로운 android.support.v13.view.inputmethod 패키지에는 API 수준 13 이후에 도입된 android.view.inputmethod.InputConnection 기능에 액세스하기 위한 클래스가 포함되어 있습니다.
  • android.v7.widget.RecyclerView.DividerItemDecoration 클래스는 항목 간의 세로 또는 가로 구분선의 기본 구현을 제공합니다.
  • android.support.v7.app.NotificationCompat, DecoratedCustomViewStyleDecoratedMediaCustomViewStyle에서 새로 데코레이트된 스타일, 미러 클래스가 플랫폼 API 24에 추가되었습니다.

해결된 문제

공개 버그 수정의 전체 목록은 AOSP Issue Tracker에서 확인할 수 있습니다.

버전 24.2.1

2016년 9월

해결된 문제:

공개 버그 수정의 전체 목록은 AOSP Issue Tracker에서 확인할 수 있습니다.

버전 24.2.0

2016년 8월

릴리스 24.2.0에 포함된 변경사항은 다음과 같습니다.

참고: 버전 24.2.0에서는 Android 2.2 (API 수준 8) 이하 지원 기능이 삭제되었습니다. 이러한 시스템 버전을 제공하기 위해서만 존재하는 클래스와 메서드는 이제 지원 중단된 것으로 표시되며 더 이상 사용해서는 안 됩니다. 이러한 지원 중단된 클래스와 메서드는 향후 버전에서 삭제될 수 있습니다.

v4 지원 라이브러리 분할

이 릴리스에서는 v4 지원 라이브러리가 여러 개의 작은 모듈로 분할되었습니다.

support-compat
새로운 프레임워크 API용 호환성 래퍼를 제공합니다(예: Context.getDrawable()View.performAccessibilityAction()).
support-core-utils
여러 유틸리티 클래스를 제공합니다(예: AsyncTaskLoaderPermissionChecker).
support-core-ui
다양한 UI 관련 구성요소를 구현합니다(예: ViewPager, NestedScrollView, ExploreByTouchHelper).
support-media-compat
미디어 프레임워크의 부분(예: MediaBrowserMediaSession)을 백포트합니다.
support-fragment
프래그먼트 프레임워크를 백포팅합니다. 이 모듈에는 support-compat, support-core-utils, support-core-uisupport-media-compat에 관한 종속 항목이 있습니다.

이전 버전과의 호환성을 위해 Gradle 스크립트에 support-v4를 나열하면 APK에 이러한 모듈이 모두 포함됩니다. 그러나 APK 크기를 줄이려면 앱에 필요한 특정 모듈만 나열하는 것이 좋습니다.

API 업데이트

동작 변경사항

  • appcompat 라이브러리의 주간/야간 기능을 사용하는 경우 이제 (시간으로 인해 또는 AppCompatDelegate.setLocalNightMode() 호출로 인해) 주간/야간 모드가 변경될 때마다 시스템에서 자동으로 활동을 다시 생성합니다.
  • 이제 상태 표시줄이 반투명하면 Snackbar가 탐색 메뉴 뒤에 그려집니다.

MediaRouter 라이브러리

이제 블루투스 기기가 미디어 경로로 나열되지 않습니다. 블루투스 기기로 오디오를 라우팅하는 작업은 이제 Android 시스템 수준에서만 제어됩니다.

지원 중단

지원 중단된 클래스와 메서드는 이후 릴리스에서 삭제됩니다. 가능한 한 빨리 다른 API로 이전해야 합니다.

  • 다음 클래스의 여러 메서드는 API 8 이하에서만 필요하며 더 이상 사용해서는 안 됩니다. 대신 프레임워크 구현을 사용하세요.
    • android.support.v4.view.KeyEventCompat: KeyEvent로 대체
    • android.support.v4.view.MotionEventCompat: MotionEvent 사용
    • android.support.v4.view.ViewCompat: View 사용
    • android.support.v4.view.ViewConfigurationCompat: ViewConfiguration 사용
  • AccessibilityServiceInfoCompat.getDescription()를 지원 중단하고 올바르게 현지화된 설명을 반환하는 AccessibilityServiceInfoCompat.loadDescription()로 대체했습니다.
  • ActivityCompat 클래스를 직접 인스턴스화하면 안 됩니다. 비정적 getReferrer(Activity) 메서드는 향후 버전에서 정적으로 변경될 예정입니다.
  • CoordinatorLayout.Behavior.isDirty()가 지원 중단되었으며 더 이상 CoordinatorLayout에서 호출되지 않습니다. 이 메서드 호출뿐만 아니라 모든 구현도 삭제해야 합니다.
  • MediaSessionCompat.obtain()가 지원 중단되었으며 더 적절한 이름의 메서드인 fromMediaSession()로 대체되었습니다.
  • MediaSessionCompat.QueueItem.obtain()가 지원 중단되었으며 더 적절한 이름의 메서드인 fromQueueItem()로 대체되었습니다.
  • 일부 추상 클래스가 지원 중단되었으며 상응하는 프레임워크 클래스를 더 밀접하게 반영하는 인터페이스로 대체되었습니다.
  • CustomTabsSession.setToolbarItem()가 지원 중단되었으며 RemoteViews 기반 setSecondaryToolbarViews()로 대체되었습니다.

버그 수정

릴리스 24.2.0에서 해결된 알려진 문제는 다음과 같습니다.

  • 첫 번째 측정 패스 전에 setRefreshing(true)가 호출될 때 SwipeRefreshLayout 표시기가 표시되도록 합니다(AOSP 문제 77712).
  • 페이지를 변경할 때 TabLayout가 깜박이지 않도록 합니다. (AOSP 문제 180454)
  • API 수준 11 이하에서 SavedState를 역마샬링할 때 ClassNotFoundException을 피합니다. (AOSP 문제 196430)

공개 버그 수정의 전체 목록은 AOSP Issue Tracker에서 확인할 수 있습니다.

버전 24.1.1

2016년 7월

해결된 문제:

  • 24.1.0 버전에서 지원 라이브러리 간에 공유되는 리소스 ID에 영향을 미쳤던 문제가 수정되었습니다. 이 문제로 인해 리소스가 포함된 지원 라이브러리 (예: design 및 appcompat)에 의존하는 앱에서 리소스 ID 불일치로 인한 문제가 발생했습니다.

버전 24.1.0

2016년 7월

v4 지원 라이브러리의 변경사항:

해결된 문제:

  • TabLayout.setCustomView(null)로 인해 NullPointerException이 발생함(AOSP 문제 214753)
  • TabLayout이 맞춤 탭을 잘못 강조 표시합니다 (AOSP 문제 214316).
  • AppCompatTextHelper가 잘못 정렬된 속성 배열을 사용합니다 (AOSP 문제 214366).
  • 맞춤 ContextWrapper를 사용할 때 드로어블 컨테이너 XML에서 VectorDrawable을 참조할 수 없음 (AOSP 문제 214055)
  • ViewDragHelper.saveLastMotion()에서 ArrayIndexOutOfBoundsException이 발생함(AOSP 문제 212945)
  • setState(STATE_EXPANDED)를 사용할 때 BottomSheetBehavior가 이전 콘텐츠 높이로 확장됩니다(AOSP 문제 213660).
  • CollapsingToolbarLayout이 상단 또는 하단 여백이 있는 고정 가능한 하위 요소를 처리하지 않음 (AOSP 문제 213001)
  • Leanback 탐색 제목이 RTL 정렬을 지원하지 않음 (AOSP 문제 213461)
  • 상속된 주석이 누락되어 PagerTabStrip이 사라짐 (AOSP 문제 213359)
  • 부울을 사용하여 조건부 플래그를 설정할 때 데이터 결합에서 NullPointerException이 발생함 (AOSP 문제 191841)
  • CoordinatorLayout이 setFitsSystemWindows()에 응답하지 않음(AOSP 문제 212720)
  • 초기 상태를 설정할 때 BottomSheetBehavior가 비정상 종료됩니다 (AOSP 문제 203114).
  • 페이지 색인이 큰 값인 경우 ViewPager가 페이지를 건너뜁니다.(AOSP 문제 211734)
  • BottomSheetBehavior가 동적 레이아웃에서 작동하지 않음 (AOSP 문제 205226)

버전 24.0.0

2016년 6월

v4 지원 라이브러리의 변경사항:
  • 동기 커밋용 Fragment.commitNow()를 추가했습니다.
  • 다자간 대화용 NotificationCompat.MessagingStyle 추가됨
  • NotificationManagerCompat.areNotificationsEnabled()getImportance()가 추가되었습니다.
  • MediaSessionCompat가 이제 MediaSession의 기능을 미러링하고 더 이상 setMediaButtonReceiver()를 자동으로 호출하지 않습니다.

참고: 버전 24.0.0의 MediaBrowserServiceCompat만 API 24 이상의 향후 Android 버전과 호환됩니다. 이전 버전을 사용하는 경우 이 버전으로 업데이트하여 호환성을 보장하세요.

v7 appcompat 라이브러리의 변경사항:
  • XML에서 테마 ColorStateList 객체를 참조할 수 있는 지원을 추가했습니다.
디자인 지원 라이브러리의 변경사항:
v17 Leanback 라이브러리의 변경사항:
  • 첫 실행 환영 및 설정 흐름을 제공하는 OnboardingFragment를 추가했습니다.
맞춤 탭의 변경사항:
  • 보조 툴바에 RemoteViews 계층 구조를 제공하기 위한 지원이 추가되었습니다.
  • 한 줄 워밍업을 위해 CustomTabsClient.connectAndInitialize()를 추가했습니다.

버전 23.4.0

2016년 5월

v4 지원 라이브러리의 변경사항:
  • 프래그먼트가 잘못된 순서로 추가되는 문제를 해결했습니다. (문제 206901)
  • 앱 바가 화면 밖으로 스크롤된 후 그려지지 않는 문제가 해결되었습니다. (문제 178037)
v7 appcompat 라이브러리의 변경사항:
디자인 지원 라이브러리의 변경사항:
벡터 드로어블 라이브러리의 변경사항:

버전 23.3.0

2016년 4월

v4 지원 라이브러리의 변경사항:
  • 이전에 사용자가 앱을 실행한 방법을 추적할 수 있도록 AppLaunchChecker를 추가했습니다. hasStartedFromLauncher()를 사용하면 사용자가 이전에 홈 화면에서 앱을 실행했는지 또는 다른 방법으로만 시작했는지 (예: 특정 웹 URL 보기) 알 수 있습니다.
  • MediaBrowserServiceCompat.mConnections에서 메모리 누수가 해결되었습니다. (문제 205220)
  • 페이지를 넘길 때 ViewPager에서 페이지 여백을 고려하지 않는 문제가 해결되었습니다. (문제 203816)
  • 이제 Fragment.onRequestPermissionsResult()가 하위 프래그먼트로 전달됩니다.
v7 appcompat 라이브러리의 변경사항:
v7 mediarouter 라이브러리의 변경사항:
v7 환경설정 라이브러리의 변경사항:
v7 recyclerview 라이브러리의 변경사항:
디자인 지원 라이브러리의 변경사항:

버전 23.2.1

2016년 3월

v4 지원 라이브러리의 변경사항:
v7 appcompat 라이브러리의 변경사항:
  • appcompat 라이브러리를 사용하는 개발자가 VectorDrawable 및 관련 빌드 플래그를 사용하지 않아도 되도록 벡터 애셋 종속 항목을 되돌렸습니다.
  • 야간 모드와 API 레벨 23의 호환성 문제를 해결했습니다. (문제 201910)
  • SwitchCompat과 API 레벨 7의 호환성 문제를 해결했습니다. (문제 201942)
  • 리소스 객체의 구성 값을 전파하는 문제가 해결되었습니다. 문제 201928
  • API 수준 21 이하에서 android.support.v7.app.NotificationCompat.MediaStyle 취소 버튼이 표시되지 않는 호환성 문제가 해결되었습니다. {문제 202156)
  • API 레벨 21 이하에서 AppCompatSpinner의 호환성 장애를 해결했습니다. {문제 202246)
  • app:textAllCaps = "false" 스타일이 작동하지 않는 문제가 해결되었습니다. (문제 202117)
  • SearchView를 복원할 때 발생하는 비정상 종료 문제를 해결했습니다. (문제 201836)
  • AppCompat를 사용하여 드로어블 리소스의 색조를 조정할 때 발생하는 메모리 누수를 수정했습니다. (문제 202379)
  • API 수준 11 이하에서 KeyEvent의 문제가 해결되었습니다. (문제 202939)
v7 cardview 라이브러리의 변경사항:
v7 recyclerview 라이브러리의 변경사항:
  • 다양한 measure-spec 메서드와 관련된 버그를 수정했습니다. (문제 201856)
  • 레이아웃 또는 스크롤을 계산하는 동안 RecyclerView에서 어댑터 변경을 허용하지 않는 잠금 기간이 감소했습니다. (문제 202046)
  • 뷰 외부의 항목에 관해 notifyItemChanged()를 호출할 때 발생하는 비정상 종료 문제를 해결했습니다. (문제 202136)
  • RecyclerView.LayoutManager가 동일한 측정 패스에서 뷰를 추가하고 삭제할 때 발생하는 비정상 종료 문제가 수정되었습니다. (문제 193958)
v7 mediarouter 라이브러리의 변경사항:
v17 Leanback 라이브러리의 변경사항:
  • GridLayout.onAddFocusables()에서 잘못된 항목을 선택하는 문제를 해결했습니다.
  • 작업이 축소된 후 GuidedStepFragment 작업이 사라지는 문제가 해결되었습니다.
디자인 지원 라이브러리의 변경사항:
  • 탭 풀링으로 인해 발생하는 TabLayout 비정상 종료 문제가 해결되었습니다. (문제 201827)
  • NavigationView에서 잘못된 색상을 선택하는 버그가 수정되었습니다. (문제 201951)
  • setBackgroundTintList()가 더 이상 배경 색상을 변경할 수 없는 버그가 수정되었습니다. (문제 201873)
  • AppBarLayoutandroid:fitsSystemWindows = “true”와 함께 사용할 때 뷰 밖으로 완전히 스크롤하지 않는 문제를 해결했습니다. (문제 201822)
  • BottomSheetDialog가 짧은 콘텐츠 뷰를 올바르게 표시하지 않는 문제를 수정했습니다. (문제 201793)
  • 내부 콘텐츠가 변경될 때 BottomSheetDialogFragment가 산발적으로 이동하는 문제를 수정했습니다. (문제 202125)
  • TextInputLayout 카운터 링크의 비정상 종료 문제를 수정했습니다.
  • TextInputLayout.getCounterMaxLength()가 저장된 상태를 복원할 때 발생하는 비정상 종료 문제를 해결했습니다. (문제 202375)
  • CoordinatorLayout가 아닌 뷰의 저장된 상태를 사용하여 CoordinatorLayout를 복원할 때 발생하는 ClassCastException을 수정했습니다.
VectorDrawableCompat에 대한 변경 사항:
  • android:tintMode의 잘못된 변수를 읽는 버그를 수정했습니다. (문제 201907)

버전 23.2.0

2016년 2월

v4 지원 라이브러리의 변경사항:
  • MediaBrowser를 지원하도록 MediaBrowserCompat을, MediaBrowserService를 지원하도록 MediaBrowserServiceCompat을 추가했습니다. 이는 미디어 앱의 백그라운드 서비스를 UI 구성요소와 연결하고 API 수준 21 이상 없이 Android Auto 및 Android Wear와 통합할 때 유용합니다.
  • 이제 시스템에서 중첩된 FragmentActivityonActivityResult()를 호출합니다.
v7 AppCompat 라이브러리의 변경사항:
  • API 수준 14 이상에 야간 모드 기능을 추가했습니다. 시간 또는 앱별 설정에 따라 머티리얼 라이트 테마와 머티리얼 어두운 테마 간에 전환합니다.
    • 주간 및 야간 테마는 다음 위치에서 찾을 수 있습니다. <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode(): 다음 상수 중 하나를 전달하여 앱의 기본 모드를 설정합니다.
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode(): 로컬 앱 구성요소의 야간 모드 설정을 재정의합니다.
    • AppCompatDelegate.getDefaultNightMode(): 기본 야간 모드를 반환합니다.
v7 mediarouter 라이브러리의 변경사항:
디자인 지원 라이브러리의 변경사항:
  • 하단 시트 지원을 추가했습니다. 상호작용 플러그인 BottomSheetBehavior를 사용하면 CoordinatorLayout의 하위 뷰가 하단 시트 역할을 할 수 있습니다. 기본 클래스인 BottomSheetCallback는 하단 시트 이벤트를 모니터링하는 콜백을 제공합니다.
CustomTabs 지원 라이브러리의 변경사항:
  • 이제 Chrome 맞춤 탭에서 앱이 기존 상단 작업 버튼 외에도 작업 버튼이 있는 하단 표시줄을 포함할 수 있습니다.
  • CustomTabsIntent.Builder.addToolBarItem(): 맞춤 탭에 작업 버튼을 추가합니다. 여러 버튼을 추가하기 위해 사용할 수 있습니다.
  • CustomTabsSession.setToolBarItem(): 툴바 항목의 시각적 요소를 업데이트합니다. 이 메서드는 유효한 ID가 제공되고 브라우저 세션이 포그라운드에 있는 경우에만 성공합니다.
VectorDrawable 지원 라이브러리를 추가했습니다.
  • 추가된 클래스:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • API 수준 7 이상에서 실행되는 앱에 VectorDrawable 애셋 지원 기능이 추가되었습니다. AnimatedVectorDrawable 애셋은 API 수준 11 이상에서도 지원됩니다. 벡터 애셋은 이미지 애셋보다 훨씬 작을 수 있으며 여러 기기 화면을 지원하는 데 필요한 애셋의 양을 줄여 앱 크기를 줄이는 데 도움이 됩니다.
  • 이 라이브러리는 이제 v7 AppCompat 라이브러리의 종속 항목이므로 개발자와 AppCompat 이 쉽게 벡터 드로어블을 사용할 수 있습니다. ImageButton 또는 ImageView 내에서 VectorDrawableCompat를 사용하려면 app:srcCompat XML 속성이나 setImageResource() 메서드를 사용합니다.
  • API 수준 20 이하에서 속성 ID를 계속 참조하려면 다음 appt 플래그를 build,gradle 파일에 추가합니다.
    • Gradle용 Android 플러그인 1.5.0 이하를 사용하여 빌드하는 경우 build.gradle 파일에 다음을 추가합니다.
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
      
    • Gradle용 Android 플러그인 2.0.0 이상을 사용하여 빌드하는 경우 build.gradle 파일에 다음을 추가합니다.
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
v17 Leanback 라이브러리의 변경사항:
  • 결정 또는 일련의 결정을 사용자에게 안내하는 구성요소인 GuidedStepFragment에 새로운 기능을 추가했습니다.
    • GuidedAction에 버튼 작업을 추가했습니다.
      • GuidedStepFragment.setButtonActions(): 사용자가 작업 뷰에서 선택할 수 있는 GuidedAction 버튼 목록을 설정합니다.
    • 이제 설명 필드를 편집할 수 있습니다.
      • GuidedAction.Builder.descriptionEditable(): true를 전달할 때 작업의 설명을 수정할 수 있도록 설정합니다.
      • GuidedAction.getEditDescription(): 수정 가능한 설명을 CharSequence로 반환합니다.
    • 하위 액션의 드롭다운 목록을 추가했습니다.
      • GuidedAction.setSubActions(): GuidedAction 목록을 하위 작업의 드롭다운 메뉴로 설정합니다.
  • DatePicker 기능을 위한 GuidedDatePickerAction 위젯을 추가했습니다.
    • 날짜는 연도, 월, 일 열을 사용하여 선택되며 맞춤설정 가능한 범위가 있습니다.
    • GuidedDatePickerAction.Builder: GuidedDatePickerAction 객체의 빌더 클래스입니다.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): 적절한 3자리 String(예: “YMD” 또는 “MDY”)을 전달하여 원하는 날짜 형식을 설정합니다. 또는 datePickerFormat XML 속성을 사용합니다.
v7 RecyclerView 라이브러리의 변경사항:
  • 이제 RecyclerViewAutoMeasure라는 선택 기능이 있습니다. 이 기능을 사용하면 RecyclerView.LayoutManager에서 쉽게 콘텐츠를 래핑하거나 RecyclerView의 상위 요소가 제공하는 다양한 측정 사양을 처리할 수 있습니다. RecyclerView의 기존 애니메이션 기능을 모두 지원합니다.
    • 맞춤 RecyclerView.LayoutManager가 있는 경우 setAutoMeasureEnabled(true)를 호출하여 새 AutoMeasure API 사용을 시작하세요. 내장된 모든 RecyclerView.LayoutManager 객체는 기본적으로 자동 측정을 사용 설정합니다.
    • RecyclerView.LayoutManager가 더 이상 스크롤 방향의 MATCH_PARENT와 같은 일부 RecyclerView.LayoutParams 설정을 무시하지 않습니다.

      참고: 이렇게 해제된 제한은 레이아웃에서 예기치 않은 동작을 유발할 수 있습니다. 올바른 레이아웃 매개변수를 지정해야 합니다.

  • 페이로드 정보로 RecyclerView.ViewHolder를 업데이트할 때 이제 DefaultItemAnimator가 변경 애니메이션을 사용 중지합니다.
  • 이제 ItemTouchHelper 이탈 속도를 수정하여 스와이프 민감도를 제어할 수 있습니다. 스와이프를 더 쉽게 하거나 더 어렵게 만들려면 getSwipeEscapeVelocity(float defaultValue)를 재정의하고 defaultValue를 수정합니다.

버전 23.1.1

2015년 11월

v7 recyclerview 라이브러리의 변경사항:
  • ItemTouchHelper 유틸리티 클래스에서 제공하는 스와이프하여 닫기 작업을 실행한 다음 항목을 추가할 때 발생하는 비정상 종료 문제를 해결했습니다. (문제 190500)
v7 환경설정 라이브러리의 변경사항:
  • ProGuard 사용 관련 문제를 해결했습니다. (문제 183261)
v17 Leanback 지원 라이브러리의 변경사항:
  • 이 라이브러리의 여러 내부 문제를 해결했습니다.
디자인 지원 라이브러리의 변경사항:
  • NavigationView 클래스에 getHeaderView 메서드를 추가했습니다.
  • Android 4.0 (API 수준 15) 이하를 실행하는 기기에서 FloatingActionButton 객체의 배경이 투명한 문제가 해결되었습니다. (문제 183315)

버전 23.1.0

2015년 10월

v4 지원 라이브러리의 변경사항:
  • NestedScrollView 위젯에 OnScrollChangedListener 인터페이스 지원을 추가했습니다. 이 API를 사용하면 스크롤 X 또는 Y 위치가 변경될 때 콜백을 수신할 수 있습니다.
  • 수신된 재생 컨트롤을 MediaSessionCompat 클래스를 관리하는 서비스에 전달하는 MediaButtonReceiver 클래스를 추가했습니다. MediaSessionCompat 클래스에는 매니페스트에서 미디어 버튼 수신기를 자동으로 찾을 수 있는 생성자가 있습니다. 미디어 버튼 수신기는 하드웨어나 블루투스 컨트롤에서 재생 컨트롤을 처리하는 핵심 부분입니다.
v7 appcompat 라이브러리의 변경사항:
  • 머티리얼 디자인 Seekbar 위젯과 ImageButton 위젯을 추가했습니다.
  • 색조 기능을 지원하도록 ImageView 위젯을 업데이트했습니다.
  • SwitchCompat 위젯의 디자인과 분위기를 업데이트했습니다.
v7 mediarouter 라이브러리의 변경사항:
  • 다음 기능을 MediaRouteChooserDialog 클래스에 추가했습니다.
    • 미디어 경로 제공자를 탐색하는 동안 로드 중 페이지를 표시합니다.
    • 기기 식별이 용이하도록 기기 유형 아이콘을 포함합니다.
    • 현재 앱에서 사용 빈도에 따라 경로를 정렬합니다.
    • 가로 모드를 지원합니다.
  • 다음 기능을 MediaRouteControllerDialog 클래스에 추가했습니다.
    • 화면 전송을 인식하고 적절한 설명을 제공합니다.
    • 다양한 앨범 아트 크기와 가로 세로 비율을 지원하며 비동기적으로 아트를 로드합니다.
    • 앱의 기본 색상을 기반으로 자동으로 콘텐츠 색상을 선택합니다.
    • 기기의 사용 가능한 화면 공간에 따라 대화상자 레이아웃을 조정합니다.
    • 가로 모드를 지원합니다.
v7 palette 라이브러리의 변경사항:
  • Bitmap 객체의 특정 영역에서 색상을 추출할 수 있도록 setRegion() 메서드를 추가했습니다.
v7 recyclerview 라이브러리의 변경사항:
  • 더 나은 맞춤설정을 위해 ItemAnimator 클래스에 개선된 애니메이션 API를 추가했습니다.
    • 변경 애니메이션에서 항목 콘텐츠 애니메이션을 사용 설정하는 ViewHolder 객체의 두 사본을 더 이상 적용하지 않습니다. 또한 ItemAnimator 객체는 동일한 ViewHolder 객체를 재사용할지 아니면 새 객체를 만들지 결정합니다.
    • 새로운 정보 기록 API를 사용하면 ItemAnimator 클래스는 유연하게 레이아웃 수명 주기의 올바른 지점에서 데이터를 수집할 수 있습니다. 이 정보는 나중에 animate 콜백에 전달됩니다.
  • 이 API 변경사항이 이전 버전과 호환되지 않으므로 간편한 전환 계획을 제공했습니다.
    • 이전에 ItemAnimator 클래스를 확장한 경우 기본 클래스를 SimpleItemAnimator로 변경할 수 있고 코드가 이전과 같이 작동합니다. SimpleItemAnimator 클래스는 새 API를 래핑하여 이전 API를 제공합니다.
    • ItemAnimator 클래스에서 일부 메서드를 삭제했습니다. 다음 코드는 더 이상 컴파일되지 않습니다.
    • Kotlin

      recyclerView.itemAnimator.supportsChangeAnimations = false
      

      Java

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
      

      위 코드를 다음으로 바꿀 수 있습니다.

      Kotlin

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false
      

      Java

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
      
v7, v14, v17 환경설정 지원 라이브러리의 변경사항:
  • EditText 대화상자 제어용 API를 삭제했습니다.
v17 Leanback 지원 라이브러리의 변경사항:
  • 지원 라이브러리용 GuidedStepFragment 클래스 버전이 추가되고(android.support.v4.app.Fragment 확장) 애니메이션 및 전환이 개선되었습니다.
  • 기존 콘텐츠 위에 배치할 수 있도록 GuidedStepFragment 클래스를 업데이트했습니다.
  • 다양한 유형의 검색 완성에 주석을 추가하는 기능이 SearchFragment 클래스에 추가되었습니다.
  • VerticalGridFragment 클래스에 지그재그형 슬라이드 전환 지원을 추가했습니다.
디자인 지원 라이브러리의 변경사항:
  • TextInputLayout 위젯에 문자 수 계산 지원을 추가했습니다.
  • SCROLL_FLAG_SNAP 상수를 추가하여 AppBarLayout 클래스에 가장자리 맞추기 지원을 추가했습니다. 스크롤이 끝날 때 뷰가 부분적으로만 표시되면 뷰가 맞춰지고 가장 가까운 가장자리로 스크롤됩니다.
  • app:actionLayout 속성이나 MenuItemCompat.setActionView() 메서드를 사용하여 NavigationView 클래스에 맞춤 뷰 지원을 추가했습니다.
맞춤 탭 지원 라이브러리의 변경사항:
  • CustomTabsIntent 클래스에 enableUrlBarHiding() 메서드를 추가했습니다. 이를 통해 클라이언트는 아래로 스크롤할 때 URL 표시줄을 자동으로 숨겨야 하는지 여부를 맞춤설정할 수 있습니다.
  • CustomTabsSession 클래스에 setActionButton() 메서드를 추가했습니다. 이를 통해 클라이언트는 이미 실행된 맞춤 탭에서 맞춤 작업 버튼의 아이콘을 변경할 수 있습니다.
  • CustomTabsCallback 클래스의 onNavigationEvent 메서드에 관한 새 이벤트로 TAB_SHOWNTAB_HIDDEN 상수가 추가되었습니다.

버전 23.0.1

2015년 9월

v7v14 환경설정 지원 라이브러리의 변경사항:
  • 머티리얼 디자인 레이아웃과 스타일 파일을 추가했습니다. (문제 183376)
v7 appcompat 라이브러리의 변경사항:
  • 하드웨어 레이어 사용을 Android 4.1 (API 수준 16) 이상으로 제한하여 Fragment 클래스의 비정상 종료 문제를 해결했습니다. (문제 183896)
  • setSupportActionBar() 메서드를 사용하여 활동에서 Toolbar 클래스가 ActionBar 역할을 하도록 설정할 때 하드웨어 버튼이 작동하지 않는 문제를 해결했습니다. (문제 183334)
  • 더 이상 Windows feature must be requested before adding content 오류가 발생하지 않도록 AppCompatDialogFragment 클래스가 업데이트되었습니다. (문제 183186)
디자인 지원 라이브러리의 변경사항:
  • AppBarLayout 클래스가 수정되어 이제 회전 후 올바르게 그려집니다. (문제 183109)
  • TabLayout 클래스를 수정하여 이제 사용자가 스와이프한 후 클릭할 때 올바르게 동작합니다. (문제 183123)
맞춤 탭 지원 라이브러리의 변경사항:

버전 23

2015년 8월

새 지원 라이브러리 추가:

지원 라이브러리 변경사항의 전체 목록은 지원 라이브러리 API 차이점 보고서를 참고하세요.

버전 22.2.1

2015년 7월

디자인 지원 라이브러리의 변경사항:
  • 애니메이션을 프로그래매틱 방식으로 트리거하도록 FloatingActionButton 클래스에 hide()show() 메서드를 추가했습니다.
  • 스낵바가 닫히거나 다른 스낵바가 표시될 때까지 스낵바를 표시하도록 Snackbar 클래스에 LENGTH_INDEFINITE 상수를 추가했습니다. 또한 setActionTextColor(int)setActionTextColor(ColorStateList) 메서드를 추가했습니다.
  • 현재 선택된 탭을 검색할 수 있도록 TabLayout 클래스에 getSelectedTabPosition() 메서드를 추가했습니다.
  • 메서드 체이닝을 위해 android.support.v7.app.NotificationCompat.MediaStyle 클래스에 완전 유동 API를 제공했습니다.
  • 항목을 일괄 삽입할 수 있도록 RecyclerView에 편의 메서드를 추가했습니다.

지원 라이브러리 변경사항의 전체 목록은 지원 라이브러리 API 차이점 보고서를 참고하세요.

버전 22.2.0

2015년 5월

디자인 지원 라이브러리 추가:
  • EditText 힌트와 오류 텍스트를 플로팅 라벨로 표시하도록 TextInputLayout를 추가했습니다.
  • 인터페이스에서 기본 작업을 플로팅 작업 버튼으로 구현하도록 FloatingActionButton를 추가하여 기본 크기 또는 소형 크기를 지원합니다.
  • 애니메이션 스낵바에서 선택적 작업과 함께 가벼운 피드백을 제공하도록 Snackbar를 추가했습니다.
  • ViewPager와의 간편한 통합뿐만 아니라 고정 및 스크롤 가능한 을 구현하도록 TabLayout를 추가했습니다.
  • 메뉴 리소스를 통해 메뉴 항목을 확장하는 기능을 포함하여 탐색 창 콘텐츠를 구현하도록 NavigationView를 추가했습니다.
  • 동위 뷰 간의 종속 항목을 빌드하고 CoordinatorLayout.Behavior를 통해 구성요소 간의 쉬운 스크롤 반응을 허용하는 데 사용되는 범용 레이아웃인 CoordinatorLayout를 추가했습니다. 많은 디자인 라이브러리 구성요소는 CoordinatorLayout의 하위 요소여야 합니다.
  • 화면 밖으로 스크롤하거나, 아래쪽 스크롤에 반응하여 보이거나, 화면 안팎으로 스크롤하기 전에 접거나 해제하여 스크롤 이벤트에 반응하도록 Toolbar 및 다른 뷰 (예: TabLayout)의 컨테이너인 AppBarLayout를 추가했습니다.
  • Toolbar가 접히는 방식을 제어하도록 CollapsingToolbarLayout를 추가했습니다. 접는 동안 화면 상단에 구성요소를 고정하거나, ImageView와 같은 구성요소의 시차 스크롤을 도입하거나, 뷰가 부분적으로 접힐 때 콘텐츠 스크림 색상을 추가하는 방법으로 툴바를 접을 수 있습니다.
v4 지원 라이브러리의 변경사항:
v7 appcompat 라이브러리의 변경사항:

지원 라이브러리 변경사항의 전체 목록은 지원 라이브러리 API 차이점 보고서를 참고하세요.

버전 22.1.0

2015년 4월

주석 라이브러리의 변경사항:
  • 향상된 코드 검사를 지원하는 주석 라이브러리를 추가했습니다. 주석은 변수, 매개변수 및 반환 값에 추가하여 메서드 반환 값, 전달된 매개변수, 로컬 변수 및 필드를 검사하는 메타데이터 태그로 추가됩니다.
v4 지원 라이브러리의 변경사항:
v7 appcompat 라이브러리의 변경사항:
v17 leanback 라이브러리의 변경사항:
v7 recyclerview 라이브러리의 변경사항:
  • 항목을 목록 순서로 표시하고 목록의 변경사항에 관한 알림을 제공하는 SortedList 클래스를 추가했습니다.
  • 정렬된 목록을 RecyclerView.Adapter 클래스에 바인딩할 수 있는 SortedListAdapterCallback 클래스를 추가했습니다.
v8 renderscript 라이브러리의 변경사항:

버전 22

2015년 3월

v4 지원 라이브러리의 변경사항:
v7 appcompat 라이브러리의 변경사항:
v17 leanback 라이브러리의 변경사항:
  • 맞춤설정된 재활용 풀 크기를 허용하도록 getRecycledPoolSize()setRecycledPoolSize() 메서드를 추가했습니다.
  • 제목 아이콘의 래핑된 콘텐츠를 지원하도록 레이아웃 너비 설정에 WRAP_CONTENT 속성을 추가했습니다.
  • 전환 업데이트를 개선하기 위해 XML에 R.transition를 정의했습니다.
  • '오른쪽에서 왼쪽' 레이아웃을 위한 지원을 사용 설정했습니다.
  • 미디어 재생 및 일시중지 키 이벤트 지원을 PlaybackOverlayFragment 클래스에 추가했습니다.
  • BrowseFragment 클래스와 DetailsFragment 클래스에 Enter/Return 전환을 추가했습니다.
  • 객체의 어댑터 배열에서 항목을 교체하는 replace() 메서드를 추가했습니다.
v7 mediarouter 라이브러리의 변경사항:
v7 recyclerview 라이브러리의 변경사항:

버전 21.0.3

2014년 12월

v4 지원 라이브러리의 변경사항:

버전 21.0.2

2014년 11월

v4 지원 라이브러리의 변경사항:
v7 appcompat 라이브러리의 변경사항:
  • 새 팝업 메뉴를 지원하는 PopupMenu 생성자를 추가했습니다.
  • Toolbar 클래스에 접기 아이콘 설명 지원을 추가했습니다.
  • commitIcon 표시를 지원하도록 SearchView 위젯을 업데이트했습니다.
  • Toolbar 클래스에서 buttonGravity 속성을 삭제했습니다.
v7 cardview 라이브러리의 변경사항:
v7 recyclerview 라이브러리의 변경사항:
v17 leanback 라이브러리의 변경사항:
  • V4 코드 프래그먼트 생성 지원을 추가했습니다.
  • CardView에서 보조 텍스트 색상을 변경했습니다.

버전 21.0.1

2014년 11월

Android 5.0 미만에서 멀티덱스 파일 지원을 위해 여러 Dalvik Executable (DEX) 파일을 지원하도록 멀티덱스 지원 라이브러리를 추가했습니다.

버전 21

2014년 10월

v4 지원 라이브러리의 변경사항:
  • Android 5.0 (API 수준 21)을 실행하는 기기의 Fragment 전환 지원이 추가되었습니다. 전환이 Android 4.4 이하를 실행하는 기기에는 영향을 미치지 않습니다.
  • 문서 트리를 사용하는 동안 File에서 쉽게 전환할 수 있도록 DocumentFile를 추가했습니다. 그러나 이 클래스는 Android 4.4 (API 수준 19)에 추가된 플랫폼의 DocumentsContract API에 비해 더 많은 처리 오버헤드가 필요합니다. 따라서 Android 4.4 이상에서 실행할 때는 DocumentsContract 사용으로 전환해야 합니다.
v7 appcompat 라이브러리의 변경사항:
  • 머티리얼 디자인 사용자 인터페이스 지원을 추가했습니다.
  • 앱 레이아웃 내에서 사용할 ActionBar의 기능을 일반화하는 Toolbar를 추가했습니다.
  • 메뉴에서 화살표로 이동하는 애니메이션이 포함된 ActionBarDrawerToggle를 업데이트했습니다.
  • Android 5.0 이전 기기에서 실행할 때 테마 속성을 통해 색조를 조정할 수 있도록 일반 사용자 인터페이스 위젯을 업데이트했습니다.
  • Android 4.0 (API 수준 14)에 추가된 Switch 위젯의 백포트인 SwitchCompat가 추가되었습니다.
새로운 v7 cardview 라이브러리:
  • 데이터 항목 표시를 위한 머티리얼 디자인 호환 구현을 제공하는 CardView 위젯이 추가되었습니다.
새로운 v7 recyclerview 라이브러리:
  • RecyclerView 위젯이 추가되었습니다. 이 위젯은 대규모 데이터 세트를 제한적으로 볼 수 있는 유연한 목록 보기를 제공합니다.
새로운 v7 팔레트 라이브러리:
  • 이미지에서 눈에 띄는 색상을 추출할 수 있는 Palette 클래스를 추가했습니다.
새로운 v17 leanback 라이브러리:

버전 20

2014년 7월

v4 지원 라이브러리의 변경사항:

버전 19.1.0

2014년 3월

v4 지원 라이브러리의 변경사항:
  • 사용자가 세로 스와이프 동작으로 뷰의 콘텐츠를 새로고침할 수 있는 SwipeRefreshLayout 클래스를 추가했습니다.
  • 탐색 창과 관련된 접근성 문제를 해결했습니다.
v7 appcompat 라이브러리의 변경사항:
  • 작업 모음의 배경 문제를 해결했습니다.

버전 19.0.1

2013년 12월

v4 지원 라이브러리의 변경사항:
v7 mediarouter 라이브러리의 변경사항:
v8 renderscript 라이브러리의 변경사항:
  • RenderScript 썽킹 레이어의 오류 전파를 추가했습니다.

버전 19

2013년 10월

v4 지원 라이브러리의 변경사항:
v7 mediarouter 라이브러리의 변경사항:
  • 미디어 재생 대기열, HTTP 헤더 값 및 미디어 재생 시간 설정에 관한 지원을 추가했습니다.
  • 미디어 라우터를 사용하여 미디어 재생 세션을 명시적으로 관리하기 위한 명시적인 세션 시작, 가져오기, 종료 작업이 추가되었습니다.

버전 18

2013년 7월

v4 지원 라이브러리의 변경사항:
  • 사용자 인터페이스
    • 오른쪽에서 왼쪽 및 왼쪽에서 오른쪽 형식의 텍스트를 결합하는 텍스트 문자열을 처리하도록 BidiFormatter를 추가했습니다.
    • 초기 레이아웃 처리에서 페이저의 측정 너비가 0인 경우를 더 잘 처리하도록 ViewPager를 수정했습니다.
    • 프로젝트 코드를 수정하는 동안 측정 예외가 발생하지 않도록 DrawerLayoutSlidingPaneLayout가 수정되었습니다.
  • 접근성
  • 미디어
    • 재생, 일시중지, 건너뛰기, 기타 미디어 작업과 같은 미디어 전송 컨트롤을 관리하는 TransportMediator 도우미 클래스를 추가했습니다.
    • 하나 이상의 기기 디스플레이에 관한 디스플레이 출력을 관리하도록 DisplayManagerCompat를 추가했습니다.
  • 기타 변경사항
    • 핸드오프가 완료되기 전에 기기가 절전 모드로 돌아가지 않도록 하면서 기기 wakeup 이벤트를 감지하고 작업을 Service에 전달하는 일반적인 패턴을 구현하는 WakefulBroadcastReceiver 도우미 클래스를 추가했습니다.
    • 이후에 취소되는 데이터 변경사항의 백그라운드 업데이트를 처리하기 위해 새로운 API 두 개(commitContentChanged()rollbackContentChanged())가 AsyncTaskLoader에 추가되었습니다.
새로운 v7 appcompat 라이브러리:
  • Android 2.1 (API 수준 7) 이상에서 작업 모음 사용자 인터페이스 디자인 패턴을 구현할 수 있도록 ActionBar를 추가했습니다. 이 클래스를 사용하려면 새 ActionBarActivity 클래스를 확장하여 활동을 구현해야 합니다.
새로운 v7 mediarouter 라이브러리:

Google Cast 개발자 프리뷰 지원을 제공하는 새로운 mediarouter 라이브러리를 추가했습니다. v7 mediarouter 라이브러리 API는 현재 기기에서 외부 화면, 스피커 및 기타 대상 기기로 미디어 채널 및 스트림의 라우팅을 제어하는 수단을 제공하며 Android 2.1(API 수준 7)과 호환됩니다. 자세한 내용은 V7 mediarouter 라이브러리를 참고하세요.

지원 라이브러리 r18에 도입된 v7 mediarouter 라이브러리 API는 지원 라이브러리의 이후 버전에서 변경될 수 있습니다. 현재는 Google Cast 개발자 미리보기와 연결해서만 라이브러리를 사용하는 것이 좋습니다.

버전 13

2013년 5월

v4 지원 라이브러리의 변경사항:
새로운 v7 gridlayout 라이브러리:
  • GridLayout를 추가하여 GridLayout 레이아웃 객체를 지원합니다.
  • GridLayout 레이아웃 객체 내에 빈 영역을 만드는 데 사용할 수 있는 android.support.v7.widget.Space가 추가되었습니다.

버전 12

2013년 2월

v4 지원 라이브러리의 변경사항:
  • ViewPager의 상호작용 동작을 향상했습니다.
  • ViewPager에서 잘못된 페이지를 선택하게 하는 버그가 수정되었습니다.
  • ViewPager 레이아웃 도중의 removeView() 메서드 사용을 해결합니다.
  • 뒤로 버튼을 사용하여 닫을 때 검색 텍스트가 지워지지 않는 SearchViewCompat 문제를 해결했습니다. 이 수정사항은 호스트 API 수준 14 이상에만 적용됩니다.

버전 11

2012년 11월

v4 지원 라이브러리의 변경사항:
  • 사용자 인터페이스
    • 중첩된 Fragment 클래스를 위한 지원을 추가했습니다.
    • FragmentManager 디버깅 개선사항을 추가했습니다.
    • 프래그먼트와 탭 상호작용으로 인해 ListView 상태 손실이 발생할 수 있는 FragmentTabHost의 문제가 해결되었습니다.
    • FragmentStatePagerAdapter에서 사용자에게 표시되는 힌트 관련 문제가 해결되었습니다.
    • 애플리케이션이 스크롤을 위한 맞춤 전환 동작을 제공할 수 있도록 ViewPagerPageTransformer 인터페이스를 추가했습니다.
    • 현재 버전의 TaskStackBuilder에 새로운 기능 및 수정사항이 추가되었습니다.
    • 현재 사용 중인 PagerAdapter를 올바르게 추적하도록 PagerTitleStrip가 수정되었습니다.
    • PagerTitleStrip에서 디스플레이 깜박임, 위치 지정 및 텍스트 잘림 문제를 수정했습니다.
    • 밑줄을 그릴 때 패딩이 올바르게 적용되도록 PagerTabStrip를 수정했습니다.
  • 접근성
  • GestureDetectorCompat 동작 지원을 추가했습니다.
  • 새로운 AtomicFile 클래스를 사용하여 파일에서 원자적 작업을 실행하기 위한 지원이 추가되었습니다.
  • IntentCompat에 전체 make 메서드 세트 지원이 추가되었습니다.
  • LruCache 유틸리티 클래스에 trimToSize() 메서드를 추가했습니다.
  • CONNECTIVITY_ACTION 브로드캐스트에서 NetworkInfo를 가져오도록 ConnectivityManagerCompat를 업데이트했습니다.

버전 10

2012년 8월

v4 지원 라이브러리의 변경사항:
  • NotificationCompat 외에 Android 4.1 (API 수준 16)에 도입된 알림 기능 지원이 추가되었습니다.

버전 9

2012년 6월

v4 지원 라이브러리의 변경사항:
  • 사용자 인터페이스 지원
    • PagerTabStrip 지원이 추가되어 PagerTitleStrip 이상의 향상된 기능을 제공합니다.
    • setAllCaps 옵션, 제목 정렬, 디자인 개선, 최소 너비 제약, 터치 탐색 문제를 비롯한 PagerTitleStripPagerTabStrip의 다양한 버그를 수정했습니다.
    • ViewPager 클래스가 지도와 같이 가로 스크롤 범위가 큰 콘텐츠에 페이징을 지원할 수 있도록 ViewPager 페이지 여백에 관한 지원을 추가했습니다.
    • 크기 및 데이터 세트 변경 문제, 페이지 배치, 사용자 상호작용, 스크롤 추적, 키보드 탐색 문제를 비롯한 ViewPager의 여러 버그를 수정했습니다.
    • 타겟 프래그먼트가 더 이상 존재하지 않을 때 onActivityResult()를 적절하게 처리하고, 보이지 않는 프래그먼트에 선택 이벤트를 전달하고, FragmentTransaction.replace() 동작을 개선하고, 뷰 밖으로 이동하는 프래그먼트의 상태 처리 개선 등 Fragment의 여러 버그를 수정했습니다.
    • ViewCompatpostOnAnimation() 메서드 지원을 추가했습니다.
    • 사용 가능한 경우 Android 4.1 (API 수준 16) 위로 탐색 기능을 사용하도록 NavUtils를 업데이트했습니다.
  • 접근성
    • Android 4.1 (API 수준 16)의 수정사항을 따르도록 AccessibilityNodeInfoCompat 등의 접근성 지원 클래스를 업데이트했습니다.
    • ViewPager에 접근성 스크롤 작업 지원을 추가했습니다.
  • 일반적인 개선사항

버전 8

2012년 4월

v4 지원 라이브러리의 변경사항:
  • TaskStackBuilder에 의해 생성된 PendingIntent 객체의 인텐트 플래그가 수정되었습니다.
  • API 수준 7 이상에서 라이브러리를 빌드할 수 있도록 그리드layout 라이브러리 프로젝트에서 사용되지 않는 속성이 삭제되었습니다.
  • 그리드 레이아웃 라이브러리 프로젝트를 위한 .classpath.project 파일이 추가되었습니다.

버전 7

2012년 3월

v4 지원 라이브러리의 변경사항:
  • ShareCompat가 추가되었습니다. 이 클래스는 소셜 공유 애플리케이션의 콘텐츠 송수신을 위한 도우미 클래스를 제공합니다. 여기에는 공유 데이터의 소스 앱에 기여하는 새로운 메타데이터도 포함됩니다. 이 클래스는 Android 4.0의 새로운 ShareActionProvider와의 호환 통합도 제공합니다.
  • 탐색을 위한 Android 디자인 가이드라인 구현을 지원하기 위해 NavUtilsTaskStackBuilder를 추가했습니다. 이러한 추가사항에는 버전 간에 작업 모음의 위로 버튼을 구현하는 방법이 포함됩니다. 이 패턴의 구현 예는 AppNavigation 샘플(<em><sdk></em>/samples/<em><platform></em>/AppNavigation)을 참고하세요.
  • 표준화된 시스템 알림을 만들기 위해 Android 3.0의 Notification.Builder 도우미 클래스의 호환성 구현을 제공하기 위해 NotificationCompat.Builder를 추가했습니다.

버전 6

2011년 12월

참고: 이제 지원 라이브러리 API의 참조를 프레임워크 참조(예: android.support.v4.app)에서 사용할 수 있습니다.

v4 지원 라이브러리의 변경사항:
  • ViewPager의 변경사항:
    • ViewPager용 추가 장식 뷰 지원을 추가했습니다. 장식 뷰는 XML 레이아웃에서 페이저의 하위 뷰로 제공될 수 있습니다.
    • 페이지의 제목 문자열을 제공하기 위해 PagerAdapter.getPageTitle()를 추가했습니다. 기본적으로 각 페이지의 제목은 없음입니다.
    • ViewPager의 하위 요소로 추가할 수 있는 비대화형 제목 스트립인 PagerTitleStrip이 추가되었습니다. 개발자는 텍스트 모양과 색상, 레이아웃 크기 및 중력 정보를 제공할 수 있습니다.
    • 어댑터 구현에서 클래스 캐스팅을 방지하기 위해 View가 아닌 ViewGroup 객체를 사용하도록 PagerAdapter 메서드를 업데이트했습니다.
    • 런처 스타일의 플링 동작을 사용하도록 ViewPager를 업데이트했습니다.
    • 사용자 인터페이스 상호작용 및 테스트 자동화와 관련된 버그를 수정했습니다.
  • 프래그먼트 지원:
    • setStartDeferred() 메서드를 setUserVisibleHint(boolean)로 변경했습니다.
    • 성능을 개선하기 위해 화면 밖 페이지의 지연 시작 기능을 추가했습니다.
  • Accessibility API 지원:
    • null 대신 빈 목록을 반환하도록 AccessibilityDelegateCompat 메서드를 업데이트했습니다.
    • v4 샘플에 필요한 새 API를 추가했습니다.

버전 5

2011년 12월

v4 지원 라이브러리의 변경사항:

버전 4

2011년 10월

v4 지원 라이브러리의 변경사항:
  • EdgeEffect를 지원하는 EdgeEffectCompat를 추가했습니다.
  • 애플리케이션이 전역적으로 브로드캐스트하지 않고도 단일 애플리케이션 내에서 인텐트를 쉽게 등록하고 수신할 수 있도록 LocalBroadcastManager를 추가했습니다.
  • Android 2.3 이상에서 View의 오버스크롤 모드를 확인하고 설정하는 지원을 ViewCompat에 추가했습니다.
  • 프래그먼트 API 변경사항:
    • 새 메뉴의 가시성을 제어하는 새 API를 추가했습니다.
    • 맞춤 애니메이션 API를 추가했습니다.
    • 비구성 맞춤 인스턴스 데이터를 보존하기 위해 FragmentActivity에 API를 추가했습니다.
    • 다양한 버그를 수정했습니다.
  • Froyo 및 이전 버전의 플랫폼에서 실행할 때 AsyncTask를 취소할 때 문제를 일으키는 Loader 버그가 수정되었습니다. 이제 지원 코드가 자체 버전의 AsyncTask를 사용하여 모든 플랫폼 버전에서 동일한 동작을 유지합니다.

버전 3

2011년 7월

v4 지원 라이브러리의 변경사항:
  • Fragment.SavedState 지원을 추가합니다.
  • 최신 MotionEvent API를 지원하는 MotionEventCompat을 추가합니다.
  • 최신 VelocityTracker API를 지원하는 VelocityTrackerCompat을 추가합니다.
  • 최신 ViewConfiguration API를 지원하는 ViewConfigurationCompat을 추가합니다.
  • 가로 페이징이 있는 UI를 만들 수 있는 모든 새로운 API (지원 라이브러리에서만 사용 가능)를 통해 사용자가 콘텐츠 뷰 간에 왼쪽과 오른쪽으로 스와이프할 수 있습니다. 이를 지원하는 클래스는 다음과 같습니다.
    • ViewPager: 사용자가 스와이프할 수 있는 하위 뷰의 레이아웃을 관리하는 ViewGroup입니다.
    • PagerAdapter: 각 페이지를 나타내는 뷰로 ViewPager를 채우는 어댑터입니다.
    • FragmentPagerAdapter: 프래그먼트 간 전환을 위한 PagerAdapter의 확장 프로그램입니다.
    • FragmentStatePagerAdapter: 라이브러리의 Fragment.SavedState 지원을 사용하는 프래그먼트 간 전환을 위한 PagerAdapter의 확장 프로그램입니다.
새로운 v13 지원 라이브러리:
  • 가로 페이징을 지원하는 FragmentPagerAdapterFragmentStatePagerAdapter를 포함합니다.

    이는 v4 지원 라이브러리에 추가된 API와 완전히 동일하지만 Android 3.2의 다른 플랫폼 구성요소를 사용합니다. Android 3.2 이상용으로 개발하는 경우 v4 대신 이 라이브러리를 사용하세요 (v4 라이브러리의 다른 모든 API는 이미 API 수준 13에서 사용할 수 있음).

버전 2

2011년 5월

v4 라이브러리의 변경사항:

버전 1

2011년 3월

v4 라이브러리의 최초 버전입니다.