WindowManager
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
---|---|---|---|---|
16 ตุลาคม 2024 | 1.3.0 | - | - | 1.4.0-alpha05 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ของ WindowManager คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูล
ดึงดูด
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 ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 1.4
เวอร์ชัน 1.4.0-alpha05
16 ตุลาคม 2024
androidx.window:window-*:1.4.0-alpha05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มฟังก์ชันอำนวยความสะดวกเพื่อรับ
widthDp
และheightDp
จากWindowMetrics
การเปลี่ยนแปลง API
- เพิ่ม
widthDp
และheightDp
ลงในWindowMetrics
(Ide026) - นํา
WindowInsets
API เวอร์ชันทดลองออก (I68a71) - อัปเดตชื่อเมธอดการตรวจสอบขอบเขตเป็น
isAtLeast
(Ib0ab7)
เวอร์ชัน 1.4.0-alpha04
2 ตุลาคม 2024
androidx.window:window-*:1.4.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มวิธีการคํานวณ
WindowSizeClass
จากWindowMetrics
(874dba) - เปลี่ยนวิธีการ
WindowSizeClass
เป็นcontainsWidthDp
,containsHeightDp
และcontainsWindowSizeDp
เพื่อให้ชัดเจน (fa760d) - แปลง
WindowAreaController
เป็นคลาสฐานแบบนามธรรม (I90893)
การแก้ไขข้อบกพร่อง
- เพิ่มการรองรับขอบเขตแบบสัมพัทธ์เมื่อสร้างการทดสอบ
FoldingFeature
(2e6b3e) - การแก้ไขข้อบกพร่องทั่วไปเมื่อเลือก
WindowSizeClass
เวอร์ชัน 1.4.0-alpha03
18 กันยายน 2024
androidx.window:window-*:1.4.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มเมธอดยูทิลิตีเพื่อรับ
WindowSizeClass
จากWindowMetrics
(I83f1f) - เปลี่ยนชื่อ
isAtLeast
เป็นcontainsBreakpoint
(I85b47) - เพิ่มการโอเวอร์โหลดใน
computeWindowSizeClass
โดยใช้ตัวเลขทศนิยม (I3dcb2, b/364677934, b/364677802, b/364680886)
การแก้ไขข้อบกพร่อง
- เพิ่มเบรกพอยต์ที่ขาดหายไปลงในชุดเบรกพอยต์
WindowSizeClass
เริ่มต้น - แก้ไขข้อบกพร่องที่ระบบเลือกขนาดกะทัดรัดไม่ถูกต้องในบางกรณี
เวอร์ชัน 1.4.0-alpha02
4 กันยายน 2024
androidx.window:window-*:1.4.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เพิ่มการรองรับ WindowSizeClass
ที่กําหนดเอง
- เปิดคอนสตรัคเตอร์สําหรับ
WindowSizeClass
เพื่อให้นักพัฒนาซอฟต์แวร์ใช้คอนสตรัคเตอร์ของตัวเองได้ - เพิ่มเมธอดยูทิลิตี
isAtLeast
เพื่อให้นักพัฒนาซอฟต์แวร์ประมวลผลช่วงค่าWindowSizeClass
ได้ - เพิ่มฟังก์ชันส่วนขยายใน
Set<WindowSizeClass>
เพื่อคํานวณรายการที่ตรงกันที่สุดจากชุด - เพิ่มค่าคงที่สำหรับเบรกพอยต์ที่แนะนำของ Android
- เพิ่มชุดเบรกพอยต์ที่สอดคล้องกับเบรกพอยต์ที่ Android แนะนำ
การเปลี่ยนแปลง API
- อัปเดตชื่อเมธอดขอบเขตสำหรับ
WindowSizeClass
(If89a6) - อัปเดต
WindowSizeClass
API เพื่อรองรับการเพิ่มค่าจุดหยุดพักใหม่ในอนาคต เราใช้ขอบเขตล่างแทนขอบเขตสัมบูรณ์ และขอแนะนําให้นักพัฒนาซอฟต์แวร์ใช้การตรวจสอบขอบเขตล่างเมื่อประมวลผลWindowSizeClass
เราจะเลิกใช้งานWindowWidthSizeClass
และWindowHeightSizeClass
ที่มีอยู่เนื่องจากจะไม่พัฒนาต่อไป (I014ce)
เวอร์ชัน 1.4.0-alpha01
7 สิงหาคม 2024
androidx.window:window-*:1.4.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- การปักหมุด ActivityStack ช่วยให้แอปปักหมุดเนื้อหาในคอนเทนเนอร์หนึ่งและแยกการนําทางออกจากคอนเทนเนอร์อื่นได้
- ตัวแบ่งแบบอินเทอร์แอกทีฟช่วยให้แอปแสดงตัวแบ่งแบบคงที่หรือแบบลากไปมาได้ระหว่างกิจกรรม 2 รายการในงานนำเสนอแบบแยก
- การลดแสงกล่องโต้ตอบแบบเต็มหน้าจอช่วยให้แอประบุพื้นที่การลดแสงของกล่องโต้ตอบได้ เพื่อลดแสงทั้งหน้าต่างงานหรือลดแสงเฉพาะคอนเทนเนอร์ที่แสดงกล่องโต้ตอบ
- การเรียกกลับข้อมูลกรอบเวลากิจกรรมที่ฝังช่วยให้แอปได้รับการอัปเดตกรอบเวลากิจกรรมที่ฝังอย่างต่อเนื่อง
- การฝังพื้นหลังภาพเคลื่อนไหวช่วยให้แอประบุพื้นหลังของภาพเคลื่อนไหวได้ ซึ่งจะช่วยปรับปรุงคุณภาพของภาพเคลื่อนไหวการเปลี่ยนเมื่อใช้
ActivityEmbedding
- การจัดการ ActivityStack ที่ปรับปรุงแล้วช่วยให้แอปควบคุม
ActivityStacks
ได้มากขึ้นเมื่อใช้ActivityEmbedding
ซึ่งรวมถึงการดำเนินการต่อไปนี้ - การเริ่มกิจกรรมใน
ActivityStack
ที่ระบุ - การทำ
ActivityStack
ให้เสร็จ
การเปลี่ยนแปลง API
API ใหม่
WindowInfoTracker#supportedPostures
- API เพื่อระบุว่าอุปกรณ์รองรับโหมดตั้งโต๊ะสำหรับอุปกรณ์แบบพับได้หรือไม่ เพิ่ม WindowAreaSessionPresenter#getWindow
เพิ่ม API เพื่อรองรับ
ActivityStack
การปักหมุด- ชั้นเรียน
SplitPinRule
SplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
- ชั้นเรียน
เพิ่ม API เพื่อเปิดใช้และกําหนดค่าตัวแบ่งแบบอินเทอร์แอกทีฟ
- ชั้นเรียน
DividerAttributes
SplitAttributes.Builder#setDividerAttributes
- ชั้นเรียน
เพิ่ม API เพื่อตั้งค่า
EmbeddingConfiguration
และDimAreaBehavior
สำหรับกล่องโต้ตอบ- ชั้นเรียน
EmbeddingConfiguration
- ชั้นเรียน
DimAreaBehavior
ActivityEmbeddingController#setEmbeddingConfiguration
- ชั้นเรียน
เพิ่ม API เพื่อรับการอัปเดตข้อมูลกรอบเวลากิจกรรมที่ฝัง
- ชั้นเรียน
EmbeddedActivityWindowInfo
ActivityEmbeddingController#embeddedActivityWindowInfo
- ชั้นเรียน
เพิ่ม API เพื่อตั้งค่าพื้นหลังของภาพเคลื่อนไหวที่ฝัง
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
เพิ่ม API เพื่อดำเนินการให้เสร็จสิ้น
ActivityStacks
ActivityEmbeddingController#finishActivityStacks
เพิ่ม API เพื่อตั้งค่าการเปิดตัว
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
API ต่อไปนี้เป็นเวอร์ชันที่เสถียรและไม่ใช่เวอร์ชันทดลองอีกต่อไป
ActivityEmbeddingController#invalidateVisibleActivityStacks
(ย้ายมาจาก SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
เพิ่ม API สำหรับ 1.4 (I56774)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องในอุปกรณ์บางรุ่นที่ระบบจะแสดงผลเป็น "ไม่พร้อมใช้งาน" แทน "ใช้งานอยู่" เมื่อเซสชันทำงานอยู่
- นำการรองรับ
transferActivityToWindowArea
บนอุปกรณ์ที่มีvendorApiLevel
เป็น 2 ออกเนื่องจากการรองรับ API ไม่เสถียร - เปิดตัว API เพื่อเปิดใช้การลากเพื่อขยายเป็นหน้าจอเต็มสำหรับตัวแบ่งที่ลากได้ของการฝังกิจกรรม (I645c9)
- อนุญาตให้แอปปิดใช้ภาพเคลื่อนไหว
ActivityEmbedding
ผ่านพารามิเตอร์ภาพเคลื่อนไหวสําหรับSplitAttributes
(Idc01a) - นำการระบุการเข้าถึง API ของแพลตฟอร์มใหม่ด้วยตนเองออกแล้ว เนื่องจากการดำเนินการนี้จะดำเนินการโดยอัตโนมัติผ่านการจําลอง API เมื่อใช้ R8 กับ AGP 7.3 ขึ้นไป (เช่น R8 เวอร์ชัน 3.3) และสำหรับบิลด์ทั้งหมดเมื่อใช้ AGP 8.1 ขึ้นไป (เช่น D8 เวอร์ชัน 8.1) เราขอแนะนำให้ลูกค้าที่ไม่ได้ใช้ AGP อัปเดตเป็น D8 เวอร์ชัน 8.1 ขึ้นไป ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม (Ia60e0, b/345472586)
- อนุญาตให้ส่วนขยายใช้พารามิเตอร์ภาพเคลื่อนไหวสําหรับ
SplitAttributes
เพื่อให้อุปกรณ์ใช้พารามิเตอร์ดังกล่าวสําหรับการเปลี่ยนภาพเคลื่อนไหวได้ (Iede00) - ซ่อน API การวางซ้อน (Ic4251)
- แนะนำ API เพื่อกำหนดค่าตัวแบ่งแบบคงที่หรือแบบลากได้สำหรับการแยก (Ia7a78)
- เพิ่มความหนาแน่นลงใน
WindowMetrics
(Id6723) - เพิ่ม API เพื่อรับ
SupportedPostures
(If557a) - นำ
setLaunchingActivityStack
ออกจาก API เวอร์ชันทดลอง (I191cf) - แนะนำ
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - เลิกใช้งาน
#getToken
และเพิ่ม#getActivityStackToken
(Ie0471) - เปิดตัวอะแดปเตอร์การเรียกกลับสําหรับ
embeddedActivityWindowInfo
flow API (Ida77f) - เพิ่มอะแดปเตอร์การเรียกกลับสําหรับ API เวิร์กโฟลว์ overlayInfo (I7264f)
- แนะนำ
WindowSdkExtensionsRule
เพื่อลบล้างextensionsVersion
สำหรับการทดสอบ (Ifb928) - - ย้ายข้อมูล
#setLaunchingActivityStack
ไปยัง Bundle เพื่อให้ใช้งานร่วมกับActivityOptionsCompat
ได้- ผู้ใช้ควรส่ง
activityOptions.toBundle
แทนActvityOptions
- นำ
#setLaunchingActivityStack(Activity)
ออก ผู้ใช้ควรย้ายข้อมูลเพื่อใช้ActivityEmbeddingController#getActivityStac(Activity)
เพื่อรับActivityStack
และส่งActivityStack
ไปยัง#setLaunchingActivityStack
(Ie0ccc)
- ผู้ใช้ควรส่ง
- - แนะนำ
ActivityStack.Token
และSpltInfo.Token
เป็นตัวระบุเพื่อสื่อสารระหว่าง WM Jetpack กับส่วนขยาย- เลิกใช้งาน/แทนที่ API เพื่อรับ/แสดงผลโทเค็นแทน IBinder (I12b24)
- - แนะนำ
ActivityEmbeddingController#invalidateVisibleActivityStacks
- นำ
SplitController#invalidateTopVisibleSplitAttributes
ออกเนื่องจากฟีเจอร์นี้รวมเข้ากับ#invalidateVisibleActivityStacks
แล้ว (I02ef5)
- นำ
- - การเพิ่ม API เพื่อกำหนดค่าการฝัง (I59a4a)
- - เพิ่ม/เลิกปักหมุด
ActivityStack
androidx.Window
API ยอดนิยม- การอัปเดตแอปเดโมเพื่ออนุญาตให้ปักหมุด/เลิกปักหมุดรายการยอดนิยม
ActivityStack
(I24dd3)
- การอัปเดตแอปเดโมเพื่ออนุญาตให้ปักหมุด/เลิกปักหมุดรายการยอดนิยม
- เพิ่ม
#finishActivityStacks
และActivityEmbeddingOptions
อีกครั้ง (Ic1ab3) - นำ API ที่ไม่เสถียรออก (Ibc534, b/302380585)
เวอร์ชัน 1.3
เวอร์ชัน 1.3.0
29 พฤษภาคม 2024
androidx.window:window-*:1.3.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0
- การรองรับ Kotlin Multiplatform สำหรับคลาสขนาดหน้าต่าง
เวอร์ชัน 1.3.0-rc01
14 พฤษภาคม 2024
WindowManager
Jetpack 1.3 รองรับ Kotlin Multiplatform สำหรับฟีเจอร์ WindowSizeClass
รวมถึงการแก้ไขข้อบกพร่องหลายรายการ
androidx.window:window-*:1.3.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.3.0-beta02
1 พฤษภาคม 2024
androidx.window:window-*:1.3.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำการรองรับการสร้างและใช้
WindowSizeClass
ที่กําหนดเองออก (Id1143)
การแก้ไขข้อบกพร่อง
- แก้ไข
KotlinReflectionInternalError
ที่เกิดจาก ProGuard ตัดไฟล์บางไฟล์ออกในการใช้งานอุปกรณ์บางรุ่น (I01b02)
เวอร์ชัน 1.3.0-beta01
3 เมษายน 2024
androidx.window:window-*:1.3.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-beta01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.3.0-alpha03
6 มีนาคม 2024
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
7 กุมภาพันธ์ 2024
androidx.window:window-*:1.3.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- การอัปเดตที่ดำเนินการกับอินเทอร์เฟซ API ของ Window Size Class API เพื่อเพิ่มความยืดหยุ่นให้กับนักพัฒนาแอปที่ต้องการใช้คลาสขนาดของตนเอง
การเปลี่ยนแปลง API
- เพิ่มข้อจำกัดความสูงลงในตัวเลือกความกว้าง (I23393)
- เพิ่มฟังก์ชันยูทิลิตีสําหรับการเลือก
WindowSizeClass
จากชุด เพิ่มฟังก์ชันการให้คะแนนเวอร์ชันทดลองเพื่อให้นักพัฒนาแอปเขียนตัวเลือกของตนเองได้ เพิ่มฟังก์ชันส่วนขยายตัวเลือกเพื่อเลือกWindowSizeClass
ที่กว้างที่สุดภายในขอบเขตที่ระบุ (I0c944) - เปิดคอนสตรัคเตอร์
WindowSizeClass
เพื่อให้เพิ่มเบรกพอยต์ที่กำหนดเองได้ (Ic1ff3) - เพิ่มฟังก์ชันอำนวยความสะดวกเพื่อสร้างคลาสขนาดจากความกว้าง ความสูง และค่าความหนาแน่น (If67f4)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อยกเว้นเมื่อมีการตัดค่าทศนิยมให้เหลือ 0 (272ffac)
เวอร์ชัน 1.3.0-alpha01
15 พฤศจิกายน 2023
androidx.window:window-*:1.3.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- API การทดสอบสําหรับการสร้าง
FoldingFeature
ทำงานได้อย่างเสถียรแล้ว - ตอนนี้ API การทดสอบสําหรับการตั้งค่าค่า
ActivityEmbedding
จําลองมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลการพับฟีเจอร์ไปยังพารามิเตอร์UiContext
- แสดงเวอร์ชันของส่วนขยายในอุปกรณ์
WindowProperties
ค่าคงที่สำหรับการลบล้างระดับผู้ใช้ต่อแอปมีดังนี้PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— แจ้งให้ระบบทราบว่าแอปไม่ได้เลือกการลบล้างความเข้ากันได้ของขนาดหน้าจอที่แสดงต่อผู้ใช้PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
- แจ้งให้ระบบทราบว่าแอปไม่ได้เลือกใช้ตัวเลือกแบบเต็มหน้าจอของการตั้งค่าการลบล้างความเข้ากันได้ของอัตราส่วนภาพสำหรับผู้ใช้
เวอร์ชัน 1.2
เวอร์ชัน 1.2.0
15 พฤศจิกายน 2023
androidx.window:window-*:1.2.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.1.0
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- API การทดสอบสําหรับการสร้าง
FoldingFeature
ทำงานได้อย่างเสถียรแล้ว - ตอนนี้ API การทดสอบสําหรับการตั้งค่าค่า
ActivityEmbedding
จําลองมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลการพับฟีเจอร์ไปยังพารามิเตอร์UiContext
- แสดงเวอร์ชันของส่วนขยายในอุปกรณ์
เวอร์ชัน 1.2.0-rc01
1 พฤศจิกายน 2023
androidx.window:window-*:1.2.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-rc01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- API การทดสอบสําหรับการสร้าง
FoldingFeature
ทำงานได้อย่างเสถียรแล้ว - ตอนนี้ API การทดสอบสําหรับการตั้งค่าค่า
ActivityEmbedding
จําลองมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลการพับฟีเจอร์ไปยังพารามิเตอร์UiContext
- แสดงเวอร์ชันของส่วนขยายในอุปกรณ์
เวอร์ชัน 1.2.0-beta04
18 ตุลาคม 2023
androidx.window:window-*:1.2.0-beta04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ API ที่ไม่เสถียรออก (Ibc534, b/302380585)
เวอร์ชัน 1.2.0-beta03
20 กันยายน 2023
androidx.window:window-*:1.2.0-beta03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม
RequiresApi
การตรวจสอบ API ที่ต้องมีส่วนขยายเวอร์ชันที่เฉพาะเจาะจงจึงจะทํางานได้อย่างถูกต้อง - เพิ่ม API เพื่อแสดงเวอร์ชันของส่วนขยายในอุปกรณ์
การเปลี่ยนแปลง API
- กำกับเนื้อหาเกี่ยวกับเวอร์ชันส่วนขยาย SDK ของกรอบเวลาที่จำเป็นใน API สาธารณะ
- นํา
isXXXSupported
ออกจากคอมโพเนนต์การฝังกิจกรรม (Ie3dae)
- นํา
- แนะนำ
WindowSdkExtensions
เพื่อรายงานเวอร์ชันส่วนขยายในอุปกรณ์- แนะนำ
RequiresWindowSdkExtension
เพื่อกำกับเนื้อหาเกี่ยวกับเวอร์ชันส่วนขยายขั้นต่ำที่จำเป็น (I05fd4)
- แนะนำ
- ทำให้
WindowAreaInfo#getCapability
เป็นค่าที่ไม่นิ่ง (I17048)
เวอร์ชัน 1.2.0-beta01
26 กรกฎาคม 2023
androidx.window:window-*:1.2.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- API การทดสอบสําหรับการสร้าง
FoldingFeature
ทำงานได้อย่างเสถียรแล้ว - ตอนนี้ API การทดสอบสําหรับการตั้งค่าค่า
ActivityEmbedding
จําลองมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลการพับฟีเจอร์ไปยังพารามิเตอร์UiContext
การเปลี่ยนแปลง API
- ทำเครื่องหมาย
WindowArea
API เป็นเวอร์ชันทดลองเพื่อให้การเปลี่ยนแปลง API ต่อไปสำหรับรุ่นที่เสถียรใน 1.3 (I857f5) - อัปเดตไฟล์ API เพื่อกำกับเนื้อหาการระงับความเข้ากันได้ (I8e87a, b/287516207)
เวอร์ชัน 1.2.0-alpha03
21 มิถุนายน 2023
androidx.window:window-*:1.2.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- นำ API ที่เลิกใช้งานแล้วออกจากแพลตฟอร์ม API
- เพิ่ม API เพื่อรองรับการแสดงผลพร้อมกัน
- เพิ่มพร็อพเพอร์ตี้เพื่อเลือกไม่ใช้การลบล้างการปรับขนาดแบบบังคับ
- เพิ่มพร็อพเพอร์ตี้เพื่อเลือกไม่ใช้การลบล้างสัดส่วนภาพขั้นต่ำ
- ปรับปรุง
ActivityEmbeddingRule
ให้รองรับการทดสอบหน่วยเกี่ยวกับการฝังกิจกรรม
การเปลี่ยนแปลง API
การแก้ไขข้อบกพร่อง
- การเพิ่มพร็อพเพอร์ตี้ความเข้ากันได้ในการเลือกไม่ใช้สำหรับการบังคับปรับขนาดการลบล้าง (Ie7ab1)
- นำ
SESSION_STATE_CONTENT_INVISIBLE
ออกจากอินเทอร์เฟซส่วนขยาย (I6ed19) - ปรับปรุง
ActivityEmbeddingRule
ให้เสถียรเพื่อรองรับการทดสอบหน่วยเกี่ยวกับแทรกกิจกรรม (I8d6b6) - การเพิ่มพร็อพเพอร์ตี้ความเข้ากันได้แบบไม่บังคับสำหรับการลบล้างสัดส่วนภาพขั้นต่ำ (I66390)
- นำ WindowArea API ที่เลิกใช้งานแล้วออก (Ieb67c)
- เปลี่ยนชื่อพร็อพเพอร์ตี้ลูปคำขอการวางแนวเป็น
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
(Ie2fbd) - อัปเดตชื่อคงที่ของเซสชันพื้นที่หน้าต่าง (I83675)
- การเพิ่มพร็อพเพอร์ตี้ความเข้ากันได้ในการเลือกไม่ใช้ซึ่งละเว้นการวนคำขอการวางแนวเมื่อตรวจพบ (I0a7a2)
- เพิ่ม
WindowAreaComponent#STATUS_ACTIVE
เพื่อระบุว่าฟีเจอร์ใช้งานได้แล้ว (I62bc3) - เพิ่ม
RearDisplayPresentationMode
API (I0401c) - นำ API สีพื้นหลังออกสำหรับเวอร์ชันเสถียร (I34c3e)
- ซ่อน Window Area API (I39de0)
- เพิ่มวิธีการลบล้าง
SplitInfo
ในSplitController
เพิ่มวิธีการทดสอบเพื่อสร้างรายการแบบคู่สําหรับSplitInfo
และActivityStack
(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
- ย้าย
add
/removeSplitCallback
ไปยังSplitControllerCallbackAdapter
- เพิ่มการสนับสนุน
Flow
เพื่อดูรายการSplitInfo
(I7f1b6)
- ย้าย
- เพิ่มกฎทดสอบสำหรับ
ActivityEmbeddingController
(I42e9b) - เปลี่ยนชื่อ
ActivityOptionsCompat
เป็นActivityEmbeddingOptions
(I89301) - เพิ่ม
splitSupportStatus
เพื่อระบุว่าการฝังกิจกรรมพร้อมใช้งานหรือไม่ (I10024) - แนะนำ
SplitAttributes.BackgroundColor
เพื่อแสดงค่าDEFAULT
ได้ดียิ่งขึ้น ชี้แจงว่าระบบไม่รองรับสีพื้นหลังของภาพเคลื่อนไหวที่ไม่ทึบแสง ระบบจึงจะถือว่าสีที่ไม่ทึบแสงเป็นค่าเริ่มต้น ซึ่งหมายความว่าจะใช้สีพื้นหลังของหน้าต่างธีมปัจจุบัน (Ic6b95) - แทนที่
alwaysAllow()
และalwaysDisallow()
ด้วยALWAYS_ALLOW
และALWAYS_DISALLOW
(I3057b) - เพิ่ม API สำหรับ
SplitRule
,SplitAttributes
,SplitAttributesCalculator
(I92d23) - เพิ่ม
TestActivityStack
เพื่อสร้างActivityStack
สำหรับการทดสอบ- เพิ่ม
TestSplitInfo
เพื่อสร้างSplitInfo
สำหรับการทดสอบ (I8e779)
- เพิ่ม
- เพิ่มวิธีสร้าง
SplitAttributesCalculatorParams
จำลองเพื่อให้นักพัฒนาแอปยืนยันSplitAttributesCalculator
ที่กําหนดเองได้ (Id4a6e) - เพิ่ม
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
และWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f)
เวอร์ชัน 1.2.0-alpha02
7 มิถุนายน 2023
androidx.window:window-*:1.2.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดต API การทดสอบให้มีค่าคงที่สำหรับฟีเจอร์การพับที่ไม่ระบุ
- การลบล้างด้วย
WindowLayoutInfoPublishRule
จะลบล้างค่าทั้งหมดของwindowLayoutInfo
รวมถึง API ตามบริบท
การเปลี่ยนแปลง API
- เพิ่มค่าคงที่สำหรับฟีเจอร์การพับตรงกลางที่ไม่ระบุ (I7530c)
การแก้ไขข้อบกพร่อง
- อัปเดต
WindowLayoutInfoPublishRule
เพื่อรองรับการลบล้างในWindowLayoutInfo
ของContext
(I2037a)
เวอร์ชัน 1.2.0-alpha01
24 พฤษภาคม 2023
androidx.window:window-*:1.2.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เพิ่มความเสถียรให้กับการทดสอบ API เกี่ยวกับการฝังกิจกรรมและ WindowLayoutInfoTracker
ActivityEmbeddingRule
ได้รับการโปรโมตเป็นเวอร์ชันเสถียรแล้ว
WindowMetricsCalculatorRule
ได้รับการโปรโมตเป็นเวอร์ชันเสถียรแล้ว
ฟังก์ชันยูทิลิตีในการสร้าง FoldingFeature
สำหรับการทดสอบได้รับการโปรโมตเป็นเวอร์ชันเสถียรแล้ว
การเปลี่ยนแปลง API
- ปรับปรุง
ActivityEmbeddingRule
ให้เสถียรเพื่อรองรับการทดสอบหน่วยเกี่ยวกับแทรกกิจกรรม (I8d6b6) WindowMetrisCalculatorTestRule
เสถียรและอนุญาตให้ใช้เมตริกสแต็บสําหรับการทดสอบ JVM เราขอแนะนำให้ใช้โปรแกรมจำลองเพื่อให้ได้ผลลัพธ์ที่ถูกต้อง- เพิ่มความเสถียรของ API การทดสอบสําหรับ
WindowLayoutInfo
เพื่อรองรับการทดสอบ JVM (Ie036e) - เพิ่ม
IntRange
สำหรับค่าฟีเจอร์การทดสอบการพับ (I69f7d)
เวอร์ชัน 1.1
เวอร์ชัน 1.1.0
7 มิถุนายน 2023
androidx.window:window-*:1.1.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.0.0
การฝังกิจกรรม
- เพิ่ม
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
เป็นพร็อพเพอร์ตี้บูลีนของแท็ก<application>
ในไฟล์ Manifest ของแอป - เลิกใช้งาน
isSplitSupported
และแทนที่ด้วยsplitSupportStatus
เพื่อแสดงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสาเหตุที่ฟีเจอร์แยกไม่พร้อมใช้งาน - เพิ่มคลาสที่ฝัง
SplitController.SplitSupportStatus
เพื่อระบุค่าคงที่สถานะสำหรับพร็อพเพอร์ตี้splitSupportStatus
- แยก
SplitController
ออกเป็นหลายโมดูล ดังนี้- โมดูล
ActivityEmbeddingController
สำหรับ API ที่เกี่ยวข้องกับActivity
หรือActivityStack
- ย้าย
isActivityEmbedded
จากSplitController
ไปActivityEmbeddingController
แล้ว - โมดูล
RuleController
สําหรับการดําเนินการที่เกี่ยวข้องกับEmbeddingRule
- API
SplitController
ที่ถูกนําออก clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- API
RuleController
ที่เพิ่มเข้ามา addRule()
— เพิ่มกฎหรืออัปเดตกฎที่มีแท็กเดียวกันremoveRule()
— นำกฎออกจากคอลเล็กชันกฎที่ลงทะเบียนsetRules()
— สร้างคอลเล็กชันกฎclearRules()
— นำกฎที่ลงทะเบียนไว้ทั้งหมดออกparseRules()
— แยกวิเคราะห์กฎจากคําจํากัดความของกฎ XML
- โมดูล
- โมดูลทั้งหมดต้องมีการเริ่มต้นบริบทด้วยเมธอด
#getInstance()
ซึ่งรวมถึงActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- เพิ่มคลาส
EmbeddingAspectRatio
เพื่อกําหนดค่าคงที่ของลักษณะการทํางานแบบ Enum ที่เกี่ยวข้องกับสัดส่วนการแสดงผล - เพิ่มคลาส
SplitAttributes
เพื่อกำหนดเลย์เอาต์แบบแยก - เพิ่มฟังก์ชันเครื่องคิดเลข
SplitAttributes
ลงในSplitController
เพื่อปรับแต่งเลย์เอาต์แบบแยก ดังนี้setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
เพื่อตรวจสอบว่าอุปกรณ์รองรับSplitAttributesCalculator
API หรือไม่
- เพิ่มช่อง
EmbeddingRule#tag
แล้ว - การอัปเดต API ใน
SplitRule
- เพิ่ม
defaultSplitAttributes
— กําหนดเลย์เอาต์การแยกเริ่มต้นของการแยก แทนที่splitRatio
และlayoutDirection
- เพิ่มการแปลพร็อพเพอร์ตี้ XML
splitRatio
และsplitLayoutDirection
เป็นdefaultSplitAttributes
- เปลี่ยนคำจำกัดความของขนาดขั้นต่ำให้ใช้ความหนาแน่นของพิกเซลอิสระ (dp) แทนพิกเซล
- เพิ่ม
minHeightDp
ที่มีค่าเริ่มต้น 600dp - เปลี่ยน
minWidth
เป็นminWidthDp
ที่มีค่าเริ่มต้น 600dp - เปลี่ยน
minSmallestWidth
เป็นminSmallestWidthDp
ที่มีค่าเริ่มต้น 600dp - เพิ่ม
maxAspectRatioInHorizontal
ที่มีค่าเริ่มต้นALWAYS_ALLOW
- เพิ่ม
maxAspectRatioInPortrait
ที่มีค่าเริ่มต้น 1.4 - กำหนดคลาสที่ฝัง
FinishBehavior
เพื่อแทนที่ค่าคงที่ของลักษณะการทำงานที่เสร็จสิ้น - ใช้การเปลี่ยนแปลงพร็อพเพอร์ตี้กับคลาสที่ฝังของ
SplitPairRule
และSplitPlaceholderRule
ของ Builder
- เพิ่ม
- แทนที่
SplitInfo#getSplitRatio()
ด้วยSplitInfo#getSplitAttributes()
เพื่อให้ข้อมูลเพิ่มเติมเกี่ยวกับการแยก
WindowLayout
- เพิ่มการรองรับบริบท UI ที่ไม่เกี่ยวข้องกับกิจกรรมเวอร์ชันทดลองลงใน
WindowInfoTracker
- เพิ่มบริบท UI เวอร์ชันทดลองที่ไม่ใช่กิจกรรมลงใน
WindowMetricsCalculator
ขั้นตอนการย้ายข้อมูล
- หากต้องการเปิดใช้การฝังกิจกรรมเพื่อแสดงกิจกรรมแบบแยก แอปต้องเพิ่มพร็อพเพอร์ตี้
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
ลงในแท็ก<application>
ของไฟล์ Manifest ดังนี้xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
วิธีนี้ช่วยให้ระบบเพิ่มประสิทธิภาพลักษณะการแยกสําหรับแอปพลิเคชันล่วงหน้าได้ SplitInfo
ratio- ตรวจสอบว่ามีการซ้อนการแยกปัจจุบันหรือไม่ โดยทำดังนี้
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
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
- ตอนนี้
minWidth
และminSmallestWidth
ใช้หน่วย dp แทนพิกเซล แอปสามารถใช้การเรียกใช้ต่อไปนี้kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
หรือเพียงแค่หารminWith
เป็นพิกเซลด้วยdisplayMetrics#density
- ตอนนี้
- ต้องย้ายข้อมูลค่าคงที่ของลักษณะการทำงาน "เสร็จสิ้น" ไปยัง
FinishBehavior
ค่าคงที่ของคลาสที่คล้ายกับ enum ดังนี้FINISH_NEVER
เปลี่ยนเป็นFinishBehavior.NEVER
FINISH_ALWAYS
เปลี่ยนเป็นFinishBehavior.ALWAYS
FINISH_ADJACENT
เปลี่ยนเป็นFinishBehavior.ADJACENT
- คุณต้องย้ายข้อมูลการวางแนวเลย์เอาต์เป็น
SplitAttributes.LayoutDirection
โดยทำดังนี้ltr
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
rtl
เปลี่ยนเป็นSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
locale
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LOCALE
- คุณต้องย้ายข้อมูล
splitRatio
ไปยังSplitAttributes.SplitType.ratio(splitRatio)
- การย้ายข้อมูล
SplitPairRule.Builder
รายการ: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)
เปลี่ยนเป็นkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
และsetFinishSecondaryWithPrimary
ใช้ค่าคงที่แบบFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกในอุปกรณ์แนวตั้ง
- การย้ายข้อมูล
SplitPlaceholder.Builder
รายการ:- มีเฉพาะพารามิเตอร์
filters
และplaceholderIntent
พร็อพเพอร์ตี้อื่นๆ จะย้ายไปยังตัวเซ็ตเตอร์ ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitPairRule.Builder" setFinishPrimaryWithPlaceholder
ใช้ค่าคงที่แบบFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"setLayoutDirection(layoutDirection)
และsetSplitRatio(ratio)
เปลี่ยนเป็นkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกในอุปกรณ์แนวตั้ง
- มีเฉพาะพารามิเตอร์
เวอร์ชัน 1.1.0-rc01
10 พฤษภาคม 2023
androidx.window:window-*:1.1.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-rc01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่
ActivityEmbedding
เป็น API ที่เสถียร - การแก้ไขข้อบกพร่องหลายรายการ
เวอร์ชัน 1.1.0-beta02
5 เมษายน 2023
androidx.window:window-*:1.1.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- การแก้ไขและล้างข้อมูลภายใน
เวอร์ชัน 1.1.0-beta01
22 มีนาคม 2023
androidx.window:window-*:1.1.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้
การฝังกิจกรรม
- เพิ่ม
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
เป็นพร็อพเพอร์ตี้บูลีนของแท็ก<application>
ในไฟล์ Manifest ของแอป - เลิกใช้งาน
isSplitSupported
และแทนที่ด้วยsplitSupportStatus
เพื่อแสดงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสาเหตุที่ฟีเจอร์แยกไม่พร้อมใช้งาน - เพิ่มคลาสที่ฝัง
SplitController.SplitSupportStatus
เพื่อระบุค่าคงที่สถานะสำหรับพร็อพเพอร์ตี้splitSupportStatus
- แยก
SplitController
ออกเป็นหลายโมดูล ดังนี้- โมดูล
ActivityEmbeddingController
สำหรับ API ที่เกี่ยวข้องกับActivity
หรือActivityStack
- ย้าย
isActivityEmbedded
จากSplitController
ไปActivityEmbeddingController
แล้ว - โมดูล
RuleController
สําหรับการดําเนินการที่เกี่ยวข้องกับEmbeddingRule
- API
SplitController
ที่ถูกนําออกมีดังนี้clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- เพิ่ม
RuleController
API ต่อไปนี้addRule()
— เพิ่มกฎหรืออัปเดตกฎที่มีแท็กเดียวกันremoveRule()
— นำกฎออกจากคอลเล็กชันกฎที่ลงทะเบียนsetRules()
— สร้างคอลเล็กชันกฎclearRules()
— นำกฎที่ลงทะเบียนไว้ทั้งหมดออก- `parseRules() — แยกวิเคราะห์กฎจากคําจํากัดความของกฎ XML
- โมดูล
- โมดูลทั้งหมดต้องมีการเริ่มต้นบริบทด้วยเมธอด
#getInstance()
ซึ่งรวมถึงActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- เพิ่มคลาส
EmbeddingAspectRatio
เพื่อกําหนดค่าคงที่ของลักษณะการทํางานแบบ Enum ที่เกี่ยวข้องกับสัดส่วนการแสดงผล - เพิ่มคลาส
SplitAttributes
เพื่อกำหนดเลย์เอาต์แบบแยก - เพิ่มฟังก์ชันเครื่องคิดเลข
SplitAttributes
ลงในSplitController
เพื่อปรับแต่งเลย์เอาต์แบบแยก ดังนี้setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
เพื่อตรวจสอบว่าอุปกรณ์รองรับ SplitAttributesCalculator API หรือไม่
- เพิ่มช่อง
EmbeddingRule#tag
แล้ว - การอัปเดต API ใน
SplitRule
- เพิ่ม
defaultSplitAttributes
— กําหนดเลย์เอาต์การแยกเริ่มต้นของการแยก แทนที่splitRatio
และlayoutDirection
- เพิ่มการแปลพร็อพเพอร์ตี้ XML
splitRatio
และsplitLayoutDirection
เป็นdefaultSplitAttributes
- เปลี่ยนคำจำกัดความของขนาดขั้นต่ำให้ใช้ความหนาแน่นของพิกเซลอิสระ (dp) แทนพิกเซล
- เพิ่ม
minHeightDp
ที่มีค่าเริ่มต้น 600dp - เปลี่ยน
minWidth
เป็นminWidthDp
ที่มีค่าเริ่มต้น 600dp - เปลี่ยน
minSmallestWidth
เป็นminSmallestWidthDp
ที่มีค่าเริ่มต้น 600dp - เพิ่ม
maxAspectRatioInHorizontal
ที่มีค่าเริ่มต้นALWAYS_ALLOW
- เพิ่ม
maxAspectRatioInPortrait
ที่มีค่าเริ่มต้น1.4
- กำหนดคลาสที่ฝัง
FinishBehavior
เพื่อแทนที่ค่าคงที่ของลักษณะการทำงานที่เสร็จสิ้น - ใช้การเปลี่ยนแปลงพร็อพเพอร์ตี้กับคลาสที่ฝัง
Builder
ของSplitPairRule
และSplitPlaceholderRule
- เพิ่ม
- แทนที่
SplitInfo#getSplitRatio()
ด้วยSplitInfo#getSplitAttributes()
เพื่อให้ข้อมูลเพิ่มเติมเกี่ยวกับการแยก
WindowLayout
- เพิ่มการรองรับบริบท UI ที่ไม่ใช่กิจกรรมลงใน
WindowInfoTracker
- เพิ่มบริบท UI ที่ไม่ใช่กิจกรรมลงใน
WindowMetricsCalculator
ขั้นตอนการย้ายข้อมูล
- หากต้องการเปิดใช้การฝังกิจกรรมเพื่อแสดงกิจกรรมแบบแยก แอปต้องเพิ่มพร็อพเพอร์ตี้
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
ลงในแท็ก<application>
ของไฟล์ Manifest ดังนี้xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
วิธีนี้ช่วยให้ระบบเพิ่มประสิทธิภาพลักษณะการแยกสําหรับแอปพลิเคชันล่วงหน้าได้ SplitInfo
ratio- ตรวจสอบว่ามีการซ้อนการแยกปัจจุบันหรือไม่ โดยทำดังนี้
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
รายการ: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
- ตอนนี้
minWidth
และminSmallestWidth
ใช้หน่วย dp แทนพิกเซล แอปสามารถใช้การเรียกใช้ต่อไปนี้kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
หรือเพียงแค่หารminWith
เป็นพิกเซลด้วยdisplayMetrics#density
- ตอนนี้
- ต้องย้ายข้อมูลค่าคงที่ของลักษณะการทำงาน "เสร็จสิ้น" ไปยัง
FinishBehavior
ค่าคงที่ของคลาสที่คล้ายกับ Enum ดังนี้FINISH_NEVER
เปลี่ยนเป็นFinishBehavior.NEVER
FINISH_ALWAYS
เปลี่ยนเป็นFinishBehavior.ALWAYS
FINISH_ADJACENT
เปลี่ยนเป็นFinishBehavior.ADJACENT
- คุณต้องย้ายข้อมูลการวางแนวเลย์เอาต์เป็น
SplitAttributes.LayoutDirection
โดยทำดังนี้ltr
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
rtl
เปลี่ยนเป็นSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
locale
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LOCALE
- คุณต้องย้ายข้อมูล
splitRatio
ไปยังSplitAttributes.SplitType.ratio(splitRatio)
- การย้ายข้อมูล
SplitPairRule.Builder
รายการ: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)
เปลี่ยนเป็นkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
และsetFinishSecondaryWithPrimary
ใช้ค่าคงที่แบบFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกในอุปกรณ์แนวตั้ง
- การย้ายข้อมูล
SplitPlaceholder.Builder
รายการ:- มีเฉพาะพารามิเตอร์
filters
และplaceholderIntent
พร็อพเพอร์ตี้อื่นๆ จะย้ายไปยังตัวเซ็ตเตอร์ ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitPairRule.Builder" setFinishPrimaryWithPlaceholder
ใช้ค่าคงที่แบบFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"setLayoutDirection(layoutDirection)
และsetSplitRatio(ratio)
เปลี่ยนเป็นkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกในอุปกรณ์แนวตั้ง
- มีเฉพาะพารามิเตอร์
เวอร์ชัน 1.1.0-alpha06
22 กุมภาพันธ์ 2023
androidx.window:window-*:1.1.0-alpha06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha06 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดงเวอร์ชันทดลองของการรับ
WindowLayoutInfo
จากบริบท UI
การเปลี่ยนแปลง API
- เพิ่ม
splitSupportStatus
เพื่อระบุว่าการฝังกิจกรรมพร้อมใช้งานหรือไม่ (I10024) - กำหนดให้ UI Context
WindowLayoutInfo
API เป็นเวอร์ชันทดลอง (I58ee0) - แนะนำ
WindowAreaController
และ API เพื่อเปิดใช้โหมดRearDisplay
เพื่อย้ายหน้าต่างปัจจุบันไปยังจอแสดงผลที่สอดคล้องกับกล้องหลัง (Iffcbf) - อัปเดตสีพื้นหลังเริ่มต้น (I1ac1b)
- เพิ่มพารามิเตอร์
SplitAttributes
(I18bdd) - เพิ่ม API สำหรับ
SplitRule
,SplitAttributes
,SplitAttributesCalculator
(I92d23) - ปรับปรุง API ที่เกี่ยวข้องกับ
maxAspectRatio
ดังนี้- แทนที่
alwaysAllow()
และalwaysDisallow()
ด้วยALWAYS_ALLOW
และALWAYS_DISALLOW
- อัปเดตเอกสารประกอบ API ของ @see ด้วยเอกสารประกอบแบบสแตนด์อโลน (I3057b)
- แทนที่
- ระบบนำตัวสร้างต่อไปนี้ออกจาก API สาธารณะเนื่องจากแอปไม่ควรเรียกใช้
SplitInfo
constructorActivityStack
constructor (Ide534)
- ตอนนี้
SplitRule
ใช้maxAspectRatioInPortrait/Landscape
โดยจะอนุญาตให้แยกกิจกรรมก็ต่อเมื่อสัดส่วนภาพของขอบเขตหลักเล็กกว่าหรือเท่ากับmaxAspectRatio
ที่ขอ (Ia5990) - เปลี่ยน
RuleController#parseRules
เป็นแบบคงที่ (I785df) - ปรับปรุง API ที่เกี่ยวข้องกับ ActivityEmbedding
- ปรับชื่อ API ให้สอดคล้องกัน - ใช้เพิ่ม/นําออกสําหรับอินสแตนซ์หลายรายการ
registerRule
เปลี่ยนเป็นaddRule
unregisterRule
เปลี่ยนเป็นremoveRule
- แทนที่
getSplitRules
ด้วยgetRules
เนื่องจากActivityRule
ไม่ใช่กฎการแยก - เพิ่ม
RuleController#setRules
เพื่อตั้งค่ากฎหลายรายการ - ดึงข้อมูล API ที่เกี่ยวข้องกับกฎจาก
SplitController
ไปยังRuleController
แบบเดี่ยว ปัจจัยต่างๆ มีดังนี้ addRule
removeRule
getRules
setRules
clearRules
parseRules
- ดึงข้อมูล
#isActivityEmbedded
จากSplitController
ไปยังActivityEmbeddingController
แบบ Singleton ปัจจัยต่างๆ มีดังนี้ 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)
- เราไม่ได้แยกความแตกต่างระหว่างกฎแบบคงที่กับกฎรันไทม์อีกต่อไป อย่างไรก็ตาม การเรียกใช้
#clearRules
จะล้างกฎทั้งหมด ไม่ว่าจะลงทะเบียนกับคําจํากัดความกฎ XML แบบคงที่หรือที่รันไทม์ หากต้องการใช้ลักษณะการทำงานเดิมของSplitController#clearRegisteredRules
โปรดเรียกใช้RuleController#parseRules
ด้วยรหัสทรัพยากร XML และเรียกใช้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 โดยทำดังนี้
- ใช้ขนาดขั้นต่ำเป็น DP แทนพิกเซลสำหรับ
SplitRule
- ปรับโครงสร้างสำหรับ
SplitRule
Builder ให้ใช้มิติข้อมูลขั้นต่ำเป็นตัวเลือก (I95f17)
- ใช้ขนาดขั้นต่ำเป็น DP แทนพิกเซลสำหรับ
- ส่งบริบทเพื่อเริ่มต้น
SplitController
(I42549) - เปลี่ยนชื่อ
SplitRule#layoutDir
เป็น#layoutDirection
และSplitRule Builder#setLayoutDir
เป็นBuilder#setLayoutDirection
(I3f6d1)
เวอร์ชัน 1.1.0-alpha04
9 พฤศจิกายน 2022
androidx.window:window-*:1.1.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดงเมธอดเพื่อระบุว่า
ActivityStack
ว่างเปล่าสำหรับActivityEmbedding
หรือไม่ - นําแท็ก API เวอร์ชันทดลองออกจาก
ActivityEmbedding
API - ซ่อนตัวสร้าง
ActivityRule
เนื่องจากBuilder
เป็นวิธีที่แนะนำในการสร้าง - เพิ่มวิธีการทดลองเพื่อรับ
WindowInsets
ในWindowMetrics
- อัปเดต
SplitPlaceholderFinishBehavior
เพื่อป้องกันไม่ให้ตัวยึดตำแหน่งเสร็จสมบูรณ์ การสิ้นสุดตัวยึดตําแหน่งทําให้เกิดลักษณะการทํางานที่ทําให้สับสน
การเปลี่ยนแปลง API
- ทำให้ val
isEmpty
เป็นสาธารณะเพื่อแทนที่ funisEmpty
- เปลี่ยนชื่อกิจกรรมพารามิเตอร์
ActivityStack
เป็นactivitiesInProcess
(Ia5055) - นำ
ActivityFilter#matchesClassName
และActivityFilter#matchesClassNameOrWildCard
ออกเนื่องจากทำให้สับสน - เพิ่ม
ActivityFilter#componentName
และActivityFilter#intentAction
เพื่อให้ผู้เรียกใช้แยกแยะตัวกรองต่างๆ ได้ (I41f22) - นํา
@Deprecated
API ออกจาก API เวอร์ชันทดลอง (I216b3) - นํา
@ExperimentalWindowApi
สําหรับ Activity Embedding API ออก (I69ebe) - ซ่อนตัวสร้าง
ActivityRule
และใช้ Builder แทน (If4eb6) - เพิ่ม API เพื่อตรวจสอบว่ากิจกรรมเป็นส่วนหนึ่งของ
ActivityFilter
หรือไม่ (Ia43cf) - อัปเดตไฟล์ API ให้สอดคล้องกับการเปลี่ยนแปลงในคลาส
WindowMetrics
และWindowMetricsCalculatorCompat
(I667fe) - อัปเดต Javadoc ของพร็อพเพอร์ตี้
ActivityEmbedding
และชื่อคลาส (Ia1386) - การเพิ่มชื่อแท็กพร็อพเพอร์ตี้
ActivityEmbedding
เพื่อใช้ใน AndroidManifest.xml (Id1ad4) - เพิ่ม API ใหม่
SplitPlaceholderFinishBehavior
และSplitPlaceholderRule.finishPrimaryWithPlaceholder
ซึ่งจะแทนที่SplitPlaceholderRule.finishPrimaryWithSecondary
ที่มีอยู่ ซึ่งจะกําหนดว่ากิจกรรมตัวยึดตําแหน่งจะสิ้นสุดเมื่อใด กิจกรรมที่เชื่อมโยงในการฝังกิจกรรมควรทํางานอย่างไร (I64647)
การแก้ไขข้อบกพร่อง
- แนะนำ
WindowAreaController
และ API เพื่อเปิดใช้โหมดRearDisplay
เพื่อย้ายหน้าต่างปัจจุบันไปยังจอแสดงผลที่สอดคล้องกับกล้องหลัง (I388ab)
เวอร์ชัน 1.1.0-alpha03
27 กรกฎาคม 2022
androidx.window:window-*:1.1.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดตค่าเริ่มต้นสำหรับกฎการฝัง
การเปลี่ยนแปลง API
- อัปเดตค่าเริ่มต้นสำหรับพร็อพเพอร์ตี้กฎการฝัง (Ic4d35)
เวอร์ชัน 1.1.0-alpha02
11 พฤษภาคม 2022
androidx.window:window-*:1.1.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่ไลบรารีอะแดปเตอร์เพื่อรองรับ Java และ RxJava
เวอร์ชัน 1.1.0-alpha01
11 พฤษภาคม 2022
androidx.window:window-*:1.1.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่อะแดปเตอร์เพื่อรองรับ Java และ RxJava
เวอร์ชัน 1.1.0-alpha01
20 เมษายน 2022
androidx.window:window:1.1.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แก้ไขข้อบกพร่องที่ทำให้แอปที่ทำงานอยู่เบื้องหลังหยุดแสดงฟีเจอร์การพับ
- ขยายการใช้งาน ActivityEmbedding API เวอร์ชันทดลอง
การเปลี่ยนแปลง API
- API สาธารณะสำหรับตรวจสอบว่ามีการฝังกิจกรรมหรือไม่ (I39eb7)
การแก้ไขข้อบกพร่อง
- เพิ่ม API ที่ปรับแต่งลักษณะการทำงานเมื่อสิ้นสุดสําหรับคอนเทนเนอร์ในการแยกกิจกรรม (I1a1e4)
- เพิ่มตัวเลือกการกําหนดค่าใหม่สําหรับกฎการแยกกิจกรรม (Iec6af)
รุ่น 1.0
เวอร์ชัน 1.0.0
26 มกราคม 2022
androidx.window:window-*:1.0.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของ 1.0.0
- รองรับโทรศัพท์แบบพับได้ตั้งแต่
WindowInfoTracker
ถึงFoldingFeature
WindowMetricsCalculator
เพื่อช่วยคํานวณ WindowMetrics ปัจจุบัน
เวอร์ชัน 1.0.0-rc01
15 ธันวาคม 2021
androidx.window:window-*:1.0.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-rc01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มการรองรับโทรศัพท์แบบพับผ่าน
WindowInfoTracker
- เพิ่มวิธีการคํานวณ
WindowMetrics
ปัจจุบันและสูงสุด - เพิ่ม API การทดสอบที่รองรับ
เวอร์ชัน 1.0.0-beta04
17 พฤศจิกายน 2021
androidx.window:window-*:1.0.0-beta04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปลี่ยนชื่อ WindowInfoRepository เป็น WindowInfoTracker
- ทําให้ Activity เป็นวิธีการที่ต้องใช้อย่างชัดแจ้งสําหรับ WindowInfoTracker
- เพิ่ม TestRule ง่ายๆ สําหรับ WindowMetricsCalculator เพื่อรองรับนักพัฒนาซอฟต์แวร์ที่ใช้ Robolectric
การเปลี่ยนแปลง API
- ดึงข้อมูลส่วนขยาย (I25a5f)
- เพิ่ม isEmpty ใน ActivityStack (I5a4e6)
- เปลี่ยนชื่อ WindowInfoRepository เป็น WindowInfoTracker
- อัปเดต Dependency ของ java/rxjava/testing ให้ตรงกัน (I0da63)
- เพิ่มกฎการทดสอบสําหรับ WindowMetricsCalculator ง่ายๆ (Ibacdb)
เวอร์ชัน 1.0.0-beta03
27 ตุลาคม 2021
androidx.window:window-*:1.0.0-beta03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม API การฝังกิจกรรมเวอร์ชันทดลอง เลย์เอาต์เวอร์ชันเริ่มต้นนี้ช่วยให้แสดงกิจกรรม 2 รายการควบคู่กันได้
การเปลี่ยนแปลง API
- นํา currentWindowMetrics API ออกเนื่องจากเราไม่สามารถระบุข้อมูลได้อย่างถูกต้อง โปรดใช้ WindowMetricsCalculator แทน (Icda5f)
- อัปเดต Extensions API แล้ว (Ica92b)
- เพิ่มอินเทอร์เฟซสำหรับฟีเจอร์ใหม่ที่อนุญาตให้ฝังกิจกรรมและแสดงกิจกรรมควบคู่กันภายในหน้าต่างงานหลัก (I5711d)
- ซ่อนตัวสร้างสำหรับ WindowMetrics และ WindowLayoutInfo โปรดใช้ API การทดสอบแทน (I5a1b5)
- เพิ่ม API เพื่อสร้างออบเจ็กต์ WindowLayoutInfo ปลอม (I4a2fd)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาหน่วยความจำรั่วไหล (I3fc79, b/202989046)
เวอร์ชัน 1.0.0-beta02
1 กันยายน 2021
androidx.window:window-*:1.0.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มคำอธิบายประกอบเวอร์ชันทดลองเพื่อกำกับเนื้อหา API เวอร์ชันทดลอง (I9f1b6)
- เพิ่มวิธีการทดสอบเพื่อสร้าง FoldingFeature ทดสอบที่ยอมรับ Rect วิธีนี้จะช่วยให้ทดสอบได้ง่ายขึ้นเมื่อใช้ Robolectric แทน Activity จริง (Id1cca)
เวอร์ชัน 1.0.0-beta01
18 สิงหาคม 2021
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
4 สิงหาคม 2021
androidx.window:window-*:1.0.0-alpha10
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha10 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปลี่ยนชื่อ WindowInfoRepo เป็น WindowInfoRepository และปรับคลาส / ไฟล์ที่เกี่ยวข้อง
- แปลงเมตริกกรอบเวลาปัจจุบันเป็นโฟลว์ใน WindowInfoRepository เนื่องจากค่ามีการเปลี่ยนแปลงเมื่อเวลาผ่านไป
- เปลี่ยนชื่อ WindowInfoRepoJavaAdapter เป็น WindowInfoRepoCallbackAdapter
- เพิ่มเมธอดตัวช่วยเพื่อสร้างออบเจ็กต์ FoldingFeature ทดสอบ
- อัปเดตแพ็กเกจเพื่อจัดกลุ่มคลาสตามฟีเจอร์ที่รองรับ
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ ActivityExt เป็น ActivityExtensions เปลี่ยนจาก Repo เป็น Repository (I61a16)
- อัปเดตแพ็กเกจสำหรับชั้นเรียน (I23ae2)
- นํา WindowMetrics ออกจาก WindowInfoRepo (I24663)
- นำ WindowManager ออกและใช้ WindowInfoRepo
- ทำให้ WindowBackend เป็นภายใน (I06d9a)
- แปลงเมตริกกรอบเวลาเป็น FLow
- เปลี่ยนชื่ออะแดปเตอร์ Java เป็น WindowInfoRepoCallbackAdapter
- นํา callbackFlow ออกเพื่อไม่ให้มีการใช้ API เวอร์ชันทดลองอีก (Ia4d15)
- เพิ่มเมธอดตัวช่วยเพื่อสร้างฟีเจอร์การแสดงผลทดสอบ
- เปลี่ยนจาก occlusionMode เป็น occlusionType (If4cff)
การแก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาด ProGuard ที่มีการนําคลังหลักออก
- แก้ไขข้อผิดพลาดที่ระบบไม่ได้ส่ง WindowLayoutInfo ไปยังผู้ติดตามเพิ่มเติม
- แก้ไขข้อผิดพลาดที่การเปลี่ยนแปลงการกําหนดค่าจะไม่ทริกเกอร์การอัปเดตฟีเจอร์การพับ
เวอร์ชัน 1.0.0-alpha09
30 มิถุนายน 2021
androidx.window:window-*:1.0.0-alpha09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha09 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปลี่ยนจากค่าคงที่จำนวนเต็มเป็นลิสต์แบบไม่จำกัด
- เพิ่มยูทิลิตีการทดสอบเพื่อสร้างฟีเจอร์การทดสอบการพับ
การเปลี่ยนแปลง API
- เพิ่มเมธอดตัวช่วยเพื่อสร้างฟีเจอร์การแสดงผลทดสอบ (I3cf54)
- เปลี่ยนจาก
occlusionMode
เป็นocclusionType
- เปลี่ยนจาก
การแก้ไขข้อบกพร่อง
- ส่งค่าเริ่มต้นเมื่อเพิ่มผู้ใช้งานสตรีมข้อมูลหลายราย
เวอร์ชัน 1.0.0-alpha08
16 มิถุนายน 2021
androidx.window:window-*:1.0.0-alpha08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่อาร์ติแฟกต์การทดสอบเพื่อให้ทดสอบได้ง่ายขึ้นเมื่อใช้ WindowInfoRepository ใช้ WindowInfoRepository เพื่อรับข้อมูลเกี่ยวกับ DisplayFeatures และ WindowMetrics (I57f66, Ida620)
เวอร์ชัน 1.0.0-alpha07
2 มิถุนายน 2021
androidx.window:window-*:1.0.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ย้ายข้อมูลไลบรารีหน้าต่างหลักไปยัง Kotlin จะใช้โคโริวทีนและฟังก์ชันการระงับเพื่อแสดงข้อมูลแบบไม่พร้อมกันนับจากนี้ไป
- เพิ่ม WindowInfoRepo เป็นแหล่งที่มาของการโต้ตอบหลักสําหรับรับ WindowMetrics และสตรีมของ WindowLayoutInfo
- อาร์ติแฟกต์
window-java
ใหม่เพื่อแสดง API ที่ใช้ร่วมกับ Java ได้เพื่อลงทะเบียนและยกเลิกการลงทะเบียนการเรียกกลับ - อาร์ติแฟกต์
window-rxjava2
และwindow-rxjava3
ใหม่เพื่อแสดง API ที่ปรับให้เข้ากับ RxJava
การเปลี่ยนแปลง API
- เพิ่ม
WindowServices
เพื่อระบุการพึ่งพาอย่างสม่ำเสมอ- เพิ่ม API ที่อิงตาม coroutine เพื่อใช้ข้อมูลเลย์เอาต์หน้าต่าง (Iab70f)
- ย้ายข้อมูลไลบรารีเครื่องมือจัดการหน้าต่างหลักไปยัง Kotlin (Icca34)
การแก้ไขข้อบกพร่อง
- เพิ่มคลาสข้อมูลใหม่เพื่อแสดงขอบขององค์ประกอบ (I6dcd1)
เวอร์ชัน 1.0.0-alpha06
5 พฤษภาคม 2021
androidx.window:window:1.0.0-alpha06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha06 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เราได้เริ่มย้ายข้อมูลไปยัง Kotlin แล้ว และจะเสร็จสิ้นในรุ่นถัดไป
- DeviceState ถูกนําออกจาก API สาธารณะแล้ว โปรดใช้ FoldingFeature แทน
- เราได้นํา
STATE_FLIPPED
ออกจากสถานะ FoldingFeature แล้วเนื่องจากยังไม่มี Use Case ที่รองรับในขณะนี้ - นอกจากนี้ เรายังได้นํา API อื่นๆ ที่เลิกใช้งานออกด้วย
การเปลี่ยนแปลง API
- การเพิ่ม Kotlin เป็นข้อกําหนด
- ย้ายข้อมูลไลบรารีหลักไปยัง Kotlin (Idd995)
- นำเครื่องมือสร้าง
DisplayFeature
ออกแล้ว (I61fa4) - นํา
DeviceState
ออกจาก Public API แล้ว ให้ใช้FoldingFeature
แทน (Id6079) - นําการเรียกกลับสถานะอุปกรณ์ออกจากส่วนขยาย (I5ea83)
- นำ
STATE_FLIPPED
ออกจาก FoldingFeature (I9c4e1) - นำวิธีการลงทะเบียนที่เลิกใช้งานแล้วออก (Ib381b)
เวอร์ชัน 1.0.0-alpha05
24 มีนาคม 2021
androidx.window:window:1.0.0-alpha05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เราได้เพิ่มเมธอดที่สะดวกให้กับ FoldingFeature เพื่อให้แอปบอกได้ว่าฟีเจอร์แยกออกจากกัน บดบัง และระบุการวางแนวของบานพับหรือไม่ นอกจากนี้ เรายังซ่อนประเภทบานพับไว้ด้วยเพื่อให้
เราจะนําวิธีการอ่านแบบซิงค์ออกจาก WindowManager เมธอดการอ่านแบบซิงค์มีแนวโน้มที่จะเกิดข้อผิดพลาดเนื่องจากมีเงื่อนไขการแข่งขันโดยนัย ลงทะเบียน Listeners และ Callbacks เพื่อรับข้อมูลอัปเดตเกี่ยวกับ WindowLayoutInfo
การเปลี่ยนแปลง API
- เพิ่มเมธอดที่สะดวกสำหรับการทำงานกับ FoldingFeatures (Ie733f)
- นำเมธอดการอ่านแบบพร้อมกันออกจาก WindowManager (I96fd4)
เวอร์ชัน 1.0.0-alpha04
10 มีนาคม 2021
androidx.window:window:1.0.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แก้ไขข้อบกพร่องที่ไม่มีการออก WindowLayoutInfo หากไม่มีการใช้งาน OEM ตอนนี้เราส่ง WIndowLayoutInfo ที่ว่างเปล่า
- แก้ไขข้อบกพร่องที่สถานะจะไม่อัปเดตอย่างถูกต้องหากสถานะบานพับเปลี่ยนแปลงขณะที่แอปทำงานอยู่เบื้องหลัง ตอนนี้สถานะควรสอดคล้องกัน
- อัปเดตไฟล์ ProGuard เพื่อละเว้นคําเตือนจากข้อกําหนดของรันไทม์
การแก้ไขข้อบกพร่อง
- ส่งค่าว่างเมื่อไม่มีคลัง OEM (Ide935)
เวอร์ชัน 1.0.0-alpha03
18 กุมภาพันธ์ 2021
androidx.window:window:1.0.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ส่งค่าว่างสำหรับ WindowLayoutInfo เมื่อการติดตั้งใช้งาน OEM ว่างเปล่า ซึ่งจะช่วยให้ใช้คลังเพลงในอุปกรณ์ต่างๆ ได้ง่ายขึ้น เนื่องจาก API เป็นแบบไม่พร้อมกัน เราจึงยังคงแนะนำให้แอปเขียนโค้ดป้องกันและแสดงค่าเริ่มต้นหลังจากหมดเวลา เราไม่สามารถรับประกันการติดตั้งใช้งาน OEM และค่าเริ่มต้นอาจล่าช้า
การแก้ไขข้อบกพร่อง
- ส่งค่าว่างเมื่อไม่มีคลัง OEM (Ide935)
เวอร์ชัน 1.0.0-alpha02
27 มกราคม 2021
androidx.window:window:1.0.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เราได้เลิกใช้งาน API บางรายการเพื่อช่วยปรับปรุง API และลดข้อผิดพลาด ตัวอย่างที่เห็นได้ชัด ได้แก่ การนําการดำเนินการอ่านแบบซิงค์ออกจาก WindowManager และการเลิกใช้งาน DeviceState การดำเนินการอ่านแบบซิงค์อาจทำให้เกิดเงื่อนไขการแข่งขันและมี UI ที่ไม่ถูกต้อง
เราได้แปลง DisplayFeature เป็นอินเทอร์เฟซที่ฟีเจอร์อื่นๆ จะใช้ในอนาคต ฟีเจอร์แรกคือ FoldingFeature ซึ่งตอนนี้แสดงการพับหน้าจอหรือการบานพับ ข้อมูลนี้ยังมีสถานะของบานพับแทน DeviceState ด้วย
WindowMetrics เปิดตัวใน Android 11 เพื่อให้นักพัฒนาแอปมีวิธีง่ายๆ ในการค้นหาเมตริกเกี่ยวกับหน้าต่าง เช่น ตำแหน่งและขนาดบนหน้าจอ รวมถึงส่วนแทรกของระบบ เราได้พอร์ต API นี้ไปยังเวอร์ชันเก่าในรุ่นนี้เพื่อให้นักพัฒนาแอปใช้ประโยชน์จาก WindowMetrics และรองรับ Android เวอร์ชันเก่าต่อไปได้ คุณดู WindowMetrics ได้จาก
WindowManager#getCurrentWindowMetrics()
และ WindowManager#getMaximumWindowMetrics() API
การเปลี่ยนแปลง API
- เลิกใช้งาน API ที่จะนําออกในรุ่นอัลฟ่าถัดไป (Ib7cc4)
- อัปเดต
ExtensionInterface
เพื่อยอมรับการอ้างอิงกิจกรรมที่ชัดเจน (I07ded) - แนะนํา WindowMetrics API (I3ccee)
- นําวิธีการอ่านแบบซิงค์ออกจาก WindowManager (I69983)
- ทําให้แพ็กเกจ ExtensionWindowBackend ได้รับการปกป้อง (Ied208)
การแก้ไขข้อบกพร่อง
- อัปเดต
ExtensionInterface
API เพื่อยอมรับบริบทภาพ (I8e827)
การมีส่วนร่วมจากภายนอก
- ผสาน DeviceState และ WindowLayoutInfo เพื่อให้เข้าถึงข้อมูลได้ง่ายขึ้น (Id34f4)
เวอร์ชัน 1.0.0-alpha01
27 กุมภาพันธ์ 2020
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
เป็นต้น)