이제 두 번째 Android 11 개발자 프리뷰를 사용할 수 있습니다. 테스트해 보고 의견을 공유하세요.

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

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

버전 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은 이제 ViewObject와 연결하지 않고도 부동 값을 애니메이션할 수 있습니다.

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

    • 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에 탐색 미리보기 이미지를 제공합니다.
    • 환경설정 데이터 저장소:
      • 이제 PreferenceDataStore를 사용하여 PreferencePreferenceManager의 새로운 메서드로 설정한 고유 환경설정 저장소를 구현할 수 있습니다.

    알려진 문제

    • 다운로드 가능한 글꼴 및 그림 이모티콘 호환성과 Google Play 서비스의 통합은 Google Play 서비스 v11 이상에서만 작동하며 현재 Google Play 서비스 베타 프로그램을 통해 사용할 수 있습니다.

    버그 수정

    • 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는 상태 변경 중에 재진입 실행을 시행합니다.
    • 이 지원 라이브러리 출시와 동시에 multidex 버전 1.0.2도 출시됩니다. 이 버전에는 다음과 같은 중요 변경사항이 포함되어 있습니다.
      • 계측 APK의 multidex를 허용합니다.
      • MultiDexTestRunner를 지원 중단합니다(대신 AndroidJUnitRunner를 사용해야 함).
      • 앱의 잘못된 보관 파일 추출 관리로부터 더 효율적으로 보호합니다.
      • 임시 파일 취소로 이어질 수 있는 버그를 수정합니다.
      • 동시 프로세스에서 더 빠르게 설치합니다.
      • API 19 및 20의 설치 버그를 수정합니다.

    새로운 API 및 수정된 API

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

    API의 차이

    새로운 API

    • android.support.design.widget.BottomNavigationView 클래스는 머티리얼 디자인 사양의 하단 탐색 패턴을 구현합니다.
    • 새로운 android.support.v13.view.inputmethod 패키지에는 API 레벨 13 이후에 도입된 android.view.inputmethod.InputConnection 기능에 액세스하기 위한 클래스가 포함되어 있습니다.
    • android.v7.widget.RecyclerView.DividerItemDecoration 클래스는 항목 사이의 세로 구분선이나 가로 구분선을 기본적으로 구현합니다.
    • android.support.v7.app.NotificationCompat, DecoratedCustomViewStyle, DecoratedMediaCustomViewStyle의 새로운 장식된 스타일인 미러 클래스가 플랫폼 API 24에 추가되었습니다.

    해결된 문제

    공개 버그 수정의 전체 목록은 AOSP 문제 추적기에서 확인할 수 있습니다.

    버전 24.2.1

    2016년 9월

    해결된 문제:

    • 이제 FloatingActionButtonCoordinatorLayout의 간접 하위 요소에 고정할 수 없습니다. (AOSP 문제 220250)
    • fitsSystemWindows=true일 때 CollapsingToolbarLayout 내부 이미지가 제대로 확장되지 않습니다. (AOSP 문제 220389)
    • Snackbar가 표시되었다가 닫힐 때 CoordinatorLayout에서 IndexOutOfBoundsException이 발생합니다. (AOSP 문제 220762)
    • TextInputLayout이 오류 텍스트 색상을 확인하지 못합니다. (AOSP 문제 220305)
    • BatchedCallback.onMoved()BatchedCallback.onInserted()를 호출합니다. (AOSP 문제 220309)
    • TextInputLayout이 오른쪽 복합 드로어블을 재정의합니다. (AOSP 문제 220728)
    • 공개 버그 수정의 전체 목록은 AOSP 문제 추적기에서 확인할 수 있습니다.

      버전 24.2.0

      2016년 8월

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

      • v4 지원 라이브러리 분할
      • API 업데이트
      • 동작 변경사항
      • 지원 중단
      • 버그 수정
      • 참고: 릴리스 24.2.0에서는 Android 2.2(API 레벨 8) 이하 지원을 중단했습니다. 이 시스템 버전을 지원하기 위해서만 존재하는 클래스와 메서드는 이제 지원 중단으로 표시되며 더 이상 사용되지 않습니다. 이러한 지원 중단된 클래스와 메서드는 이후 릴리스에서 삭제될 수 있습니다.

        v4 지원 라이브러리 분할

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

        새로운 프레임워크 API용 호환성 래퍼를 제공합니다(예: Context.getDrawable()View.performAccessibilityAction()).
        다수의 유틸리티 클래스를 제공합니다(예: AsyncTaskLoaderPermissionChecker).
        다양한 UI 관련 구성요소를 구현합니다(예: ViewPager, NestedScrollView, ExploreByTouchHelper).
        미디어 프레임워크의 부분(예: MediaBrowserMediaSession)을 백포트합니다.
        프래그먼트 프레임워크를 백포트합니다. 이 모듈은 support-compat, support-core-utils, support-core-ui, support-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()으로 대체되었습니다.
          • 일부 추상 클래스가 지원 중단되었으며 상응하는 프레임워크 클래스를 더 밀접하게 반영하는 인터페이스로 대체되었습니다.
            • AccessibilityStateChangeListenerCompatAccessibilityManagerCompat.AccessibilityStateChangeListener 인터페이스로 대체되었습니다.
            • OnCloseListenerCompatSearchViewCompat.OnCloseListener 인터페이스로 대체되었습니다.
            • OnQueryTextListenerCompatSearchViewCompat.OnQueryTextListener 인터페이스로 대체되었습니다.
            • CustomTabsSession.setToolbarItem()이 지원 중단되었으며 RemoteViews 기반 setSecondaryToolbarViews()로 대체되었습니다.
            • 버그 수정

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

              • 첫 번째 측정치 전달 전에 setRefreshing(true)이 호출되면 SwipeRefreshLayout 표시기가 표시되도록 보장합니다(AOSP 문제 77712).
              • 페이지 변경 시 TabLayout이 깜박이는 것을 방지합니다(AOSP 문제 180454).
              • API 레벨 11 이하에서 SavedState를 역마샬링할 때 ClassNotFoundException을 방지합니다(AOSP 문제 196430).
              • 공개 버그 수정의 전체 목록은 AOSP 문제 추적기에서 확인할 수 있습니다.

                버전 24.1.1

                2016년 7월

                해결된 문제:

                • 지원 라이브러리 사이에 공유되는 리소스 ID에 영향을 주는 24.1.0 릴리스의 문제를 해결했습니다. 이 문제로 인해 리소스가 포함된 지원 라이브러리(예: 디자인 및 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 계층 구조를 제공하도록 지원을 추가했습니다.
                • 한 줄 warm up을 위한 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)
                • AppBarLayout와 함께 사용할 때 android:fitsSystemWindows = “true”이 뷰 외부로 완전히 스크롤하지 않는 문제를 해결했습니다. (문제 201822)
                • BottomSheetDialog가 짧은 콘텐츠 뷰를 제대로 표시하지 않는 문제를 해결했습니다. (문제 201793)
                • 내부 콘텐츠가 변경되었을 때 BottomSheetDialogFragment가 산발적으로 이동하는 문제를 해결했습니다. (문제 202125)
                • TextInputLayout 카운터 링크의 비정상 종료 문제를 해결했습니다.
                • TextInputLayout.getCounterMaxLength()가 저장된 상태를 복원할 때 발생하는 비정상 종료 문제를 해결했습니다. (문제 202375)
                • CoordinatorLayout이 아닌 뷰의 저장된 상태를 사용하여 을 복원할 때 발생하는 ClassCastException을 수정했습니다.
                VectorDrawableCompat의 변경사항:
                • android:tintMode의 잘못된 변수를 읽는 버그를 수정했습니다. (문제 201907)

                버전 23.2.0

                2016년 2월

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

                          recyclerView.itemAnimator.supportsChangeAnimations = false
                          

                      자바

                          recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
                          

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

                      Kotlin

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

                      자바

                          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_SHOWN 상수와 TAB_HIDDEN 상수를 추가했습니다.

                버전 23.0.1

                2015년 9월

                v7, v14 Preference 지원 라이브러리의 변경사항:
                • 머티리얼 디자인 레이아웃과 스타일 파일을 추가했습니다. (문제 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 라이브러리의 변경사항:
                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 이전 multi-dex 파일 지원을 위해 여러 개의 Dalvik Executable(DEX)을 지원하도록 multidex 지원 라이브러리를 추가했습니다.

                버전 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 지원 라이브러리의 변경사항:
                • NotificationCompat.WearableExtender에 Android Wear의 알림 지원을 확장하여 추가했습니다. 이 지원을 통해 알림에 웨어러블 관련 기능을 지정할 수 있습니다.
                • NotificationCompat.Action.WearableExtender를 추가하여 웨어러블 알림에 작업을 추가할 수 있게 되었습니다.
                • NotificationManagerCompat을 추가하여 웨어러블 기능을 제대로 지원하는 알림을 표시할 수 있게 되었습니다.
                • RemoteInput을 추가하여 휴대용 기기가 웨어러블 기기에 나타나는 알림에서 음성 입력을 수신할 수 있게 되었습니다.
                • SwipeRefreshLayout의 터치 피드백 처리를 개선했습니다.

                버전 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 도우미 클래스를 추가했습니다.
                  • 기기 디스플레이 1개 이상을 대상으로 한 디스플레이 출력을 관리하도록 DisplayManagerCompat을 추가했습니다.
                • 기타 변경사항
                  • 핸드오프가 완료되기 전에 기기가 절전 모드로 돌아가지 않게 보장하며 기기 wakeup 이벤트를 감지하고 작업을 Service에 전달하는 일반 패턴을 구현하도록 WakefulBroadcastReceiver 도우미 클래스를 추가했습니다.
                  • 이후에 취소되는 데이터 변경의 백그라운드 업데이트를 처리하는 새로운 API 2개(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 디버깅에 개선사항을 추가했습니다.
                  • FragmentTabHost에서 프래그먼트와 탭의 상호작용으로 ListView 상태 손실이 발생할 수 있는 문제를 해결했습니다.
                  • FragmentStatePagerAdapter에서 사용자에게 표시되는 힌트에 발생하는 문제를 해결했습니다.
                  • 애플리케이션이 스크롤의 맞춤 전환 동작을 제공할 수 있도록 ViewPagerPageTransformer 인터페이스를 추가했습니다.
                  • 현재 릴리스에서 TaskStackBuilder에 새로운 기능과 수정사항을 추가했습니다.
                  • 현재 사용 중인 PagerAdapter를 정확하게 추적하도록 PagerTitleStrip을 수정했습니다.
                  • PagerTitleStrip에서 디스플레이 깜박임, 위치 지정, 텍스트 잘림 문제를 수정했습니다.
                  • 밑줄을 그릴 때 패딩이 올바르게 적용되도록 PagerTabStrip을 수정했습니다.
                • 접근성
                • GestureDetectorCompat의 동작 지원을 추가했습니다.
                • 새로운 AtomicFile 클래스를 사용해 파일에 관해 원자적 연산을 수행하도록 지원을 추가했습니다.
                • IntentCompat에 전체 make 메서드 집합을 위한 지원을 추가했습니다.
                • LruCache 유틸리티 클래스에 trimToSize() 메서드를 추가했습니다.
                • CONNECTIVITY_ACTION 브로드캐스트에서 NetworkInfo를 가져오도록 ConnectivityManagerCompat을 업데이트했습니다.

                버전 10

                2012년 8월

                v4 지원 라이브러리의 변경사항:
                • Android 4.1(API 레벨 16)에 도입된 알림 기능을 위한 지원을 NotificationCompat에 추가했습니다.

                버전 9

                2012년 6월

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

                버전 8

                2012년 4월

                v4 지원 라이브러리의 변경사항:
                • TaskStackBuilder에 의해 생성되는 PendingIntent 객체의 인텐트 플래그를 수정했습니다.
                • API 레벨 7 이상에서 라이브러리를 빌드할 수 있도록 gridlayout 라이브러리 프로젝트에서 사용되지 않는 속성을 삭제했습니다.
                • gridlayout 라이브러리 프로젝트용 .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)로 변경했습니다.
                  • 성능을 개선하기 위해 화면 밖 페이지의 지연 시작 기능을 추가했습니다.
                • 접근성 API 지원:
                  • null 대신 빈 목록을 반환하도록 AccessibilityDelegateCompat 메서드를 업데이트했습니다.
                  • v4 샘플에 필요한 새 API를 추가했습니다.

                버전 5

                2011년 12월

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

                버전 4

                2011년 10월

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

                버전 3

                2011년 7월

                v4 지원 라이브러리의 변경사항:
                • Fragment.SavedState 지원을 추가합니다.
                • 최신 MotionEvent API를 지원하는 MotionEventCompat을 추가합니다.
                • 최신 VelocityTracker API를 지원하는 VelocityTrackerCompat을 추가합니다.
                • 최신 ViewConfiguration API를 지원하는 ViewConfigurationCompat을 추가합니다.
                • 사용자가 왼쪽, 오른쪽으로 스와이프하며 콘텐츠 뷰를 볼 수 있게 가로 페이징이 포함된 UI를 만들 수 있는 새로운 모든 API(지원 라이브러리에서만 사용 가능)를 추가했습니다. 이러한 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 라이브러리의 최초 버전입니다.