Để mang lại trải nghiệm tốt nhất cho người dùng, bạn nên tối ưu hoá ứng dụng để ứng dụng có kích thước nhỏ và chạy nhanh nhất có thể. Trình tối ưu hoá ứng dụng của chúng tôi (gọi là R8) sẽ tinh giản ứng dụng của bạn bằng cách xoá mã và tài nguyên không dùng đến, viết lại mã để tối ưu hoá hiệu suất thời gian chạy, v.v. Đối với người dùng, điều này có nghĩa là:
- Thời gian khởi động nhanh hơn
- Cải thiện hiệu suất kết xuất và thời gian chạy
- Ít lỗi ANR hơn
Để bật tính năng tối ưu hoá ứng dụng, hãy đặt isMinifyEnabled = true
(để tối ưu hoá mã) và isShrinkResources = true
(để tối ưu hoá tài nguyên) trong tập lệnh bản dựng cấp ứng dụng của bản phát hành như minh hoạ trong mã sau. Bạn nên luôn bật cả hai chế độ cài đặt này. Bạn cũng nên chỉ bật tính năng tối ưu hoá ứng dụng trong phiên bản cuối cùng của ứng dụng mà bạn kiểm thử trước khi xuất bản (thường là bản phát hành), vì các hoạt động tối ưu hoá sẽ làm tăng thời gian tạo của dự án và có thể khiến việc gỡ lỗi trở nên khó khăn hơn do cách tính năng này sửa đổi mã.
Kotlin
android { buildTypes { release { // Enables code-related app optimization. isMinifyEnabled = true // Enables resource shrinking. isShrinkResources = true proguardFiles( // Default file with automatically generated optimization rules. getDefaultProguardFile("proguard-android-optimize.txt"), ... ) ... } } ... }
Groovy
android { buildTypes { release { // Enables code-related app optimization. minifyEnabled true // Enables resource shrinking. shrinkResources true // Default file with automatically generated optimization rules. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') ... } } }
Ngoài ra, hãy xác minh rằng R8 sử dụng đầy đủ các khả năng tối ưu hoá bằng cách xoá dòng này khỏi tệp gradle.properties
của dự án (nếu có):
android.enableR8.fullMode=false # Remove this line from your codebase.
Xin lưu ý rằng việc bật tính năng tối ưu hoá ứng dụng sẽ khiến bạn khó hiểu dấu vết ngăn xếp, đặc biệt là nếu R8 đổi tên lớp hoặc tên phương thức. Để nhận được dấu vết ngăn xếp tương ứng chính xác với mã nguồn của bạn, hãy xem phần Khôi phục dấu vết ngăn xếp ban đầu.
Nếu bật R8, bạn cũng nên tạo Hồ sơ khởi động để có hiệu suất khởi động tốt hơn nữa.
Nếu bạn bật tính năng tối ưu hoá ứng dụng và tính năng này gây ra lỗi, thì sau đây là một số chiến lược để khắc phục lỗi:
- Thêm quy tắc lưu giữ để giữ nguyên một số mã.
- Áp dụng các điểm tối ưu hoá theo từng bước.
- Cập nhật mã của bạn để sử dụng các thư viện phù hợp hơn cho việc tối ưu hoá.