WindowManager
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
2024년 9월 4일 | 1.3.0 | - | - | 1.4.0-alpha02 |
종속 항목 선언
WindowManager의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.4
버전 1.4.0-alpha02
2024년 9월 4일
androidx.window:window-*:1.4.0-alpha02
이 출시되었습니다. 버전 1.4.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
맞춤 WindowSizeClass
지원을 추가합니다.
- 개발자가 자체 생성자를 사용할 수 있도록
WindowSizeClass
의 생성자를 엽니다. - 개발자가 다양한
WindowSizeClass
값을 처리할 수 있도록isAtLeast
유틸리티 메서드를 추가합니다. Set<WindowSizeClass>
에 확장 함수를 추가하여 세트에서 최적 일치를 계산합니다.- Android 권장 중단점의 상수를 추가합니다.
- Android 권장 중단점에 상응하는 중단점 세트를 추가합니다.
API 변경사항
WindowSizeClass
의 경계 메서드 이름을 업데이트합니다. 추가했습니다. (If89a6)- 향후 새 중단점 값 추가를 지원하도록
WindowSizeClass
API를 업데이트합니다. 절대적인 경계 대신 하한을 사용하며 개발자는WindowSizeClass
를 처리할 때 하한 검사를 사용하는 것이 좋습니다. 기존WindowWidthSizeClass
및WindowHeightSizeClass
는 더 이상 개발되지 않으므로 지원 중단됩니다. 추가했습니다. (I014ce)
버전 1.4.0-alpha01
2024년 8월 7일
androidx.window:window-*:1.4.0-alpha01
이 출시되었습니다. 버전 1.4.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- ActivityStack 고정을 사용하면 앱이 한 컨테이너에 콘텐츠를 고정하고 다른 컨테이너와 탐색을 분리할 수 있습니다.
- 대화형 구분선을 사용하면 분할 프레젠테이션의 두 활동 사이에 고정되거나 드래그 가능한 구분선을 표시할 수 있습니다.
- 전체 화면 대화상자 어둡게 하기를 사용하면 앱에서 대화상자 어둡게 하기 영역을 지정하여 전체 작업 창을 어둡게 하거나 대화상자를 표시하는 컨테이너만 어둡게 할 수 있습니다.
- 삽입된 활동 창 정보 콜백을 사용하면 앱이 삽입된 활동 창의 업데이트를 지속적으로 수신할 수 있습니다.
- 애니메이션 배경 삽입을 사용하면 앱에서 애니메이션 배경을 지정하여
ActivityEmbedding
사용 시 전환 애니메이션 품질을 개선할 수 있습니다. - 개선된 ActivityStack 관리를 통해
ActivityEmbedding
가 사용될 때 앱에서 다음과 같이ActivityStacks
를 더욱 세밀하게 제어할 수 있습니다. - 지정된
ActivityStack
로 활동 실행 ActivityStack
완료 중
API 변경사항
새 API
WindowInfoTracker#supportedPostures
:- 기기가 폴더블의 테이블탑 모드를 지원하는지 확인하는 API입니다. WindowAreaSessionPresenter#getWindow 추가
ActivityStack
고정을 지원하는 API를 추가합니다.SplitPinRule
클래스SplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
API를 추가하여 대화형 구분선 사용 설정 및 구성
DividerAttributes
클래스SplitAttributes.Builder#setDividerAttributes
대화상자에
EmbeddingConfiguration
및DimAreaBehavior
를 설정하는 API 추가EmbeddingConfiguration
클래스DimAreaBehavior
클래스ActivityEmbeddingController#setEmbeddingConfiguration
삽입된 활동 창 정보 업데이트를 수신하는 API 추가
EmbeddedActivityWindowInfo
클래스ActivityEmbeddingController#embeddedActivityWindowInfo
애니메이션 배경 삽입을 설정하는 API 추가
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
API를 추가하여
ActivityStacks
완료ActivityEmbeddingController#finishActivityStacks
ActivityStack
실행을 설정하는 API 추가ActivityEmbeddingOptions#setLaunchingActivityStack
다음 API는 안정적이며 더 이상 실험용이 아닙니다.
ActivityEmbeddingController#invalidateVisibleActivityStacks
(SplitController#invalidateTopVisibleSplitAttributes에서 이동됨)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
버전 1.4. 추가했습니다. (I56774)
버그 수정
- 세션이 활성 상태일 때 ACTIVE 대신 UNAVAILABLE이 반환되는 특정 기기에서 버그를 수정합니다.
- 불안정한 API 지원으로 인해
vendorApiLevel
가 2인 기기에서transferActivityToWindowArea
지원을 삭제합니다. - 활동 삽입에 드래그 가능한 구분선을 위해 드래그하여 전체 화면으로 사용할 수 있도록 하는 API를 도입했습니다. 추가했습니다. (I645c9)
- 앱이
SplitAttributes
의 애니메이션 매개변수를 통해ActivityEmbedding
애니메이션을 사용 중지하도록 허용합니다. 추가했습니다. (Idc01a) - 새 플랫폼 API에 대한 액세스에 관한 수동 개요가 삭제되었습니다. 이는 AGP 7.3 이상 (예: R8 버전 3.3)과 함께 R8을 사용할 때 API 모델링을 통해, 그리고 AGP 8.1 이상을 사용할 때 (예: D8 버전 8.1) 모든 빌드에 대해 자동으로 발생하기 때문입니다. AGP를 사용하지 않는 클라이언트는 D8 버전 8.1 이상으로 업데이트하는 것이 좋습니다. 자세한 내용은 이 도움말을 참조하세요. 추가했습니다. (Ia60e0, b/345472586)
- 기기에서 애니메이션 전환에 사용할 수 있도록 확장 프로그램이
SplitAttributes
의 애니메이션 매개변수를 사용하도록 허용합니다. 추가했습니다. (Iede00) - 오버레이 API를 숨깁니다. (Ic4251)
- API를 도입하여 분할의 고정 또는 드래그 가능한 구분선을 구성합니다. (Ia7a78)
WindowMetrics
에 밀도를 추가했습니다. (Id6723)SupportedPostures
를 가져오는 API를 추가합니다. 추가했습니다. (If557a)- 실험용 API에서
setLaunchingActivityStack
를 삭제합니다. (I191cf) ActivityEmbeddingController#embeddedActivityWindowInfo
를 도입했습니다. (I24312)#getToken
를 지원 중단하고#getActivityStackToken
를 추가합니다. (Ie0471)embeddedActivityWindowInfo
흐름 API용 콜백 어댑터를 도입했습니다. (Ida77f)- overlayInfo 흐름 API용 콜백 어댑터를 추가합니다. (I7264f)
WindowSdkExtensionsRule
를 도입하여 테스트를 위해extensionsVersion
를 재정의합니다. 추가합니다. (Ifb928)- -
ActivityOptionsCompat
사용과 호환되도록#setLaunchingActivityStack
를 Bundle로 이전합니다.- 사용자는
ActvityOptions
자체 대신activityOptions.toBundle
를 전달해야 합니다. #setLaunchingActivityStack(Activity)
가 삭제됩니다. 사용자는ActivityEmbeddingController#getActivityStac(Activity)
를 사용하여ActivityStack
를 가져오고ActivityStack
를#setLaunchingActivityStack
에 전달하도록 이전해야 합니다. 추가합니다. (Ie0ccc)
- 사용자는
- - WM Jetpack과 확장 프로그램 간에 통신하기 위한 식별자로
ActivityStack.Token
및SpltInfo.Token
를 도입합니다.- API를 지원 중단/교체하여 IBinder 대신 토큰을 사용/반환합니다. 추가했습니다. (I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacks
소개 <ph type="x-smartling-placeholder">- </ph>
- 기능이
#invalidateVisibleActivityStacks
로 통합되었으므로SplitController#invalidateTopVisibleSplitAttributes
를 삭제합니다. (I02ef5)
- 기능이
- - 임베딩 구성을 설정하는 API 추가 추가했습니다. (I59a4a)
- - 상단
ActivityStack
androidx.Window
API 고정/고정 해제 <ph type="x-smartling-placeholder">- </ph>
- 상단
ActivityStack
를 고정/고정 해제할 수 있도록 데모 앱을 업데이트합니다. (I24dd3)
- 상단
#finishActivityStacks
및ActivityEmbeddingOptions
를 다시 추가합니다. (Ic1ab3)- 불안정한 API를 삭제합니다. 추가합니다. (Ibc534, b/302380585)
버전 1.3
버전 1.3.0
2024년 5월 29일
androidx.window:window-*:1.3.0
이 출시되었습니다. 버전 1.3.0에 포함된 커밋을 확인하세요.
1.2.0 이후 중요 변경사항
- 창 크기 클래스를 위한 Kotlin 멀티플랫폼 지원
버전 1.3.0-rc01
2024년 5월 14일
WindowManager
Jetpack 1.3에서는 WindowSizeClass
기능을 위한 Kotlin 멀티플랫폼 지원과 여러 버그 수정이 추가되었습니다.
androidx.window:window-*:1.3.0-rc01
이 출시되었습니다. 버전 1.3.0-rc01에 포함된 커밋을 확인하세요.
버전 1.3.0-beta02
2024년 5월 1일
androidx.window:window-*:1.3.0-beta02
이 출시되었습니다. 버전 1.3.0-beta02에 포함된 커밋을 확인하세요.
API 변경사항
- 맞춤
WindowSizeClass
생성 및 사용 지원을 삭제했습니다. (Id1143)
버그 수정
- proguard가 특정 기기 구현에서 일부 파일을 제거하여 발생하는
KotlinReflectionInternalError
을 수정합니다. 추가했습니다. (I01b02)
버전 1.3.0-beta01
2024년 4월 3일
androidx.window:window-*:1.3.0-beta01
이 출시되었습니다. 버전 1.3.0-beta01에 포함된 커밋을 확인하세요.
버전 1.3.0-alpha03
2024년 3월 6일
androidx.window:window-*:1.3.0-alpha03
이 출시되었습니다. 버전 1.3.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
WindowSizeClassUtil
를 좀 더 구체적인 메서드로 분할합니다. 추가했습니다. (Ie9292)WindowSizeClass#compute
를 복원합니다. (I21355, b/324293374)
버그 수정
- 제공된 컨텍스트가 올바르게 래핑 해제되지 않았을 때 발생하는 비정상 종료 문제를 수정합니다. 추가했습니다. (94d10ce , b/318787482)
버전 1.3.0-alpha02
2024년 2월 7일
androidx.window:window-*:1.3.0-alpha02
이 출시되었습니다. 버전 1.3.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
- 자체 크기 클래스를 사용하려는 개발자의 유연성을 개선하기 위해 Window Size Class API의 API 노출 영역이 업데이트되었습니다.
API 변경사항
- 너비 선택기에 높이 제약 조건을 추가합니다. 추가했습니다. (I23393)
- 세트에서
WindowSizeClass
를 선택하는 유틸리티 함수를 추가합니다. 개발자가 자체 선택기를 작성할 수 있도록 실험용 점수 함수를 추가합니다. 지정된 경계 내에서 가장 넓은WindowSizeClass
를 선택하는 선택기 확장 함수를 추가합니다. 추가했습니다. (I0c944) - 맞춤 중단점을 추가할 수 있도록
WindowSizeClass
생성자를 엽니다. 추가했습니다. (Ic1ff3) - 편의 함수를 추가하여 너비, 높이, 밀도로 크기 클래스를 만듭니다. 추가했습니다. (If67f4)
버그 수정
- 부동 소수점 값이 0으로 잘릴 때 발생하는 예외를 수정했습니다. (272ffac)
버전 1.3.0-alpha01
2023년 11월 15일
androidx.window:window-*:1.3.0-alpha01
이 출시되었습니다. 버전 1.3.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 후면 화면에 액세스하기 위한 실험용 창 API를 노출합니다.
- 이제
FoldingFeature
생성을 위한 테스트 API가 안정화되었습니다. - 가짜
ActivityEmbedding
값 설정을 위한 테스트 API가 이제 안정화되었습니다. WindowLayoutInfoPublisherRule
는 이제UiContext
에서 값을 가져올 때 재정의를 보고합니다.WindowInfoTracker
는 접기 기능 데이터를UiContext
매개변수로 보고합니다.- 기기에서 확장 프로그램 버전을 노출합니다.
- 사용자 앱별 재정의를 위한
WindowProperties
상수: <ph type="x-smartling-placeholder">- </ph>
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— 다음을 알립니다. 앱이 사용자 대상 가로세로 비율 호환성을 선택 해제한 시스템 재정의해야 합니다.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— 정보 앱이 사용자의 전체 화면 옵션을 선택 해제한 시스템 가로세로 비율 호환성 재정의 설정
버전 1.2
버전 1.2.0
2023년 11월 15일
androidx.window:window-*:1.2.0
이 출시되었습니다. 버전 1.2.0에 포함된 커밋을 확인하세요.
1.1.0 이후 중요 변경사항
- 후면 화면에 액세스하기 위한 실험용 창 API를 노출합니다.
- 이제
FoldingFeature
생성을 위한 테스트 API가 안정화되었습니다. - 가짜
ActivityEmbedding
값 설정을 위한 테스트 API가 이제 안정화되었습니다. WindowLayoutInfoPublisherRule
는 이제UiContext
에서 값을 가져올 때 재정의를 보고합니다.WindowInfoTracker
는 접기 기능 데이터를UiContext
매개변수로 보고합니다.- 기기에서 확장 프로그램 버전을 노출합니다.
버전 1.2.0-rc01
2023년 11월 1일
androidx.window:window-*:1.2.0-rc01
이 출시되었습니다. 버전 1.2.0-rc01에 포함된 커밋을 확인하세요.
새로운 기능
- 후면 화면에 액세스하기 위한 실험용 창 API를 노출합니다.
- 이제
FoldingFeature
생성을 위한 테스트 API가 안정화되었습니다. - 가짜
ActivityEmbedding
값 설정을 위한 테스트 API가 이제 안정화되었습니다. WindowLayoutInfoPublisherRule
는 이제UiContext
에서 값을 가져올 때 재정의를 보고합니다.WindowInfoTracker
는 접기 기능 데이터를UiContext
매개변수로 보고합니다.- 기기에서 확장 프로그램 버전을 노출합니다.
버전 1.2.0-beta04
2023년 10월 18일
androidx.window:window-*:1.2.0-beta04
이 출시되었습니다. 버전 1.2.0-beta04에 포함된 커밋을 확인하세요.
API 변경사항
- 불안정한 API를 삭제합니다. 추가합니다. (Ibc534, b/302380585)
버전 1.2.0-beta03
2023년 9월 20일
androidx.window:window-*:1.2.0-beta03
이 출시되었습니다. 버전 1.2.0-beta03에 포함된 커밋을 확인하세요.
새로운 기능
- 올바르게 작동하려면 특정 버전의 확장 프로그램이 필요한 API를 위한
RequiresApi
검사를 추가합니다. - 기기에서 확장 프로그램 버전을 노출하는 API를 추가합니다.
API 변경사항
- 공개 API에서 필수 창 SDK 확장 프로그램 버전에 주석을 답니다.
- 활동 삽입 구성요소에서
isXXXSupported
를 삭제합니다. 추가했습니다. (Ie3dae)
- 활동 삽입 구성요소에서
WindowSdkExtensions
를 도입하여 기기의 확장 프로그램 버전을 보고합니다.RequiresWindowSdkExtension
를 도입하여 필요한 최소 확장 프로그램 버전에 주석을 답니다. 추가했습니다. (I05fd4)
WindowAreaInfo#getCapability
를 null을 허용하지 않도록 만듭니다. 추가했습니다. (I17048)
버전 1.2.0-beta01
2023년 7월 26일
androidx.window:window-*:1.2.0-beta01
이 출시되었습니다. 버전 1.2.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
- 후면 화면에 액세스하기 위한 실험용 창 API를 노출합니다.
- 이제
FoldingFeature
생성을 위한 테스트 API가 안정화되었습니다. - 가짜
ActivityEmbedding
값 설정을 위한 테스트 API가 이제 안정화되었습니다. WindowLayoutInfoPublisherRule
는 이제UiContext
에서 값을 가져올 때 재정의를 보고합니다.WindowInfoTracker
는 접기 기능 데이터를UiContext
매개변수로 보고합니다.
API 변경사항
- 1.3의 안정화 버전에서 API를 계속 변경할 수 있도록
WindowArea
API를 실험용으로 표시합니다. (I857f5) - 호환성 억제에 주석을 달도록 API 파일을 업데이트했습니다. (I8e87a, b/287516207)
버전 1.2.0-alpha03
2023년 6월 21일
androidx.window:window-*:1.2.0-alpha03
이 출시되었습니다. 버전 1.2.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- API 노출 영역에서 지원 중단된 API를 삭제합니다.
- 동시 디스플레이를 지원하는 API를 추가합니다.
- 강제 크기 조절 재정의를 선택 해제하려면 속성을 추가합니다.
- 최소 가로세로 비율 재정의를 선택 해제하려면 속성을 추가하세요.
ActivityEmbeddingRule
를 안정화하여 활동 삽입에 관한 단위 테스트를 지원합니다.
API 변경사항
버그 수정
- 강제 크기 조절 재정의를 위한 선택 해제 compat 속성을 추가합니다. (Ie7ab1)
- 확장 프로그램 인터페이스에서
SESSION_STATE_CONTENT_INVISIBLE
를 삭제합니다. 추가했습니다. (I6ed19) ActivityEmbeddingRule
를 안정화하여 활동 삽입에 관한 단위 테스트를 지원합니다. 추가했습니다. (I8d6b6)- 최소 가로세로 비율 재정의를 위한 선택 해제 compat 속성을 추가합니다. 추가했습니다. (I66390)
- 지원 중단된 WindowArea API를 삭제합니다. (Ieb67c)
- 방향 요청 루프 속성 이름을
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
로 바꿉니다. 추가했습니다. (Ie2fbd) - 창 영역 세션 상수 이름을 업데이트합니다. (I83675)
- 감지 시 방향 요청 루프를 무시하는 선택 해제 compat 속성을 추가합니다. (I0a7a2)
WindowAreaComponent#STATUS_ACTIVE
를 추가하여 기능이 이미 활성 상태임을 나타냅니다. 추가했습니다. (I62bc3)RearDisplayPresentationMode
API를 추가합니다. (I0401c)- 안정화를 위해 배경 색상 API를 삭제합니다. 추가했습니다. (I34c3e)
- 창 영역 API를 숨깁니다. 추가했습니다. (I39de0)
SplitController
에서SplitInfo
를 재정의하는 메서드를 추가합니다.SplitInfo
및ActivityStack
의 double을 만드는 테스트 메서드를 추가합니다. 추가했습니다. (Icd69f)ActivityRule.Builder
의 태그를 선택사항으로 만듭니다. 추가했습니다. (Ib0b44)RatioSplitType
,ExpandContainersSplit
,HingeSplitType
가 삭제됩니다. 현재SplitType
상태입니다.#splitEqually()
,#expandContainers()
,#splitByHinge
를 상수SplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
,SPLIT_TYPE_HINGE
로 바꿉니다.- 힌지 분할 유형의 대체 유형을 설정하는 기능을 삭제합니다. 현재 기기 또는 창 상태로 인해 힌지 분할 유형을 적용할 수 없는 경우 상위 작업 컨테이너를 균등하게 분할하도록 대체됩니다.
SplitController#setSplitAttributesCalculator
를 사용하여 대체 분할 유형을 맞춤설정합니다. 추가합니다. (Ifcc59)
add
/removeSplitCallback
지원 중단 <ph type="x-smartling-placeholder">- </ph>
add
/removeSplitCallback
를SplitControllerCallbackAdapter
(으)로 이동Flow
지원을 추가하여SplitInfo
목록을 가져옵니다. (I7f1b6)
ActivityEmbeddingController
테스트 규칙을 추가합니다. (I42e9b)ActivityOptionsCompat
의 이름을ActivityEmbeddingOptions
로 바꿨습니다. (I89301)- 활동 삽입의 사용 가능 여부를 나타내는
splitSupportStatus
를 추가했습니다. (I10024) DEFAULT
값을 더 잘 나타내기 위해SplitAttributes.BackgroundColor
를 도입합니다. 불투명하지 않은 애니메이션 배경 색상이 지원되지 않음을 명확히 했습니다. 따라서 불투명하지 않은 색상은 모두 기본값으로 취급됩니다. 즉, 현재 테마 창 배경 색상을 사용합니다. 추가했습니다. (Ic6b95)alwaysAllow()
및alwaysDisallow()
를ALWAYS_ALLOW
및ALWAYS_DISALLOW
로 바꾸었습니다. 추가했습니다. (I3057b)SplitRule
,SplitAttributes
,SplitAttributesCalculator
용 API를 추가했습니다. (I92d23)TestActivityStack
를 추가하여 테스트용ActivityStack
만들기 <ph type="x-smartling-placeholder">- </ph>
TestSplitInfo
를 추가하여 테스트용SplitInfo
를 만듭니다. 추가했습니다. (I8e779)
- 개발자가 맞춤설정된
SplitAttributesCalculator
를 확인할 수 있도록 가짜SplitAttributesCalculatorParams
를 만드는 방법을 추가합니다. (Id4a6e) WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
및WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
를 추가합니다. (I66c7f)
버전 1.2.0-alpha02
2023년 6월 7일
androidx.window:window-*:1.2.0-alpha02
이 출시되었습니다. 버전 1.2.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
- 지정되지 않은 접기 기능의 상수를 포함하도록 테스트 API를 업데이트합니다.
WindowLayoutInfoPublishRule
로 재정의하면 컨텍스트 기반 API를 포함하여windowLayoutInfo
의 모든 값이 재정의됩니다.
API 변경사항
- 지정되지 않은 중앙 접기 기능의 상수를 추가합니다. 추가했습니다. (I7530c)
버그 수정
Context
기반WindowLayoutInfo
에 대한 재정의를 지원하도록WindowLayoutInfoPublishRule
를 업데이트합니다. 추가했습니다. (I2037a)
버전 1.2.0-alpha01
2023년 5월 24일
androidx.window:window-*:1.2.0-alpha01
이 출시되었습니다. 버전 1.2.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
활동 삽입 및 WindowLayoutInfoTracker
와 관련된 테스트 API를 안정화합니다. ActivityEmbeddingRule
가 안정화 버전으로 승격되었습니다.
WindowMetricsCalculatorRule
가 안정화 버전으로 승격되었습니다.
테스트용 FoldingFeature
를 생성하는 유틸리티 함수가 안정화 버전으로 승격되었습니다.
API 변경사항
ActivityEmbeddingRule
를 안정화하여 활동 삽입에 관한 단위 테스트를 지원합니다. 추가했습니다. (I8d6b6)WindowMetrisCalculatorTestRule
는 JVM 테스트의 스텁 측정항목을 허용하는 안정적입니다. 정확한 결과를 얻으려면 에뮬레이터를 사용하는 것이 좋습니다.- JVM 테스트를 지원하기 위해
WindowLayoutInfo
의 테스트 API를 안정화합니다. 추가했습니다. (Ie036e) - 테스트 접기 특성 값에
IntRange
를 추가합니다. 추가했습니다. (I69f7d)
버전 1.1
버전 1.1.0
2023년 6월 7일
androidx.window:window-*:1.1.0
이 출시되었습니다. 버전 1.1.0에 포함된 커밋을 확인하세요.
1.0.0 이후 중요 변경사항
활동 삽입
- 앱 매니페스트에
<application>
태그의 불리언 속성으로PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
를 추가했습니다. - 분할 기능을 사용할 수 없는 이유에 관한 자세한 정보를 제공하기 위해
isSplitSupported
를 지원 중단하고splitSupportStatus
로 대체했습니다. splitSupportStatus
속성의 상태 상수를 제공하는SplitController.SplitSupportStatus
중첩 클래스를 추가했습니다.SplitController
를 여러 모듈로 리팩터링했습니다. <ph type="x-smartling-placeholder">- </ph>
Activity
또는ActivityStack
관련 API의ActivityEmbeddingController
모듈isActivityEmbedded
를SplitController
에서ActivityEmbeddingController
로 이동했습니다.EmbeddingRule
관련 작업을 위한RuleController
모듈:SplitController
API를 삭제했습니다.clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API를 추가했습니다.addRule()
- 규칙을 추가하거나 동일한 태그가 있는 규칙을 업데이트합니다.removeRule()
- 등록된 규칙 컬렉션에서 규칙을 삭제합니다.setRules()
- 규칙 모음을 설정합니다.clearRules()
- 등록된 모든 규칙을 삭제합니다.parseRules()
- XML 규칙 정의에서 규칙을 파싱합니다.
- 모든 모듈에는 다음과 같이
#getInstance()
메서드로 초기화해야 하는 컨텍스트가 필요합니다. <ph type="x-smartling-placeholder">- </ph>
ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- 디스플레이 가로세로 비율과 관련된 enum 유사 동작 상수를 정의하도록
EmbeddingAspectRatio
클래스를 추가했습니다. - 분할 레이아웃을 정의하는
SplitAttributes
클래스를 추가했습니다. - 분할 레이아웃을 맞춤설정하기 위해
SplitController
에SplitAttributes
계산기 함수를 추가했습니다. <ph type="x-smartling-placeholder">- </ph>
setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
: 기기에서SplitAttributesCalculator
API가 지원되는지 확인
EmbeddingRule#tag
필드가 추가되었습니다.SplitRule
의 API 업데이트: <ph type="x-smartling-placeholder">- </ph>
defaultSplitAttributes
추가됨 - 분할의 기본 분할 레이아웃을 정의합니다. 가splitRatio
및layoutDirection
를 대체합니다.- XML 속성
splitRatio
및splitLayoutDirection
의 변환을defaultSplitAttributes
에 추가했습니다. - 픽셀 대신 밀도 독립형 픽셀 (dp)을 사용하도록 최소 크기 정의를 변경했습니다.
- 기본값이 600dp인
minHeightDp
를 추가했습니다. minWidth
를 기본값이 600dp인minWidthDp
로 변경했습니다.minSmallestWidth
를 기본값이 600dp인minSmallestWidthDp
로 변경했습니다.- 기본값이
ALWAYS_ALLOW
인maxAspectRatioInHorizontal
를 추가했습니다. - 기본값 1.4를 사용하여
maxAspectRatioInPortrait
을 추가했습니다. - 종료 동작 상수를 대체하는
FinishBehavior
중첩 클래스를 정의했습니다. SplitPairRule
및SplitPlaceholderRule
의 빌더 중첩 클래스에 속성 변경사항을 적용했습니다.
- 분할 관련 추가 정보를 제공하기 위해
SplitInfo#getSplitRatio()
를SplitInfo#getSplitAttributes()
로 대체했습니다.
WindowLayout
- 실험용 비활동 UI 컨텍스트 지원을
WindowInfoTracker
에 추가했습니다. WindowMetricsCalculator
에 실험용 비활동 UI 컨텍스트를 추가했습니다.
이전 단계
- 활동 삽입이 활동을 분할로 표시하도록 사용 설정하려면 앱에서
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
속성을 매니페스트<application>
태그에 추가해야 합니다. <ph type="x-smartling-placeholder">xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
</ph> 이를 통해 시스템은 애플리케이션의 분할 동작을 미리 최적화할 수 있습니다. - 비율
SplitInfo
개 <ph type="x-smartling-placeholder">- </ph>
- 현재 분할이 스택되었는지 확인합니다.
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- 현재 비율을 확인합니다.
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- 현재 분할이 스택되었는지 확인합니다.
- SplitController 이전:
<ph type="x-smartling-placeholder">
- </ph>
SplitController.getInstance()
가SplitController.getInstance(Context)
로 변경됩니다.SplitController.initialize(Context, @ResId int)
가RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
로 변경됩니다.SplitController.getInstance().isActivityEmbedded(Activity)
가ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
로 변경됩니다.SplitController.getInstance().registerRule(rule)
가RuleController.getInstance(Context).addRule(rule)
로 변경됩니다.SplitController.getInstance().unregisterRule(rule)
가RuleController.getInstance(Context).removeRule(rule)
로 변경됩니다.SplitController.getInstance().clearRegisteredRules()
가RuleController.getInstance(Context).clearRules()
로 변경됩니다.SplitController.getInstance().getSplitRules()
가RuleController.getInstance(Context).getRules()
로 변경됩니다.
SplitRule
속성 이전: <ph type="x-smartling-placeholder">- </ph>
minWidth
및minSmallestWidth
는 이제 픽셀 대신 dp 단위를 사용합니다. 앱은 다음 호출을 사용할 수 있습니다.kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
또는 간단히minWith
를displayMetrics#density
(으)로 픽셀로 나눕니다.
- 종료 동작 상수는
FinishBehavior
enum과 같은 클래스 상수로 이전해야 합니다. <ph type="x-smartling-placeholder">- </ph>
FINISH_NEVER
가FinishBehavior.NEVER
로 변경됩니다.FINISH_ALWAYS
가FinishBehavior.ALWAYS
로 변경됩니다.FINISH_ADJACENT
가FinishBehavior.ADJACENT
로 변경됩니다.
- 레이아웃 방향은
SplitAttributes.LayoutDirection
로 이전해야 합니다. <ph type="x-smartling-placeholder">- </ph>
ltr
가SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
로 변경됩니다.rtl
가SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
로 변경됩니다.locale
가SplitAttributes.LayoutDirection.LOCALE
로 변경됩니다.splitRatio
을(를)SplitAttributes.SplitType.ratio(splitRatio)
로 이전해야 합니다.
- 이전
SplitPairRule.Builder
개: <ph type="x-smartling-placeholder">- </ph>
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
을(를) 다음으로 변경:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
및setSplitRatio(ratio)
를 다음으로 변경: <ph type="x-smartling-placeholder">kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
</ph>setFinishPrimaryWithSecondary
및setFinishSecondaryWithPrimary
는FinishBehavior
enum과 유사한 상수를 사용합니다. 자세한 내용은 'SplitRule 이전'을 참고하세요.setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
를 사용하여 세로 모드 기기에 분할을 표시합니다.
- 이전
SplitPlaceholder.Builder
개: <ph type="x-smartling-placeholder">- </ph>
filters
및placeholderIntent
매개변수만 있습니다. 다른 속성은 setter로 이동합니다. 자세한 내용은 'SplitPairRule.Builder 이전'을 참고하세요.setFinishPrimaryWithPlaceholder
는FinishBehavior
enum과 유사한 상수를 사용합니다. 자세한 내용은 'SplitRule 이전'을 참고하세요.setLayoutDirection(layoutDirection)
및setSplitRatio(ratio)
는 다음과 같이 변경됩니다. <ph type="x-smartling-placeholder">kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
</ph>setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
를 사용하여 세로 모드 기기에 분할을 표시합니다.
버전 1.1.0-rc01
2023년 5월 10일
androidx.window:window-*:1.1.0-rc01
이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.
새로운 기능
ActivityEmbedding
를 안정적인 API로 출시합니다.- 다양한 버그를 수정했습니다.
버전 1.1.0-beta02
2023년 4월 5일
androidx.window:window-*:1.1.0-beta02
이 출시되었습니다. 버전 1.1.0-beta02에 포함된 커밋을 확인하세요.
새로운 기능
- 내부 수정 및 정리
버전 1.1.0-beta01
2023년 3월 22일
androidx.window:window-*:1.1.0-beta01
이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.
활동 삽입
- 앱 매니페스트에
<application>
태그의 불리언 속성으로PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
를 추가했습니다. - 분할 기능을 사용할 수 없는 이유에 관한 자세한 정보를 제공하기 위해
isSplitSupported
를 지원 중단하고splitSupportStatus
로 대체했습니다. splitSupportStatus
속성의 상태 상수를 제공하는SplitController.SplitSupportStatus
중첩 클래스를 추가했습니다.SplitController
를 여러 모듈로 리팩터링했습니다. <ph type="x-smartling-placeholder">- </ph>
Activity
또는ActivityStack
관련 API의ActivityEmbeddingController
모듈isActivityEmbedded
를SplitController
에서ActivityEmbeddingController
로 이동했습니다.EmbeddingRule
관련 작업을 위한RuleController
모듈:SplitController
API를 삭제했습니다. <ph type="x-smartling-placeholder">- </ph>
clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API를 추가했습니다. <ph type="x-smartling-placeholder">- </ph>
addRule()
- 규칙을 추가하거나 동일한 태그가 있는 규칙을 업데이트합니다.removeRule()
- 등록된 규칙 컬렉션에서 규칙을 삭제합니다.setRules()
- 규칙 모음을 설정합니다.clearRules()
- 등록된 모든 규칙을 삭제합니다.- `parseRules() — XML 규칙 정의에서 규칙을 파싱합니다.
- 모든 모듈에는 다음과 같이
#getInstance()
메서드로 초기화해야 하는 컨텍스트가 필요합니다. <ph type="x-smartling-placeholder">- </ph>
ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- 디스플레이 가로세로 비율과 관련된 enum 유사 동작 상수를 정의하도록
EmbeddingAspectRatio
클래스를 추가했습니다. - 분할 레이아웃을 정의하는
SplitAttributes
클래스를 추가했습니다. - 분할 레이아웃을 맞춤설정하기 위해
SplitController
에SplitAttributes
계산기 함수를 추가했습니다. <ph type="x-smartling-placeholder">- </ph>
setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
: 기기에서 SplitAttributesCalculator API 지원 여부 확인
EmbeddingRule#tag
필드가 추가되었습니다.SplitRule
의 API 업데이트: <ph type="x-smartling-placeholder">- </ph>
defaultSplitAttributes
추가됨 - 분할의 기본 분할 레이아웃을 정의합니다. 가splitRatio
및layoutDirection
를 대체합니다.- XML 속성
splitRatio
및splitLayoutDirection
의 변환을defaultSplitAttributes
에 추가했습니다. - 픽셀 대신 밀도 독립형 픽셀 (dp)을 사용하도록 최소 크기 정의를 변경했습니다.
- 기본값이 600dp인
minHeightDp
를 추가했습니다. minWidth
를 기본값이 600dp인minWidthDp
로 변경했습니다.minSmallestWidth
를 기본값이 600dp인minSmallestWidthDp
로 변경했습니다.- 기본값이
ALWAYS_ALLOW
인maxAspectRatioInHorizontal
를 추가했습니다. - 기본값이
1.4
인maxAspectRatioInPortrait
를 추가했습니다. - 종료 동작 상수를 대체하는
FinishBehavior
중첩 클래스를 정의했습니다. SplitPairRule
및SplitPlaceholderRule
의Builder
중첩 클래스에 속성 변경사항을 적용했습니다.
- 분할 관련 추가 정보를 제공하기 위해
SplitInfo#getSplitRatio()
를SplitInfo#getSplitAttributes()
로 대체했습니다.
WindowLayout
WindowInfoTracker
에 비활동 UI 컨텍스트 지원을 추가했습니다.WindowMetricsCalculator
에 비활동 UI 컨텍스트를 추가했습니다.
이전 단계
- 활동 삽입이 활동을 분할로 표시하도록 사용 설정하려면 앱에서
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
속성을 매니페스트<application>
태그에 추가해야 합니다. <ph type="x-smartling-placeholder">xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
</ph> 이를 통해 시스템은 애플리케이션의 분할 동작을 미리 최적화할 수 있습니다. - 비율
SplitInfo
개 <ph type="x-smartling-placeholder">- </ph>
- 현재 분할이 스택되었는지 확인합니다.
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- 현재 비율을 확인합니다.
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- 현재 분할이 스택되었는지 확인합니다.
- 이전
SplitController
개: <ph type="x-smartling-placeholder">- </ph>
SplitController.getInstance()
가SplitController.getInstance(Context)
로 변경됩니다.SplitController.initialize(Context, @ResId int)
을(를) 다음으로 변경:RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
SplitController.getInstance().isActivityEmbedded(Activity)
가ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
로 변경됩니다.SplitController.getInstance().registerRule(rule)
가RuleController.getInstance(Context).addRule(rule)
로 변경됩니다.SplitController.getInstance().unregisterRule(rule)
가RuleController.getInstance(Context).removeRule(rule)
로 변경됩니다.SplitController.getInstance().clearRegisteredRules()
가RuleController.getInstance(Context).clearRules()
로 변경됩니다.SplitController.getInstance().getSplitRules()
가RuleController.getInstance(Context).getRules()
로 변경됩니다.
SplitRule
속성 이전: <ph type="x-smartling-placeholder">- </ph>
minWidth
및minSmallestWidth
는 이제 픽셀 대신 dp 단위를 사용합니다. 앱은 다음 호출을 사용할 수 있습니다.kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
또는 간단히minWith
를displayMetrics#density
(으)로 픽셀로 나눕니다.
- 종료 동작 상수는
FinishBehavior
enum과 같은 클래스 상수로 이전해야 합니다. <ph type="x-smartling-placeholder">- </ph>
FINISH_NEVER
가FinishBehavior.NEVER
로 변경됩니다.FINISH_ALWAYS
가FinishBehavior.ALWAYS
로 변경됩니다.FINISH_ADJACENT
가FinishBehavior.ADJACENT
로 변경됩니다.
- 레이아웃 방향은
SplitAttributes.LayoutDirection
로 이전해야 합니다. <ph type="x-smartling-placeholder">- </ph>
ltr
가SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
로 변경됩니다.rtl
가SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
로 변경됩니다.locale
가SplitAttributes.LayoutDirection.LOCALE
로 변경됩니다.splitRatio
을(를)SplitAttributes.SplitType.ratio(splitRatio)
로 이전해야 합니다.
- 이전
SplitPairRule.Builder
개: <ph type="x-smartling-placeholder">- </ph>
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
을(를) 다음으로 변경:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
및setSplitRatio(ratio)
이 <ph type="x-smartling-placeholder">kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
</ph>setFinishPrimaryWithSecondary
및setFinishSecondaryWithPrimary
는FinishBehavior
enum과 유사한 상수를 사용합니다. 자세한 내용은 'SplitRule 이전'을 참고하세요.setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
를 사용하여 세로 모드 기기에 분할을 표시합니다.
- 이전
SplitPlaceholder.Builder
개: <ph type="x-smartling-placeholder">- </ph>
filters
및placeholderIntent
매개변수만 있습니다. 다른 속성은 setter로 이동합니다. 자세한 내용은 'SplitPairRule.Builder 이전'을 참고하세요.setFinishPrimaryWithPlaceholder
는FinishBehavior
enum과 유사한 상수를 사용합니다. 자세한 내용은 'SplitRule 이전'을 참고하세요.setLayoutDirection(layoutDirection)
및setSplitRatio(ratio)
는 다음과 같이 변경됩니다. <ph type="x-smartling-placeholder">kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
</ph>setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
를 사용하여 세로 모드 기기에 분할을 표시합니다.
버전 1.1.0-alpha06
2023년 2월 22일
androidx.window:window-*:1.1.0-alpha06
이 출시되었습니다. 버전 1.1.0-alpha06에 포함된 커밋을 확인하세요.
새로운 기능
- UI 컨텍스트에서
WindowLayoutInfo
를 가져오는 시험용 버전을 노출했습니다.
API 변경사항
- 활동 삽입의 사용 가능 여부를 나타내는
splitSupportStatus
를 추가했습니다. (I10024) - UI 컨텍스트
WindowLayoutInfo
API를 실험용으로 만들었습니다. (I58ee0) RearDisplay
모드를 사용 설정하여 현재 창을 후면 카메라와 정렬된 디스플레이로 이동할 수 있도록WindowAreaController
및 API를 도입합니다. (Iffcbf)- 기본 배경 색상을 업데이트했습니다. (I1ac1b)
SplitAttributes
매개변수를 추가했습니다. (I18bdd)SplitRule
,SplitAttributes
,SplitAttributesCalculator
용 API를 추가했습니다. (I92d23)maxAspectRatio
관련 API를 개선했습니다.alwaysAllow()
및alwaysDisallow()
를ALWAYS_ALLOW
및ALWAYS_DISALLOW
로 바꾸었습니다.- @see의 API 문서를 단독 문서로 업데이트했습니다. (I3057b)
- 앱에서 호출해서는 안 되는 다음 생성자를 공개 API에서 삭제했습니다.
SplitInfo
생성자ActivityStack
생성자 (Ide534)
- 이제
SplitRule
이maxAspectRatioInPortrait/Landscape
를 받습니다. 상위 요소 경계의 가로세로 비율이 요청된maxAspectRatio
보다 작거나 같은 경우에만 활동 분할을 허용합니다. (Ia5990) RuleController#parseRules
가 정적이 되도록 변경했습니다. (I785df)- ActivityEmbedding 관련 API를 개선했습니다.
- API 이름 통일 - 여러 인스턴스의 이름에 add/remove를 적용했습니다.
registerRule
을addRule
로 변경했습니다.unregisterRule
을removeRule
로 변경했습니다.ActivityRule
은 분할 규칙이 아니므로getSplitRules
를getRules
로 바꾸었습니다.- 여러 규칙을 추가할 수 있도록
RuleController#setRules
를 추가했습니다. SplitController
에서 다음과 같은 규칙 관련 API를 싱글톤RuleController
로 이동했습니다.addRule
removeRule
getRules
setRules
clearRules
parseRules
SplitController
에서#isActivityEmbedded
를 싱글톤ActivityEmbeddingController
로 이동했습니다.isActivityEmbedded
SplitController#initialize
를 삭제했습니다. XML 파일에서 규칙을 설정하려면RuleController#parseRules
및#setRules
를 사용하세요. 변경 전:SplitController.initialize(context, R.xml.static_rules)
변경 후:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- 정적 규칙과 런타임 규칙이 더 이상 구분되지 않습니다. 즉, 규칙이 정적 XML 규칙 정의에 등록되어 있든 런타임에 등록되었든 상관없이 모든 규칙을 지우려면
#clearRules
를 호출하면 됩니다.SplitController#clearRegisteredRules
의 기존 동작을 이용하려면 XML 리소스 ID를 사용하여RuleController#parseRules
를 호출하고 규칙을 다시 설정하려면RuleController#setRules
를 호출하세요. 변경 전:SplitController.getInstance(context).clearRegisteredRules()
변경 후:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- SplitRule API를 개선했습니다.
SplitRule
이 최소 크기를 픽셀 단위가 아닌 DP 단위로 받습니다.- 최소 크기를 선택사항으로 받도록
SplitRule
빌더를 리팩터링했습니다. (I95f17)
SplitController
를 초기화하는 컨텍스트를 전달합니다. (I42549)SplitRule#layoutDir
의 이름이#layoutDirection
으로,SplitRule Builder#setLayoutDir
의 이름이Builder#setLayoutDirection
으로 변경되었습니다. (I3f6d1)
버전 1.1.0-alpha04
2022년 11월 9일
androidx.window:window-*:1.1.0-alpha04
가 출시되었습니다. 버전 1.1.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
ActivityEmbedding
을 위해ActivityStack
이 비어 있는지 확인하는 메서드를 노출합니다.ActivityEmbedding
API에서 실험용 API 태그를 삭제했습니다.- 선호하는 구성 방법이
Builder
이므로ActivityRule
생성자를 숨깁니다. WindowMetrics
에서WindowInsets
를 가져오는 실험용 메서드를 추가합니다.- 자리표시자가 마무리되지 않도록
SplitPlaceholderFinishBehavior
를 업데이트합니다. 자리표시자를 마무리하면 일부 동작에서 혼동이 발생했습니다.
API 변경사항
- val
isEmpty
를 공개로 설정하여isEmpty
를 대체합니다. ActivityStack
매개변수 활동의 이름을activitiesInProcess
로 바꿉니다. (Ia5055)ActivityFilter#matchesClassName
및ActivityFilter#matchesClassNameOrWildCard
가 혼동을 야기하므로 삭제합니다.- 호출자가 다양한 필터를 구별할 수 있도록
ActivityFilter#componentName
abdActivityFilter#intentAction
을 추가합니다. (I41f22) - 실험용 API에서
@Deprecated
API를 삭제합니다. (I216b3) - Activity Embedding API용
@ExperimentalWindowApi
를 삭제합니다. (I69ebe) ActivityRule
생성자를 숨기고 대신 Builder를 사용합니다. (If4eb6)- Activity가
ActivityFilter
의 일부인지 확인하는 API를 추가합니다. (Ia43cf) WindowMetrics
및WindowMetricsCalculatorCompat
클래스의 변경사항을 반영하도록 API 파일을 업데이트합니다. (I667fe)ActivityEmbedding
속성 Javadoc 및 클래스 이름을 업데이트합니다. (Ia1386)- AndroidManifest.xml에 사용할
ActivityEmbedding
속성 태그 이름을 추가합니다. (Id1ad4) - 새 API
SplitPlaceholderFinishBehavior
및SplitPlaceholderRule.finishPrimaryWithPlaceholder
를 추가했습니다. 따라서 자리표시자 활동이 완료되는 시점, 연결된 활동이 Activity Embedding에서 작동해야 하는 방식을 정의하는 기존SplitPlaceholderRule.finishPrimaryWithSecondary
를 대체합니다. (I64647)
버그 수정
RearDisplay
모드를 사용 설정하여 현재 창을 후면 카메라와 정렬된 디스플레이로 이동할 수 있도록WindowAreaController
및 API를 도입합니다. (I388ab)
버전 1.1.0-alpha03
2022년 7월 27일
androidx.window:window-*:1.1.0-alpha03
이 출시되었습니다. 버전 1.1.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- 임베딩 규칙의 기본값이 업데이트되었습니다.
API 변경사항
- 임베딩 규칙 속성의 기본값이 업데이트되었습니다. (Ic4d35)
버전 1.1.0-alpha02
2022년 5월 11일
androidx.window:window-*:1.1.0-alpha02
가 출시되었습니다. 버전 1.1.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
- 자바 및 RxJava를 지원하는 어댑터 라이브러리를 출시했습니다.
버전 1.1.0-alpha01
2022년 5월 11일
androidx.window:window-*:1.1.0-alpha01
이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 자바 및 RxJava를 지원하는 어댑터를 출시했습니다.
버전 1.1.0-alpha01
2022년 4월 20일
androidx.window:window:1.1.0-alpha01
이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 앱을 백그라운드로 전환하면 접기 기능 방출이 중지되는 버그를 수정합니다.
- 실험용 ActivityEmbedding API를 확장합니다.
API 변경사항
- 활동이 삽입되었는지 확인하는 공개 API (I39eb7)
버그 수정
버전 1.0
버전 1.0.0
2022년 1월 26일
androidx.window:window-*:1.0.0
이 출시되었습니다. 버전 1.0.0에 포함된 커밋을 확인하세요.
1.0.0의 주요 기능
WindowInfoTracker
와FoldingFeature
를 통해 폴더블 스마트폰을 지원합니다.WindowMetricsCalculator
는 현재 WindowMetrics를 계산하는 데 도움이 됩니다.
버전 1.0.0-rc01
2021년 12월 15일
androidx.window:window-*:1.0.0-rc01
이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.
새로운 기능
WindowInfoTracker
를 통한 폴더블 스마트폰 지원을 추가합니다.- 현재 및 최대
WindowMetrics
를 계산하는 메서드를 추가합니다. - 테스트 API 지원을 추가합니다.
버전 1.0.0-beta04
2021년 11월 17일
androidx.window:window-*:1.0.0-beta04
가 출시되었습니다. 버전 1.0.0-beta04에 포함된 커밋을 확인하세요.
새로운 기능
- WindowInfoRepository의 이름이 WindowInfoTracker로 변경됩니다.
- 활동이 WindowInfoTracker의 명시적인 메서드 종속 항목이 됩니다.
- Robolectric을 사용하는 개발자를 지원하기 위해 WindowMetricsCalculator용으로 간단한 TestRule이 추가됩니다.
API 변경사항
- 확장 프로그램을 추출할 수 있습니다. (I25a5f)
- ActivityStack에 isEmpty가 추가됩니다. (I5a4e6)
- WindowInfoRepository의 이름이 WindowInfoTracker로 변경됩니다.
- 일치하도록 java/rxjava/testing 종속 항목이 업데이트됩니다. (I0da63)
- WindowMetricsCalculator용으로 간단한 테스트 규칙이 추가됩니다. (Ibacdb)
버전 1.0.0-beta03
2021년 10월 27일
androidx.window:window-*:1.0.0-beta03
이 출시되었습니다. 버전 1.0.0-beta03에 포함된 커밋을 확인하세요.
새로운 기능
- 실험용 Activity Embedding API가 추가되었습니다. 이 초기 레이아웃 버전을 사용하면 두 활동을 나란히 표시할 수 있습니다.
API 변경사항
- currentWindowMetrics API를 정확히 제공할 수 없으므로 삭제했습니다. 대신 WindowMetricsCalculator를 사용하세요. (Icda5f)
- 확장 API를 업데이트했습니다. (Ica92b)
- 활동을 삽입하고 상위 작업 창에 삽입된 활동을 나란히 표시할 수 있는 새로운 기능을 위한 인터페이스가 추가되었습니다. (I5711d)
- WindowMetrics 및 WindowLayoutInfo의 생성자를 숨겼습니다. 대신 테스트 API를 사용하세요. (I5a1b5)
- 가짜 WindowLayoutInfo 객체를 생성하는 API를 추가했습니다. (I4a2fd)
버그 수정
- 메모리 누수를 해결했습니다. (I3fc79, b/202989046)
버전 1.0.0-beta02
2021년 9월 1일
androidx.window:window-*:1.0.0-beta02
가 출시되었습니다. 버전 1.0.0-beta02에 포함된 커밋을 확인하세요.
새로운 기능
- 실험용 주석을 추가하여 실험용 API에 주석을 지정합니다. (I9f1b6)
- Rect를 허용하는 테스트 FoldingFeature를 만들기 위한 테스트 메서드를 추가합니다. 이렇게 하면 실제 활동과는 반대로 Robolectric을 사용할 때 더 쉽게 테스트할 수 있습니다. (Id1cca)
버전 1.0.0-beta01
2021년 8월 18일
androidx.window:window-*:1.0.0-beta01
이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
- 이전 상수를 삭제하고
FoldingFeature
를 인터페이스로 만들었습니다.
API 변경사항
- 이전 상수를 삭제하고 FoldFeature를 인터페이스로 만듭니다. (I9a2d5)
버그 수정
Test Core
라이브러리에 종속된 라이브러리는1.4.0
버전으로 업그레이드되었으며 이제 Android 플랫폼 버전 S에서 작동합니다. (I88b72, b/189353863)
버전 1.0.0-alpha10
2021년 8월 4일
androidx.window:window-*:1.0.0-alpha10
이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
새로운 기능
- WindowInfoRepo의 이름을 WindowInfoRepository로 바꾸고 해당하는 클래스와 파일을 조정합니다.
- 시간 경과에 따라 값이 변경되므로 현재 창 측정항목을 WindowInfoRepository의 Flow로 변환합니다.
- WindowInfoRepoJavaAdapter의 이름을 WindowInfoRepoCallbackAdapter로 바꿉니다.
- 테스트 FoldingFeature 객체를 생성하는 도우미 메서드를 추가합니다.
- 지원하는 기능에 따라 클래스를 그룹화하도록 패키지를 업데이트합니다.
API 변경사항
- ActivityExt 이름을 ActivityExtensions로 바꿉니다. Repo에서 Repository로 변경합니다. (I61a16)
- 클래스용 패키지를 업데이트합니다. (I23ae2)
- WindowInfoRepo에서 WindowMetrics를 삭제합니다. (I24663)
- WindowManager를 삭제하고 WindowInfoRepo를 사용합니다.
- WindowBackend를 내부용으로 설정합니다. (I06d9a)
- 창 측정항목을 Flow로 변환합니다.
- 자바 어댑터의 이름을 WindowInfoRepoCallbackAdapter로 변경합니다.
- 더 이상 실험용 API를 사용하지 않도록 callbackFlow를 삭제합니다. (Ia4d15)
- 테스트 표시 기능을 만드는 도우미 메서드를 추가합니다.
- occlusionMode에서 occlusionType으로 변경합니다. (If4cff)
버그 수정
- 핵심 라이브러리가 삭제되는 ProGuard 오류가 수정되었습니다.
- WindowLayoutInfo가 추가 구독자에게 전달되지 않는 오류가 수정되었습니다.
- 구성 변경 시 폴딩 기능 업데이트가 트리거되지 않는 오류가 수정되었습니다.
버전 1.0.0-alpha09
2021년 6월 30일
androidx.window:window-*:1.0.0-alpha09
가 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
새로운 기능
- 정수 상수를 제한이 없는 enum으로 변경합니다.
- 테스트 폴딩 기능을 만드는 테스트 유틸리티를 추가합니다.
API 변경사항
- 테스트 표시 기능을 만드는 도우미 메서드를 추가합니다. (I3cf54)
occlusionMode
를occlusionType
으로 변경합니다.
버그 수정
- 데이터 스트림의 여러 소비자를 추가할 때 초기 값을 내보냅니다.
버전 1.0.0-alpha08
2021년 6월 16일
androidx.window:window-*:1.0.0-alpha08
이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
새로운 기능
- WindowInfoRepository를 사용할 때 더 쉽게 테스트할 수 있도록 테스트 아티팩트를 출시했습니다. WindowInfoRepository를 사용하여 DisplayFeatures 및 WindowMetrics에 관한 정보를 가져옵니다. (I57f66, Ida620)
버전 1.0.0-alpha07
2021년 6월 2일
androidx.window:window-*:1.0.0-alpha07
이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
새로운 기능
- 핵심 창 라이브러리를 Kotlin으로 이전합니다. 앞으로는 코루틴과 정지 함수를 사용하여 비동기 데이터를 노출합니다.
- WindowMetrics 및 WindowLayoutInfo 스트림을 가져오기 위한 기본 상호작용 지점으로 WindowInfoRepo를 추가합니다.
- 콜백 등록 및 등록 취소를 위해 자바 친화적인 API를 노출하는 새로운
window-java
아티팩트를 추가합니다. - RxJava Adaptive API를 노출하는 새로운
window-rxjava2
및window-rxjava3
아티팩트를 추가합니다.
API 변경사항
- 종속 항목을 균일하게 제공하기 위해
WindowServices
를 추가합니다.- 창 레이아웃 정보를 사용할 수 있도록 코루틴 기반 API를 추가합니다. (Iab70f)
- 핵심 창 관리자 라이브러리를 Kotlin으로 이전합니다. (Icca34)
버그 수정
- 기능 경계를 나타내는 새 데이터 클래스를 추가합니다. (I6dcd1)
버전 1.0.0-alpha06
2021년 5월 5일
androidx.window:window:1.0.0-alpha06
이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.
새로운 기능
- Kotlin으로의 이전을 시작했으며 다음 출시에서 완료할 예정입니다.
- DeviceState를 공개 API에서 삭제했습니다. 대신 FoldingFeature를 사용하세요.
- FoldingFeature 상태에서
STATE_FLIPPED
를 삭제했습니다. 현재 사용 사례에서 지원되지 않기 때문입니다. - 다른 지원 중단된 API도 삭제했습니다.
API 변경사항
- Kotlin을 종속 항목으로 추가합니다.
- 핵심 라이브러리를 Kotlin으로 이전합니다. (Idd995)
DisplayFeature
빌더를 삭제했습니다. (I61fa4)- 공개 API에서
DeviceState
를 삭제했습니다. 대신FoldingFeature
를 사용하세요. (Id6079) - 기기 상태 콜백을 확장 프로그램에서 삭제합니다. (I5ea83)
STATE_FLIPPED
를 FoldingFeature에서 삭제합니다. (I9c4e1)- 지원 중단된 등록 메서드를 삭제합니다. (Ib381b)
버전 1.0.0-alpha05
2021년 3월 24일
androidx.window:window:1.0.0-alpha05
가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
새로운 기능
FoldingFeature에 편의 메서드를 추가하여, 기능이 분리하거나 차단할 때 앱에서 인식하고 힌지 방향을 파악할 수 있도록 했습니다. 또한 다음을 위해 힌지 유형도 숨겼습니다.
WindowManager에서 동기 읽기 메서드를 삭제했습니다. 동기 읽기 메서드는 암시적 경합 상태가 발생하므로 오류가 발생하기 쉽습니다. WindowLayoutInfo에 관한 업데이트를 수신하려면 리스너 및 콜백을 등록합니다.
API 변경사항
버전 1.0.0-alpha04
2021년 3월 10일
androidx.window:window:1.0.0-alpha04
가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
- OEM 구현이 없는 경우 WindowLayoutInfo를 내보낼 수 없는 버그를 수정했습니다. 이제 빈 WIndowLayoutInfo를 내보냅니다.
- 앱이 백그라운드에 있을 때 힌지 상태가 변경되면 상태가 제대로 업데이트되지 않는 버그를 수정했습니다. 이제 상태가 일관되게 유지됩니다.
- ProGuard 파일을 업데이트하여 런타임 종속 항목의 경고를 무시합니다.
버그 수정
- OEM 라이브러리가 누락된 경우 빈 값을 내보냅니다. (Ide935)
버전 1.0.0-alpha03
2021년 2월 18일
androidx.window:window:1.0.0-alpha03
이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- OEM 구현이 비어 있는 경우 WindowLayoutInfo에 빈 값을 내보냅니다. 이를 통해 더 많은 기기에서 더 쉽게 라이브러리를 사용할 수 있습니다. API가 비동기식이므로 여전히 시간 초과 후에는 앱에서 방어 코드를 일부 작성하고 기본값을 내보내는 것이 좋습니다. Google에서는 OEM 구현을 보장하지 않으며 초기 값이 지연될 수 있습니다.
버그 수정
- OEM 라이브러리가 누락된 경우 빈 값을 내보냅니다. (Ide935)
버전 1.0.0-alpha02
2021년 1월 27일
androidx.window:window:1.0.0-alpha02
가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
API를 간소화하고 실수를 줄일 수 있도록 일부 API를 지원 중단했습니다. 몇 가지 주목할 만한 예로는 WindowManager에서 동기 읽기 작업을 삭제하고 DeviceState를 지원 중단한 것입니다. 동기 읽기 작업은 경합 상태를 유발하거나 제대로 UI가 표시되지 않는 원인이 될 수 있습니다.
DisplayFeature를 앞으로 다른 기능이 구현할 인터페이스로 변환했습니다. 첫 번째 기능은 현재 화면 접기나 힌지를 표현하는 FoldingFeature입니다. 여기에는 DeviceState를 대체하는 힌지 상태도 포함됩니다.
Android 11에서 도입된 WindowMetrics는 개발자에게 창에 관한 측정항목을 쿼리하는 간단한 방법을 제공합니다(예: 화면에서 창의 위치 및 크기, 시스템 인셋). 개발자가 WindowMetrics를 활용하고 이전 Android 버전을 계속 지원할 수 있도록 이 버전에서 API를 백포팅했습니다. WindowMetrics는
WindowManager#getCurrentWindowMetrics()
및 WindowManager#getMaximumWindowMetrics() API를 통해 얻을 수 있습니다.
API 변경사항
- 다음 알파 버전에서 삭제될 API를 지원 중단합니다. (Ib7cc4)
- 명시적인 Activity 참조를 수락하도록
ExtensionInterface
를 업데이트합니다. (I07ded) - WindowMetrics API를 도입합니다. (I3ccee)
- WindowManager에서 동기 읽기 메서드를 삭제합니다. (I69983)
- ExtensionWindowBackend 패키지를 보호합니다. (Ied208)
버그 수정
- 시각적 컨텍스트를 허용하도록
ExtensionInterface
API를 업데이트합니다. (I8e827)
외부 기여
- 데이터에 더 쉽게 액세스하도록 DeviceState와 WindowLayoutInfo를 병합합니다. (Id34f4)
버전 1.0.0-alpha01
2020년 2월 27일
androidx.window:window:1.0.0-alpha01
및 androidx.window:window-extensions:1.0.0-alpha01
버전이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
창 관리자 라이브러리의 첫 번째 버전입니다.
새로운 기능
DisplayFeature
: 이 새로운 API는 연속 평면 화면 영역에서 힌지나 접힘 같은 장애 부분을 식별합니다.DeviceState
: 이 새로운 API는 정의된 상태 목록(예:CLOSED
,OPENED
,HALF_OPENED
등)에서 휴대전화의 현재 상태를 제공합니다.