ลดค่าใช้จ่ายด้านข้อมูลสำหรับผู้ใช้หลายพันล้านคน

แพ็กเกจอินเทอร์เน็ตในบางประเทศอาจมีราคาสูงถึง 10% ของรายได้ต่อเดือนของผู้ใช้ทั่วไป ซึ่งหมายความว่าการลดขนาดการดาวน์โหลดของแอปและอนุญาตให้ผู้ใช้ควบคุมวิธีที่แอปใช้ข้อมูล จะส่งผลดีต่อผู้ใช้จำนวนมากอย่างเห็นได้ชัด การลดขนาดการดาวน์โหลดยังช่วย ประหยัดพื้นที่ในที่เก็บข้อมูลภายใน ซึ่งเป็นทรัพยากรที่หายากในอุปกรณ์บางรุ่น

ในส่วนนี้ คุณจะเห็นกลยุทธ์บางอย่างที่จะช่วยเพิ่มประสิทธิภาพปริมาณข้อมูลที่แอปใช้ทั้งในเครือข่ายและในพื้นที่เก็บข้อมูลภายใน

ลดขนาดแอป

การลดขนาดแอปเป็นวิธีพื้นฐานอย่างหนึ่งที่จะช่วยให้ผู้ใช้ใช้อินเทอร์เน็ตน้อยลงได้ ทั้งในแง่ของอินเทอร์เน็ตเครือข่ายและพื้นที่เก็บข้อมูลภายใน ส่วนนี้จะอธิบายแนวทางต่างๆ ในการ ลดขนาดแอป

ลดขนาดชิ้นงานกราฟิกของ APK

  • โดยทั่วไปแล้ว ชิ้นงานกราฟิกมักเป็นสิ่งที่มีส่วนสำคัญมากที่สุดสำหรับขนาดของ APK การเพิ่มประสิทธิภาพเหล่านี้จะช่วยให้ผู้ใช้ดาวน์โหลดได้เร็วขึ้นและใช้เวลาในการติดตั้งน้อยลง
  • สำหรับชิ้นงานกราฟิก เช่น ไอคอน ให้ใช้รูปแบบกราฟิกเวกเตอร์ที่รองรับการปรับขนาด (SVG) รูปภาพ SVG มีขนาดเล็กมากเมื่อเทียบกับกราฟิกบิตแมป และสามารถแสดงผลที่ รันไทม์ที่ความละเอียดใดก็ได้ Android Support Library มีการใช้งานที่เข้ากันได้แบบย้อนหลังสำหรับทรัพยากรเวกเตอร์ใน Android 2.1 (API ระดับ 7) เริ่มต้นใช้งานเวกเตอร์ด้วย โพสต์ใน Medium นี้
  • สำหรับรูปภาพที่ไม่ใช่เวกเตอร์ เช่น รูปภาพ ให้ใช้ WebP เพื่อลด เวลาในการโหลดรูปภาพและประหยัดแบนด์วิดท์ของเครือข่าย WebP ได้รับการพิสูจน์แล้วว่ามี ขนาดไฟล์เล็กกว่า PNG และ JPG ที่เทียบเท่ากัน โดยมีคุณภาพของรูปภาพ อย่างน้อยเท่ากัน แม้จะใช้การตั้งค่าแบบมีการสูญเสีย แต่ WebP ก็สามารถสร้างรูปภาพที่แทบจะ เหมือนกับต้นฉบับได้ Android รองรับ WebP แบบมีการสูญเสียตั้งแต่ Android 4.0 (API ระดับ 14: Ice Cream Sandwich) และรองรับ WebP แบบไม่มีการสูญเสียและโปร่งใส ตั้งแต่ Android 4.2 (API ระดับ 17: Jelly Bean)
  • หากมีรูปภาพขนาดใหญ่จำนวนมากในความหนาแน่นหลายระดับ ให้พิจารณา ใช้การรองรับ APK หลายรายการเพื่อแยก APK ตามความหนาแน่น ซึ่งส่งผลให้บิลด์ กำหนดเป้าหมายความหนาแน่นที่เฉพาะเจาะจงได้ ซึ่งหมายความว่าผู้ใช้ที่มีอุปกรณ์ความหนาแน่นต่ำ จะไม่ต้องเสียค่าปรับจากการดาวน์โหลดชิ้นงานความหนาแน่นสูงที่ไม่ได้ใช้
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับการลดขนาด APK ได้ที่ ลดขนาด APK และ ลดขนาดโค้ดและทรัพยากร นอกจากนี้ คุณยังดูคำแนะนำแบบละเอียดเกี่ยวกับการลดขนาด APK ได้ใน ชุดโพสต์ใน Medium นี้

ลดขนาดโค้ด

  • ไลบรารีทุกรายการในโปรเจ็กต์ Android จะเพิ่มโค้ดที่อาจไม่ได้ใช้ลงใน APK โปรด ระมัดระวังเป็นพิเศษเกี่ยวกับการใช้ไลบรารีภายนอก เนื่องจากไลบรารีบางรายการไม่ได้ ออกแบบมาเพื่อใช้ในแอปบนอุปกรณ์เคลื่อนที่ ตรวจสอบว่าไลบรารีที่แอปใช้ ได้รับการเพิ่มประสิทธิภาพสําหรับการใช้งานบนอุปกรณ์เคลื่อนที่
  • ลองเพิ่มประสิทธิภาพโค้ดที่คอมไพล์แล้วโดยใช้เครื่องมืออย่าง ProGuard ProGuard จะระบุโค้ดที่ไม่ได้ใช้งานและนำออกจาก APK นอกจากนี้ ให้ เปิดใช้การลดขนาดทรัพยากรในเวลาบิลด์โดยการตั้งค่า minifyEnabled=true, shrinkResources=true ใน build.gradle ซึ่งจะนำทรัพยากรที่ไม่ได้ใช้ออกจาก APK โดยอัตโนมัติ
  • เมื่อใช้บริการ Google Play คุณควร รวมเฉพาะ API ที่จำเป็นลงใน APK เท่านั้น
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับการลดขนาดโค้ดใน APK ได้ที่การฝึกอบรม Android เกี่ยวกับวิธีหลีกเลี่ยง เฟรมเวิร์กการแทรกการอ้างอิง

