ProfileInstaller
Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
Ngày 2 tháng 10 năm 2024 | 1.4.1 | - | - | - |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên ProfileInstaller, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun:
Groovy
dependencies { implementation "androidx.profileinstaller:profileinstaller:1.3.1" }
Kotlin
dependencies { implementation("androidx.profileinstaller:profileinstaller:1.3.1") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 1.4
Phiên bản 1.4.1
Ngày 2 tháng 10 năm 2024
Phát hành androidx.profileinstaller:profileinstaller:1.4.1
. Phiên bản 1.4.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục tính năng hỗ trợ cho việc ghi Hồ sơ cơ sở đa quá trình bằng cách báo hiệu nhiều quy trình theo tuần tự. Bản sửa lỗi này yêu cầu bạn cập nhật cả
androidx.benchmark:benchmark-macro:1.4.0-alpha02
trong mô-đun hồ sơ cơ sở/macrobenchmark vàandroidx.profileinstaller:profileinstaller:1.4.1
trong ứng dụng. (I0f519, b/366231469)
Phiên bản 1.4.0
Ngày 18 tháng 9 năm 2024
Phát hành androidx.profileinstaller:profileinstaller:1.4.0
. Phiên bản 1.4.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.3.0
ProfileInstaller
hiện hỗ trợ thu thập/cài đặt hồ sơ trên API 35 trở lên. Bạn không cần phải cập nhậtProfileInstaller
để cập nhật phiên bản nền tảng nữa. (6f9f6fa)- Khắc phục sự cố khi xoá trình đổ bóng trên Android U (API 34), cũng như trên trình mô phỏng. (I031ca, b/274314544)
- Khắc phục sự cố chuyển mã cờ phương thức ở định dạng hồ sơ
V_015S
. (aosp/2906631, aosp/2847740)
Phiên bản 1.4.0-rc01
Ngày 4 tháng 9 năm 2024
androidx.profileinstaller:profileinstaller:1.4.0-rc01
được phát hành mà không có thay đổi nào so với bản phát hành thử nghiệm gần đây nhất. Phiên bản 1.4.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.4.0-beta01
Ngày 21 tháng 8 năm 2024
androidx.profileinstaller:profileinstaller:1.4.0-beta01
được phát hành mà không có thay đổi nào so với bản alpha gần đây nhất. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha02
Ngày 7 tháng 8 năm 2024
Phát hành androidx.profileinstaller:profileinstaller:1.4.0-alpha02
. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- Thêm tính năng hỗ trợ API 35 vào Trình cài đặt hồ sơ. (6f9f6fa)
Sửa lỗi
- Xoá phần trình bày quyền truy cập vào API nền tảng mới theo cách thủ công vì việc này diễn ra tự động thông qua tính năng tạo mô hình API khi sử dụng R8 với AGP 7.3 trở lên (ví dụ: R8 phiên bản 3.3) và cho tất cả các bản dựng khi sử dụng AGP 8.1 trở lên (ví dụ: D8 phiên bản 8.1). Những ứng dụng không sử dụng AGP nên cập nhật lên D8 phiên bản 8.1 trở lên. Xem bài viết này để biết thêm chi tiết. (If6b4c, b/345472586)
Phiên bản 1.4.0-alpha01
Ngày 7 tháng 2 năm 2024
Phát hành androidx.profileinstaller:profileinstaller:1.4.0-alpha01
. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.
Sửa lỗi
- Thêm mã lỗi cho trường hợp không có hồ sơ nào được nhúng vào trình xác minh hồ sơ. (Ifb109, b/313928520)
- Khắc phục sự cố khi xoá trình đổ bóng trên Android U (API 34), cũng như trên trình mô phỏng. (I031ca, b/274314544)
- Bật tính năng hỗ trợ cho Android U trong trình cài đặt hồ sơ. (Iaf177)
- Đã sửa lỗi trình cài đặt hồ sơ trên Android U do hồ sơ hiện tại không được tạo dưới dạng hồ sơ trống khi bắt đầu quá trình. (Ie3899)
- Khắc phục sự cố chuyển mã bitmap phương thức ở định dạng hồ sơ
V_015S
. (aosp/2906631) và (aosp/2847740)
Phiên bản 1.3
Phiên bản 1.3.1
Ngày 3 tháng 5 năm 2023
Phát hành androidx.profileinstaller:profileinstaller:1.3.1
. Phiên bản 1.3.1 bao gồm các thay đổi sau.
Sửa lỗi
- Bật tính năng hỗ trợ cho Android U trong trình cài đặt hồ sơ (Iaf177)
- Đã sửa lỗi trình cài đặt hồ sơ trên Android U do hồ sơ hiện tại không được tạo dưới dạng hồ sơ trống khi bắt đầu quá trình. (Ie3899)
Phiên bản 1.3.0
Ngày 22 tháng 3 năm 2023
Phát hành androidx.profileinstaller:profileinstaller:1.3.0
. Phiên bản 1.3.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.2.0
- Sửa một
NullPointerException
trongProfileInstallReceiver
. (b/243851384) - Thêm API
ProfileVerifier
để kiểm tra trong ứng dụng xem liệu một hồ sơ cơ sở có được biên dịch, lên lịch hoặc bị thiếu hay không (I263a4, b/246653809) - Thêm lệnh shell broadcast mới cho phép Macrobenchmark đẩy toàn bộ dữ liệu hồ sơ trong bộ nhớ vào ổ đĩa, để được đưa vào quá trình tạo hồ sơ cơ sở. Đây là yêu cầu bắt buộc để sử dụng thư viện Macrobenchmark nhằm ghi lại các hồ sơ cơ sở với
BaselineProfileRule
và đánh giá hiệu suất của hồ sơ bằng cách sử dụngCompilationMode.Partial(warmupIterations)
. - Thêm mã chẩn đoán để phát hiện hồ sơ cơ sở được nén. Trình cài đặt hồ sơ không thể cài đặt hồ sơ cơ sở nén trong Macrobenchmarks hoặc trong bản phát hành chính thức do hao tổn CPU. Bạn nên tránh sử dụng hồ sơ cơ sở nén khi xây dựng ứng dụng bằng cách cập nhật lên Studio/AGP Electric Eel hoặc
bundletool
phiên bản1.13.1
(I86413, b/261998144) - Thêm các hook cho macrobenchmark để ghi lại các hồ sơ và thả bộ nhớ đệm của chương trình đổ bóng, cần thiết để tạo Hồ sơ cơ sở hoặc macrobenchmark trên các thiết bị chưa bị can thiệp vào hệ thống (Ie0a7d, b/250083467, b/253094958) (Ia5171, b/231455742)
Phiên bản 1.3.0-rc01
Ngày 8 tháng 3 năm 2023
androidx.profileinstaller:profileinstaller:1.3.0-rc01
được phát hành mà không có sự thay đổi nào so với phiên bản thử nghiệm cuối cùng. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-beta01
Ngày 8 tháng 2 năm 2023
Phát hành androidx.profileinstaller:profileinstaller:1.3.0-beta01
. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.
Các thay đổi về API
- Ngừng hỗ trợ xử lý các hồ sơ nén – việc mở và giải nén khiến quá trình hồi quy mức sử dụng CPU mất hàng chục giây trong khi khởi động, vì vậy, thêm một thông tin chẩn đoán để phát hiện các hồ sơ cơ sở được nén không chính xác. (I86413, b/261998144)
Phiên bản 1.3.0-alpha03
Ngày 11 tháng 1 năm 2023
Phát hành androidx.profileinstaller:profileinstaller:1.3.0-alpha03
. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.
Sửa lỗi
- Cho phép xử lý các hồ sơ cơ sở đã nén hoặc chưa nén (Ic61a0)
- Sửa sổ đăng ký truyền tin trong tệp kê khai trình cài đặt hồ sơ để
MacrobenchmarkScope.dropShaderCache()
không còn gặp lỗi nữa (I5c728, b/258619948)
Phiên bản 1.3.0-alpha02
Ngày 9 tháng 11 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.3.0-alpha02
. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
- Bổ sung hook cho điểm chuẩn để bỏ bộ nhớ đệm của chương trình đổ bóng nhằm đảm bảo hiệu suất nhất quán cho quy trình khởi động nguội, nhất là khi biên dịch bằng hồ sơ của các vòng lặp khởi động. Bạn cần có bản cập nhật này để đo lường các lần khởi động nguội bằng
benchmark-macro-junit4:1.2.0-alpha05
trở lên. Để thay đổi API của thư viện Điểm chuẩn, vui lòng tham khảo trang Điểm chuẩn 1.2.0-alpha07. (Ia5171, b/231455742)
Phiên bản 1.3.0-alpha01
Ngày 24 tháng 10 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.3.0-alpha01
. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
- Thêm API
ProfileVerifier
để kiểm tra trong ứng dụng xem liệu một hồ sơ cơ sở có được biên dịch, lên lịch hoặc bị thiếu hay không (I263a4, b/246653809) - Thêm lệnh shell broadcast mới cho phép Macrobenchmark đẩy toàn bộ dữ liệu hồ sơ trong bộ nhớ vào ổ đĩa, để được đưa vào quá trình tạo hồ sơ cơ sở. Đây là yêu cầu bắt buộc để sử dụng thư viện Macrobenchmark nhằm ghi lại các hồ sơ cơ sở với
BaselineProfileRule
và đánh giá hiệu suất của hồ sơ bằng cách sử dụngCompilationMode.Partial(warmupIterations)
. (Ie0a7d, b/250083467, b/253094958)
Phiên bản 1.2.2
Phiên bản 1.2.2
Ngày 11 tháng 1 năm 2023
Phát hành androidx.profileinstaller:profileinstaller:1.2.2
. Phiên bản 1.2.2 bao gồm các thay đổi sau.
Sửa lỗi
- Cho phép xử lý các hồ sơ cơ sở đã nén hoặc chưa nén (Ic61a0)
Phiên bản 1.2.1
Phiên bản 1.2.1
Ngày 7 tháng 12 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.2.1
. Phiên bản 1.2.1 bao gồm các thay đổi sau.
Tính năng mới
- Bật profileinstaller cho S_V2 (API 32) và TIRAMISU (API 33) (b/254900303).
Phiên bản 1.2.0
Phiên bản 1.2.0
Ngày 27 tháng 7 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.2.0
. Phiên bản 1.2.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.1.0
- Hãy thêm tuỳ chọn hỗ trợ cho định dạng hồ sơ ART trên Android 12 trở đi.
- Thêm các API mới trong
ProfileInstallReceiver
để nhận được kết quả nhất quán hơn vớiMacrobenchmarks
khi sử dụng hồ sơ cơ sở.
Phiên bản 1.2.0-rc01
Ngày 15 tháng 6 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.2.0-rc01
. Phiên bản 1.2.0-rc01 bao gồm bao gồm các thay đổi sau.
- Phiên bản này giống với
androidx.profileinstaller:profileinstaller:1.2.0-beta03
.
Phiên bản 1.2.0-beta03
Ngày 2 tháng 6 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.2.0-beta03
. Phiên bản 1.2.0-beta03 bao gồm các thay đổi sau.
Phiên bản 1.2.0-beta02
Ngày 18 tháng 5 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.2.0-beta02
. Phiên bản 1.2.0-beta02 bao gồm các thay đổi sau.
- Không cần thay đổi nào để hỗ trợ phiên bản Compose 1.2.0-beta02.
Phiên bản 1.2.0-beta01
Ngày 11 tháng 5 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.2.0-beta01
. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.
Thay đổi API
- Thêm các API mới trong
ProfileInstallReceiver
để nhận được kết quả nhất quán hơn vớiMacrobenchmarks
khi sử dụng hồ sơ cơ sở. (If2ae5, b/215740637)
Sửa lỗi
- Trình cài đặt hồ sơ sẽ gửi một thông báo hữu ích khi cố gắng sử dụng định dạng siêu dữ liệu
V_001
trên Android 12 trở lên. (aosp/1978526, b/217502387) - Trình cài đặt hồ sơ hiện sử dụng phiên bản
androidx.startup
1.1.1
. (aosp/2077099, b/229828376)
Phiên bản 1.2.0-alpha02
Ngày 26 tháng 1 năm 2022
androidx.profileinstaller:profileinstaller:1.2.0-alpha02
đã được phát hành. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.
Phiên bản này giống với 1.2.0-alpha01
.
Phiên bản 1.2.0-alpha01
Ngày 12 tháng 1 năm 2022
androidx.profileinstaller:profileinstaller:1.2.0-alpha01
đã được phát hành. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Hãy thêm tuỳ chọn hỗ trợ cho định dạng hồ sơ ART trên Android 12 trở đi.
Phiên bản 1.1.0
Phiên bản 1.1.0
Ngày 9 tháng 2 năm 2022
Phát hành androidx.profileinstaller:profileinstaller:1.1.0
. Phiên bản 1.1.0 bao gồm các thay đổi sau.
Phiên bản 1.1.0-rc01
Ngày 15 tháng 12 năm 2021
androidx.profileinstaller:profileinstaller:1.1.0-rc01
được phát hành mà không có bản cập nhật nào kể từ phiên bản thử nghiệm 1.1.0-beta04 Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.1.0-beta04
Ngày 1 tháng 12 năm 2021
androidx.profileinstaller:profileinstaller:1.1.0-beta04
đã được phát hành. Phiên bản 1.1.0-beta04 bao gồm các thay đổi sau.
Phiên bản 1.1.0-beta03
Ngày 17 tháng 11 năm 2021
androidx.profileinstaller:profileinstaller:1.1.0-beta03
đã được phát hành. Phiên bản 1.1.0-beta03 bao gồm các thay đổi sau.
Sửa lỗi
- Đã cập nhật để hỗ trợ Compose 1.1.0-beta03
Phiên bản 1.1.0-beta02
Ngày 3 tháng 11 năm 2021
androidx.profileinstaller:profileinstaller:1.1.0-beta02
đã được phát hành. Phiên bản 1.1.0-beta02 bao gồm các thay đổi sau.
Sửa lỗi
- Đã cập nhật để hỗ trợ Compose 1.1.0-beta02
Phiên bản 1.1.0-beta01
Ngày 27 tháng 10 năm 2021
androidx.profileinstaller:profileinstaller:1.1.0-beta01
đã được phát hành. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.
- Không thay đổi kể từ phiên bản 1.1.0-alpha07.
Phiên bản 1.1.0-alpha07
Ngày 13 tháng 10 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.1.0-alpha07
. Phiên bản 1.1.0-alpha07 bao gồm các thay đổi sau.
Tính năng mới
- Bổ sung hỗ trợ cho profm trên Android N
Phiên bản 1.1.0-alpha06
Ngày 29 tháng 9 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.1.0-alpha06
. Phiên bản 1.1.0-alpha06 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục các vấn đề chuyển mã trong trình cài đặt hồ sơ trên N, O và O_MR1. (I12d75)
Phiên bản 1.1.0-alpha05
Ngày 15 tháng 9 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.1.0-alpha05
. Phiên bản 1.1.0-alpha05 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố chuyển mã hồ sơ Android Nougat và Android Oreo cho APK multidex.
Phiên bản 1.1.0-alpha04
Ngày 1 tháng 9 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.1.0-alpha04
. Phiên bản 1.1.0-alpha04 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục
ProfileInstaller
để giúp các ứng dụng dễ dàng sử dụng hồ sơ cơ sở để chạy MacroBenchmark bằng cách sử dụngCompilationMode.BaselineProfile
. (I42657, b/196074999)
Phiên bản 1.1.0-alpha03
Ngày 18 tháng 8 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.1.0-alpha03
. Phiên bản 1.1.0-alpha03 bao gồm các thay đổi sau.
Sửa lỗi
- Thay đổi hành vi bỏ qua của profileinstaller để ghi nhật ký PackageInfo.lastUpdatedTime trong một tệp trong thư mục tệp của ứng dụng cũng như so sánh tệp đó trước khi cài đặt hồ sơ vào lần chạy tiếp theo. (Ib93d1)
- Điều chỉnh định dạng hồ sơ trên các thiết bị P, Q, R để phù hợp với các yêu cầu ART (I84e89)
Phiên bản 1.1.0-alpha02
Ngày 4 tháng 8 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.1.0-alpha02
. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.
Cập nhật để tương thích với Compose 1.1.0-alpha01.
Phiên bản 1.1.0-alpha01
Ngày 21 tháng 7 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.1.0-alpha01
. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi làm kích hoạt chế độ nghiêm ngặt trong một số trường hợp.
Phiên bản 1.0
Phiên bản 1.0.4
Ngày 13 tháng 10 năm 2021
androidx.profileinstaller:profileinstaller:1.0.4
đã được phát hành. Phiên bản 1.0.4 bao gồm các thay đổi sau.
- Cập nhật để hỗ trợ Compose 1.0.4
Phiên bản 1.0.3
Ngày 29 tháng 9 năm 2021
androidx.profileinstaller:profileinstaller:1.0.3
đã được phát hành. Phiên bản 1.0.3 bao gồm các thay đổi sau.
- Cập nhật để hỗ trợ Compose 1.0.3
Phiên bản 1.0.2
Ngày 1 tháng 9 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.0.2
. Phiên bản 1.0.2 bao gồm các thay đổi sau.
Sửa lỗi
- Thêm tuỳ chọn chuyển mã hồ sơ cho các thiết bị P, Q, R. Với sự thay đổi này, các thiết bị đó sẽ chuyển mã hồ sơ, đảm bảo rằng ART luôn sử dụng được hồ sơ đã viết. Phương pháp chuyển mã trước đây sẽ bị bỏ qua trên các nền tảng này, dẫn đến việc đôi khi ART không thể xử lý hồ sơ nguồn. Không có thay đổi nào đối với API nhà phát triển.
Phiên bản 1.0.1
Ngày 4 tháng 8 năm 2021
androidx.profileinstaller:profileinstaller:1.0.1
đã được phát hành. Phiên bản 1.0.1 bao gồm các thay đổi sau.
Cập nhật để tương thích với Compose 1.0.1.
Phiên bản 1.0.0
Ngày 28 tháng 7 năm 2021
androidx.profileinstaller:profileinstaller:1.0.0
đã được phát hành. Phiên bản 1.0.0 bao gồm các thay đổi sau.
Các tính năng chính của phiên bản 1.0.0
Trình cài đặt hồ sơ (profile installer) là một thư viện mới cho phép các thư viện và ứng dụng xác định "Quy tắc hồ sơ" và gói thông tin hồ sơ ART với tệp APK, và thư viện này sẽ cài đặt các hồ sơ đó sau khi khởi chạy ứng dụng. Bạn có thể sử dụng tính năng này để cải thiện hiệu suất của ứng dụng.
Vui lòng xem ghi chú phát hành chi tiết tại 1.0.0-beta01 để biết thêm thông tin về các quy tắc dành cho hồ sơ này và cách hoạt động của các quy tắc này.
Phiên bản 1.0.0-rc02
Ngày 14 tháng 7 năm 2021
androidx.profileinstaller:profileinstaller:1.0.0-rc02
đã được phát hành. Phiên bản 1.0.0-rc02 bao gồm các thay đổi sau.
Phiên bản 1.0.0-rc01
Ngày 1 tháng 7 năm 2021
androidx.profileinstaller:profileinstaller:1.0.0-rc01
đã được phát hành. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.
Đây là bản phát hành RC và không có thay đổi nào từ phiên bản thử nghiệm.
Phiên bản 1.0.0-beta01
Ngày 16 tháng 6 năm 2021
Phát hành androidx.profileinstaller:profileinstaller:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Mục đích của thư viện
Trình cài đặt hồ sơ là một thư viện mới cho phép các thư viện và ứng dụng xác định "Quy tắc hồ sơ" cũng như gói thông tin hồ sơ ART với tệp APK. Thư viện này sẽ cài đặt các hồ sơ đó sau khi khởi chạy ứng dụng. Bạn có thể sử dụng tính năng này để cải thiện hiệu suất của ứng dụng.
Quá trình cài đặt hồ sơ này được thực hiện bằng thư viện androidx.offline. Nếu muốn huỷ cài đặt hồ sơ vì bất kỳ lý do nào, thư viện có thể sửa đổi tệp kê khai để xoá tệp này:
<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>
Điều này đặc biệt hữu ích nếu ứng dụng của bạn có các yêu cầu khởi động không quan trọng và bạn muốn kích hoạt quá trình cài đặt hồ sơ theo cách thủ công bằng API ProfileInstaller.writeProfile
.
Quy tắc hồ sơ là gì?
Quy tắc hồ sơ cho thư viện được chỉ định trong tệp văn bản
baseline-prof.txt
nằm trongsrc/main
hoặc thư mục tương đương. Tệp này chỉ định quy tắc trên mỗi dòng, trong đó quy tắc trong trường hợp này là mẫu để khớp với phương thức hoặc lớp trong thư viện. Cú pháp cho các quy tắc này là tập mẹ của định dạng hồ sơ ART mà con người có thể đọc được, được dùng khi sử dụngadb shell profman --dump-classes-and-methods ...
. Các quy tắc này dùng một trong hai biểu mẫu để nhắm mục tiêu vào phương thức hoặc lớp.Quy tắc phương thức sẽ có mẫu sau:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Và quy tắc lớp sẽ có mẫu sau:
<CLASS_DESCRIPTOR>
Ở đây,
<FLAGS>
là một hoặc nhiều ký tự trong số các ký tựH
,S
vàP
để cho biết có cần gắn cờ "Hot", "Startup" hoặc "Post Startup" cho phương thức này hay không.<CLASS_DESCRIPTOR>
là phần mô tả cho lớp chứa phương thức được nhắm mục tiêu. Ví dụ: lớpandroidx.compose.runtime.SlotTable
sẽ có phần mô tả làLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
là chữ ký của phương thức và bao gồm tên, loại thông số và loại dữ liệu trả về của phương thức. Ví dụ: phương thứcfun isPlaced(): Boolean
trênLayoutNode
có chữ kýisPlaced()Z
.Những mẫu này có thể có ký tự đại diện (
**
,*
và?
) để có một quy tắc duy nhất bao gồm nhiều lớp hoặc phương thức.
Những quy tắc này có chức năng gì?
Phương thức có cờ
H
cho biết rằng phương thức này là một phương thức "khởi động nóng" và phải được biên dịch trước.Phương thức có cờ
S
cho biết đây là phương thức được gọi khi khởi động và phải được biên dịch trước khi thực thi để tránh chi phí biên dịch và diễn giải phương thức này tại thời điểm khởi động.Phương thức có cờ
P
cho biết đây là phương thức được gọi sau khi khởi động.Một lớp có trong tệp này cho biết rằng lớp này được dùng trong khi khởi động và cần được phân bổ trước trong vùng nhớ khối xếp để tránh chi phí tải lớp.
Cách hoạt động?
Thư viện có thể xác định những quy tắc sẽ được đóng gói trong cấu phần phần mềm AAR. Tiếp đến, khi tệp APK được tạo chứa các cấu phần mềm nêu trên, các quy tắc này được hợp nhất với nhau và các quy tắc hợp nhất dùng để tạo ra một hồ sơ ART nhị phân nhỏ gọn dành riêng cho tệp APK. Sau đó, ART có thể tận dụng hồ sơ này khi tệp APK được cài đặt trên thiết bị để biên soạn trước một số ứng dụng cụ thể nhằm cải thiện hiệu suất của ứng dụng, đặc biệt là lần chạy đầu tiên. Lưu ý rằng việc này sẽ không ảnh hưởng đến các ứng dụng có thể gỡ lỗi.
Các tệp quy tắc phải được đặt tên là
baseline-prof.txt
và đặt trong thư mục gốc của nhóm tài nguyên chính (phải là tệp đồng cấp với tệpAndroidManifset.xml
)Hiện tại, các tệp này sẽ chỉ được dùng nếu bạn đang sử dụng trình bổ trợ Android cho Gradle 7.0 trở lên và hiện chỉ được bật bằng một cờ trong
gradle.properties
:# Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs android.experimental.enableArtProfiles=true
Hồ sơ cần phải có sự cân bằng
- Hồ sơ được tạo đúng cách ưu tiên chính xác các phương thức và lớp sẽ nằm trong đường dẫn khởi động và hiệu suất quan trọng sẽ mang lại kết quả tốt nhất. Tuy nhiên, việc đưa quá nhiều phương thức hoặc lớp vào hồ sơ có thể dẫn đến ảnh hưởng tiêu cực cuối cùng về mức tiêu thụ bộ nhớ và mức sử dụng ổ đĩa. Vì vậy, bạn nên thận trọng khi bắt đầu xác định quy tắc hồ sơ của riêng mình.