การโหลดบิตแมปในแอป Android อาจเป็นเรื่องยากด้วยเหตุผลหลายประการ ดังนี้
- บิตแมปอาจทำให้งบประมาณหน่วยความจำของแอปหมดลงได้ง่ายๆ เช่น กล้องในโทรศัพท์ Pixel จะถ่ายภาพได้สูงสุด 4048x3036 พิกเซล (12 เมกะพิกเซล)
หากการกำหนดค่าบิตแมปที่ใช้คือ
ARGB_8888
ซึ่งเป็นค่าเริ่มต้นสำหรับ Android 2.3 (API ระดับ 9) ขึ้นไป การโหลดรูปภาพเดียวลงในหน่วยความจำจะใช้หน่วยความจำประมาณ 48 MB (4048*3036*4 ไบต์) ความต้องการหน่วยความจำที่มากเช่นนี้อาจทำให้หน่วยความจำทั้งหมดที่แอปใช้ได้หมดลงในทันที - การโหลดบิตแมปในเทรด UI อาจทำให้ประสิทธิภาพของแอปแย่ลง ซึ่งส่งผลให้ การตอบสนองช้าหรือแม้แต่ข้อความ ANR ดังนั้นจึงควรจัดการการแยกเธรด อย่างเหมาะสมเมื่อทำงานกับบิตแมป
- หากแอปโหลดบิตแมปหลายรายการลงในหน่วยความจำ คุณจะต้องจัดการ การแคชหน่วยความจำและดิสก์อย่างชำนาญ ไม่เช่นนั้น ความตอบสนองและความลื่นไหลของ UI ของแอป อาจได้รับผลกระทบ
ในกรณีส่วนใหญ่ เราขอแนะนำให้คุณใช้ไลบรารี Glide เพื่อดึงข้อมูล ถอดรหัส และแสดงบิตแมปในแอปของคุณ Glide จะซ่อนความซับซ้อนส่วนใหญ่ในการจัดการงานเหล่านี้และ งานอื่นๆ ที่เกี่ยวข้องกับการทำงานกับบิตแมปและรูปภาพอื่นๆ ใน Android ดูข้อมูลเกี่ยวกับการใช้และการดาวน์โหลด Glide ได้ที่ที่เก็บ Glide ใน GitHub
นอกจากนี้ คุณยังเลือกใช้ API ระดับล่างที่สร้างขึ้นในเฟรมเวิร์ก Android โดยตรงได้ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีดำเนินการดังกล่าวได้ที่ การโหลดบิตแมปขนาดใหญ่อย่างมีประสิทธิภาพ การแคชบิตแมป และ การจัดการหน่วยความจำบิตแมป