ลดขนาดแอป

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

แนวทางปฏิบัติแนะนำ

อัปโหลดแอปเป็น Android App Bundle

วิธีที่ง่ายที่สุดในการลดขนาดแอปทันทีเมื่อเผยแพร่ไปยัง Google Play คือการอัปโหลดแอปเป็น Android App Bundle ซึ่งเป็นรูปแบบการเผยแพร่ใหม่ที่มีโค้ดที่คอมไพล์ทั้งหมดของแอปและ และเลื่อนการสร้าง APK และการลงชื่อเข้าใช้ Google Play ออกไปก่อน

ลดขนาดโค้ดรันไทม์

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

android {
    buildTypes {
        getByName("release") {
            isMinifyEnabled = true
            isShrinkResources = true
        }
    }
}

นำเลย์เอาต์ที่ไม่จำเป็นออก

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

ประเมินฟีเจอร์ที่ใช้ไม่บ่อยอีกครั้ง

เพิ่มประสิทธิภาพสำหรับ Android (รุ่น Go) โดยเฉพาะด้วยการปิดใช้ฟีเจอร์ที่ มีเมตริกผู้ใช้ที่ใช้งานอยู่รายวัน (DAU) ต่ำ ตัวอย่างเช่น การนำออก ภาพเคลื่อนไหวที่ซับซ้อน ไฟล์ GIF ขนาดใหญ่ หรือการเพิ่มความสวยงามอื่นๆ ที่จำเป็นต่อการประสบความสำเร็จของแอป

ใช้ Dynamic Delivery

การนำส่งฟีเจอร์ Play ใช้ระบบขั้นสูง ของ App Bundle เพื่อให้ฟีเจอร์บางอย่างของแอป นำส่งแบบมีเงื่อนไขหรือดาวน์โหลดตามคำขอ คุณสามารถใช้โมดูลฟีเจอร์ สำหรับการนำส่งแบบกำหนดเอง ประโยชน์ที่ไม่เหมือนใครของโมดูลฟีเจอร์คือความสามารถในการ ปรับแต่งวิธีและเวลาที่ฟีเจอร์ต่างๆ ของแอปจะดาวน์โหลดลงใน อุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 21) ขึ้นไป

ลดขนาดสตริงที่แปลได้

คุณใช้พร็อพเพอร์ตี้ resConfigs ของ Android Gradle เพื่อนำออกได้ ไฟล์ทรัพยากรอื่นที่แอปของคุณไม่จำเป็นต้องใช้ หากคุณใช้ ไลบรารีที่มีทรัพยากรด้านภาษา (เช่น AppCompat หรือ Google Play บริการ) แอปของคุณจะมีสตริงภาษาที่แปลทั้งหมดสําหรับคลัง ข้อความโดยไม่คำนึงถึงการแปลแอป หากต้องการเก็บไว้เฉพาะ ที่แอปของคุณรองรับอย่างเป็นทางการ คุณสามารถระบุภาษาเหล่านั้นได้ โดยใช้พร็อพเพอร์ตี้ resConfig ทรัพยากรใดๆ สำหรับภาษาที่ไม่ได้ระบุ ลบแล้ว

คุณสามารถแก้ไขแหล่งข้อมูลทางภาษาได้ในภาษาอังกฤษและฝรั่งเศสเท่านั้น defaultConfig ตามที่แสดงด้านล่าง:


android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}

ใช้การแปลเฉพาะจุด

หากสตริงที่ระบุไม่ปรากฏใน UI ของแอป คุณก็ไม่ต้อง แปลได้ สตริงเพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง ข้อความข้อยกเว้น หรือ URL ควรเป็นลิเทอรัลสตริงในโค้ด ไม่ใช่ทรัพยากร

ตัวอย่างเช่น อย่ารบกวนการแปล URL

<string name="car_frx_device_incompatible_sol_message">
  This device doesn\'t support Android Auto.\n
  &lt;a href="https://support.google.com/androidauto/answer/6395843"&gt;Learn more&lt;/a&gt;
</string>

คุณอาจจำ &lt; และ &gt ได้ เนื่องจากอักขระเหล่านี้คืออักขระหลีกสำหรับ < และ > จำเป็นต้องมีแท็กเหล่านี้ เนื่องจากหากคุณใส่แท็ก <a> ไว้ด้านใน ของแท็ก <string> คอมไพเลอร์ทรัพยากรของ Android จะทิ้งแท็กตั้งแต่ ไม่รู้จักแท็กนั้น แต่วิธีนี้หมายความว่าคุณกำลังแปลโค้ด HTML และ URL เป็น 78 ภาษา แต่คุณสามารถนำ HTML ออกแทนได้ ดังนี้

<string name="car_frx_device_incompatible_sol_message">
         This device doesn\'t support Android Auto.
</string>

รวมไบนารีดั้งเดิมกับทรัพยากร Dependency ทั่วไป

หากแอปมีการใช้งาน Java Native Interface (JNI) ที่แตกต่างกัน ด้วยทรัพยากร Dependency พื้นฐานทั่วไป ไบนารีต่างๆ จึงเพิ่มขึ้น ขนาด APK ที่มีคอมโพเนนต์ซ้ำซ้อน คุณรวมไบนารี JNI ได้หลายรายการ เป็นไฟล์ไบนารี JNI เดียว โดยเก็บไฟล์ Java และ JNI แยกกัน วิธีนี้จะลดขนาด APK ได้อย่างมาก