อนุญาตให้ย้ายแอปไปยังที่เก็บข้อมูลภายนอก (SD)

  • อุปกรณ์ราคาถูกมักมีพื้นที่เก็บข้อมูลในอุปกรณ์น้อย ผู้ใช้สามารถ ขยายพื้นที่จัดเก็บนี้ด้วยการ์ด SD แต่แอปต้องประกาศอย่างชัดเจนว่า รองรับการติดตั้งในพื้นที่จัดเก็บข้อมูลภายนอกก่อนที่ผู้ใช้จะย้ายแอปได้
  • อนุญาตให้ติดตั้งแอปในพื้นที่เก็บข้อมูลภายนอกโดยใช้ Flag android:installLocation ใน AndroidManifest.xml ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้การย้ายแอปไปยังพื้นที่เก็บข้อมูลภายนอกได้ในคำแนะนำของ Android เกี่ยวกับตำแหน่งการติดตั้งแอป

ลดการใช้ดิสก์ของแอปหลังการติดตั้ง

  • การใช้ดิสก์ของแอปในระดับต่ำหมายความว่าผู้ใช้มีแนวโน้มที่จะ ถอนการติดตั้งแอปน้อยลงเมื่ออุปกรณ์มีพื้นที่ว่างเหลือน้อย คุณควร กำหนดขอบเขตของแคชเพื่อป้องกันไม่ให้ การใช้ดิสก์ของแอปเพิ่มขึ้นอย่างไม่มีที่สิ้นสุด โปรดตรวจสอบว่าคุณได้ใส่ข้อมูลที่แคชไว้ใน getCacheDir() เนื่องจากระบบสามารถลบไฟล์ที่ วางไว้ที่นี่ได้ตามต้องการ ไฟล์จึงจะไม่แสดงเป็นพื้นที่เก็บข้อมูลที่แอปใช้

เสนอการใช้เครือข่ายที่กำหนดค่าได้

แพลตฟอร์ม Android มีหลายวิธีที่คุณสามารถให้ผู้ใช้ควบคุม การใช้เครือข่ายของแอป เพื่อเพิ่มประสิทธิภาพให้ตรงกับความต้องการของผู้ใช้เอง เช่น เมื่อใช้งานครั้งแรก แอปจะแนะนำการตั้งค่าที่เกี่ยวข้องกับเครือข่ายต่างๆ ให้ผู้ใช้ นอกจากนี้ คุณยังระบุหน้าจอค่ากำหนดเครือข่ายจากภายนอกแอปได้ด้วย

มอบประสบการณ์การเริ่มต้นใช้งานสำหรับตัวเลือกเครือข่ายของผู้ใช้

  • แอปที่อนุญาตให้ผู้ใช้ลดการใช้ข้อมูลจะได้รับการตอบรับเป็นอย่างดี แม้ว่า แอปเหล่านั้นจะมีข้อกำหนดด้านข้อมูลสูงก็ตาม หากแอปใช้แบนด์วิดท์เป็นจำนวนมาก (เช่น แอปสตรีมมิงวิดีโอ) คุณสามารถมอบ ประสบการณ์การเริ่มต้นใช้งานให้ผู้ใช้กำหนดค่าการใช้เครือข่ายได้ เช่น คุณอาจอนุญาตให้ผู้ใช้บังคับสตรีมวิดีโอที่มีบิตเรตต่ำกว่าบนเครือข่ายมือถือ
  • การตั้งค่าเพิ่มเติมสำหรับผู้ใช้ในการควบคุมการซิงค์ข้อมูล การดึงข้อมูลล่วงหน้า และ ลักษณะการใช้งานเครือข่าย (เช่น ดึงข้อมูลล่วงหน้าสำหรับหมวดหมู่ข่าวสารที่ติดดาวทั้งหมดใน Wi-Fi เท่านั้น) ยังช่วยให้ผู้ใช้ปรับลักษณะการทำงานของแอปให้ตรงกับความต้องการได้ด้วย
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการการใช้เครือข่ายได้ในการฝึกอบรม Android เรื่องการจัดการ การใช้เครือข่าย

ระบุหน้าจอการตั้งค่าเครือข่าย

  • คุณไปยังการตั้งค่าเครือข่ายของแอปจากภายนอกแอปได้โดยใช้หน้าจอค่ากำหนดเครือข่าย คุณเรียกหน้าจอนี้ได้จาก ทั้งหน้าจอการตั้งค่าระบบหรือหน้าจอการใช้อินเทอร์เน็ตของระบบ
  • หากต้องการแสดงหน้าจอค่ากำหนดเครือข่ายที่ผู้ใช้เข้าถึงได้จากภายใน แอปของคุณและจากการตั้งค่าระบบ ให้รวมกิจกรรมที่รองรับACTION_MANAGE_NETWORK_USAGEการดำเนินการในแอปของคุณ
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มหน้าจอค่ากำหนดเครือข่ายได้ที่ การฝึกอบรม Android เกี่ยวกับ การใช้กิจกรรมค่ากำหนด

แหล่งข้อมูลเพิ่มเติม

ดูแหล่งข้อมูลเพิ่มเติมต่อไปนี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้

บล็อกโพสต์