สร้างโปรไฟล์สตาร์ทอัพ

โปรไฟล์เริ่มต้นคือกลุ่มย่อยของโปรไฟล์พื้นฐาน ระบบบิลด์จะใช้โปรไฟล์การเริ่มต้นเพื่อเพิ่มประสิทธิภาพคลาสและเมธอดที่มีอยู่ในโปรไฟล์ให้ดียิ่งขึ้นด้วยการปรับปรุงเลย์เอาต์ของโค้ดในไฟล์ DEX ของ APK เมื่อใช้โปรไฟล์การเริ่มต้น แอปของคุณมักจะเริ่มต้นเร็วขึ้น 15-30% กว่าที่ใช้โปรไฟล์พื้นฐานเพียงอย่างเดียว

รูปที่ 1 การปรับปรุงความเกี่ยวข้องของโค้ดจากการเพิ่มประสิทธิภาพเลย์เอาต์ DEX

ข้อกำหนด

เราขอแนะนำให้ใช้โปรไฟล์การเริ่มต้นกับเครื่องมือต่อไปนี้

  • Jetpack Macrobenchmark 1.2.0 ขึ้นไป
  • ปลั๊กอิน Android Gradle 8.2 ขึ้นไป
  • Android Studio Iguana ขึ้นไป

นอกจากนี้ คุณจะต้องมีการตั้งค่าต่อไปนี้ในแอป

  • R8 เปิดใช้ สำหรับบิลด์รุ่น ให้ตั้งค่าเป็น isMinifyEnabled = true
  • เปิดใช้การเพิ่มประสิทธิภาพเลย์เอาต์ DEX แล้ว ในบล็อก baselineProfile {} ของไฟล์บิลด์ของโมดูลแอป ให้ตั้งค่า dexLayoutOptimization = true

สร้างโปรไฟล์สตาร์ทอัป

Android Studio จะสร้างโปรไฟล์เริ่มต้นควบคู่ไปกับโปรไฟล์พื้นฐานเมื่อคุณใช้เทมเพลตเครื่องมือสร้างโปรไฟล์พื้นฐานเริ่มต้น

ขั้นตอนทั่วไปในการสร้างและสร้างโปรไฟล์เริ่มต้นจะเหมือนกับขั้นตอนสร้างโปรไฟล์พื้นฐาน

วิธีเริ่มต้นในการสร้างโปรไฟล์ Startup คือการใช้เทมเพลตโมดูล Generator ของโปรไฟล์พื้นฐานจากภายใน Android Studio ซึ่งรวมถึงการโต้ตอบของ Startup ที่ก่อให้เกิดโปรไฟล์ Startup พื้นฐาน หากต้องการเพิ่มเส้นทางที่ผู้ใช้ต้องดำเนินการ (CUJ) ที่สำคัญเพิ่มเติมในโปรไฟล์การเริ่มต้นนี้ ให้เพิ่ม CUJ ของการเปิดแอปไปยังบล็อก rule โดยตั้งค่า includeInStartupProfile เป็น true สําหรับแอปง่ายๆ การเปิดตัวMainActivityของแอปก็เพียงพอแล้ว สําหรับแอปที่ซับซ้อนมากขึ้น ให้ลองเพิ่มจุดแรกเข้าที่พบบ่อยที่สุดลงในแอป เช่น การเริ่มแอปจากหน้าจอหลักหรือการเปิดDeep Link

ข้อมูลโค้ดต่อไปนี้แสดงเครื่องมือสร้างโปรไฟล์พื้นฐาน (ไฟล์ BaselineProfileGenerator.kt โดยค่าเริ่มต้น) ซึ่งรวมถึงการเริ่มแอปจากหน้าจอหลักและการเปิดใช้งาน Deep Link โดย Deep Link จะไปยังฟีดข่าวของแอปโดยตรง ไม่ใช่หน้าจอหลักของแอป

@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {

    @get:Rule
    val rule = BaselineProfileRule()

    @Test
    fun generate() {
        rule.collect(
            packageName = "com.example.app",
            includeInStartupProfile = true
        ) {
            // Launch directly into the NEWS_FEED.
            startActivityAndWait(Intent().apply {
                setPackage(packageName)
                setAction("com.example.app.NEWS_FEED")
            })
        }
    }
}

เรียกใช้การกำหนดค่าสร้างโปรไฟล์พื้นฐานสําหรับแอป แล้วค้นหากฎโปรไฟล์เริ่มต้นที่ src/<variant>/generated/baselineProfiles/startup-prof.txt

ข้อควรพิจารณาในการสร้างโปรไฟล์สตาร์ทอัป

เอาต์พุตของคลาสและเมธอดของโปรไฟล์การเริ่มต้นจะจํากัดตามขนาดของไฟล์ classes.dex ไฟล์แรก ซึ่งหมายความว่าเส้นทางโปรไฟล์พื้นฐานบางรายการไม่จำเป็นต้องเป็นเส้นทางโปรไฟล์เริ่มต้น

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

หลังจากครอบคลุม Use Case แรกแล้ว ให้ทำตาม Funnel ของผู้ใช้สําหรับการเริ่มต้นใช้งานแอป ในหลายกรณี Funnel การเริ่มต้นของแอปจะเป็นไปตามรายการต่อไปนี้

  1. กิจกรรมของ Launcher หลัก
  2. การแจ้งเตือนที่ทริกเกอร์การเริ่มต้นแอป
  3. กิจกรรมใน Launcher ที่ไม่บังคับ

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

ไม่มีคำแนะนำในขณะนี้

ลองบัญชี Google