Chỉ với thao tác nhấn vào web, Google Play Instant mang đến cho người dùng những trải nghiệm gốc đa dạng . Mọi người có thể trải nghiệm ứng dụng của bạn mà không cần cài đặt trước, do đó, mức độ và chất lượng tương tác cao hơn. Để ứng dụng tức thì tải nhanh như như một trang web dành cho thiết bị di động điển hình, mặc dù, bạn cần tạo một trang web ứng dụng tức thì hiệu quả hơn. Tệp nhị phân của ứng dụng tức thì càng nhỏ thì tốc độ càng nhanh tải được và trải nghiệm người dùng càng mượt mà hơn.
Tài liệu này giới thiệu các phương pháp hay nhất để quản lý cấu trúc ứng dụng và kích thước nhị phân để mang lại trải nghiệm ứng dụng tức thì mượt mà. Bạn có thể áp dụng các thuộc tính này để mang lại lợi ích cho ứng dụng có thể cài đặt của bạn.
Tái cấu trúc thành nhiều mô-đun tính năng
Điểm cải thiện lớn nhất đối với kích thước nhị phân của ứng dụng 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 với tính năng cơ sở mô-đun, sau đó trích xuất các quy trình làm việc có liên quan đến chủ đề vào các mô-đun tính năng của riêng mình. Chỉ định hoạt động bắt đầu và URL duy nhất cho từng mô-đun tính năng để người dùng có thể hoàn tất thành công quy trình làm việc của mô-đun.
Khi bạn tạo mô-đun tính năng, hãy giữ cho mô-đun tính năng cơ sở có kích thước nhỏ nhất nhất có thể. Đặc biệt, hãy chú ý kỹ đến các phần trong ứng dụng của bạn yêu cầu quyền truy cập vào các thư viện phần phụ thuộc của bạn. Nếu chỉ một mô-đun tính năng sử dụng thư viện đã cho, hãy nhập thư viện đó vào chính mô-đun tính năng, chứ không phải trong thư viện cơ sở mô-đun tính năng. Hãy nhớ rằng, để phát hành ứng dụng tức thì cho mô-đun tính năng cụ thể, kích thước tổng của 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 đây:
- 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ã mô-đun để tạo cả ứng dụng cần cài đặt và ứng dụng tức thì.
- Thiết kế cho nhiều mô-đun tính năng
- Kể cả khi ứng dụng chỉ có một quy trình công việc và chỉ yêu cầu một tính năng duy nhất hiện tại, bạn vẫn nên thiết kế cho nhiều mô-đun tính năng. Bằng cách đó, bạn có thể thêm các mô-đun hiện có vào ứng dụng của mình mà không ảnh hưởng đến kích thước của mô-đun tính năng gốc.
- Đừng tập trung vào giới hạn kích thước mô-đun tính năng ngay từ đầu
- Giới hạn kích thước mô-đun tính năng không áp dụng cho tệp nhị phân được tạo cục bộ. Bạn có thể phát hành ứng dụng tức thì thông qua kênh kiểm thử nội bộ. Kênh này thực thi giới hạn 15 MB đối với kích thước mô-đun tính năng. Chỉ alpha và Các bản phát hành công khai phải tuân thủ 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 những tài nguyên mà tệp nhị phân của ứng dụng không còn sử dụng. Khi bạn tìm cách tạo các mô-đun không cần thiết phổ biến sau đây của ứng dụng, hãy xem xét các nguồn không cần thiết phổ biến sau đây .
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 đối tượng có thể vẽ trong ứng dụng bằng cách sử dụng WebP thay vì PNG. Google Play Instant cung cấp dịch vụ hỗ trợ đầy đủ cho WebP, bao gồm cả độ trong suốt và tính năng nén không tổn hao, nhờ đó 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 tệp PNG khác hình ảnh. Nếu bạn phải sử 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 của bạn.
Xoá 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 đã bản địa hoá xuống
có thể. Bước này đặc biệt hữu ích để hoàn thành nếu bạn sử dụng một "ứng dụng
tương thích" thư viện, chẳng hạn như android.support.v7.appcompat
.
Thư viện này bao gồm các thông báo bằng nhiều ngôn ngữ, một số ngôn ngữ mà ứng dụng của bạn có thể
không được hỗ trợ.
Để tìm hiểu thêm, hãy xem cách xoá lựa chọn thay thế không dùng đến , đặc biệt là ngôn ngữ không được sử dụng.
Xoá tệp bổ sung
Ứng dụng của bạn có thể không còn sử dụng một số tài nguyên bạn đã nhập vào dự án của bạn. Android Studio có tính năng kiểm tra tìm lỗi mã nguồn để giúp xoá các tài nguyên này cho tình huống cụ thể này. Để dùng công cụ này, hãy hoàn thành các bước sau:
- Nhấn Control+Alt+Shift+I (Command+Alt+Shift+I trên Mac OS).
- Trong hộp thoại xuất hiện, hãy nhập
"unused resources"
. - Chọn lựa chọn Unused resources (Tài nguyên không dùng đến) để bắt đầu sử dụng tài nguyên quy trình kiểm tra.
Nếu vẫn còn tài nguyên lớn trong ứng dụng, hãy cân nhắc xem có thể mở gói chúng khỏi ứng dụng và tải chúng xuống dưới dạng tệp độc lập sau người dùng bắt đầu tương tác với ứng dụng của bạn. Kiểu trì hoãn tải hình ảnh này thường yêu cầu thay đổi mã nhưng có thể làm giảm đáng kể thời gian kích thước tệp của ứng dụng bằng cách chỉ tải xuống các tài nguyên mà người dùng thể hiện rõ ràng yêu cầu.
Xoá thư viện không dùng đến
Khi phát triển trên phạm vi rộng, một ứng dụng có thể đảm nhận một số lượng đáng ngạc nhiên các phần phụ thuộc, đặc biệt là một trong các 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 ứng dụng không bao giờ chạy.
- Phần phụ thuộc bắc cầu: Các thư viện mà ứng dụng của bạn được nhập dựa trên đó các thư viện khác nhau.
Android Studio có một số công cụ hữu ích để xác định mọi lỗi không liên quan các phần phụ thuộc trong dự án của ứng dụng:
- Thư viện bên ngoài
Khung hiển thị Project (Dự án) của Android Studio có 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ả thư viện gốc mã và tất cả phần phụ thuộc bắc cầu. Trong chế độ xem này, hãy tìm mục không sử dụng hoặc mô phỏng 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 nhiều bản dựng, bao gồm cả bản dựng ứng dụng tức thì.
Sau khi bạn 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 của bạn:
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 tệp phần phụ thuộc, hãy xem hướng dẫn của Gradle về Phần phụ thuộc Quản lý.
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 thêm quy mô, có thể bạn cần sử dụng giải pháp phân phối thành phần trên đám mây.