ProfileInstaller

  
ช่วยให้ห้องสมุดป้อนข้อมูลร่องรอยการคอมไพล์ล่วงหน้าเพื่อให้ ART อ่านได้
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
2 ตุลาคม 2024 1.4.1 - - -

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มการพึ่งพา ProfileInstaller คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google

เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูล

ดึงดูด

dependencies {
    implementation "androidx.profileinstaller:profileinstaller:1.3.1"
}

Kotlin

dependencies {
    implementation("androidx.profileinstaller:profileinstaller:1.3.1")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพิงบิวด์

ความคิดเห็น

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

สร้างรายการใหม่

ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา

เวอร์ชัน 1.4

เวอร์ชัน 1.4.1

2 ตุลาคม 2024

androidx.profileinstaller:profileinstaller:1.4.1 ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.1 มีการคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • แก้ไขการรองรับการบันทึกโปรไฟล์พื้นฐานแบบหลายกระบวนการโดยการส่งสัญญาณหลายกระบวนการตามลำดับ ในการแก้ไขนี้ต้องอัปเดตทั้ง 2 อย่างในโมดูลมาโครการเปรียบเทียบ/โปรไฟล์พื้นฐาน และ androidx.profileinstaller:profileinstaller:1.4.1 ในแอป (I0f519, b/366231469)androidx.benchmark:benchmark-macro:1.4.0-alpha02

เวอร์ชัน 1.4.0

18 กันยายน 2024

ปล่อย androidx.profileinstaller:profileinstaller:1.4.0 แล้ว เวอร์ชัน 1.4.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.3.0

  • ตอนนี้ ProfileInstaller รองรับการบันทึก/การติดตั้งโปรไฟล์ใน API 35 ขึ้นไป คุณจึงไม่จำเป็นต้องอัปเดต ProfileInstaller เพื่ออัปเดตเวอร์ชันแพลตฟอร์มอีกต่อไป (6f9f6fa)
  • แก้ไขข้อขัดข้องเมื่อวางชิเดอร์ใน Android U (API 34) รวมถึงในโปรแกรมจำลอง (I031ca, b/274314544)
  • แก้ไขการแปลงไฟล์ Flag วิธีการในรูปแบบโปรไฟล์ V_015S (aosp/2906631, aosp/2847740)

เวอร์ชัน 1.4.0-rc01

4 กันยายน 2024

androidx.profileinstaller:profileinstaller:1.4.0-rc01 เปิดตัวโดยไม่มีการเปลี่ยนแปลงจากรุ่นเบต้าล่าสุด เวอร์ชัน 1.4.0-rc01 มีคอมมิตเหล่านี้

เวอร์ชัน 1.4.0-beta01

21 สิงหาคม 2024

androidx.profileinstaller:profileinstaller:1.4.0-beta01 เผยแพร่แล้วโดยไม่มีการเปลี่ยนแปลงจากอัลฟ่าล่าสุด เวอร์ชัน 1.4.0-beta01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.4.0-alpha02

7 สิงหาคม 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha02 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการสนับสนุน api 35 ลงในตัวติดตั้งโปรไฟล์ (6f9f6fa)

การแก้ไขข้อบกพร่อง

  • นำการระบุการเข้าถึง API ของแพลตฟอร์มใหม่ด้วยตนเองออกแล้ว เนื่องจากการดำเนินการนี้จะทําโดยอัตโนมัติผ่านการจําลอง API เมื่อใช้ R8 กับ AGP 7.3 ขึ้นไป (เช่น R8 เวอร์ชัน 3.3) และสำหรับบิลด์ทั้งหมดเมื่อใช้ AGP 8.1 ขึ้นไป (เช่น D8 เวอร์ชัน 8.1) เราขอแนะนำให้ลูกค้าที่ไม่ได้ใช้ AGP อัปเดตเป็น D8 เวอร์ชัน 8.1 ขึ้นไป ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม (If6b4c, b/345472586)

เวอร์ชัน 1.4.0-alpha01

7 กุมภาพันธ์ 2024

ปล่อย androidx.profileinstaller:profileinstaller:1.4.0-alpha01 แล้ว เวอร์ชัน 1.4.0-alpha01 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เพิ่มรหัสข้อผิดพลาดสําหรับไม่มีโปรไฟล์ที่ฝังอยู่ในตัวตรวจสอบโปรไฟล์ (Ifb109, b/313928520)
  • แก้ไขข้อขัดข้องเมื่อวางชิเดอร์ใน Android U (API 34) รวมถึงในโปรแกรมจำลอง (I031ca, b/274314544)
  • เปิดใช้การรองรับ Android U ในเครื่องมือติดตั้งโปรไฟล์ (Iaf177)
  • แก้ไขโปรแกรมติดตั้งโปรไฟล์ใน Android U ไม่สำเร็จเนื่องจากไม่ได้สร้างโปรไฟล์ปัจจุบันเป็นค่าว่างเมื่อกระบวนการเริ่มต้น (Ie3899)
  • แก้ไขการแปลงบิตแมปของวิธีการในรูปแบบโปรไฟล์ V_015S (aosp/2906631) และ (aosp/2847740)

เวอร์ชัน 1.3

เวอร์ชัน 1.3.1

3 พฤษภาคม 2023

androidx.profileinstaller:profileinstaller:1.3.1 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เปิดใช้การรองรับ Android U ในโปรแกรมติดตั้งโปรไฟล์ (Iaf177)
  • แก้ไขโปรแกรมติดตั้งโปรไฟล์ใน Android U ไม่สำเร็จเนื่องจากไม่ได้สร้างโปรไฟล์ปัจจุบันเป็นค่าว่างเมื่อกระบวนการเริ่มต้น (Ie3899)

เวอร์ชัน 1.3.0

22 มีนาคม 2023

androidx.profileinstaller:profileinstaller:1.3.0 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0

  • แก้ไข NullPointerException ใน ProfileInstallReceiver แล้ว (b/243851384)
  • เพิ่ม ProfileVerifier API เพื่อตรวจสอบจากภายในแอปว่าโปรไฟล์พื้นฐานได้รับการคอมไพล์ ตั้งเวลา หรือไม่มีแล้ว (I263a4, b/246653809)
  • เพิ่มการออกอากาศเชลล์ใหม่ซึ่งช่วยให้ Macrobenchmark ล้างข้อมูลโปรไฟล์ในหน่วยความจําไปยังดิสก์ได้อย่างเต็มที่ เพื่อรวมไว้ในการสร้างโปรไฟล์พื้นฐาน ขั้นตอนนี้จําเป็นต่อการใช้คลังการทดสอบประสิทธิภาพแบบมาโครเพื่อบันทึกโปรไฟล์พื้นฐานด้วย BaselineProfileRule และประเมินประสิทธิภาพโปรไฟล์โดยใช้ CompilationMode.Partial(warmupIterations)
  • เพิ่มโค้ดการวินิจฉัยเพื่อตรวจหาโปรไฟล์พื้นฐานที่บีบอัด Profileinstaller ไม่สามารถติดตั้งโปรไฟล์พื้นฐานแบบบีบอัดใน Macrobenchmarks หรือในเวอร์ชันที่ใช้งานจริงเนื่องจากมีค่าใช้จ่ายเพิ่มเติมของ CPU และควรหลีกเลี่ยงเมื่อสร้างแอปโดยการอัปเดตเป็น Studio/AGP Electric Eel หรือ bundletool เวอร์ชัน 1.13.1(I86413, b/261998144)
  • เพิ่มฮุกสำหรับการเปรียบเทียบมาโครเพื่อจับภาพโปรไฟล์และทิ้งแคชตัวปรับแสงเงา ซึ่งจำเป็นสำหรับการสร้างโปรไฟล์พื้นฐานหรือการเปรียบเทียบมาโครในอุปกรณ์ที่ไม่ได้รูท (Ie0a7d, b/250083467, b/253094958) (Ia5171, b/231455742)

เวอร์ชัน 1.3.0-rc01

8 มีนาคม 2023

androidx.profileinstaller:profileinstaller:1.3.0-rc01 เปิดตัวโดยไม่มีการเปลี่ยนแปลงใดๆ นับตั้งแต่เบต้าครั้งล่าสุด เวอร์ชัน 1.3.0-rc01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.3.0-beta01

8 กุมภาพันธ์ 2023

ปล่อย androidx.profileinstaller:profileinstaller:1.3.0-beta01 แล้ว เวอร์ชัน 1.3.0-beta01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • นำการรองรับการจัดการโปรไฟล์ที่บีบอัดออก เนื่องจากการเปิดและการบีบอัดทำให้การใช้งาน CPU ลดลง 10 ms ในระหว่างการเริ่มต้น ดังนั้นจึงเพิ่มการวินิจฉัยเพื่อค้นหาโปรไฟล์พื้นฐานที่บีบอัดอย่างไม่ถูกต้องแทน (I86413, b/261998144)

เวอร์ชัน 1.3.0-alpha03

11 มกราคม 2023

androidx.profileinstaller:profileinstaller:1.3.0-alpha03 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha03 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เปิดใช้การจัดการโปรไฟล์พื้นฐานแบบบีบอัดหรือไม่บีบอัด (Ic61a0)
  • แก้ไข MacrobenchmarkScope.dropShaderCache() เพื่อไม่ให้เกิดข้อขัดข้องอีกต่อไปด้วยการแก้ไขรีจิสทรีการออกอากาศในไฟล์ Manifest ของโปรแกรมติดตั้งโปรไฟล์ (I5c728, b/258619948)

เวอร์ชัน 1.3.0-alpha02

9 พฤศจิกายน 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha02 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มฮุกสำหรับการเปรียบเทียบเพื่อทิ้งแคชตัวปรับแสงเงา เพื่อให้มีประสิทธิภาพที่สม่ำเสมอสำหรับสตาร์ทอัพแบบ Cold โดยเฉพาะอย่างยิ่งเมื่อคอมไพล์ด้วยโปรไฟล์จากการอุ่นเครื่องซ้ำๆ การอัปเดตนี้จําเป็นต่อการวัดการเริ่มต้นแบบ Cold โดยใช้ benchmark-macro-junit4:1.2.0-alpha05 ขึ้นไป สำหรับการเปลี่ยนแปลง API ของไลบรารีการเปรียบเทียบ โปรดดูหน้าการเปรียบเทียบ 1.2.0-alpha07 (Ia5171, b/231455742)

เวอร์ชัน 1.3.0-alpha01

24 ตุลาคม 2022

ปล่อย androidx.profileinstaller:profileinstaller:1.3.0-alpha01 แล้ว เวอร์ชัน 1.3.0-alpha01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่ม ProfileVerifier api เพื่อตรวจสอบจากภายในแอปว่าโปรไฟล์พื้นฐานได้รับการคอมไพล์ ตั้งเวลา หรือหายไปหรือไม่ (I263a4, b/246653809)
  • เพิ่มการออกอากาศเชลล์ใหม่ซึ่งช่วยให้ Macrobenchmark ล้างข้อมูลโปรไฟล์ในหน่วยความจําไปยังดิสก์ได้อย่างเต็มที่ เพื่อรวมไว้ในการสร้างโปรไฟล์พื้นฐาน ซึ่งจําเป็นต่อการใช้ไลบรารีมาโครการเปรียบเทียบเพื่อจับภาพโปรไฟล์พื้นฐานด้วย BaselineProfileRule และประเมินประสิทธิภาพของโปรไฟล์โดยใช้ CompilationMode.Partial(warmupIterations) (Ie0a7d, b/250083467, b/253094958)

เวอร์ชัน 1.2.2

เวอร์ชัน 1.2.2

11 มกราคม 2023

ปล่อย androidx.profileinstaller:profileinstaller:1.2.2 แล้ว เวอร์ชัน 1.2.2 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เปิดใช้การจัดการโปรไฟล์พื้นฐานที่บีบอัดหรือไม่บีบอัด (Ic61a0)

เวอร์ชัน 1.2.1

เวอร์ชัน 1.2.1

7 ธันวาคม 2022

androidx.profileinstaller:profileinstaller:1.2.1 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เปิดใช้ profileinstaller สำหรับ S_V2 (API 32) และ TIRAMISU (API 33) (b/254900303)

เวอร์ชัน 1.2.0

เวอร์ชัน 1.2.0

27 กรกฎาคม 2022

ปล่อย androidx.profileinstaller:profileinstaller:1.2.0 แล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.1.0

  • เพิ่มการรองรับรูปแบบโปรไฟล์ ART ที่ใช้กับ Android 12 เป็นต้นไป
  • เพิ่ม API ใหม่ใน ProfileInstallReceiver เพื่อให้ได้ผลลัพธ์ที่สอดคล้องกันมากขึ้นกับ Macrobenchmarks เมื่อใช้โปรไฟล์พื้นฐาน

เวอร์ชัน 1.2.0-rc01

15 มิถุนายน 2022

androidx.profileinstaller:profileinstaller:1.2.0-rc01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-rc01 มีการคอมมิตเหล่านี้

  • เวอร์ชันนี้เหมือนกับ androidx.profileinstaller:profileinstaller:1.2.0-beta03

เวอร์ชัน 1.2.0-beta03

1 มิถุนายน 2022

ปล่อย androidx.profileinstaller:profileinstaller:1.2.0-beta03 แล้ว เวอร์ชัน 1.2.0-beta03 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.2.0-beta02

18 พฤษภาคม 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta02 มีการคอมมิตเหล่านี้

  • ไม่ต้องเปลี่ยนแปลงใดๆ เพื่อรองรับ Compose เวอร์ชัน 1.2.0-beta02

เวอร์ชัน 1.2.0-beta01

11 พฤษภาคม 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่ม API ใหม่ใน ProfileInstallReceiver เพื่อให้ได้ผลลัพธ์ที่สอดคล้องกันมากขึ้นกับ Macrobenchmarks เมื่อใช้โปรไฟล์พื้นฐาน (If2ae5, b/215740637)

แก้ไขข้อบกพร่อง

  • โปรแกรมติดตั้งโปรไฟล์จะแสดงข้อความที่เป็นประโยชน์เมื่อพยายามใช้รูปแบบข้อมูลเมตา V_001 ใน Android 12 ขึ้นไป (aosp/1978526, b/217502387)
  • ตอนนี้โปรแกรมติดตั้งโปรไฟล์ใช้ androidx.startup เวอร์ชัน 1.1.1 (aosp/2077099, b/229828376)

เวอร์ชัน 1.2.0-alpha02

26 มกราคม 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha02 มีคอมมิตเหล่านี้

เวอร์ชันนี้เหมือนกับ 1.2.0-alpha01

เวอร์ชัน 1.2.0-alpha01

12 มกราคม 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha01 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการรองรับรูปแบบโปรไฟล์ ART ที่ใช้ใน Android 12 เป็นต้นไป

เวอร์ชัน 1.1.0

เวอร์ชัน 1.1.0

9 กุมภาพันธ์ 2022

ปล่อย androidx.profileinstaller:profileinstaller:1.1.0 แล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้

เวอร์ชัน 1.1.0-rc01

15 ธันวาคม 2021

androidx.profileinstaller:profileinstaller:1.1.0-rc01 เผยแพร่โดยไม่มีการอัปเดตตั้งแต่ 1.1.0-beta04 เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้

เวอร์ชัน 1.1.0-beta04

1 ธันวาคม 2021

ปล่อย androidx.profileinstaller:profileinstaller:1.1.0-beta04 แล้ว เวอร์ชัน 1.1.0-beta04 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.1.0-beta03

17 พฤศจิกายน 2021

ปล่อย androidx.profileinstaller:profileinstaller:1.1.0-beta03 แล้ว เวอร์ชัน 1.1.0-beta03 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • อัปเดตเพื่อรองรับ Compose 1.1.0-beta03

เวอร์ชัน 1.1.0-beta02

3 พฤศจิกายน 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta02 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • อัปเดตเพื่อรองรับ Compose 1.1.0-beta02

เวอร์ชัน 1.1.0-beta01

27 ตุลาคม 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้

  • ไม่มีการเปลี่ยนแปลงนับตั้งแต่ 1.1.0-alpha07

เวอร์ชัน 1.1.0-alpha07

13 ตุลาคม 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha07 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha07 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการรองรับ profm ใน Android N

เวอร์ชัน 1.1.0-alpha06

29 กันยายน 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha06 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha06 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาการแปลงโปรไฟล์โปรแกรมติดตั้งใน N, O และ O_MR1 (I12d75)

เวอร์ชัน 1.1.0-alpha05

15 กันยายน 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha05 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha05 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขการเปลี่ยนรูปแบบโปรไฟล์ Android Nougat และ Android Oreo สำหรับ APK แบบ MultiDex

เวอร์ชัน 1.1.0-alpha04

1 กันยายน 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha04 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha04 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไข ProfileInstaller เพื่อให้แอปที่ใช้โปรไฟล์พื้นฐานเรียกใช้การทดสอบประสิทธิภาพแบบมาโครโดยใช้ CompilationMode.BaselineProfile ได้ง่ายขึ้น (I42657, b/196074999)

เวอร์ชัน 1.1.0-alpha03

18 สิงหาคม 2021

ปล่อย androidx.profileinstaller:profileinstaller:1.1.0-alpha03 แล้ว เวอร์ชัน 1.1.0-alpha03 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เปลี่ยนพฤติกรรมการข้ามของ profileinstaller เพื่อบันทึก PackageInfo.lastUpdatedTime ในไฟล์ในไดเรกทอรีไฟล์ของแอป และเปรียบเทียบข้อมูลดังกล่าวก่อนที่จะติดตั้งโปรไฟล์ในการเรียกใช้ครั้งถัดไป (Ib93d1)
  • ปรับรูปแบบโปรไฟล์ในอุปกรณ์ P, Q, R ให้เป็นไปตามข้อกำหนดของ ART (I84e89)

เวอร์ชัน 1.1.0-alpha02

4 สิงหาคม 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha02 มีการคอมมิตเหล่านี้

อัปเดตให้ใช้งานร่วมกับ Compose 1.1.0-alpha01 ได้

เวอร์ชัน 1.1.0-alpha01

21 กรกฎาคม 2021

ปล่อย androidx.profileinstaller:profileinstaller:1.1.0-alpha01 แล้ว เวอร์ชัน 1.1.0-alpha01 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อบกพร่องที่ทำให้เกิดโหมดเข้มงวดในบางสถานการณ์

รุ่น 1.0

เวอร์ชัน 1.0.4

13 ตุลาคม 2021

ปล่อย androidx.profileinstaller:profileinstaller:1.0.4 แล้ว เวอร์ชัน 1.0.4 มีการคอมมิตเหล่านี้

  • อัปเดตเพื่อรองรับ Compose 1.0.4

เวอร์ชัน 1.0.3

29 กันยายน 2021

androidx.profileinstaller:profileinstaller:1.0.3 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.3 มีคอมมิตเหล่านี้

  • อัปเดตเพื่อรองรับ Compose 1.0.3 แล้ว

เวอร์ชัน 1.0.2

1 กันยายน 2021

ปล่อย androidx.profileinstaller:profileinstaller:1.0.2 แล้ว เวอร์ชัน 1.0.2 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เพิ่มการแปลงโปรไฟล์สำหรับอุปกรณ์ P, Q, R การเปลี่ยนแปลงนี้หมายความว่าอุปกรณ์เหล่านี้จะแปลงโปรไฟล์เพื่อให้แน่ใจว่า ART จะใช้โปรไฟล์ที่เขียนได้เสมอ ก่อนหน้านี้ ระบบจะข้ามการแปลงไฟล์ในแพลตฟอร์มเหล่านี้ ซึ่งบางครั้งทำให้ ART ประมวลผลโปรไฟล์ต้นทางไม่ได้ ไม่มีการเปลี่ยนแปลง API สําหรับนักพัฒนาแอป

เวอร์ชัน 1.0.1

4 สิงหาคม 2021

androidx.profileinstaller:profileinstaller:1.0.1 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้

อัปเดตให้เข้ากันได้กับ Compose 1.0.1

เวอร์ชัน 1.0.0

28 กรกฎาคม 2021

androidx.profileinstaller:profileinstaller:1.0.0 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้

ฟีเจอร์หลักของ 1.0.0

โปรแกรมติดตั้งโปรไฟล์เป็นไลบรารีใหม่ที่ช่วยให้ไลบรารีและแอปพลิเคชันกำหนด "กฎโปรไฟล์" และรวมข้อมูลโปรไฟล์ ART กับ APK ได้ และไลบรารีนี้จะติดตั้งโปรไฟล์เหล่านั้นหลังจากเปิดแอปพลิเคชัน การตั้งค่านี้ใช้เพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชันได้

โปรดดูรายละเอียดในบันทึกประจำรุ่นที่ 1.0.0-beta01 เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับกฎโปรไฟล์เหล่านี้และวิธีการทํางาน

เวอร์ชัน 1.0.0-rc02

14 กรกฎาคม 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-rc02 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.0.0-rc01

1 กรกฎาคม 2021

ปล่อย androidx.profileinstaller:profileinstaller:1.0.0-rc01 แล้ว เวอร์ชัน 1.0.0-rc01 มีการคอมมิตเหล่านี้

นี่คือรุ่น RC ที่ไม่มีการเปลี่ยนแปลงจากรุ่นเบต้า

เวอร์ชัน 1.0.0-beta01

16 มิถุนายน 2021

androidx.profileinstaller:profileinstaller:1.0.0-beta01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้

วัตถุประสงค์ของคลัง

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

การติดตั้งโปรไฟล์นี้ทําด้วยไลบรารี androidx.startup หากต้องการปิดใช้การติดตั้งโปรไฟล์ไม่ว่าด้วยเหตุผลใดก็ตาม ผู้ใช้สามารถแก้ไขไฟล์ Manifest เพื่อนำโปรไฟล์ออกได้ ดังนี้


       <provider
           android:name="androidx.startup.InitializationProvider"
           android:authorities="${applicationId}.androidx-startup"
           android:exported="false"
           tools:node="merge">
           <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer"
                     tools:node="remove" />
       </provider>

ซึ่งจะเป็นประโยชน์อย่างยิ่งหากแอปของคุณมีข้อกำหนดการเริ่มต้นที่ไม่ง่ายนักและคุณต้องการเรียกให้ติดตั้งโปรไฟล์ด้วยตนเองโดยใช้ ProfileInstaller.writeProfile API

กฎโปรไฟล์คืออะไร

  • กฎโปรไฟล์สำหรับไลบรารีจะระบุอยู่ในไฟล์ข้อความ baseline-prof.txt ที่อยู่ใน src/main หรือไดเรกทอรีที่เทียบเท่า ไฟล์จะระบุกฎต่อบรรทัด โดยที่กฎในกรณีนี้คือรูปแบบสำหรับการจับคู่กับเมธอดหรือคลาสในไลบรารี ไวยากรณ์ของกฎเหล่านี้เป็นชุดที่ใหญ่กว่ารูปแบบโปรไฟล์ ART ที่มนุษย์อ่านได้ซึ่งใช้เมื่อใช้ adb shell profman --dump-classes-and-methods ... กฎเหล่านี้มี 2 รูปแบบเพื่อกำหนดเป้าหมายไปยังเมธอดหรือคลาส

  • กฎเมธอดจะมีรูปแบบดังต่อไปนี้

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • และกฎระดับชั้นจะมีรูปแบบดังต่อไปนี้

    <CLASS_DESCRIPTOR>
    
  • โดยที่ <FLAGS> คืออักขระ H, S และ P อย่างน้อย 1 ตัวเพื่อระบุว่าควรแจ้งว่าเมธอดนี้ "มาแรง" "เริ่มต้นใช้งาน" หรือ "หลังเริ่มต้นใช้งาน" หรือไม่

  • <CLASS_DESCRIPTOR> เป็นตัวบ่งชี้คลาสของวิธีที่กำหนดเป้าหมาย เช่น คลาส androidx.compose.runtime.SlotTable จะมีตัวบ่งชี้เป็น Landroidx/compose/runtime/SlotTable;

  • <METHOD_SIGNATURE> เป็นลายเซ็นของเมธอด ซึ่งจะมีชื่อ ประเภทพารามิเตอร์ และประเภทการคืนสินค้าของเมธอด ตัวอย่างเช่น เมธอด fun isPlaced(): Boolean ใน LayoutNode มีลายเซ็น isPlaced()Z

  • รูปแบบเหล่านี้อาจมีไวลด์การ์ด (**, * และ ?) เพื่อให้กฎเดียวครอบคลุมเมธอดหรือคลาสหลายรายการ

กฎทําหน้าที่อะไร

  • เมธอดที่มี Flag H บ่งบอกว่าเมธอดนี้เป็นเมธอด "Hot" และควรคอมไพล์ล่วงหน้า

  • เมธอดที่มี Flag S บ่งบอกว่าเป็นเมธอดที่เรียกใช้เมื่อเริ่มต้นระบบ และควรคอมไพล์ล่วงหน้าเพื่อหลีกเลี่ยงค่าใช้จ่ายในการคอมไพล์และการตีความเมธอดเมื่อเริ่มต้นระบบ

  • เมธอดที่มีแฟล็ก P บ่งบอกว่าเป็นเมธอดที่มีการเรียกใช้หลังจากสตาร์ทอัพ

  • คลาสที่อยู่ในไฟล์นี้บ่งบอกว่ามีการใช้คลาสดังกล่าวระหว่างการเริ่มต้นระบบและควรจัดสรรล่วงหน้าในกองเพื่อหลีกเลี่ยงค่าใช้จ่ายในการโหลดคลาส

คุณลักษณะนี้ทำงานอย่างไร

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

  • ไฟล์กฎควรตั้งชื่อว่า baseline-prof.txt และวางไว้ในไดเรกทอรีรากของชุดแหล่งที่มาหลัก (ควรเป็นไฟล์พี่น้องของไฟล์ AndroidManifset.xml)

  • ปัจจุบันระบบจะใช้ไฟล์เหล่านี้ก็ต่อเมื่อคุณใช้ปลั๊กอิน Android Gradle 7.0 ขึ้นไป และเปิดใช้ด้วย Flag ใน gradle.properties เท่านั้น

    # Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs
    android.experimental.enableArtProfiles=true
    

โปรไฟล์ต้องมียอดคงเหลือ

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