โปรแกรมติดตั้งโปรไฟล์

  
เปิดให้ไลบรารีป้อนข้อมูลล่วงหน้าการติดตามการคอมไพล์ที่จะอ่านโดย ART
อัปเดตล่าสุด รุ่นที่เสถียร ตัวเลือกถอนการอ้างสิทธิ์ รุ่นเบต้า รุ่นอัลฟ่า
7 สิงหาคม 2024 1.3.1 - - 1.4.0-alpha02

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

ในการเพิ่มทรัพยากร Dependency ของ ProfileInstaller คุณต้องเพิ่มที่เก็บ Google Maven ไปยัง อ่านที่เก็บ Maven ของ Google เพื่อดูข้อมูลเพิ่มเติม

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

ดึงดูด

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

Kotlin

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

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

ความคิดเห็น

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

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

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

เวอร์ชัน 1.4

เวอร์ชัน 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)
  • เพิ่มการกระจายข้อมูล Shell ใหม่ที่ช่วยให้ 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 วินาทีของมิลลิวินาทีในระหว่างการเริ่มต้นใช้งาน จึงเพิ่มการวินิจฉัยเพื่อค้นหาโปรไฟล์พื้นฐานที่บีบอัดอย่างไม่ถูกต้องแทน (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)
  • เพิ่มการกระจายข้อมูล Shell ใหม่ที่ทำให้ 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 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการสนับสนุนสำหรับโปรไฟล์ใน 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 เพื่อให้แอปที่ใช้โปรไฟล์เกณฑ์พื้นฐานเรียกใช้ Macroการเปรียบเทียบโดยใช้ 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 ... กฎเหล่านี้มี 1 ใน 2 รูปแบบเพื่อกำหนดเป้าหมายเมธอดหรือคลาส

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

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

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

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

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

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

กฎมีไว้เพื่ออะไร

  • เมธอดที่มีแฟล็ก 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
    

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

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