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

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

버전 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의 차이

해결된 문제

  • 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[])이 지원 중단되었습니다. 대신 새로운 메서드인 getLatLong()을 사용하세요. 인수가 사용되지 않으며 double[]이 반환됩니다.
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으로 업데이트해야 이 버그가 해결됩니다.

중요 변경사항

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

    이러한 최적화의 부작용은 프래그먼트의 상태가 예상 순서를 벗어나서 변경될 수 있다는 점입니다. 예를 들어 한 트랜잭션이 프래그먼트 A를 추가하고 두 번째 트랜잭션이 프래그먼트 B를 추가한 다음 세 번째 트랜잭션이 프래그먼트 A를 삭제한다고 가정하겠습니다. 최적화가 없다면 프래그먼트 B는 자신이 생성되는 동안 프래그먼트 A가 존재할 것으로 예상할 수 있습니다. 왜냐하면 프래그먼트 B가 추가된 후에 프래그먼트 A가 삭제될 예정이기 때문입니다. 반면 최적화가 있다면 프래그먼트 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: ErrorView에 맞게 글꼴이 설정되지 않음(AOSP 문제 227803)
  • API 23 미만에서 TextInputLayout이 항상 밝은 오류 색상으로 돌아감(AOSP 문제 221992)
  • 포인터가 버튼 밖으로 나갔을 때 FloatingActionButton이 누름으로 표시됨

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

지원 중단

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

버전 25.0.1

(2016년 11월)

해결된 문제

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

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

버전 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 클래스는 머티리얼 디자인 사양의 하단 탐색 패턴을 구현합니다.
  • 새로운 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월

해결된 문제:

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

버전 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-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()으로 대체되었습니다.
  • 일부 추상 클래스가 지원 중단되었으며 상응하는 프레임워크 클래스를 더 밀접하게 반영하는 인터페이스로 대체되었습니다.
  • 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이 아닌 뷰의 저장된 상태를 사용하여 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의 기존 애니메이션 기능을 모두 지원합니다.
    • 맞춤 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 페이지 거터 지원을 추가했습니다.
    • 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 라이브러리의 최초 버전입니다.