이 페이지에서는 이전 지원 라이브러리 패키지 출시에 관한 세부정보를 제공합니다. 최신 지원 라이브러리 버전을 알아보려면 최신 지원 라이브러리 버전을 참고하세요.
버전 26.0.0 베타 2
(2017년 6월)
26.0.0-beta2는 출시 전 버전입니다. API 노출 영역은 변경될 수 있으며 지원 라이브러리의 최신 안정화 버전의 기능이나 버그 수정을 포함하는 것은 아닙니다.
중요: 지원 라이브러리는 이제 Google의 Maven 저장소를 통해 사용할 수 있습니다. SDK Manager에서 지원 저장소를 다운로드할 필요가 없습니다. 자세한 내용은 지원 라이브러리 설정을 참고하세요.
새로운 API
- 새로운
JobIntentService
클래스를 사용하면 개발자가 새로운 Android O 백그라운드 실행 제한을 준수하는 방식으로 작업을 예약할 수 있습니다.
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
-
FragmentManager
및Fragment
에는 상태 손실 없이 트랜잭션이 허용되는지 여부를 쿼리할 수 있는isStateSaved()
메서드가 있습니다. 특히 트랜잭션을 실행하기 전에onClick()
이벤트를 처리할 때 확인하는 데 유용합니다. AnimatedVectorDrawableCompat
에서 경로 모션이 지원됩니다. 경로 모션을 사용하면 한 객체 애니메이터가 한 경로를 기준으로 두 속성을 동시에 변경할 수 있습니다. 경로는 애니메이터의 XML에서android:pathData
로 지정됩니다.- 물리학 기반 애니메이션:
- 새로운
FlingAnimation
을 통해 초기 속도로 애니메이션하고 매끄럽게 속도를 줄일 수 있습니다. DynamicAnimation
의 서브클래스는 모든 객체의 맞춤 속성에 애니메이션을 적용하는 기능을 지원합니다.SpringAnimation
및FlingAnimation
는 이제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
를 사용하면Preference
및PreferenceManager
의 새 메서드로 설정된 자체 환경설정 저장소를 구현할 수 있습니다.
-
이제
알려진 문제
- Google Play 서비스와 다운로드 가능한 글꼴 및 그림 이모티콘 호환성 통합은 현재 Google Play 서비스 베타 프로그램을 통해 제공되는 Google Play 서비스 v11 이상에서만 작동합니다.
버그 수정
-
MediaBrowserCompat.search()
API가 작동하지 않음 (AOSP 문제 262170) -
ViewCompat.postInvalidateOnAnimation()
에서 예외 발생 (AOSP 문제 80146) -
소멸된 활동의 프래그먼트와 관련해
onActivityCreated()
가 호출됨 -
미리 가져오기 중에
RecyclerView.isComputingLayout()
가 true를 반환해야 함 -
Fade
전환이 중단되고 취소되면View
는 애니메이션을 처음부터 시작합니다. (Android 프레임워크에서 포팅된 수정사항) -
Transition.Fade
가View
의 초기 알파를 무시합니다.(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()
참조를 확인하세요.
해결된 문제
StaggeredGridLayoutManager
에서IllegalArgumentException
발생(AOSP 문제 230295)- 연결되어 있지만 화면에 표시되지 않는
RecyclerView
을RecyclerView
미리 가져오기가 제대로 처리하지 않음 LinearLayout
이 Robolectric에서 인식되지 않음Activity
가 취소되면 활동의 프래그먼트와 관련해서onActivityCreated()
가 부적절하게 호출됨AppCompatImageView
생성자가ArrayIndexOutOfBoundsException
을 야기함Call.Details
활동 전환에서 UI 성능 저하
버전 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()
과 비슷합니다.
해결된 문제
-
MediaSessionCompatTest
실패 및IllegalArgumentException
-
25.1.0에서
DetailsFragment.installTitleView()
가 호출되지 않음 - 종료 시 프래그먼트 트랜잭션이 고스트 뷰를 유지함 (AOSP 문제 230679)
-
BottomNavigationView
에서 항목 아이콘과 텍스트 사이에 간격이 필요함(AOSP 문제 230653) - 선택한 리스너가 새
PlaybackFragment
및PlaybackSupportFragment
에서 누락됨 -
지원 라이브러리 버전 25.1.0의
TextInputLayout
포커스가 에뮬레이터에서 제대로 변경되지 않음 (AOSP 문제 230461) BottomNavigationView
의 메뉴를 대체할 수 없음 (AOSP 문제 230343)-
StaggeredGridLayoutManager
가 포함된RecyclerView
가 전체 범위 항목에서 비정상 종료됨 (AOSP 문제 230295) setCallback(null)
사용 시MediaSessionCompat
에서 비정상 종료가 발생합니다.-
재생 행이 변경될 때
PlaybackGlueHostOld
및PlaybackSupportGlueHostOld
가 콜백을 알리지 않음 -
PlaybackOverlayFragment
예/test
에서 재생을 시작할 수 없음 -
API 15에서
RecyclerViewFocusRecoveryTest
실패 - '스크린샷' 행의 포커스가 화면 상단으로 맞춰짐
-
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
가 API 15에서 비정상 종료됨 -
onSubactionClicked()
의setActions()
깨짐 -
일부 뷰 홀더를 재활용하면
RecyclerView
가 비정상 종료됩니다.
버전 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
- ExifInterface 지원 라이브러리를 추가했습니다. 이 라이브러리는 JPEG 및 원시 형식 파일에서 Exif 정보를 읽고 JPEG 이미지 파일에 Exif 정보를 설정하는 지원 기능을 분리합니다.
- 앱이 맞춤 콘텐츠를 표시할 수 있도록
Snackbar
가 리팩터링되었습니다.BaseTransientBottomBar
는 일반적인 슬라이딩 및 애니메이션 동작을 노출하는 새로운 기본 클래스입니다. - 미디어 플레이어를 Android TV 애플리케이션에 통합하는 도우미 클래스가 포함된 새로운 leanback.media 패키지를 추가했습니다.
- 맞춤설정 가능한 레이아웃과 속성이 있는
SeekBarPreference
를 v7 환경설정 지원 라이브러리에 추가했습니다. - v4 지원 라이브러리에
ArraySet
클래스가 추가되었습니다. 이 클래스는 API 수준 23에서 도입된 프레임워크ArraySet
클래스에 상응합니다. RecyclerView
RecyclerView 항목 미리 가져오기 개선사항:- 중첩된
RecyclerView
미리 가져오기를 사용하면 다른 스크롤RecyclerView
내에서RecyclerView
에서 콘텐츠를 미리 가져올 수 있으며 API를 사용하여 미리 가져오기 실행 정도를 제어할 수 있습니다. - 스크롤 및 플링 중에 미리 가져오기를 사용 설정할 수 있도록 맞춤
LayoutManager
객체를 구현하는 API를 추가했습니다. - 프레임 간의 시간에 최대한 많은 생성/바인딩 작업만 실행하도록 미리 가져오기가 개선되었습니다.
- 중첩된
해결된 문제
- 비밀번호 공개 상태 전환이 접근성 테스트에 실패했습니다.
- Appcompat이 L 이전 기기에서
state_enabled
를 적용하지 않습니다. - 포커스 복구 메커니즘을
RecyclerView
에 추가했습니다. 이는 Android TV 기기에서와 같이 DPAD 탐색을 사용할 때 support pref 프래그먼트의 손상된 포커스도 수정되었습니다. - Leanback: 헤더가 사용되지 않고 어댑터가 비어 있을 때 BrowseFragment가 비정상 종료됩니다.
- Appcompat:
AlertDialog
의 너비가 너무 큽니다. InputContentInfoCompat
는releasePermission()
를 호출해야 할 때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에서 이전하는 방법에 대한 자세한 내용은 해당 문서를 참조하세요.
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
버전 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
,DecoratedCustomViewStyle
및DecoratedMediaCustomViewStyle
에서 새로 데코레이트된 스타일, 미러 클래스가 플랫폼 API 24에 추가되었습니다.
해결된 문제
공개 버그 수정의 전체 목록은 AOSP Issue Tracker에서 확인할 수 있습니다.
버전 24.2.1
2016년 9월
해결된 문제:
FloatingActionButton
는 더 이상CoordinatorLayout
의 간접 하위 요소에 고정할 수 없습니다. (AOSP 문제 220250)CollapsingToolbarLayout
내부의 이미지가fitsSystemWindows=true
에 따라 제대로 조정되지 않습니다. (AOSP 문제 220389)Snackbar
가 표시되었다가 닫힐 때CoordinatorLayout
에서IndexOutOfBoundsException
이 발생합니다. (AOSP 문제 220762)TextInputLayout
가 오류 텍스트 색상을 결정하지 못합니다. (AOSP 문제 220305)BatchedCallback.onMoved()
가BatchedCallback.onInserted()
를 호출합니다. (AOSP 문제 220309)TextInputLayout
는 오른쪽 복합 드로어블을 재정의합니다. (AOSP 문제 220728)
공개 버그 수정의 전체 목록은 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
- 여러 유틸리티 클래스를 제공합니다(예:
AsyncTaskLoader
및PermissionChecker
). -
support-core-ui
-
다양한 UI 관련 구성요소를 구현합니다(예:
ViewPager
,NestedScrollView
,ExploreByTouchHelper
). -
support-media-compat
- 미디어 프레임워크의 부분(예:
MediaBrowser
및MediaSession
)을 백포트합니다. -
support-fragment
- 프래그먼트 프레임워크를 백포팅합니다. 이 모듈에는
support-compat
,support-core-utils
,support-core-ui
및support-media-compat
에 관한 종속 항목이 있습니다.
이전 버전과의 호환성을 위해 Gradle 스크립트에 support-v4
를 나열하면 APK에 이러한 모듈이 모두 포함됩니다. 그러나 APK 크기를 줄이려면 앱에 필요한 특정 모듈만 나열하는 것이 좋습니다.
API 업데이트
- 맞춤 탭을 사용하는 클라이언트는 인스턴트 앱을 열지 여부를 제어할 수 있습니다. 인스턴트 앱은 아직 정식 버전으로 제공되지 않습니다. 인스턴트 앱을 사용 설정하거나 사용 중지하려면
CustomTabsIntent.Builder.setInstantAppsEnabled()
를 호출하거나EXTRA_ENABLE_INSTANT_APPS
를 지정합니다. 기본적으로 맞춤 탭은 인스턴트 앱 기능이 제공되면 인스턴트 앱을 사용하도록 기본 설정됩니다. TextInputLayout
는 머티리얼 디자인 사양에서 비밀번호 표시 전환 지원을 추가합니다.- 새로운
android.support.transition
패키지는 전환 프레임워크를 API 수준 14 이상으로 백포팅합니다. 자세한 내용은android.support.transition
참조를 확인하세요. - 맞춤 탭 지원 라이브러리는 보조 툴바에서
RemoteViews
를 사용할 수 있도록 지원을 추가합니다. 기존setToolbarItem()
메서드는 이제 지원 중단됩니다. AppCompatResources
는 새로운getDrawable()
메서드를 사용하여 리소스 ID에서<vector>
(API 수준 9 이상) 또는<animated-vector>
(API 수준 11 이상)를 로드하는 기능을 추가합니다.CoordinatorLayout
가 이제 인셋 뷰 정의 및 다른 뷰가 인셋 뷰를 회피하도록 지정하는 기능을 지원합니다. 이를 통해 앱은 임의의 뷰 하위 요소에 대해FloatingActionButton
가Snackbar
의 범위를 벗어나 이동하는 방식과 유사한 동작 패턴을 복제할 수 있습니다. 자세한 내용은LayoutParams.insetEdge
및LayoutParams.dodgeInsetEdges
참조 문서를 확인하세요.- 새로운
DiffUtil
클래스는 두 컬렉션 간의 차이를 계산할 수 있으며RecyclerView.Adapter
에서 사용하기에 적합한 업데이트 작업 목록을 전달할 수 있습니다. -
플링에 대한 응답으로 맞춤 동작을 지원하도록
RecyclerView.OnFlingListener
를 추가했습니다.SnapHelper
클래스는 특히 하위 뷰 맞추기 구현을 제공하며LinearSnapHelper
클래스는 이 구현을 확장하여ViewPager
와 유사한 가운데 정렬 동작을 제공합니다. - 이제 맞춤 탭 라이브러리에서 클라이언트가
CustomTabsIntent.setAlwaysUseBrowserUI()
를 호출하여 맞춤 탭 UI가 아닌 표준 브라우저 UI를 요청할 수 있습니다. 이 동작은 브라우저가 맞춤 탭 UI로 기본 설정되지만 사용자가 표준 브라우저 UI를 선호하는 경우에 유용합니다.
동작 변경사항
- 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()
로 대체되었습니다.- 일부 추상 클래스가 지원 중단되었으며 상응하는 프레임워크 클래스를 더 밀접하게 반영하는 인터페이스로 대체되었습니다.
AccessibilityStateChangeListenerCompat
가AccessibilityManagerCompat.AccessibilityStateChangeListener
인터페이스로 대체되었습니다.OnCloseListenerCompat
가SearchViewCompat.OnCloseListener
인터페이스로 대체되었습니다.OnQueryTextListenerCompat
가SearchViewCompat.OnQueryTextListener
인터페이스로 대체되었습니다.
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 지원 라이브러리의 변경사항:
-
NotificationCompat.Action.WearableExtender
에는 Android Wear 2.0 미리보기와 호환되도록 새로운getHintDisplayActionInline()
및setHintDisplayActionInline()
메서드가 추가되었습니다. 이러한 메서드를 사용하면 애플리케이션이 알림과 함께 작업을 인라인으로 표시해야 한다는 것을 지정할 수 있습니다.Fragment.setUserVisbileHint()
를 호출해도 아직 커밋되지 않은FragmentTransaction
에 힌트가 추가된 경우 더 이상 프래그먼트가 시작되지 않습니다. 이는super.setUserVisibleHint()
를 호출한 후setUserVisbileHint()
를 재정의하고 프래그먼트의 특정 수명 주기 상태를 가정하는FragmentPagerAdapter
사용자에게 영향을 미칩니다. 자세한 내용은Fragment.setUserVisbileHint()
문서의 참조 페이지를 확인하세요.
해결된 문제:
- 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
객체를 참조할 수 있는 지원을 추가했습니다.
- XML에서 테마
- 디자인 지원 라이브러리의 변경사항:
-
StateListAnimator
를 사용한AppBarLayout
의 고도 처리 개선
- v17 Leanback 라이브러리의 변경사항:
-
- 첫 실행 환영 및 설정 흐름을 제공하는
OnboardingFragment
를 추가했습니다.
- 첫 실행 환영 및 설정 흐름을 제공하는
- 맞춤 탭의 변경사항:
-
- 보조 툴바에
RemoteViews
계층 구조를 제공하기 위한 지원이 추가되었습니다. - 한 줄 워밍업을 위해
CustomTabsClient.connectAndInitialize()
를 추가했습니다.
- 보조 툴바에
버전 23.4.0
2016년 5월
- v4 지원 라이브러리의 변경사항:
- v7 appcompat 라이브러리의 변경사항:
-
- Android 4.4 (API 수준 19) 이하를 실행하는 기기의
DrawableContainer
객체에서 벡터 드로어블을 다시 사용할 수 있도록AppCompatDelegate.setCompatVectorFromResourcesEnabled()
메서드를 추가했습니다. 자세한 내용은 AppCompat v23.2 — 벡터의 시대를 참고하세요. - API 23에서
AppCompatDelegate.setDefaultNightMode()
가 API 수준 23의 올바른 리소스를 로드하지 않는 문제가 해결되었습니다. (문제 206573) NullPointerException
의 원인이 되는 문제를 해결했습니다. (문제 207638)
- Android 4.4 (API 수준 19) 이하를 실행하는 기기의
- 디자인 지원 라이브러리의 변경사항:
-
- API 수준 21~22에서
setErrorEnabled(false)
이후에TextInputLayout
가 오류 색조를 지우지 않는 문제를 해결했습니다. (문제 202829) - 애니메이션이 사용 중지되었을 때
FloatingActionButton
가 반환되지 않는 문제가 해결되었습니다. (문제 206416)
스크롤 플래그와 함께 사용할 때scroll
|enterAlways
|enterAlwaysCollapsed
|snap
AppBarLayout
맞추기 기능의 문제를 해결했습니다. (문제 207398)
- API 수준 21~22에서
- 벡터 드로어블 라이브러리의 변경사항:
-
- API 레벨 23의
TextView
에서VectorDrawableCompat
가 올바르게 렌더링되지 않는 버그가 수정되었습니다. (문제 206227)
- API 레벨 23의
버전 23.3.0
2016년 4월
- v4 지원 라이브러리의 변경사항:
-
- 이전에 사용자가 앱을 실행한 방법을 추적할 수 있도록
AppLaunchChecker
를 추가했습니다.hasStartedFromLauncher()
를 사용하면 사용자가 이전에 홈 화면에서 앱을 실행했는지 또는 다른 방법으로만 시작했는지 (예: 특정 웹 URL 보기) 알 수 있습니다. MediaBrowserServiceCompat.mConnections
에서 메모리 누수가 해결되었습니다. (문제 205220)- 페이지를 넘길 때
ViewPager
에서 페이지 여백을 고려하지 않는 문제가 해결되었습니다. (문제 203816) - 이제
Fragment.onRequestPermissionsResult()
가 하위 프래그먼트로 전달됩니다.
- 이전에 사용자가 앱을 실행한 방법을 추적할 수 있도록
- v7 appcompat 라이브러리의 변경사항:
-
AppCompatSpinner
에서 여러 팝업이 표시되게 하는 문제를 해결했습니다. (문제 205052)- 테두리 없는 버튼에 색상이 적용되는 방식의 문제를 해결했습니다. (문제 202967)
AppCompatDialogFragment
와AlertDialog
사이의 호환성 문제를 해결했습니다. (문제 204805)- 메모리 및 구성 문제를 일으키는
TintResources
변경사항을 되돌렸습니다. (문제 205236)
- v7 mediarouter 라이브러리의 변경사항:
-
MediaRouteControllerDialog
볼륨 슬라이더의 동작을 수정했습니다. (문제 202299)
- v7 환경설정 라이브러리의 변경사항:
-
dividerHeight
가 지정되면PreferenceFragmentCompat
가 비정상 종료되는 문제가 해결되었습니다. (문제 204778)
- v7 recyclerview 라이브러리의 변경사항:
-
- 표시되는 항목의 범위가 축소되면
RecyclerView
가 스크롤 콜백을 호출하지 않는 버그를 수정했습니다. (문제 200987) RecyclerView
가 선형 레이아웃에 있고, 가중치가 적용되고, 이미지가 포함된 경우 정지되는 버그가 수정되었습니다. (문제 203276)OrientationHelper.getStartAfterPadding()
에서 비정상 종료 문제를 해결했습니다. (문제 180521)android:nestedScrollingEnabled
사용 시 비정상 종료되는 문제가 해결되었습니다. (문제 197932)
- 표시되는 항목의 범위가 축소되면
- 디자인 지원 라이브러리의 변경사항:
-
- 숨겨진 하단 시트가 터치 이벤트를 처리하는 버그를 수정했습니다. (문제 203654)
fitsSystemWindows
가 true일 때BottomSheetBehavior
에서 발생하는 레이아웃 문제가 해결되었습니다. (문제 203057)Snackbar
의 접근성 문제를 해결했습니다. (문제 182145)Snackbar
스와이프 시 비정상 종료되던 문제가 해결되었습니다. (문제 203924)AppBarLayout
에서enterAlways
의 버그가 수정되었습니다. (문제 203661)TextInputLayout
가EditText
객체의 배경 색상 필터를 불필요하게 삭제하는 버그를 수정했습니다. (문제 203357)
버전 23.2.1
2016년 3월
- v4 지원 라이브러리의 변경사항:
-
- API 레벨 17~19에서
DrawableCompat.wrap()
및LayerDrawable
의 예외가 수정되었습니다. (문제 201817) ViewDragHelper.shouldInterceptTouchEvent()
의ArrayIndexOutOfBoundsException
을 수정했습니다. (문제 182262)- 크기 변경의 스크롤 계산과 관련된
ViewPager
의 버그를 수정했습니다. DrawerLayout.DrawerListener
없이DrawerLayout.removeDrawerListener()
가 호출될 때 발생하는NullPointerException
을 수정했습니다. (문제 202478)- 스크롤할 때
ViewPager
가AccessibilityEvent
매개변수를 제대로 설정하지 않는 버그를 수정했습니다. Drawable.wrap()
를 사용할 때 기기 회전 중에 지연을 일으키는 문제가 해결되었습니다. {문제 201924)
- API 레벨 17~19에서
- 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)
- appcompat 라이브러리를 사용하는 개발자가
- v7 cardview 라이브러리의 변경사항:
- v7 recyclerview 라이브러리의 변경사항:
-
- 다양한 measure-spec 메서드와 관련된 버그를 수정했습니다. (문제 201856)
- 레이아웃 또는 스크롤을 계산하는 동안
RecyclerView
에서 어댑터 변경을 허용하지 않는 잠금 기간이 감소했습니다. (문제 202046) - 뷰 외부의 항목에 관해
notifyItemChanged()
를 호출할 때 발생하는 비정상 종료 문제를 해결했습니다. (문제 202136) RecyclerView.LayoutManager
가 동일한 측정 패스에서 뷰를 추가하고 삭제할 때 발생하는 비정상 종료 문제가 수정되었습니다. (문제 193958)
- v7 mediarouter 라이브러리의 변경사항:
-
- API 레벨 17에서
MediaRouter.getInstance()
를 호출할 때 발생하는 비정상 종료 문제를 해결했습니다. (문제 180654)
- API 레벨 17에서
- 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
을 추가했습니다. 이는 미디어 앱의 백그라운드 서비스를 UI 구성요소와 연결하고 API 수준 21 이상 없이 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 라이브러리의 변경사항:
-
- 이제
MediaRouteControllerDialog
가 맞춤 앱 테마 색상을 올바르게 적용합니다.
- 이제
- 디자인 지원 라이브러리의 변경사항:
-
- 하단 시트 지원을 추가했습니다. 상호작용 플러그인
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 } }
- Gradle용 Android 플러그인 1.5.0 이하를 사용하여 빌드하는 경우
- 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 라이브러리의 변경사항:
-
- 이제
RecyclerView
에 AutoMeasure라는 선택 기능이 있습니다. 이 기능을 사용하면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_SHOWN
및TAB_HIDDEN
상수가 추가되었습니다.
버전 23.0.1
2015년 9월
- v7 및 v14 환경설정 지원 라이브러리의 변경사항:
-
- 머티리얼 디자인 레이아웃과 스타일 파일을 추가했습니다. (문제 183376)
- v7 appcompat 라이브러리의 변경사항:
-
- 하드웨어 레이어 사용을 Android 4.1 (API 수준 16) 이상으로 제한하여
Fragment
클래스의 비정상 종료 문제를 해결했습니다. (문제 183896) setSupportActionBar()
메서드를 사용하여 활동에서Toolbar
클래스가ActionBar
역할을 하도록 설정할 때 하드웨어 버튼이 작동하지 않는 문제를 해결했습니다. (문제 183334)- 더 이상
Windows feature must be requested before adding content
오류가 발생하지 않도록AppCompatDialogFragment
클래스가 업데이트되었습니다. (문제 183186)
- 하드웨어 레이어 사용을 Android 4.1 (API 수준 16) 이상으로 제한하여
- 디자인 지원 라이브러리의 변경사항:
-
AppBarLayout
클래스가 수정되어 이제 회전 후 올바르게 그려집니다. (문제 183109)TabLayout
클래스를 수정하여 이제 사용자가 스와이프한 후 클릭할 때 올바르게 동작합니다. (문제 183123)
- 맞춤 탭 지원 라이브러리의 변경사항:
-
- 버전 지원의
minSdkVersion
값을 16에서 15로 낮췄습니다. - 인텐트에서
CustomTabsSessionToken
를 생성하는 방법이 추가되었습니다.
- 버전 지원의
버전 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 지원 라이브러리의 변경사항:
-
- 접근성 이벤트 처리를 위해
AccessibilityEventCompat
클래스에getContentChangeTypes()
및setContentChangeTypes()
메서드와 관련 변경 유형 필드를 추가했습니다. - 큐에서 맞춤 작업을 가져오도록
PlaybackStateCompat
클래스에 관련 상태 필드가 있는getActiveQueueItemId()
,getCustomActions()
,getExtras()
메서드를 추가했습니다. - 재생 상태에 맞춤 작업을 추가하도록
PlaybackStateCompat.Builder
클래스에addCustomAction()
,setActiveQueueItemId()
,setExtras()
메서드를 추가했습니다. - 큐에서 맞춤 작업을 가져오도록
PlaybackStateCompat.CustomAction
클래스에fromCustomAction()
및getCustomAction()
메서드를 추가했습니다. - 뷰 작업을 위해
ViewCompat
클래스에isAttachedToWindow()
,offsetLeftAndRight()
,offsetTopAndBottom()
메서드를 추가했습니다. - 페이지 변경에 응답하도록
ViewPager
클래스에addOnPageChangeListener()
,clearOnPageChangeListeners()
,removeOnPageChangeListener()
메서드를 추가했습니다.ViewPager.setOnPageChangeListener()
메서드를 지원 중단했습니다. - 하위 요소 중 하나의 접근성 상태가 변경되었음을 뷰 상위 요소에 알리도록
ViewParentCompat
클래스에notifySubtreeAccessibilityStateChanged()
메서드를 추가했습니다. - 애니메이션을 추가하도록
ViewPropertyAnimatorCompat
클래스에translationZ()
,translationZBy()
,z()
,zBy()
메서드를 추가했습니다.
- 접근성 이벤트 처리를 위해
- v7 appcompat 라이브러리의 변경사항:
-
- 현재 창에서 시작된 작업 모드를 처리하도록
AppCompatActivity
,AppCompatCallback
,AppCompatDialog
클래스에onWindowStartingSupportActionMode()
메서드를 추가했습니다. - 네이티브 작업 모드를 처리하도록
AppCompatDelegate
클래스에isHandleNativeActionModesEnabled()
메서드와setHandleNativeActionModesEnabled()
메서드를 추가했습니다.
- 현재 창에서 시작된 작업 모드를 처리하도록
지원 라이브러리 변경사항의 전체 목록은 지원 라이브러리 API 차이점 보고서를 참고하세요.
버전 22.1.0
2015년 4월
- 주석 라이브러리의 변경사항:
-
- 향상된 코드 검사를 지원하는 주석 라이브러리를 추가했습니다. 주석은 변수, 매개변수 및 반환 값에 추가하여 메서드 반환 값, 전달된 매개변수, 로컬 변수 및 필드를 검사하는 메타데이터 태그로 추가됩니다.
- v4 지원 라이브러리의 변경사항:
-
- 색상 관련 유틸리티 메서드 집합을 제공하기 위해
ColorUtils
클래스를 추가했습니다. - 모든 API 수준 4 이상 기기에서
setTint()
,setTintList()
,setTintMode()
를 사용할 수 있도록DrawableCompat
클래스에unwrap()
메서드와wrap()
메서드를 추가했습니다. - 시스템 추적 버퍼에 추적 이벤트를 작성하는
TraceCompat
클래스를 추가했습니다. 추적 이벤트는 Systrace 도구를 사용하여 수집하고 시각화할 수 있습니다. - 원형 정수 배열 데이터 구조를 만드는
CircularIntArray
클래스를 추가했습니다. CircularArray
클래스에clear()
,removeFromStart()
,removeFromEnd()
메서드를 추가했습니다. 또한 이 클래스의 기존 메서드를 최종이 아닌 메서드로 변경했습니다.InputDeviceCompat
클래스의 데이터에 액세스하기 위한 도우미 클래스로InputDeviceCompat
를 추가했습니다.LayoutInflaterCompat
클래스의 데이터에 액세스하는 도우미 클래스로LayoutInflaterCompat
클래스를 추가하고LayoutInflaterFactory
인터페이스를 추가했습니다.- 중첩 스크롤을 지원하는 클래스, 메서드, 인터페이스를 추가했습니다.
- 중첩 스크롤 상위 및 하위 뷰를 구현하도록
NestedScrollingChildHelper
및NestedScrollingParentHelper
도우미 클래스가 추가되었습니다. View
서브클래스에서 구현할NestedScrollingChild
인터페이스를 추가했습니다.- 스크롤 작업을 지원하고 스크롤 관련 API를 제공하는
NestedScrollingParent
및ScrollingView
인터페이스를 추가했습니다. ViewGroupCompat
클래스에getNestedScrollAxes()
메서드를 추가했습니다.- 중첩 스크롤을 지원하도록
ViewParentCompat
클래스에 메서드를 추가했습니다. - Android의 새 버전과 이전 버전에서 모두 중첩 스크롤 상위 요소 및 하위 요소를 지원하는
NestedScrollView
클래스를 추가했습니다.
- 중첩 스크롤 상위 및 하위 뷰를 구현하도록
- 축 값과 이벤트 소스를 가져오도록
MotionEventCompat
클래스에 메서드와 상수를 추가했습니다. - 오류, 콘텐츠 무효화, 라벨에 관한 메서드를 추가하도록
AccessibilityNodeInfoCompat
클래스를 업데이트했습니다. - 애니메이션에 다음과 같은 보간 클래스(
FastOutLinearInInterpolator
,FastOutSlowInInterpolator
,LinearOutSlowInInterpolator
,LinearOutSlowInInterpolator
,PathInterpolatorCompat
)가 추가되었습니다. - 범용 레이아웃에서 구성요소 간 간격을 만들도록
Space
클래스를 추가했습니다. GridLayout 라이브러리에서 이 클래스는 지원 중단되었습니다. TextView
의 기능에 액세스하도록TextViewCompat
클래스를 추가했습니다.EdgeEffectCompat
클래스의onPull()
메서드에 변위 매개변수를 추가했습니다.
- 색상 관련 유틸리티 메서드 집합을 제공하기 위해
- v7 appcompat 라이브러리의 변경사항:
-
AppCompatAutoCompleteTextView
,AppCompatButton
,AppCompatCheckBox
,AppCompatCheckedTextView
,AppCompatEditText
,AppCompatMultiAutoCompleteTextView
,AppCompatRadioButton
,AppCompatRatingBar
,AppCompatSpinner
및AppCompatTextView
를 비롯하여 appcompat 위젯에 색조 지원이 추가되었습니다.AppCompatActivity
를 지원 라이브러리 작업 모음 기능을 사용하는 활동의 기본 클래스로 업데이트했습니다. 이 클래스는 지원 중단된ActionBarActivity
를 대체합니다.- AppCompat이 콜백을 실행할 수 있도록 구현되는
AppCompatCallback
인터페이스가 추가되었습니다. - AppCompat의 지원을 모든 활동으로 확장하는 데 사용할 수 있는 대리자로
AppCompatDelegate
추상 클래스를 추가했습니다. AppCompatDialog
클래스를 AppCompat 테마 대화상자의 기본 클래스로 추가했습니다.- AppCompat 테마
AlertDialog
를 제공하는 스피너 스타일AlertDialog
및AlertDialog.Builder
클래스를 추가했습니다. Palette
인스턴스를 생성하도록Palette.Builder
클래스를 추가했습니다.- 반환된
Palette.Builder
인스턴스로 팔레트 생성을 시작하도록Palette
클래스에from(Bitmap)
메서드를 추가했습니다. Palette.generate()
및Palette.generateAsync()
메서드를 지원 중단했습니다.
- 반환된
GridLayout.Spec
클래스에getAbsoluteAlignment()
메서드를 추가했습니다.Toolbar
스타일 지정을 위한app:theme
의 사용이 지원 중단되었습니다. 이제 모든 API 수준 7 이상 기기에서 툴바에android:theme
를 사용하고 API 수준 11 이상 기기에서 모든 위젯에android:theme
지원을 사용할 수 있습니다.
- v17 leanback 라이브러리의 변경사항:
-
- 다단계 결정 흐름 생성을 지원하기 위해
GuidedStepFragment
,GuidanceStylist
,GuidedActionsStylist
를 추가했습니다.
- 다단계 결정 흐름 생성을 지원하기 위해
- v7 recyclerview 라이브러리의 변경사항:
-
- 항목을 목록 순서로 표시하고 목록의 변경사항에 관한 알림을 제공하는
SortedList
클래스를 추가했습니다. - 정렬된 목록을
RecyclerView.Adapter
클래스에 바인딩할 수 있는SortedListAdapterCallback
클래스를 추가했습니다.
- 항목을 목록 순서로 표시하고 목록의 변경사항에 관한 알림을 제공하는
- v8 renderscript 라이브러리의 변경사항:
-
- 히스토그램 필터로 사용할
ScriptIntrinsicHistogram
클래스를 추가했습니다. - 2D 할당의 크기를 조절하도록
ScriptIntrinsicResize
클래스를 추가했습니다.
- 히스토그램 필터로 사용할
- v4 지원 라이브러리의 변경사항:
-
- 지정된 특정 리소스 ID, 화면 밀도 및 테마에 대해 드로어블 객체를 반환하도록
getDrawable()
메서드를 업데이트했습니다. - 뷰가 접근성 이벤트를 트리거해야 하는지 여부를 나타낼 수 있도록
setImportantForAccessibility()
메서드를 추가했습니다. - 상태 표시줄 배경 드로어블을 가져올 수 있도록
getStatusBarBackgroundDrawable()
메서드를 추가했습니다. - Android Auto 메시지 앱이 추가 알림 데이터를 검색할 수 있도록
NotificationCompat.CarExtender.UnreadConversation
클래스에 메서드를 추가했습니다. - 원 레이아웃의 지름을 반환하는
getProgressCircleDiameter()
메서드를 추가했습니다. - 기본
DrawerLayout
상태 표시줄 색상을colorPrimaryDark
로 변경했습니다.
- 지정된 특정 리소스 ID, 화면 밀도 및 테마에 대해 드로어블 객체를 반환하도록
- v7 appcompat 라이브러리의 변경사항:
-
- 스피너 스타일
Base_Widget_AppCompat_Spinner_Underlined
를 추가했습니다. Widget_AppCompat_AutoCompleteTextView
,MultiAutoCompleteTextView
,TextAppearance_AppCompat_Button
및Base_Widget_AppCompat_RatingBar
에 색조가 적용된 위젯 스타일을 추가했습니다.
- 스피너 스타일
- v17 leanback 라이브러리의 변경사항:
-
- 맞춤설정된 재활용 풀 크기를 허용하도록
getRecycledPoolSize()
및setRecycledPoolSize()
메서드를 추가했습니다. - 제목 아이콘의 래핑된 콘텐츠를 지원하도록 레이아웃 너비 설정에
WRAP_CONTENT
속성을 추가했습니다. - 전환 업데이트를 개선하기 위해 XML에
R.transition
를 정의했습니다. - '오른쪽에서 왼쪽' 레이아웃을 위한 지원을 사용 설정했습니다.
- 미디어 재생 및 일시중지 키 이벤트 지원을
PlaybackOverlayFragment
클래스에 추가했습니다. BrowseFragment
클래스와DetailsFragment
클래스에 Enter/Return 전환을 추가했습니다.- 객체의 어댑터 배열에서 항목을 교체하는
replace()
메서드를 추가했습니다.
- 맞춤설정된 재활용 풀 크기를 허용하도록
- v7 mediarouter 라이브러리의 변경사항:
-
- 머티리얼 디자인 스타일을 사용하도록 Google Cast 아이콘을 업데이트했습니다.
MediaRouter
대화상자에 사용된 모든 아이콘이 머티리얼 디자인 스타일을 사용하도록 업데이트되었습니다.
- v7 recyclerview 라이브러리의 변경사항:
-
RecyclerView
클래스에getlayoutPosition()
메서드와getadapterPosition()
메서드를 추가했습니다.RecyclerView
클래스의classgetChildPosition()
메서드와findViewHolderForPosition()
메서드가 지원 중단되었습니다.RecyclerView.ViewHolder
클래스의getPosition()
메서드를 지원 중단했습니다.RecyclerView.LayoutParams
클래스의getViewPosition()
메서드를 지원 중단했습니다.
- v4 지원 라이브러리의 변경사항:
-
- 웨어러블 기기의 알림에서 바코드 표시를 개선하는
NotificationCompat.WearableExtender
메서드를 추가했습니다.
- 웨어러블 기기의 알림에서 바코드 표시를 개선하는
- v4 지원 라이브러리의 변경사항:
-
- Android Auto 확장 프로그램을 지원하는
NotificationCompat.CarExtender
클래스를 알림에 추가했습니다.
- Android Auto 확장 프로그램을 지원하는
- v7 appcompat 라이브러리의 변경사항:
-
- 새 팝업 메뉴를 지원하는
PopupMenu
생성자를 추가했습니다. Toolbar
클래스에 접기 아이콘 설명 지원을 추가했습니다.commitIcon
표시를 지원하도록SearchView
위젯을 업데이트했습니다.Toolbar
클래스에서buttonGravity
속성을 삭제했습니다.
- 새 팝업 메뉴를 지원하는
- v7 cardview 라이브러리의 변경사항:
-
CardView
의 배경 색상 변경을 지원하는setCardBackgroundColor(ColorStateList)
API를 추가했습니다.- 불투명도 값을
TRANSLUCENT
로 더 정확하게 보고하도록CardView
를 변경했습니다.
- v7 recyclerview 라이브러리의 변경사항:
-
- 페이징을 위한 터치 슬롭 구성을 지원하도록
RecyclerView
클래스에TOUCH_SLOP_DEFAULT
및TOUCH_SLOP_PAGING
상수를 추가했습니다.
- 페이징을 위한 터치 슬롭 구성을 지원하도록
- v17 leanback 라이브러리의 변경사항:
-
- V4 코드 프래그먼트 생성 지원을 추가했습니다.
CardView
에서 보조 텍스트 색상을 변경했습니다.
- Android 5.0 미만에서 멀티덱스 파일 지원을 위해 여러 Dalvik Executable (DEX) 파일을 지원하도록 멀티덱스 지원 라이브러리를 추가했습니다.
- v4 지원 라이브러리의 변경사항:
-
- Android 5.0 (API 수준 21)을 실행하는 기기의
Fragment
전환 지원이 추가되었습니다. 전환이 Android 4.4 이하를 실행하는 기기에는 영향을 미치지 않습니다. - 문서 트리를 사용하는 동안
File
에서 쉽게 전환할 수 있도록DocumentFile
를 추가했습니다. 그러나 이 클래스는 Android 4.4 (API 수준 19)에 추가된 플랫폼의DocumentsContract
API에 비해 더 많은 처리 오버헤드가 필요합니다. 따라서 Android 4.4 이상에서 실행할 때는DocumentsContract
사용으로 전환해야 합니다.
- Android 5.0 (API 수준 21)을 실행하는 기기의
- 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 라이브러리:
-
BrowseFragment
,DetailsFragment
,PlaybackOverlayFragment
를 포함하여 TV 사용자 인터페이스를 빌드하기 위한 지원이 추가되었습니다. 이러한 사용자 인터페이스 위젯 사용에 관한 자세한 내용은 TV 재생 앱 빌드를 참고하세요.
- v4 지원 라이브러리의 변경사항:
-
NotificationCompat.WearableExtender
에 Android Wear의 알림 지원을 확장했습니다. 이를 통해 알림에 웨어러블 관련 기능을 지정할 수 있습니다.- 웨어러블 알림에 작업을 추가할 수 있는
NotificationCompat.Action.WearableExtender
를 추가했습니다. NotificationManagerCompat
를 추가하여 웨어러블 기능을 올바르게 지원하는 알림을 발행할 수 있습니다.- 휴대기기가 웨어러블 기기에 표시되는 알림에서 음성 입력을 수신할 수 있도록
RemoteInput
를 추가했습니다. SwipeRefreshLayout
의 터치 피드백 처리를 개선했습니다.
- v4 지원 라이브러리의 변경사항:
-
- 사용자가 세로 스와이프 동작으로 뷰의 콘텐츠를 새로고침할 수 있는
SwipeRefreshLayout
클래스를 추가했습니다. - 탐색 창과 관련된 접근성 문제를 해결했습니다.
- 사용자가 세로 스와이프 동작으로 뷰의 콘텐츠를 새로고침할 수 있는
- v7 appcompat 라이브러리의 변경사항:
-
- 작업 모음의 배경 문제를 해결했습니다.
- v4 지원 라이브러리의 변경사항:
-
- 인쇄 비동기 처리를 추가하여
PrintHelper
를 개선했습니다. addChildrenForAccessibility()
메서드의DrawerLayout
클래스 근사치를 수정했습니다.ActionBarDrawerToggle
의 슬라이드 드로어블 미러링을 수정했습니다.- 컬렉션 반복자에서 항목을 삭제할 때 발생하는 off-by-one 문제를 해결했습니다.
- 인쇄 비동기 처리를 추가하여
- v7 mediarouter 라이브러리의 변경사항:
-
MediaRouteProvider.ProviderMetadata
에서 전체 구성요소 이름을 사용하여 경로 식별을 향상했습니다.- 사용 중지된 경로를 숨기도록
MediaRouteChooserDialog
를 업데이트했습니다.
- v8 renderscript 라이브러리의 변경사항:
-
- RenderScript 썽킹 레이어의 오류 전파를 추가했습니다.
- v4 지원 라이브러리의 변경사항:
-
getObbDirs()
,getExternalFilesDirs()
,getExternalCacheDirs()
,getStorageState()
를 통해 외부 Storage API 지원을 추가했습니다. 이러한 도우미 메서드는 Android 4.3 (API 수준 18) 이하를 실행하는 기기에서 항상 단일 파일 객체를 반환합니다. Android 4.4 (API 수준 19) 이상에서 실행되는 경우 이러한 메서드가 파일 객체를 두 개 이상 반환할 수도 있습니다.- Print API와 함께 작동하여 최소한의 코드로 이미지를 인쇄하는
PrintHelper
클래스를 추가했습니다. - 팝업 메뉴에 드래그하여 열기 사용자 인터페이스 지원을 추가했습니다. 자세한 내용은
PopupMenuCompat
및ListPopupWindowCompat
를 참조하세요. AccessibilityNodeProviderCompat
에findFocus()
메서드를,AccessibilityNodeInfoCompat
에getLiveRegion()
메서드를 추가하여 접근성 지원을 개선했습니다.- 새로운 크기 조정 동작 메서드에 액세스하기 위한 도우미 클래스
ScaleGestureDetectorCompat
를 추가했습니다. - 오른쪽에서 왼쪽으로 언어 표시에서
ActionBarDrawerToggle
의 문제가 해결되었습니다. - 터치 이벤트를 사용하거나 다른 뷰로 전달할 수 있도록
AutoScrollHelper
옵션을 수정했습니다.
- v7 mediarouter 라이브러리의 변경사항:
-
- 미디어 재생 대기열, HTTP 헤더 값 및 미디어 재생 시간 설정에 관한 지원을 추가했습니다.
- 미디어 라우터를 사용하여 미디어 재생 세션을 명시적으로 관리하기 위한 명시적인 세션 시작, 가져오기, 종료 작업이 추가되었습니다.
- v4 지원 라이브러리의 변경사항:
-
- 사용자 인터페이스
- 오른쪽에서 왼쪽 및 왼쪽에서 오른쪽 형식의 텍스트를 결합하는 텍스트 문자열을 처리하도록
BidiFormatter
를 추가했습니다. - 초기 레이아웃 처리에서 페이저의 측정 너비가 0인 경우를 더 잘 처리하도록
ViewPager
를 수정했습니다. - 프로젝트 코드를 수정하는 동안 측정 예외가 발생하지 않도록
DrawerLayout
및SlidingPaneLayout
가 수정되었습니다.
- 오른쪽에서 왼쪽 및 왼쪽에서 오른쪽 형식의 텍스트를 결합하는 텍스트 문자열을 처리하도록
- 접근성
- 맞춤 뷰의 접근성 구현을 간소화하기 위해
ExploreByTouchHelper
를 추가했습니다. ViewPager
가TYPE_VIEW_SCROLLED
접근성 이벤트를 잘못 채우는 문제가 해결되었습니다.- 접근성 이벤트를 채울 때
ViewPager
에서 발생하는 null 포인터 예외가 수정되었습니다. CharSequence
입력을String
객체로 변경하여AccessibilityNodeInfoCompat
를 간소화했습니다.Object
를 입력으로 사용하는AccessibilityRecordCompat
생성자를 지원 중단했습니다.
- 맞춤 뷰의 접근성 구현을 간소화하기 위해
- 미디어
- 재생, 일시중지, 건너뛰기, 기타 미디어 작업과 같은 미디어 전송 컨트롤을 관리하는
TransportMediator
도우미 클래스를 추가했습니다. - 하나 이상의 기기 디스플레이에 관한 디스플레이 출력을 관리하도록
DisplayManagerCompat
를 추가했습니다.
- 재생, 일시중지, 건너뛰기, 기타 미디어 작업과 같은 미디어 전송 컨트롤을 관리하는
- 기타 변경사항
- 핸드오프가 완료되기 전에 기기가 절전 모드로 돌아가지 않도록 하면서 기기 wakeup 이벤트를 감지하고 작업을
Service
에 전달하는 일반적인 패턴을 구현하는WakefulBroadcastReceiver
도우미 클래스를 추가했습니다. - 이후에 취소되는 데이터 변경사항의 백그라운드 업데이트를 처리하기 위해 새로운 API 두 개(
commitContentChanged()
및rollbackContentChanged()
)가AsyncTaskLoader
에 추가되었습니다.
- 핸드오프가 완료되기 전에 기기가 절전 모드로 돌아가지 않도록 하면서 기기 wakeup 이벤트를 감지하고 작업을
- 사용자 인터페이스
- 새로운 v7 appcompat 라이브러리:
- 새로운 v7 mediarouter 라이브러리:
-
Google Cast 개발자 프리뷰 지원을 제공하는 새로운 mediarouter 라이브러리를 추가했습니다. v7 mediarouter 라이브러리 API는 현재 기기에서 외부 화면, 스피커 및 기타 대상 기기로 미디어 채널 및 스트림의 라우팅을 제어하는 수단을 제공하며 Android 2.1(API 수준 7)과 호환됩니다. 자세한 내용은 V7 mediarouter 라이브러리를 참고하세요.
지원 라이브러리 r18에 도입된 v7 mediarouter 라이브러리 API는 지원 라이브러리의 이후 버전에서 변경될 수 있습니다. 현재는 Google Cast 개발자 미리보기와 연결해서만 라이브러리를 사용하는 것이 좋습니다.
- v4 지원 라이브러리의 변경사항:
-
- 창의 가장자리에서 가져올 수 있는 탐색 창을 만들기 위해
DrawerLayout
를 추가했습니다. - 연결된 요약 및 다양한 화면 크기에 맞게 적절하게 조정되는 세부정보 뷰를 만드는
SlidingPaneLayout
위젯을 추가했습니다. DrawerLayout
및ActionBar
의 함수를 연결하는 방법으로ActionBarDrawerToggle
를 추가했습니다.- 상위 뷰 내에서 뷰를 드래그하기 위한 새로운 공통 구성요소로
ViewDragHelper
를 추가했습니다. ScrollerCompat
를 추가하여Scroller
및OverScroller
호환성 지원을 제공합니다.- 애플리케이션 간에 비공개 파일을 공유할 수 있도록
FileProvider
가 추가되었습니다. notifyDataSetChanged()
를 호출하지 않고 관련PagerAdapter
클래스가 수정되면 예외가 발생하도록ViewPager
를 업데이트했습니다.ViewPager
하위 요소 그리기 정렬 순서 문제를 해결했습니다.- 탭 시간 제한과 길게 누르기 이벤트 사이에 누락된
onSingleTapConfirmed(MotionEvent)
호출을 전달하도록GestureDetectorCompat
가 수정되었습니다.
- 창의 가장자리에서 가져올 수 있는 탐색 창을 만들기 위해
- 새로운 v7 gridlayout 라이브러리:
-
GridLayout
를 추가하여GridLayout
레이아웃 객체를 지원합니다.GridLayout
레이아웃 객체 내에 빈 영역을 만드는 데 사용할 수 있는android.support.v7.widget.Space
가 추가되었습니다.
- v4 지원 라이브러리의 변경사항:
-
ViewPager
의 상호작용 동작을 향상했습니다.ViewPager
에서 잘못된 페이지를 선택하게 하는 버그가 수정되었습니다.ViewPager
레이아웃 도중의removeView()
메서드 사용을 해결합니다.- 뒤로 버튼을 사용하여 닫을 때 검색 텍스트가 지워지지 않는
SearchViewCompat
문제를 해결했습니다. 이 수정사항은 호스트 API 수준 14 이상에만 적용됩니다.
- v4 지원 라이브러리의 변경사항:
-
- 사용자 인터페이스
- 중첩된
Fragment
클래스를 위한 지원을 추가했습니다. FragmentManager
디버깅 개선사항을 추가했습니다.- 프래그먼트와 탭 상호작용으로 인해
ListView
상태 손실이 발생할 수 있는FragmentTabHost
의 문제가 해결되었습니다. FragmentStatePagerAdapter
에서 사용자에게 표시되는 힌트 관련 문제가 해결되었습니다.- 애플리케이션이 스크롤을 위한 맞춤 전환 동작을 제공할 수 있도록
ViewPager
에PageTransformer
인터페이스를 추가했습니다. - 현재 버전의
TaskStackBuilder
에 새로운 기능 및 수정사항이 추가되었습니다. - 현재 사용 중인
PagerAdapter
를 올바르게 추적하도록PagerTitleStrip
가 수정되었습니다. PagerTitleStrip
에서 디스플레이 깜박임, 위치 지정 및 텍스트 잘림 문제를 수정했습니다.- 밑줄을 그릴 때 패딩이 올바르게 적용되도록
PagerTabStrip
를 수정했습니다.
- 중첩된
- 접근성
AccessibilityEventCompat
에 새로운 접근성 동작 및 터치 이벤트 유형 지원을 추가했습니다.ViewCompat
에 새로운 접근성 API 지원을 추가했습니다.ViewCompat
에performAccessibilityAction()
메서드 지원을 추가했습니다.
GestureDetectorCompat
동작 지원을 추가했습니다.- 새로운
AtomicFile
클래스를 사용하여 파일에서 원자적 작업을 실행하기 위한 지원이 추가되었습니다. IntentCompat
에 전체make
메서드 세트 지원이 추가되었습니다.LruCache
유틸리티 클래스에trimToSize()
메서드를 추가했습니다.CONNECTIVITY_ACTION
브로드캐스트에서 NetworkInfo를 가져오도록ConnectivityManagerCompat
를 업데이트했습니다.
- 사용자 인터페이스
- v4 지원 라이브러리의 변경사항:
-
NotificationCompat
외에 Android 4.1 (API 수준 16)에 도입된 알림 기능 지원이 추가되었습니다.
- v4 지원 라이브러리의 변경사항:
-
- 사용자 인터페이스 지원
PagerTabStrip
지원이 추가되어PagerTitleStrip
이상의 향상된 기능을 제공합니다.setAllCaps
옵션, 제목 정렬, 디자인 개선, 최소 너비 제약, 터치 탐색 문제를 비롯한PagerTitleStrip
및PagerTabStrip
의 다양한 버그를 수정했습니다.ViewPager
클래스가 지도와 같이 가로 스크롤 범위가 큰 콘텐츠에 페이징을 지원할 수 있도록ViewPager
페이지 여백에 관한 지원을 추가했습니다.- 크기 및 데이터 세트 변경 문제, 페이지 배치, 사용자 상호작용, 스크롤 추적, 키보드 탐색 문제를 비롯한
ViewPager
의 여러 버그를 수정했습니다. - 타겟 프래그먼트가 더 이상 존재하지 않을 때
onActivityResult()
를 적절하게 처리하고, 보이지 않는 프래그먼트에 선택 이벤트를 전달하고,FragmentTransaction.replace()
동작을 개선하고, 뷰 밖으로 이동하는 프래그먼트의 상태 처리 개선 등Fragment
의 여러 버그를 수정했습니다. ViewCompat
에postOnAnimation()
메서드 지원을 추가했습니다.- 사용 가능한 경우 Android 4.1 (API 수준 16) 위로 탐색 기능을 사용하도록
NavUtils
를 업데이트했습니다.
- 접근성
- Android 4.1 (API 수준 16)의 수정사항을 따르도록
AccessibilityNodeInfoCompat
등의 접근성 지원 클래스를 업데이트했습니다. ViewPager
에 접근성 스크롤 작업 지원을 추가했습니다.
- Android 4.1 (API 수준 16)의 수정사항을 따르도록
- 일반적인 개선사항
- Android 4.1 (API 수준 16)의 API 변경사항을 반영하도록
TaskStackBuilder
를 업데이트했습니다. - 서비스에서 사용할 수 있도록
TaskStackBuilder
가 향상되었습니다. ShareCompat
에EXTRA_HTML_TEXT
지원을 추가했습니다.setNumber()
메서드를 지원하도록NotificationCompat.Builder
를 업데이트했습니다.ConnectivityManagerCompat
에isActiveNetworkMetered()
메서드 지원을 추가했습니다.
- Android 4.1 (API 수준 16)의 API 변경사항을 반영하도록
- 사용자 인터페이스 지원
- v4 지원 라이브러리의 변경사항:
-
TaskStackBuilder
에 의해 생성된PendingIntent
객체의 인텐트 플래그가 수정되었습니다.- API 수준 7 이상에서 라이브러리를 빌드할 수 있도록 그리드layout 라이브러리 프로젝트에서 사용되지 않는 속성이 삭제되었습니다.
- 그리드 레이아웃 라이브러리 프로젝트를 위한
.classpath
및.project
파일이 추가되었습니다.
- v4 지원 라이브러리의 변경사항:
-
ShareCompat
가 추가되었습니다. 이 클래스는 소셜 공유 애플리케이션의 콘텐츠 송수신을 위한 도우미 클래스를 제공합니다. 여기에는 공유 데이터의 소스 앱에 기여하는 새로운 메타데이터도 포함됩니다. 이 클래스는 Android 4.0의 새로운ShareActionProvider
와의 호환 통합도 제공합니다.- 탐색을 위한 Android 디자인 가이드라인 구현을 지원하기 위해
NavUtils
및TaskStackBuilder
를 추가했습니다. 이러한 추가사항에는 버전 간에 작업 모음의 위로 버튼을 구현하는 방법이 포함됩니다. 이 패턴의 구현 예는 AppNavigation 샘플(<em><sdk></em>/samples/<em><platform></em>/AppNavigation
)을 참고하세요. - 표준화된 시스템 알림을 만들기 위해 Android 3.0의
Notification.Builder
도우미 클래스의 호환성 구현을 제공하기 위해NotificationCompat.Builder
를 추가했습니다.
- v4 지원 라이브러리의 변경사항:
-
- ViewPager의 변경사항:
ViewPager
용 추가 장식 뷰 지원을 추가했습니다. 장식 뷰는 XML 레이아웃에서 페이저의 하위 뷰로 제공될 수 있습니다.- 페이지의 제목 문자열을 제공하기 위해
PagerAdapter.getPageTitle()
를 추가했습니다. 기본적으로 각 페이지의 제목은 없음입니다. - ViewPager의 하위 요소로 추가할 수 있는 비대화형 제목 스트립인
PagerTitleStrip
이 추가되었습니다. 개발자는 텍스트 모양과 색상, 레이아웃 크기 및 중력 정보를 제공할 수 있습니다. - 어댑터 구현에서 클래스 캐스팅을 방지하기 위해 View가 아닌 ViewGroup 객체를 사용하도록
PagerAdapter
메서드를 업데이트했습니다. - 런처 스타일의 플링 동작을 사용하도록
ViewPager
를 업데이트했습니다. - 사용자 인터페이스 상호작용 및 테스트 자동화와 관련된 버그를 수정했습니다.
- 프래그먼트 지원:
setStartDeferred()
메서드를setUserVisibleHint(boolean)
로 변경했습니다.- 성능을 개선하기 위해 화면 밖 페이지의 지연 시작 기능을 추가했습니다.
- Accessibility API 지원:
- null 대신 빈 목록을 반환하도록
AccessibilityDelegateCompat
메서드를 업데이트했습니다. - v4 샘플에 필요한 새 API를 추가했습니다.
- null 대신 빈 목록을 반환하도록
- ViewPager의 변경사항:
- v4 지원 라이브러리의 변경사항:
-
- Accessibility API 지원:
View.AccessibilityDelegate
를 지원하는AccessibilityDelegateCompat
를 추가했습니다.AccessibilityEvent
를 지원하는AccessibilityEventCompat
를 추가했습니다.AccessibilityManager
를 지원하는AccessibilityManagerCompat
를 추가했습니다.AccessibilityNodeInfo
를 지원하는AccessibilityNodeInfoCompat
를 추가했습니다.AccessibilityRecord
를 지원하는AccessibilityRecordCompat
를 추가했습니다.AccessibilityServiceInfo
를 지원하는AccessibilityServiceInfoCompat
를 추가했습니다.ViewGroup
의 접근성 기능을 지원하는ViewGroupCompat
를 추가했습니다.View
의 접근성 기능을 지원하도록ViewCompat
를 수정했습니다.
- ViewPager의 변경사항:
- 페이지 간 여백 지원을 추가했습니다.
여백을 채우도록 선택사항인
Drawable
를 제공할 수 있습니다. EdgeEffect
지원을 추가했습니다.- 키보드 탐색 지원을 추가했습니다.
- 현재 페이지의 양쪽에 유지되는 페이지 수를 제어하는 지원을 추가했습니다.
- 터치 물리학을 향상했습니다.
- 사용자 인터페이스 동작과 관련된 버그를 수정했습니다.
- 페이지 간 여백 지원을 추가했습니다.
여백을 채우도록 선택사항인
- Accessibility API 지원:
- v4 지원 라이브러리의 변경사항:
-
EdgeEffect
를 지원하는EdgeEffectCompat
를 추가했습니다.- 애플리케이션이 전역적으로 브로드캐스트하지 않고도 단일 애플리케이션 내에서 인텐트를 쉽게 등록하고 수신할 수 있도록
LocalBroadcastManager
를 추가했습니다. - Android 2.3 이상에서
View
의 오버스크롤 모드를 확인하고 설정하는 지원을ViewCompat
에 추가했습니다. - 프래그먼트 API 변경사항:
- 새 메뉴의 가시성을 제어하는 새 API를 추가했습니다.
- 맞춤 애니메이션 API를 추가했습니다.
- 비구성 맞춤 인스턴스 데이터를 보존하기 위해
FragmentActivity
에 API를 추가했습니다. - 다양한 버그를 수정했습니다.
- Froyo 및 이전 버전의 플랫폼에서 실행할 때
AsyncTask
를 취소할 때 문제를 일으키는Loader
버그가 수정되었습니다. 이제 지원 코드가 자체 버전의AsyncTask
를 사용하여 모든 플랫폼 버전에서 동일한 동작을 유지합니다.
- 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 지원 라이브러리:
-
- 가로 페이징을 지원하는
FragmentPagerAdapter
및FragmentStatePagerAdapter
를 포함합니다.이는 v4 지원 라이브러리에 추가된 API와 완전히 동일하지만 Android 3.2의 다른 플랫폼 구성요소를 사용합니다. Android 3.2 이상용으로 개발하는 경우 v4 대신 이 라이브러리를 사용하세요 (v4 라이브러리의 다른 모든 API는 이미 API 수준 13에서 사용할 수 있음).
- 가로 페이징을 지원하는
- v4 라이브러리의 변경사항:
-
- 프래그먼트 애니메이션 지원
Fragment.onActivityResult()
버그 수정
버전 22
2015년 3월
버전 21.0.3
2014년 12월
버전 21.0.2
2014년 11월
버전 21.0.1
2014년 11월
버전 21
2014년 10월
버전 20
2014년 7월
버전 19.1.0
2014년 3월
버전 19.0.1
2013년 12월
버전 19
2013년 10월
버전 18
2013년 7월
버전 13
2013년 5월
버전 12
2013년 2월
버전 11
2012년 11월
버전 10
2012년 8월
버전 9
2012년 6월
버전 8
2012년 4월
버전 7
2012년 3월
버전 6
2011년 12월
참고: 이제 지원 라이브러리 API의 참조를 프레임워크 참조(예: android.support.v4.app
)에서 사용할 수 있습니다.
버전 5
2011년 12월
버전 4
2011년 10월
버전 3
2011년 7월
버전 2
2011년 5월
버전 1
2011년 3월
v4 라이브러리의 최초 버전입니다.