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