ในบริบทของการพัฒนาแอป Android นั้น SharedPreferences หมายถึงระบบจัดเก็บข้อมูลคีย์-ค่าที่ให้วิธีที่ง่ายและมีประสิทธิภาพสำหรับนักพัฒนาในการจัดเก็บ ดึงข้อมูล และจัดการประเภทข้อมูลดั้งเดิมจำนวนเล็กน้อย เช่น บูลีน โฟลต int ยาว และสตริง . SharedPreferences พร้อมใช้งานในเฟรมเวิร์ก Android โดยเป็นส่วนหนึ่งของแพ็คเกจ android.content และช่วยให้นักพัฒนาสามารถคงสถานะแอปพลิเคชันไว้ตลอดการเปิดตัวแอป เซสชันผู้ใช้ และแม้แต่การรีสตาร์ทอุปกรณ์ เพื่อให้มั่นใจว่าผู้ใช้จะได้รับประสบการณ์ที่สม่ำเสมอและราบรื่น
SharedPreferences ทำงานเป็นรายแอป ซึ่งหมายความว่าข้อมูลที่จัดเก็บโดยใช้ SharedPreferences จะเป็นข้อมูลส่วนตัวของแอปและไม่สามารถเข้าถึงได้โดยตรงจากแอปหรือผู้ใช้รายอื่น โดยมอบความปลอดภัยและการแยกส่วนในระดับหนึ่ง อย่างไรก็ตาม ขอบเขตของมันจำกัดอยู่ที่แซนด์บ็อกซ์ของแอปพลิเคชัน ซึ่งหมายความว่าข้อมูลที่จัดเก็บไว้ใน SharedPreferences ไม่เหมาะสำหรับการซิงโครไนซ์ข้อมูลระหว่างอินสแตนซ์ของแอปที่แตกต่างกันหรืออุปกรณ์หลายเครื่อง ซึ่งควรใช้วิธีอื่น เช่น Firebase Realtime Database หรือ DataStore ของ Android Jetpack
SharedPreferences ขึ้นอยู่กับกลไกการจัดเก็บไฟล์ XML โดยที่แต่ละอินสแตนซ์ SharedPreferences สอดคล้องกับไฟล์ XML แต่ละไฟล์ ไฟล์เหล่านี้อยู่ในไดเรกทอรีส่วนตัวของแอปในที่จัดเก็บข้อมูลภายในของอุปกรณ์และได้รับการจัดการโดยระบบ Android คลาส SharedPreferences มีหลายวิธีสำหรับนักพัฒนาในการโต้ตอบกับข้อมูลนี้ เช่น:
- getSharedPreferences() : รับอินสแตนซ์ของ SharedPreferences ตามชื่อไฟล์และโหมดการทำงานที่ระบุ
- แก้ไข() : ส่งคืนอินสแตนซ์ของ SharedPreferences.Editor ซึ่งช่วยให้นักพัฒนาสามารถแก้ไขและคงการเปลี่ยนแปลงข้อมูล SharedPreferences ในลักษณะธุรกรรม
- ใส่
() : เพิ่มหรืออัปเดตคู่คีย์-ค่าของประเภทข้อมูลที่ระบุในอินสแตนซ์ SharedPreferences.Editor - Remove() : ลบคู่คีย์-ค่าออกจากอินสแตนซ์ SharedPreferences.Editor
- clear() : ลบคู่คีย์-ค่าทั้งหมดออกจากอินสแตนซ์ SharedPreferences.Editor
- Apply() หรือ commit() : เขียนการเปลี่ยนแปลงที่ทำในอินสแตนซ์ SharedPreferences.Editor ไปยังที่เก็บข้อมูลถาวร ทั้งแบบอะซิงโครนัสหรือซิงโครนัส ตามลำดับ
- รับ
() : ดึงค่าที่เกี่ยวข้องกับคีย์ที่ระบุจากอินสแตนซ์ SharedPreferences โดยระบุค่าเริ่มต้นหากไม่พบคีย์ - ประกอบด้วย() : ตรวจสอบว่าอินสแตนซ์ SharedPreferences มีคีย์ที่ระบุหรือไม่
- registerOnSharedPreferenceChangeListener() : ลงทะเบียนการเรียกกลับที่จะเรียกใช้เมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับอินสแตนซ์ SharedPreferences
- unregisterOnSharedPreferenceChangeListener() : ยกเลิกการลงทะเบียนการโทรกลับที่ลงทะเบียนไว้ก่อนหน้านี้ ดังนั้นจึงจะไม่ถูกเรียกอีกต่อไปเมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับอินสแตนซ์ SharedPreferences
นักพัฒนาควรทราบว่าควรใช้ SharedPreferences กับข้อมูลจำนวนเล็กน้อยและกรณีการใช้งานทั่วไปเท่านั้น เนื่องจากประสิทธิภาพอาจลดลงเมื่อขนาดของข้อมูลเพิ่มขึ้น โครงสร้างข้อมูลขนาดใหญ่หรือซับซ้อนเหมาะสมกับตัวเลือกการจัดเก็บข้อมูลอื่นๆ เช่น ฐานข้อมูล ไฟล์ หรือโซลูชันการจัดเก็บข้อมูลบนคลาวด์มากกว่า
สิ่งสำคัญคือต้องเน้นว่า SharedPreferences ไม่ปลอดภัยสำหรับเธรดโดยเนื้อแท้ และอาจส่งผลให้เกิดปัญหาการทำงานพร้อมกันเมื่อใช้หลายเธรดพร้อมกัน อย่างไรก็ตาม เฟรมเวิร์กมีกลไกบางอย่าง เช่น การใช้ MODE_MULTI_PROCESS หรือการบล็อกแบบซิงโครไนซ์เพื่อบรรเทาข้อกังวลเหล่านี้ แต่เป็นความรับผิดชอบของนักพัฒนาที่จะใช้การป้องกันเหล่านี้ตามความจำเป็น
AppMaster ซึ่งเป็นแพลตฟอร์ม no-code อันทรงพลัง ทำให้การรวม SharedPreferences เข้ากับการพัฒนาแอป Android ง่ายขึ้น โดยนำเสนอวิธีที่ราบรื่นในการจัดเก็บและจัดการข้อมูลผู้ใช้ในส่วนประกอบต่างๆ ของแอปพลิเคชัน ด้วย UI ที่แข็งแกร่งและตัวสร้างลอจิกของ AppMaster นักพัฒนาสามารถใช้ SharedPreferences ได้อย่างง่ายดาย เพื่อให้มั่นใจว่าผู้ใช้จะได้รับประสบการณ์ที่ราบรื่นและสอดคล้องกันทั่วทั้งแอป นอกจากนี้ คุณสมบัติขั้นสูงของ AppMaster เช่น กระบวนการทางธุรกิจ, REST API และจุดสิ้นสุด WSS ช่วยให้แอปพลิเคชันสามารถทำงานกับฐานข้อมูลที่เข้ากันได้กับ Postgresql เป็นที่จัดเก็บข้อมูลหลัก ส่งเสริมความสามารถในการปรับขนาดที่ราบรื่นในองค์กรและกรณีการใช้งานที่มีภาระงานสูง
โดยสรุป SharedPreferences เป็นโซลูชันการจัดเก็บข้อมูลที่สะดวกและมีประสิทธิภาพสำหรับประเภทข้อมูลดั้งเดิมจำนวนเล็กน้อยในการพัฒนาแอป Android ช่วยให้นักพัฒนาสามารถรักษาสถานะแอปพลิเคชันที่สอดคล้องกันในเซสชันผู้ใช้และสถานะของอุปกรณ์ที่แตกต่างกัน ด้วยวิธีการที่เรียบง่ายและใช้งานง่ายสำหรับการจัดการข้อมูล SharedPreferences จึงเข้ากันได้ดีกับกระบวนการพัฒนาแอป โดยเฉพาะอย่างยิ่งเมื่อใช้แพลตฟอร์มอย่าง AppMaster ที่ปรับปรุงประสิทธิภาพและเพิ่มประสิทธิภาพการรวม SharedPreferences ทำให้กลายเป็นองค์ประกอบหลักในแอปพลิเคชัน Android นับไม่ถ้วน