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