Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Ứng dụng nặng mất nhiều thời gian tải, tốn dữ liệu di động và dễ bị người dùng bỏ qua, nhất là khi điện thoại sắp đầy bộ nhớ. Giảm dung lượng giúp cải thiện tỉ lệ cài đặt. Dưới đây là những cách thực tế để làm điều đó.
Đừng đoán; hãy phân tích. Các công cụ hỗ trợ:
flutter build appbundle --analyze-size
flutter build apk --split-per-abi
Kết quả thường cho thấy ảnh, phông chữ, thư viện native và các gói phụ thuộc chiếm phần lớn.
Android App Bundle cho phép Google Play tạo gói tải xuống tối ưu cho từng thiết bị (theo kiến trúc CPU, mật độ màn hình, ngôn ngữ). Nhờ vậy người dùng chỉ tải phần cần thiết. Đây thường là cách giảm dung lượng đáng kể mà không đổi gì ở mã nguồn.
Với Android, bật R8 để rút gọn mã, che giấu tên và loại bỏ mã không dùng cùng tài nguyên thừa:
android {
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}
}
Sau khi bật, cần kiểm thử kỹ vì rút gọn có thể làm mất các lớp được dùng qua phản chiếu. Bổ sung quy tắc giữ lại trong tệp proguard-rules khi cần.
Chỉ đóng gói những kiểu phông bạn thực sự dùng (ví dụ thay vì cả bộ nhiều độ đậm nhạt). Âm thanh nên nén với bitrate hợp lý. Video dài không nên nhúng sẵn; hãy phát trực tuyến.
Với ứng dụng lớn như trò chơi, nên đóng gói phần lõi nhỏ và tải thêm màn chơi, tài nguyên khi cần. Google Play có hỗ trợ phân phối tài nguyên bổ sung theo yêu cầu. Cách này giảm dung lượng ban đầu, người dùng vào chơi nhanh hơn.
Dung lượng thường tăng dần theo từng phiên bản mà không ai để ý. Hãy ghi lại kích thước mỗi bản phát hành và đặt ngưỡng cảnh báo trong quy trình tích hợp liên tục.
Bộ nhớ đệm và dữ liệu tải về cũng chiếm chỗ. Hãy đặt giới hạn cho bộ nhớ đệm ảnh, dọn dữ liệu cũ định kỳ và cho người dùng nút xóa bộ nhớ đệm trong cài đặt.
Phân tích để thấy rõ, phát hành bằng định dạng tối ưu, nén tài nguyên và loại bỏ thứ không cần là bốn bước hiệu quả nhất. Mỗi megabyte tiết kiệm được đều giúp người dùng cài ứng dụng của bạn dễ dàng hơn.
Giảm dung lượng không nên làm hỏng chất lượng. Nén ảnh quá mạnh gây vỡ hạt, bỏ phông chữ thương hiệu làm mất bản sắc. Hãy đặt mục tiêu dung lượng theo đối tượng người dùng: nếu nhiều người dùng máy bộ nhớ thấp hoặc mạng chậm, ưu tiên nhẹ hơn. So sánh dung lượng tải xuống và dung lượng sau khi cài, vì hai con số này khác nhau. Cuối cùng, ghi con số dung lượng mỗi phiên bản để có thể phát hiện kịp thời khi nó tăng bất thường.
Giả sử bản AAB ban đầu nặng, phân tích cho thấy phần lớn nằm ở ảnh PNG lớn và một thư viện native cho nhiều kiến trúc. Chuyển ảnh sang WebP, tải ảnh minh họa từ mạng, và để Google Play tách theo kiến trúc đã đủ giảm đáng kể mà không đổi chức năng nào.
Bạn có thể tìm hiểu quy trình build và tối ưu ứng dụng chuyên sâu hơn trong các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment