Giảm kích thước của ứng dụng tức thì

Cảnh báo: Google Play Instant sẽ không còn hoạt động nữa. Kể từ tháng 12 năm 2025, bạn sẽ không thể xuất bản Ứng dụng tức thì thông qua Google Play và tất cả API Instant của Dịch vụ Google Play sẽ không còn hoạt động. Play sẽ không còn phân phối Ứng dụng tức thì cho người dùng bằng bất kỳ cơ chế nào.

Chúng tôi thực hiện thay đổi này dựa trên ý kiến phản hồi của nhà phát triển và những khoản đầu tư liên tục của chúng tôi để cải thiện hệ sinh thái kể từ khi ra mắt Google Play Instant.

Để tiếp tục tối ưu hoá cho việc thu hút thêm người dùng, nhà phát triển nên chuyển hướng người dùng đến ứng dụng hoặc trò chơi thông thường của mình bằng đường liên kết sâu để chuyển hướng họ đến những hành trình hoặc tính năng cụ thể khi thích hợp.

Chỉ cần nhấn vào một đường liên kết web là người dùng có thể tận hưởng trải nghiệm gốc thật ấn tượng của Google Play Instant. Mọi người có thể dùng thử ứng dụng của bạn ngay mà không cần cài đặt trước. Điều này giúp nâng cao cả mức độ và chất lượng tương tác. Tuy nhiên, để ứng dụng tức thì tải nhanh như một trang web thông thường trên thiết bị di động, bạn cần tạo một ứng dụng tức thì có cấu trúc hợp lý và hiệu quả. Nhị phân của ứng dụng tức thì càng nhỏ thì ứng dụng đó tải càng nhanh và trải nghiệm người dùng càng mượt mà.

Tài liệu này truyền tải các phương pháp hay nhất để quản lý cấu trúc và kích thước nhị phân của ứng dụng nhằm mang lại trải nghiệm mượt mà cho ứng dụng tức thì. Bạn cũng có thể áp dụng những phương pháp này để mang lại lợi ích cho ứng dụng có thể cài đặt của mình.

Tái cấu trúc thành nhiều mô-đun tính năng

Việc cải thiện kích thước nhị phân của ứng dụng nhiều nhất xảy ra khi bạn tái cấu trúc ứng dụng thành nhiều mô-đun tính năng. Bắt đầu bằng một mô-đun tính năng cơ sở, sau đó trích xuất các quy trình công việc có liên quan theo chủ đề vào các mô-đun tính năng riêng. Chỉ định một hoạt động bắt đầu và URL duy nhất cho mỗi mô-đun tính năng để người dùng có thể hoàn tất quy trình làm việc của mô-đun một cách thành công.

Khi bạn tạo các mô-đun tính năng, hãy giữ cho mô-đun tính năng cơ sở nhỏ nhất có thể. Cụ thể, hãy chú ý đến những phần của ứng dụng cần có quyền truy cập vào các thư viện phụ thuộc. Nếu chỉ có một mô-đun tính năng sử dụng một thư viện nhất định, hãy nhập thư viện đó vào chính mô-đun tính năng, chứ không phải mô-đun tính năng cơ sở. Xin lưu ý rằng để phát hành một ứng dụng tức thì cho một mô-đun tính năng cụ thể, tổng kích thước của mô-đun tính năng đó và mô-đun tính năng cơ sở phải nhỏ hơn 15 MB.

Các phương pháp hay nhất

Khi tái cấu trúc ứng dụng, hãy lưu ý các phương pháp hay nhất sau:

Sử dụng cùng một cơ sở mã cho cả hai loại ứng dụng
Bạn có thể đơn giản hoá quy trình quản lý dự án của ứng dụng bằng cách sử dụng cùng một cơ sở mã theo mô-đun để tạo cả ứng dụng đã cài đặt và ứng dụng tức thì.
Thiết kế cho nhiều mô-đun tính năng
Ngay cả khi ứng dụng của bạn chỉ có một quy trình và hiện chỉ yêu cầu một mô-đun tính năng duy nhất, bạn vẫn nên thiết kế cho nhiều mô-đun tính năng. Nhờ đó, bạn có thể thêm các mô-đun hiện có vào ứng dụng mà không ảnh hưởng đến kích thước của mô-đun tính năng ban đầu.
Đừng tập trung vào giới hạn kích thước của mô-đun tính năng ngay từ đầu
Giới hạn về kích thước của mô-đun tính năng không áp dụng cho các tệp nhị phân được tạo cục bộ. Bạn cũng có thể phát hành một ứng dụng tức thì thông qua kênh kiểm thử nội bộ. Kênh này áp dụng giới hạn 15 MB đối với kích thước mô-đun tính năng. Chỉ có kênh alphaphát hành công khai mới áp dụng giới hạn 15 MB.

Cập nhật tài nguyên ứng dụng

Một số ứng dụng, đặc biệt là những ứng dụng có lịch sử cơ sở mã dài hơn, chứa các tài nguyên mà tệp nhị phân của ứng dụng không còn sử dụng nữa. Khi bạn tìm cách giảm kích thước các mô-đun của ứng dụng, hãy cân nhắc những nguồn phổ biến sau đây của mã không cần thiết.

