Chức năng hoạt động tốt dưới dạng mô-đun theo yêu cầu là những chức năng mà phần lớn người dùng không cần khi cài đặt. Sau đây là một số ví dụ về các tính năng ứng dụng phù hợp với mô-đun theo yêu cầu:
- Chỉnh sửa và tải video lên trên ứng dụng mà phần lớn người dùng sử dụng chỉ để xem video
- Thêm công thức trong ứng dụng mà hầu hết người dùng sử dụng chỉ để duyệt qua và làm theo công thức của người dùng khác
- Chức năng trợ giúp và hỗ trợ khi hầu hết người dùng không cần trợ giúp hoặc không cần trợ giúp trong ứng dụng
- Các thư viện lớn cho chức năng ít sử dụng như cung cấp tính năng chụp và báo cáo chi tiết về lỗi
- Khả năng thanh toán hoặc hoàn tất thanh toán
- Trải nghiệm nội dung nghe nhìn có độ phân giải rất cao hoặc các tính năng thực tế ảo/thực tế tăng cường
Đối với trường hợp thông thường mà các mô-đun này có kích thước tương đối nhỏ (dưới 10 MB) và không có mạng hoặc sự cố nào khác, người dùng có thể tải xuống và sử dụng mô-đun theo yêu cầu một cách rất nhanh chóng. Tức là, trải nghiệm người dùng này thường sẽ không khác gì so với khi mô-đun được tải lúc cài đặt ứng dụng.
Bài viết này cung cấp các phương pháp hay nhất giúp bạn thực hiện những việc sau:
- Đảm bảo người dùng biết và cảm thấy họ có thể kiểm soát được số lượt tải xuống mô-đun có kích thước tương đối lớn không tải được ngay hoặc các lỗi cài đặt mô-đun.
- Tối ưu hoá hơn nữa trải nghiệm phân phối mô-đun, đặc biệt trong các trường hợp mà bạn có thể dự đoán rằng người dùng sẽ cần một mô-đun cụ thể nào đó.
Sau khi bạn đọc hết hướng dẫn này, hãy xem qua các ví dụ thực tế của các phương pháp hay nhất sau đây bằng cách thử qua ứng dụng mẫu Play Core API.
Thông báo cho người dùng
Bạn nên thông báo cho người dùng khi tính năng chưa sẵn sàng để sử dụng. Nếu người dùng quyết định tải tính năng xuống qua Google Play, hãy cho thấy tiến trình tải xuống.
Bạn có thể theo dõi trạng thái yêu cầu để hiển thị tiến trình tải xuống và trạng thái cài đặt. Tuy nhiên, loại giao diện người dùng bạn muốn hiển thị có thể phụ thuộc vào kích thước của tệp tải xuống:
- Đối với các mô-đun có kích thước nhỏ hơn (~10 MB trở xuống) có thể được cài đặt rất nhanh, hãy cân nhắc sử dụng các chỉ báo như vòng quay hoặc thông báo ngắn gọn "đang tải xuống nội dung".
- Đối với các mô-đun có kích thước lớn hơn có thể mất vài giây hoặc lâu hơn để tải xuống và cài đặt, hãy cân nhắc hiển thị thanh tiến trình tải xuống và cài đặt, chẳng hạn như thanh tiến trình như trong hình 1.
Hình 1. Hiển thị thông báo và thanh tiến trình khi tải xuống và cài đặt tính năng theo yêu cầu
Thông báo rõ ràng về độ trễ và cài đặt không thành công
Nếu quá trình tải xuống không thành công hoặc tiến trình chậm hơn dự kiến, thông báo rõ ràng và minh bạch cho người dùng về những việc đang xảy ra và những việc họ có thể làm (nếu có) như trong hình 2 và 3. Ví dụ như nếu bạn theo dõi trạng thái của yêu cầu tải xuống và ứng dụng gặp lỗi API_NOT_AVAILABLE
, hãy thông báo cho người dùng rằng thiết bị của họ không hỗ trợ tải xuống theo yêu cầu.
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=9&hl=vi)
Hình 2. Thông báo cho người dùng biết lý do vì sao hiện không thể cài đặt tính năng
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=9&hl=vi)
Hình 3. Giải thích cho người dùng lý do vì sao có thể mất nhiều thời gian hơn dự kiến để tải xuống tính năng
Cho thấy giá trị trước khi yêu cầu cấp quyền tải xuống các tệp có kích thước lớn
Nếu mô-đun theo yêu cầu có kích thước lớn (> 150MB), Google Play sẽ yêu cầu người dùng phải đồng ý trước khi tải xuống.
Trước khi yêu cầu tải xuống mô-đun, hãy giải thích giá trị của mô-đun cho người dùng. Hãy giúp họ hiểu lý do tại sao bạn đưa ra yêu cầu này như cách bạn vẫn thường làm khi yêu cầu quyền truy cập ứng dụng. Việc trao đổi cởi mở với người dùng giúp tăng khả năng họ chấp nhận tải xuống.
Ví dụ: giả sử bạn đang xây dựng một ứng dụng thương mại điện tử và một trong những tính năng của ứng dụng cho phép người dùng đặt đồ nội thất ngay trong căn hộ của họ thông qua Thực tế tăng cường (AR). Bạn có thể đưa ra thông báo như "Bạn có muốn xem ghế sofa mới trông ra sao trong phòng khách không? Cài đặt công cụ xem thực tế tăng cường ngay."
Thực hiện tải xuống và cài đặt ở chế độ nền
Quá trình tải xuống và cài đặt mô-đun phải luôn diễn ra ở chế độ nền. Tức là trong lúc người dùng đợi một tính năng khác sẵn sàng, họ vẫn có thể tiếp tục sử dụng các phần khác của ứng dụng. Khi tính năng đó sẵn sàng để sử dụng, bạn nên thông báo cho phép người dùng chuyển sang sử dụng tính năng đó một cách tuỳ thích.
Như hình 5, người dùng tiếp tục sử dụng ứng dụng và nhận được thông báo khi quá trình cài đặt tính năng theo yêu cầu hoàn tất.
Hình 5. Thay vì thay đổi đột ngột ngữ cảnh của người dùng khi quá trình cài đặt mô-đun hoàn tất, hãy thông báo cho họ rằng tính năng được yêu cầu đã sẵn sàng sử dụng.
Khi mô-đun đã sẵn sàng để sử dụng, thông báo cho người dùng và cho họ lựa chọn có khởi chạy tính năng này hay không. Cách làm này giúp người dùng hiểu hơn về những gì họ có thể làm và cho họ quyền kiểm soát trải nghiệm của chính bản thân.
Trong một số trường hợp, bạn có thể chạy tính năng ngay khi nó sẵn sàng. Tuy nhiên, vì hành vi này có thể làm gián đoạn trải nghiệm người dùng, nên hãy cân nhắc kỹ liệu người dùng có mong chờ điều này hay liệu nó có phù hợp hay không.
Giải phóng bộ nhớ thiết bị khi không cần mô-đun
Một khả năng hữu ích của tất cả các mô-đun tính năng là bạn có thể gỡ cài đặt từng mô-đun tính năng. Nếu một mô-đun tính năng không còn được sử dụng, bạn có thể giảm kích thước ứng dụng trên thiết bị của người dùng bằng cách yêu cầu Google Play gỡ cài đặt mô-đun đó.
Ví dụ như ứng dụng của bạn có thể có một quy trình giới thiệu hấp dẫn và có thể chứa nội dung đa phương tiện phong phú. Sau khi người dùng hoàn tất quy trình giới thiệu hoặc sau khi người dùng hoạt động trong một khoảng thời gian nhất định, bạn có thể sử dụng API của thư viện Play Feature Delivery để yêu cầu Google Play chỉ gỡ cài đặt thành phần đó trong ứng dụng.
Lưu ý rằng sau này bạn cũng có thể gỡ cài đặt những mô-đun mà bạn đưa vào phần cài đặt ứng dụng ban đầu. Ví dụ như một mô-đun đào tạo người dùng mới về cách sử dụng ứng dụng có giá trị khi họ sử dụng ứng dụng lần đầu tiên. Tuy nhiên, để giảm kích thước ứng dụng, bạn có thể gỡ cài đặt mô-đun đó sau khi người dùng hoàn tất đào tạo.
Mẹo nâng cao
Thông thường, bạn cần phải xử lý các tình huống mà người dùng ra tín hiệu rõ ràng cho ý định sử dụng chức năng của các mô-đun tính năng theo yêu cầu.
Tuy nhiên, bạn nên dự đoán thời điểm mà người dùng có thể sẽ tương tác với một tính năng trước khi họ biểu lộ ý muốn sử dụng tính năng đó. Ví dụ như ứng dụng cho phép tải xuống và tạo công thức nấu ăn, các nguyên tắc sau hướng dẫn cách tối ưu hoá trải nghiệm phân phối mô-đun bằng cách dự đoán nhu cầu của người dùng.
Dự đoán nhu cầu sử dụng tính năng của người dùng trong phiên hoạt động hiện tại. Cân nhắc xem người dùng chỉ cần tạo tài khoản trong ứng dụng cung cấp công thức nấu ăn nếu họ muốn tạo và chia sẻ công thức nấu ăn của riêng mình với cộng đồng. Bạn có thể sử dụng quá trình tạo tài khoản làm tín hiệu cho thấy người dùng có thể muốn thêm công thức nấu ăn của riêng mình để bắt đầu tải xuống mô-đun tính năng trước khi người dùng nhấn vào "thêm công thức". Bạn có thể áp dụng phương pháp này cho các hành trình khác của người dùng trong ứng dụng để giúp quá trình tải xuống tính năng liền mạch hơn.
Dự đoán nhu cầu sử dụng tính năng của người dùng trong một phiên sắp diễn ra. Nếu không cần ứng dụng ngay lập tức tải xuống và cài đặt một mô-đun theo yêu cầu, bạn có thể hoãn cài đặt khi ứng dụng đang chạy nền. Sau đó, Google Play sẽ xử lý việc tải xuống và cài đặt cho bạn. Ví dụ như giả sử bạn muốn phát hành công thức nấu ăn theo mùa mới trên ứng dụng nấu ăn mà không được ưu tiên cao trong phiên hiện nay của người dùng. Bạn có thể yêu cầu Play tải xuống và cài đặt các công thức này khi ứng dụng chạy nền. Điều này đặc biệt hữu ích đối với các tính năng có kích thước lớn (>10 MB) không cần thiết ngay lập tức, nhưng có thể sẽ cần thiết trong tương lai.
Dự đoán nhu cầu sử dụng tính năng của người dùng trước khi cài đặt ứng dụng. Bạn có thể thêm khả năng hỗ trợ phân phối có điều kiện để cung cấp tính năng tại thời điểm cài đặt dựa trên quốc gia của người dùng, phần cứng của thiết bị và cấp API. Ví dụ: bạn có thể đưa các công thức nấu ăn bằng thịt lợn trong các mô-đun có điều kiện và loại bỏ mô-đun đó khi cài đặt ứng dụng ở các khu vực hạn chế ăn các món thịt lợn.