พื้นที่เก็บข้อมูล
อัปเดตล่าสุด | รุ่นที่เสถียร | ตัวเลือกถอนการอ้างสิทธิ์ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
1 พฤษภาคม 2024 | 1.1.1 | - | - | - |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน DataStore คุณต้องเพิ่มที่เก็บของ Google Maven ไปยัง อ่านที่เก็บ Maven ของ Google เพื่อดูข้อมูลเพิ่มเติม
DataStore มีการใช้งาน 2 แบบ ได้แก่ ค่ากำหนดและโปรโตคอล โปรดเลือกอย่างใดอย่างหนึ่ง คุณยังเพิ่มทรัพยากร Dependency ที่ไม่มี Android ไปยัง การใช้งานของคุณ
เพิ่มทรัพยากร Dependency สำหรับการติดตั้งใช้งานที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูล
Preferences DataStore
Groovy
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation "androidx.datastore:datastore-preferences:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-preferences-core:1.1.1" }
Kotlin
// Preferences DataStore (SharedPreferences like APIs) dependencies { implementation("androidx.datastore:datastore-preferences:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-preferences-core:1.1.1") }
Proto DataStore
Groovy
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation "androidx.datastore:datastore:1.1.1" // optional - RxJava2 support implementation "androidx.datastore:datastore-rxjava2:1.1.1" // optional - RxJava3 support implementation "androidx.datastore:datastore-rxjava3:1.1.1" } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation "androidx.datastore:datastore-core:1.1.1" }
Kotlin
// Typed DataStore (Typed API surface, such as Proto) dependencies { implementation("androidx.datastore:datastore:1.1.1") // optional - RxJava2 support implementation("androidx.datastore:datastore-rxjava2:1.1.1") // optional - RxJava3 support implementation("androidx.datastore:datastore-rxjava3:1.1.1") } // Alternatively - use the following artifact without an Android dependency. dependencies { implementation("androidx.datastore:datastore-core:1.1.1") }
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากคุณพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูที่ ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนที่จะสร้างใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูเอกสารประกอบเกี่ยวกับเครื่องมือติดตามปัญหา เพื่อดูข้อมูลเพิ่มเติม
เวอร์ชัน 1.1
เวอร์ชัน 1.1.1
1 พฤษภาคม 2024
ปล่อย androidx.datastore:datastore-*:1.1.1
แล้ว เวอร์ชัน 1.1.1 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ลดสัญญาณเตือนที่ผิดพลาดของ Linux เมื่อ "การติดตายของทรัพยากรจะเกิดขึ้น" ในเคสมุมฉากที่มีอินสแตนซ์
DataStore
หลายรายการพยายามเขียนจากกระบวนการที่ต่างกันด้วยการสำรองการล็อกไฟล์
เวอร์ชัน 1.1.0
17 เมษายน 2024
ปล่อย androidx.datastore:datastore-*:1.1.0
แล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่รุ่น 1.0.0
โปรดอ่านบันทึกประจำรุ่นจากเวอร์ชันอัลฟ่าและเบต้าของ 1.1.0 เพื่อดูข้อมูลเพิ่มเติม ตัวอย่างการอัปเดตที่สำคัญในเวอร์ชัน 1.1.0 ได้แก่
- ตอนนี้ DataStore รองรับกระบวนการหลายรายการที่เข้าถึงไฟล์เดียวกันแล้ว พร้อมรองรับความสามารถในการสังเกตในกระบวนการต่างๆ
- อินเทอร์เฟซพื้นที่เก็บข้อมูลใหม่ช่วยให้คุณปรับแต่งวิธีจัดเก็บหรือเรียงลำดับโมเดลข้อมูลได้
- ตอนนี้คุณใช้ DataStore ในโปรเจ็กต์ Kotlin Multiplatform แล้ว
เวอร์ชัน 1.1.0-rc01
3 เมษายน 2024
ปล่อย androidx.datastore:datastore-*:1.1.0-rc01
แล้ว เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขการเสื่อมประสิทธิภาพในกรณีที่การเรียกใช้
updateData
ไม่เพิ่มประสิทธิภาพในการเขียนดิสก์ในกรณีที่ข้อมูลใหม่เหมือนกับข้อมูลเก่า (d64cfb5) - แก้ไขเงื่อนไขการแข่งขันที่
MultiProcess
DataStore
อาจใช้งานไม่ได้ระหว่างการเริ่มต้น ((b/326141553),(094c2dd))
เวอร์ชัน 1.1.0-beta02
6 มีนาคม 2024
ปล่อย androidx.datastore:datastore-*:1.1.0-beta02
แล้ว เวอร์ชัน 1.1.0-beta02 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- การปรับปรุงประสิทธิภาพใน
DataStore
จะรวบรวมการแจ้งเตือนการอัปเดตเมื่อพบเท่านั้น (b/267792241)- โปรดทราบว่าการเปลี่ยนแปลงนี้อาจทริกเกอร์
UncompletedCoroutinesError
ในการทดสอบหากคุณใช้ไลบรารีการทดสอบ Coroutines ตรวจสอบว่าคุณผ่านTestScope.backgroundScope
เมื่อเริ่มต้นDataStore
ในการทดสอบเพื่อหลีกเลี่ยงปัญหานี้
- โปรดทราบว่าการเปลี่ยนแปลงนี้อาจทริกเกอร์
- แก้ไขปัญหาการเรียก
updateData
ที่ซ้อนกันในอินสแตนซ์เดียวกันจะทำให้ระบบติดตาย (b/241760537) - ทำให้
DataStore
ไม่ใช้IOExceptions
อีกต่อไป หากลบSharedPreferences
ไม่สำเร็จระหว่างการย้ายข้อมูล (b/195553816) - แก้ไขปัญหาการเปลี่ยนชื่อไฟล์ไม่สำเร็จระหว่าง
updateData
ในสภาพแวดล้อม JVM ที่ไม่ใช่ Android (b/203087070) - แก้ไขปัญหาที่
CorruptionException
ไม่ได้รับการจัดการหลังจากการเริ่มต้นDataStore
(b/289582516)
เวอร์ชัน 1.1.0-beta01
10 มกราคม 2024
ระบบเผยแพร่ androidx.datastore:datastore-*:1.1.0-beta01
โดยไม่มีการเปลี่ยนแปลงตั้งแต่วันที่ 1.1.0-alpha07
เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.1.0-alpha07
29 พฤศจิกายน 2023
ปล่อย androidx.datastore:datastore-*:1.1.0-alpha07
แล้ว เวอร์ชัน 1.1.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เมธอด
MultiProcessDataStoreFactory
ไม่ได้เป็นการทดลองอีกต่อไป นำหมายเหตุ@ExperimentalMultiProcessDataStore
ออกแล้ว (Ieee54, I8e607)
แก้ไขข้อบกพร่อง
- เปิดตัวการนำคำอธิบายประกอบ
@ExperimentalMultiProcessDataStore
ออกไปยัง 1.1.0-alpha07 (I8e607)
เวอร์ชัน 1.1.0-alpha06
1 พฤศจิกายน 2023
ปล่อย androidx.datastore:datastore-*:1.1.0-alpha06
แล้ว เวอร์ชัน 1.1.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้เมธอด
createSingleProcessCoordinator
เริ่มต้นได้รับเส้นทางของไฟล์ (String
,java.io.File
และokio.Path
) เพื่อให้สอดคล้องกับcreateMultiProcessCoordinator
(I211c8, b/305755935)
เวอร์ชัน 1.1.0-alpha05
6 กันยายน 2023
ปล่อย androidx.datastore:datastore-*:1.1.0-alpha05
แล้ว เวอร์ชัน 1.1.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- พื้นที่เก็บข้อมูล
FileStorage
พร้อมใช้งานแบบสาธารณะแล้ว ไคลเอ็นต์จึงสามารถระบุพารามิเตอร์ที่กำหนดเองได้ (Icb985) - เปลี่ยนตัวสร้าง
OkioStorage
ให้ยอมรับInterProcessCoordinator
เพื่อให้ใช้ได้ใน Android ด้วยMultiProcessCoordinator
(Iecea3)
แก้ไขข้อบกพร่อง
- แก้ไข
MultiProcessCoordinator
ตรวจสอบไฟล์หลายไฟล์ในไดเรกทอรีเดียวกันไม่ได้ - แก้ไข "ตรวจไม่พบไฟล์ที่ซ้ำกัน" หากเส้นทางของไฟล์ไม่ปรับให้เป็นมาตรฐาน
- แก้ไขค่าที่ผิดพลาดซึ่งแสดงผลจาก
RxDataStore#isDisposed
- แก้ไขการกำหนดค่า Proguard ที่ขาดหายไปสำหรับอาร์ติแฟกต์
datstore-preferences-core
เวอร์ชัน 1.1.0-alpha04
5 เมษายน 2023
ปล่อย androidx.datastore:datastore-*:1.1.0-alpha04
แล้ว เวอร์ชัน 1.1.0-alpha04 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ปรับปรุงการใช้งานภายในเพื่อหลีกเลี่ยงเงื่อนไขการแข่งขันที่โฟลว์ข้อมูลของ
DataStore
อาจปล่อยค่าที่เก่ากว่าหลังการอัปเดต
เวอร์ชัน 1.1.0-alpha03
24 มีนาคม 2023
ปล่อย androidx.datastore:datastore-*:1.1.0-alpha03
แล้ว
แก้ไขข้อบกพร่อง
- นำข้อจำกัดทรัพยากร Dependency ออกจากอาร์ติแฟกต์ Maven เพื่อแก้ปัญหาบิลด์ในเป้าหมายดั้งเดิมของ Kotlin (b/274786186, KT-57531)
เวอร์ชัน 1.1.0-alpha02
22 มีนาคม 2023
ปล่อย androidx.datastore:datastore-*:1.1.0-alpha02
แล้ว เวอร์ชัน 1.1.0-alpha02 มีคอมมิตเหล่านี้
หมายเหตุ
โปรดทราบว่าเวอร์ชันนี้มีการปรับโครงสร้างภายในที่สำคัญซึ่งผสานการใช้งานสำหรับการติดตั้งใช้งาน DataStore กับกระบวนการเดียวและแบบหลายกระบวนการ โปรดคอยตรวจสอบการเปลี่ยนแปลงลักษณะการทำงานที่ไม่ได้ตั้งใจที่อาจเกิดขึ้น (เช่น ช่วงเวลาของการแจ้งเตือนการอัปเดต) คุณใช้คอมโพเนนต์เครื่องมือติดตามปัญหาเพื่อรายงานการเปลี่ยนแปลงดังกล่าวได้
ฟีเจอร์ใหม่
- คุณสามารถใช้
DataStore
ในโปรเจ็กต์ KMM ได้แล้ว โปรดทราบว่าเป้าหมายที่ไม่ใช่ Android ของ DataStore ยังอยู่ระหว่างการทดสอบ แต่เราได้ตัดสินใจที่จะรวมเวอร์ชันต่างๆ เพื่อให้นักพัฒนาซอฟต์แวร์สามารถทดลองใช้ได้ง่ายขึ้น - ฟีเจอร์หลายกระบวนการย้ายจาก
androidx.datastore.multiprocess
ไปยังandroidx.datastore.core
- เพิ่มเมธอดจากโรงงานใหม่ใน
androidx.datastore.core.MultiProcessDataStoreFactory
เพื่อสร้างอินสแตนซ์ DataStore ที่มีออบเจ็กต์Storage
สำหรับการดำเนินการกับไฟล์ - เพิ่มอินเทอร์เฟซใหม่
InterProcessCoordinator
ที่ช่วยให้อินสแตนซ์ DataStore หลายรายการสื่อสารข้ามกระบวนการได้ โปรดทราบว่าการใช้งานแบบหลายกระบวนการของInterProcessCoordinator
ใช้ได้ใน Android เท่านั้น
การเปลี่ยนแปลง API
- เพิ่ม
InterProcessCoordinator
ไปยังStorageConnection
ในอินเทอร์เฟซ datastore-core (I555bb) - เปลี่ยน API ใน
MultiProcessDataStoreFactory
ของ Datastore-core เพื่อใช้พื้นที่เก็บข้อมูล (Iac02f) - ย้าย API สาธารณะใน datastore-multiprocess ไปยัง datastore-core (I76d7c)
PreferencesSerializer
ถูกเปิดเผยจาก datastore-preferences-core (I4b788)- กำลังเพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility
(I8f206)
เวอร์ชัน 1.1.0-alpha01
9 พฤศจิกายน 2022
ปล่อย androidx.datastore:datastore-*:1.1.0-alpha01
แล้ว เวอร์ชัน 1.1.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับกรณีการใช้งานแบบหลายกระบวนการซึ่งมีการรับประกันความสอดคล้องของข้อมูลระหว่าง
DataStore
อินสแตนซ์ในกระบวนการ เพิ่มMultiProcessDataStoreFactory#create
เพื่อสร้างอินสแตนซ์DataStore
ดังกล่าว - อินเทอร์เฟซพื้นที่เก็บข้อมูลแบบใหม่ซึ่งช่วยให้เปลี่ยนกลไกพื้นที่เก็บข้อมูลที่สำคัญสำหรับ
Datastore
ได้ โดยจะจัดเตรียมการติดตั้งใช้งานสำหรับ java.io และ okio ให้ โรงงานDataStore
แห่งมีวิธีการใหม่ที่ยอมรับออบเจ็กต์พื้นที่เก็บข้อมูลนี้
การเปลี่ยนแปลง API
- เปลี่ยน API ใน
MultiProcessDataStoreFactory
ของ Datastore-core เพื่อใช้พื้นที่เก็บข้อมูล (Iac02f) - ย้าย API สาธารณะใน datastore-multiprocess ไปยัง datastore-core (I76d7c)
PreferencesSerializer
ถูกเปิดเผยจาก datastore-preferences-core (I4b788)
เวอร์ชัน 1.0.0
เวอร์ชัน 1.0.0
4 สิงหาคม 2021
ปล่อย androidx.datastore:datastore-*:1.0.0
แล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของ 1.0.0
Jetpack DataStore เป็นโซลูชันพื้นที่เก็บข้อมูลที่ให้คุณจัดเก็บคู่คีย์-ค่าหรือออบเจ็กต์ที่พิมพ์ด้วยบัฟเฟอร์โปรโตคอล DataStore ใช้ Kotlin coroutine และ Flow เพื่อจัดเก็บข้อมูลแบบไม่พร้อมกัน สม่ำเสมอ และธุรกรรม
เวอร์ชัน 1.0.0-rc02
21 กรกฎาคม 2021
ปล่อย androidx.datastore:datastore-*:1.0.0-rc02
แล้ว เวอร์ชัน 1.0.0-rc02 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ชี้แจงว่า
SharedPreferencesMigration
จะไม่ทำงานหากไม่มีคีย์ (Icfa32, b/192824325) - แก้ไขข้อบกพร่องที่
SharedPreferencesMigration
สร้างขึ้นด้วยMIGRATE_ALL_KEYS
จะส่งข้อยกเว้นหากยังไม่มีคีย์ที่ขอ (Ie318a, b/192824325)
เวอร์ชัน 1.0.0-rc01
30 มิถุนายน 2021
ปล่อย androidx.datastore:datastore-*:1.0.0-rc01
แล้ว เวอร์ชัน 1.0.0-rc01 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่เพิ่มไฟล์ .java เพิ่มลงใน jar สุดท้ายโดยไม่ตั้งใจ (I65d96, b/188985637)
เวอร์ชัน 1.0.0-beta02
16 มิถุนายน 2021
ปล่อย androidx.datastore:datastore-*:1.0.0-beta02
แล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไข
ClassVerificationFailure
(b/187450483)
เวอร์ชัน 1.0.0-beta01
21 เมษายน 2021
ปล่อย androidx.datastore:datastore-*:1.0.0-beta01
แล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำโอเวอร์โหลด JVM สำหรับเมธอด kotlin เท่านั้น (I2adc7)
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่ผู้รับมอบสิทธิ์พื้นที่เก็บข้อมูลอาจส่งผลให้บริบทรั่วไหล (Ie96fc, b/184415662)
เวอร์ชัน 1.0.0-alpha08
10 มีนาคม 2021
ปล่อย androidx.datastore:datastore-*:1.0.0-alpha08
แล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- คุณเพิ่มการย้ายข้อมูลที่ขึ้นอยู่กับบริบทไปยังผู้รับมอบสิทธิ์พร็อพเพอร์ตี้
dataStore
และpreferencesDataStore
ได้แล้ว (I4ef69, b/173726702) - เพิ่มฟังก์ชันตัวช่วยเพื่อรับชื่อไฟล์ หากคุณไม่ได้ใช้การมอบสิทธิ์พื้นที่เก็บข้อมูลหรือ Context.createDataStore (I60f9a) อีกต่อไป
- ขณะนี้ Serializer WriteTo และ ReadFrom ถูกระงับ หากคุณได้ใช้ Serializer คุณจะต้องอัปเดตฟังก์ชันให้เป็นฟังก์ชันระงับ (I1e58e)
- เพิ่มการมอบสิทธิ์พร็อพเพอร์ตี้สำหรับผู้ใช้ RxDataStore แล้ว (Ied768, b/173726702)
แก้ไขข้อบกพร่อง
- บังคับใช้ข้อจำกัดกับการใช้งาน API ทดลองแบบสาธารณะ (I6aa29, b/174531520)
เวอร์ชัน 1.0.0-alpha07
24 กุมภาพันธ์ 2021
ปล่อย androidx.datastore:datastore-*:1.0.0-alpha07
แล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
ฟังก์ชันส่วนขยาย
Context.createDataStore
ถูกนำออกและแทนที่ด้วยผู้รับมอบสิทธิ์พร็อพเพอร์ตี้ GlobalDataStore เรียกใช้ GlobalDataStore 1 ครั้งที่ระดับบนสุดในไฟล์ kotlin เช่นval Context.myDataStore by dataStore(...)
วางโค้ดนี้ที่ระดับบนสุดของไฟล์ kotlin เพื่อให้มีเพียงรายการเดียว (I57215, b/173726702)
ตอนนี้ฟังก์ชัน RxDataStore อยู่ในคลาส RxDataStore แทนที่จะเป็นฟังก์ชันส่วนขยายใน DataStore (Idccdb, b/177691248)
หากต้องการย้ายข้อมูล EncryptedSharedPreferences (หรือการเปิดเครื่องที่แชร์ค่ากำหนดโดยตรง) ไปยัง DataStore ตอนนี้คุณสามารถดำเนินการดังกล่าวได้ด้วยตัวสร้าง SharedPreferencesMigration ใหม่ที่จะให้คุณแทรก SharedPreferences (I8e04e, b/177278510)
แก้ไขข้อบกพร่อง
- ตอนนี้ DataStore จะส่งข้อยกเว้นหากมี DataStore ที่ใช้งานอยู่หลายรายการสำหรับไฟล์เดียวกัน หากคุณไม่ได้จัดการ DataStore แบบ Singleton หรือไม่ได้ตรวจสอบว่า DataStore ไม่มี 2 อินสแตนซ์ที่ทำงานพร้อมกันสำหรับไฟล์หนึ่งๆ ตอนนี้คุณอาจเห็นข้อยกเว้นเมื่ออ่านหรือเขียนไปยัง DataStore ซึ่งแก้ไขได้โดยการจัดการ DataStore ในฐานะ Singleton (Ib43f4, b/177691248)
- แก้ไขลักษณะการยกเลิกเมื่อมีการยกเลิกขอบเขตผู้โทร (I2c7b3)
เวอร์ชัน 1.0.0-alpha06
13 มกราคม 2021
ปล่อย androidx.datastore:datastore-*:1.0.0-alpha06
แล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม RxJava Wrapper สำหรับ DataStore แล้ว อาร์ติแฟกต์
datastore-rxjava2/3
มี Wrapper สำหรับ DataStore API หลัก (RxDataStore
,RxDataStoreBuilder
และRxDataMigration
) อาร์ติแฟกต์datastore-preferences-rxjava2/3
มีเครื่องมือสร้างเพื่อสร้าง Preferences DataStore
การเปลี่ยนแปลง API
- ซ่อนอินเทอร์เฟซ CorruptionHandler และไม่มีเหตุผลที่ทำให้วิดีโอนี้เป็นแบบสาธารณะ เนื่องจากโรงงาน DataStore ยอมรับเฉพาะ ReplaceFileCorruptionHandler (I0b3b3, b/176032264)
- เราได้นำเมธอด
preferencesKey<T>(name: String): Key<T>
ออกและแทนที่ด้วยเมธอดเฉพาะของแต่ละประเภทที่รองรับ เช่นpreferencesKey<Int>("int")
ในตอนนี้คือintPreferencesKey("int")
(Ibcfac, b/170311106)
แก้ไขข้อบกพร่อง
- แก้ไขเอกสารเกี่ยวกับ DataStorefactor ซึ่งระบุว่าไฟล์พื้นที่เก็บข้อมูลสร้างขึ้นในไดเรกทอรีย่อย “datastore/” (Ica222)
เวอร์ชัน 1.0.0-alpha05
2 ธันวาคม 2020
ปล่อย androidx.datastore:datastore-*:1.0.0-alpha05
แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- เพิ่มเอกสารประกอบที่ดีขึ้นและข้อยกเว้นเกี่ยวกับการเขียนพร้อมกันจากพื้นที่เก็บข้อมูล (Ia98a2, b/173522155, b/173726702)
- ตอนนี้เราอนุญาต (แต่ไม่บังคับ) ให้ปิด OutputStream ที่ส่งไปยัง
Serializer.writeTo()
(I5c9bf, b/173037611)
เวอร์ชัน 1.0.0-alpha04
17 พฤศจิกายน 2020
ปล่อย androidx.datastore:datastore-*:1.0.0-alpha04
แล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาแพ็กเกจที่ทำให้เกิดข้อขัดข้องใน Preference Datastore
1.0.0-alpha03
แล้วjava.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences
- การรายงานข้อขัดข้องแรกเริ่มที่นี่: b/173036843
- (I4712d, b/173036843)
เวอร์ชัน 1.0.0-alpha03
11 พฤศจิกายน 2020
ปล่อย androidx.datastore:datastore-*:1.0.0-alpha03
แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้ค่ากำหนดรองรับค่า 2 เท่าแล้ว (ซึ่งจะเป็นประโยชน์หากคุณต้องการความแม่นยำมากกว่าจำนวนลอยตัว) (I5be8f, b/169471808)
การเปลี่ยนแปลง API
- สร้างทรัพยากร Dependency ของ Kotlin โดยเฉพาะสำหรับพื้นที่เก็บข้อมูลเพื่อให้คอมไพล์ได้เร็วขึ้น
androidx.datastore:datastore-core
มี kotlin หลักเท่านั้น และandroidx.datastore:datastore
มี API ที่ขึ้นอยู่กับ Android (รวมถึงSharedPreferencesMigration
และเครื่องมือสร้างContext.createDataStore
)(I42d75, b/168512698) - การแยกเป้าหมายสำหรับการจัดเก็บข้อมูลค่ากำหนดเพื่อการคอมไพล์ Kotlin ที่เร็วขึ้น (Ia3c19)
ตอนนี้ตัวซีเรียลไลเซอร์ต้องการพร็อพเพอร์ตี้ใหม่สำหรับค่าเริ่มต้นที่จะใช้หากไม่มีข้อมูลในดิสก์ วิธีนี้จะช่วยให้ใช้งาน Serializer ที่กำหนดเองได้ง่ายขึ้น ผู้ใช้จึงไม่ต้องใส่สตรีมอินพุตว่างเปล่าในกรณีพิเศษ (สตรีมอินพุตที่ว่างเปล่าจะไม่แยกวิเคราะห์ด้วย JSON)
- นอกจากนี้ยังมีการตรวจสอบเพื่อยืนยันว่าสตรีมเอาต์พุตที่ระบุให้กับ WriteTo() ไม่ได้ปิดอยู่ และหากมีการปิด ก็จะมีการส่งข้อยกเว้น (I16e29)
การสร้างตัวสร้างสำหรับ SharedPreferencesView เป็นการภายใน ซึ่งเดิมทีเป็นสาธารณะเพื่อให้ทำการทดสอบ การทดสอบควรสร้าง SharedPreferencesMigration แทน แล้วทดสอบกับสิ่งนั้น (I93891)
แก้ไขข้อบกพร่อง
- ตอนนี้พารามิเตอร์
produceFile
ในDataStoreFactory
และPreferenceDataStoreFactory
คือพารามิเตอร์สุดท้ายในรายการแล้ว คุณจึงใช้ไวยากรณ์ lambda ต่อท้ายของ kotlin ได้ (Ibe7f1, b/169425442) - การปฏิบัติตามข้อกำหนด API ใหม่อย่างชัดแจ้งสำหรับ Kotlin (I5ae1e)
ปัญหาที่ทราบ
- ค่ากำหนด Datastore ขัดข้องกับ
java.lang.NoClassDefFoundError
(b/173036843)
เวอร์ชัน 1.0.0-alpha02
14 ตุลาคม 2020
ปล่อย androidx.datastore:datastore-core:1.0.0-alpha02
และ androidx.datastore:datastore-preferences:1.0.0-alpha02
แล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- เพิ่มการป้องกันการเปลี่ยนแปลงใน Datastore-core Mutation ทำลายการใช้งานพื้นที่เก็บข้อมูลสำหรับผู้ที่ใช้พื้นที่เก็บข้อมูลด้วยประเภทที่ไม่ใช่โปรโตคอล/ไม่ใช่ค่ากำหนด (I6aa84)
- เพิ่มเมธอด
toString
ลงใน Preferences.kt เพื่อให้แก้ไขข้อบกพร่องปัจจุบันได้ง่ายแล้ว (I96006) - เพิ่มข้อยกเว้นเพื่อป้องกันการใช้
DataStore.Preferences
ในทางที่ผิด (I1134d) - แก้ไขข้อบกพร่องที่ทำให้แอปขัดข้องเมื่อเริ่มต้นใช้งาน (I69237, b/168580258)
เวอร์ชัน 1.0.0-alpha01
2 กันยายน 2020
ปล่อย androidx.datastore:datastore-core:1.0.0-alpha01
และ androidx.datastore:datastore-preferences:1.0.0-alpha01
แล้ว เวอร์ชัน 1.0.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
Jetpack DataStore เป็นโซลูชันพื้นที่เก็บข้อมูลแบบใหม่ที่ได้รับการปรับปรุงซึ่งมีจุดประสงค์เพื่อแทนที่ SharedPreferences DataStore สร้างขึ้นจาก Kotlin coroutines และ Flow โดยมีการใช้งานที่แตกต่างกัน 2 แบบ ดังนี้
- Proto DataStore ที่ช่วยให้คุณจัดเก็บออบเจ็กต์ที่พิมพ์ (สนับสนุนโดยบัฟเฟอร์โปรโตคอล)
- ค่ากำหนด DataStore ซึ่งจัดเก็บคู่คีย์-ค่า
ข้อมูลจะได้รับการจัดเก็บแบบไม่พร้อมกัน สม่ำเสมอ และเป็นธุรกรรมเพื่อเอาชนะข้อเสียส่วนใหญ่ของ SharedPreferences