Giảm kích thước tệp của hình ảnh

Bạn có thể giảm đáng kể tổng kích thước của các thành phần có thể vẽ trong ứng dụng bằng cách sử dụng định dạng tệp WebP thay vì PNG. Google Play tức thì hỗ trợ đầy đủ định dạng WebP, bao gồm cả độ trong suốt và tính năng nén không tổn hao, nên chất lượng hình ảnh vẫn giữ nguyên.

Nếu có thể, hãy xoá tất cả các yêu cầu về khả năng tương thích ngược để sử dụng các hình ảnh PNG khác. Nếu bạn phải dùng hình ảnh PNG, hãy đặt chúng vào mô-đun dùng để tạo và cài đặt ứng dụng.

Xoá các ngôn ngữ không dùng đến

Nếu ứng dụng của bạn hỗ trợ nhiều ngôn ngữ, hãy giảm số lượng tài nguyên được bản địa hoá nhiều nhất có thể. Bạn nên hoàn tất bước này nếu sử dụng thư viện "app compat", chẳng hạn như android.support.v7.appcompat. Thư viện này có các thông báo bằng nhiều ngôn ngữ, một số ngôn ngữ có thể không được ứng dụng của bạn hỗ trợ.

Để tìm hiểu thêm, hãy xem cách xoá tài nguyên thay thế không dùng đến, đặc biệt là các ngôn ngữ không dùng đến.

Xoá các tệp thừa

Ứng dụng của bạn có thể không còn sử dụng một số tài nguyên mà bạn đã nhập vào dự án của mình. Để giúp xoá các tài nguyên này, Android Studio có một quy trình kiểm tra Lint cho trường hợp cụ thể này. Để sử dụng công cụ này, hãy hoàn tất các bước sau:

  1. Nhấn tổ hợp phím Control+Alt+Shift+I (Command+Alt+Shift+I trên hệ điều hành Mac).
  2. Trong hộp thoại xuất hiện, hãy nhập "unused resources".
  3. Chọn mục Unused resources (Tài nguyên không dùng đến) để bắt đầu quy trình kiểm tra mức sử dụng tài nguyên.

Nếu còn bất kỳ tài nguyên lớn nào trong ứng dụng, hãy cân nhắc xem bạn có thể giải nén các tài nguyên đó khỏi ứng dụng và tải xuống dưới dạng tệp độc lập sau khi người dùng bắt đầu tương tác với ứng dụng hay không. Loại trì hoãn tải hình ảnh này thường yêu cầu thay đổi mã, nhưng có thể giảm đáng kể kích thước tệp của ứng dụng tức thì bằng cách chỉ tải xuống những tài nguyên mà người dùng yêu cầu một cách rõ ràng.

Xoá các thư viện không dùng đến

Khi phát triển trong phạm vi nhất định, một ứng dụng có thể có một số lượng lớn các phần phụ thuộc, đặc biệt là một trong những loại sau:

  • Thư viện gốc: Thư viện chứa mã gốc mà ứng dụng tức thì của bạn không bao giờ chạy.
  • Phần phụ thuộc bắc cầu: Các thư viện mà thư viện đã nhập của ứng dụng phụ thuộc vào.

Android Studio có một số công cụ hữu ích để xác định mọi phần phụ thuộc không cần thiết trong dự án của ứng dụng:

Thư viện bên ngoài

Chế độ xem Project (Dự án) của Android Studio có một phần External Libraries (Thư viện bên ngoài).

Phần này chứa mọi thư viện mà ứng dụng của bạn sử dụng, bao gồm cả mã gốc và tất cả các phần phụ thuộc bắc cầu. Trong chế độ xem này, hãy tìm những thư viện trùng lặp hoặc không dùng đến mà ứng dụng của bạn không yêu cầu.

Công cụ phân tích APK

Bạn có thể sử dụng công cụ Công cụ phân tích APK để so sánh các bản dựng khác nhau, kể cả bản dựng ứng dụng tức thì.

Sau khi xác định được những thư viện mà ứng dụng của bạn không cần, hãy loại trừ các thư viện đó bằng cách thêm các dòng tương tự như sau vào tệp bản dựng Gradle:

<feature_module>/build.gradle

Groovy

dependencies {
    implementation('some-important-but-large-library') {
        exclude group: 'com.example.imgtools', module: 'native'
    }
}

Kotlin

dependencies {
    implementation('some-important-but-large-library') {
        exclude(group = "com.example.imgtools", module = "native")
    }
}

Để biết thêm thông tin về cách giảm tổng kích thước nhập của các phần phụ thuộc trong ứng dụng, hãy xem hướng dẫn của Gradle về Quản lý phần phụ thuộc.

Triển khai quá trình phân phối thành phần trên đám mây

Nếu cần giảm kích thước hơn nữa, bạn có thể phải dựa vào phân phối nội dung trên đám mây.