Việc nên làm và không nên làm của quảng cáo thích ứng

Ứng dụng thích ứng hỗ trợ màn hình ở mọi kích thước: toàn bộ màn hình thiết bị, có thể đổi kích thước cửa sổ ở chế độ nhiều cửa sổ, hướng dọc và ngang, được gập lại và màn hình đã mở của thiết bị có thể gập lại.

Danh sách ngắn gồm các chế độ cài đặt cấu hình và API cho phép bạn tạo bản dựng của chúng tôi. Tuy nhiên, một số API và chế độ cài đặt đã lỗi thời không tương thích với ứng dụng thích ứng và bạn nên tránh sử dụng.

Khả năng đổi kích thước

Ứng dụng thích ứng hỗ trợ khả năng đổi kích thước ứng dụng và chế độ nhiều cửa sổ.

Thuộc tính resizeableActivity của <activity> và Phần tử tệp kê khai <application> bật hoặc tắt chế độ nhiều cửa sổ trên Android 11 (API cấp 30) trở xuống. Trên Android 12 (API cấp 31) và màn hình lớn hơn, cao hơn hỗ trợ chế độ nhiều cửa sổ bất kể . Để biết thêm thông tin, hãy xem bài viết Hỗ trợ chế độ nhiều cửa sổ.

✓ Nên

Hỗ trợ ứng dụng của bạn cho người tham gia trong các tình huống nhiều cửa sổ, đa nhiệm tăng hiệu suất và sự hài lòng của người dùng.

Đặt resizeableActivity="true" nếu ứng dụng của bạn nhắm đến các cấp độ API thấp hơn 24; nếu không, hãy quên tính năng này đi—đó là true theo mặc định trên Android 7.0 (API cấp 24) trở lên.

➜ Không nên

Đừng đặt resizeableActivity="false" cho bất kỳ cấp độ API nào. Không loại trừ ứng dụng của bạn trong các trường hợp sử dụng có liên quan đến chế độ nhiều cửa sổ.

Hướng

Ứng dụng thích ứng hỗ trợ cả hướng dọc và ngang bất kể màn hình hoặc chế độ cửa sổ hiện tại.

Cài đặt tệp kê khai screenOrientation hạn chế hướng hoạt động.

✓ Nên

Loại bỏ chế độ cài đặt screenOrientation khỏi tệp kê khai ứng dụng.

Việc khoá hướng của các ứng dụng không ngăn việc thay đổi kích thước cửa sổ. Ứng dụng đổi kích thước khi chuyển sang chế độ nhiều cửa sổ, khi thiết bị được gập lại hoặc mở ra, hoặc khi cửa sổ dạng tự do được đổi kích thước. Ứng dụng của bạn phải hỗ trợ các thay đổi trong cửa sổ bất kể chế độ cài đặt thuộc tính screenOrientation là gì.

➜ Không nên

Đừng hạn chế hướng hoạt động. Ứng dụng khoá hướng có dạng hòm thư trên các thiết bị có màn hình lớn và kích thước cửa sổ không tương thích.

Khả năng người dùng tìm thấy ứng dụng dạng hòm thư giảm khả năng được phát hiện trên Google Play máy tính bảng, thiết bị có thể gập lại và thiết bị ChromeOS.

Tỷ lệ khung hình

Vì kích thước màn hình và cửa sổ thay đổi, nên tỷ lệ khung hình cũng thay đổi theo, từ chiều cao đến chiều cao hẹp, vuông, ngắn và rộng.

Chế độ cài đặt tệp kê khai minAspectRatiomaxAspectRatio hạn chế tỷ lệ khung hình của ứng dụng với các giá trị được cố định giá trị trong mã.

✓ Nên

Điều chỉnh ứng dụng của bạn cho phù hợp với màn hình bất kể kích thước tương đối.

Loại bỏ chế độ cài đặt minAspectRatiomaxAspectRatio khỏi ứng dụng tệp kê khai. Hoặc đảm bảo ứng dụng có thể đổi kích thước và tỷ lệ khung hình tự xử lý (xem phần Khả năng đổi kích thước).

➜ Không nên

Đừng cố kiểm soát kích thước tương đối của ứng dụng. Nếu ứng dụng của bạn chạy trên màn hình hoặc trong cửa sổ có tỷ lệ khung hình không tương thích với tỷ lệ khung hình của ứng dụng, ứng dụng của bạn ở dạng hòm thư.

Trên Android 14 (API cấp 34) trở lên, người dùng có thể ghi đè tỷ lệ khung hình của ứng dụng để mở rộng ứng dụng dạng hòm thư nhằm lấp đầy vùng hiển thị có sẵn. Xem phần Thiết bị chế độ tương thích.

Kích thước cửa sổ

Tối ưu hoá bố cục cho nhiều kích thước hiển thị là tiền đề chính của thiết kế thích ứng. Ứng dụng thích ứng tập trung vào kích thước cửa sổ ứng dụng thay vì thiết bị kích thước màn hình. Khi ứng dụng ở chế độ toàn màn hình, cửa sổ ứng dụng sẽ là màn hình thiết bị.

Các lớp kích thước cửa sổ giúp xác định và phân loại một cách có hệ thống kích thước của cửa sổ ứng dụng. Điều chỉnh ứng dụng bằng cách thay đổi bố cục dưới dạng cửa sổ các thay đổi về kích thước của ứng dụng.

✓ Nên

Đánh giá kích thước cửa sổ ứng dụng dựa trên các lớp kích thước cửa sổ.

Để xác định lớp kích thước cửa sổ, hãy sử dụng currentWindowAdaptiveInfo() hàm cấp cao nhất của thư viện Thích ứng Compose Material 3. Để biết thêm hãy xem phần Xây dựng ứng dụng thích ứng.

➜ Không nên

Đừng bỏ qua tiện ích của các định nghĩa lớp kích thước cửa sổ và các API tích hợp sẵn. Đừng sử dụng các API không dùng nữa để tính toán kích thước cửa sổ.

API không dùng nữa

API nền tảng cũ không đo lường chính xác cửa sổ ứng dụng; một số đo lường màn hình thiết bị, một số không bao gồm trang trí hệ thống.

✓ Nên

Sử dụng WindowManager#getCurrentWindowMetrics()WindowMetrics#getBounds() để lấy kích thước của cửa sổ ứng dụng. Sử dụng WindowMetrics#getDensity() để lấy mật độ hiển thị.

➜ Không nên

Không sử dụng các API Display không dùng nữa sau đây để xác định kích thước cửa sổ:

  • getSize(): Không dùng nữa trong Android 11 (API cấp 30)
  • getMetrics(): Không dùng nữa trong Android 11 (API cấp 30)
  • getRealSize(): Không dùng nữa trong Android 12 (API cấp 31)
  • getRealMetrics(): Không dùng nữa trong Android 12 (API cấp 31)

Compose

Jetpack Compose được thiết kế để phát triển giao diện người dùng thích ứng. Không có XML, không có bố cục tệp, không có bộ hạn định tài nguyên. Chỉ các thành phần kết hợp không có trạng thái, dựa trên Kotlin như Column, RowBox mô tả giao diện người dùng cũng như các đối tượng sửa đổi chẳng hạn như offset, paddingsize thêm hành vi vào giao diện người dùng phần tử.

✓ Nên

Tạo bản dựng bằng Compose. Luôn cập nhật các tính năng và bản phát hành mới nhất.

➜ Không nên

Đừng dựa vào công nghệ lỗi thời. Đừng để ứng dụng của bạn trở nên lỗi thời.

Thư viện thích ứng Compose Material 3

Thư viện thích ứng Compose Material 3 cung cấp các thành phần và API hỗ trợ phát triển ứng dụng thích ứng.

✓ Nên

Hãy sử dụng các API sau để giúp ứng dụng của bạn trở nên thích ứng:

  • NavigationSuiteScaffold: Chuyển đổi giữa thanh điều hướng và dải điều hướng tuỳ thuộc vào lớp kích thước cửa sổ ứng dụng.
  • ListDetailPaneScaffold: Triển khai bố cục chuẩn hoá danh sách-chi tiết. Điều chỉnh bố cục theo kích thước cửa sổ ứng dụng.
  • SupportingPaneScaffold: Triển khai ngăn hỗ trợ chuẩn hoá của bạn.
➜ Không nên

Đừng tự mình sáng chế lại. Đừng bỏ lỡ cơ hội tăng năng suất dành cho nhà phát triển do tất cả các thư viện Jetpack Compose cung cấp.

Bố cục

Người dùng mong muốn ứng dụng sẽ tận dụng tối đa không gian hiển thị có sẵn bằng các thành phần bổ sung hoặc chế độ kiểm soát nâng cao.

Ứng dụng thích ứng tối ưu hoá bố cục dựa trên những thay đổi trên màn hình, cụ thể là những thay đổi về kích thước của cửa sổ ứng dụng hoặc thay đổi về tư thế của thiết bị.

✓ Nên

Thay đổi các thành phần giao diện người dùng khi kích thước cửa sổ thay đổi để tận dụng các thành phần có sẵn không gian hiển thị. Ví dụ: hoán đổi thanh điều hướng ở dưới cùng được dùng trên màn hình thu gọn kích thước cửa sổ cho dải điều hướng dọc trên cửa sổ trung bình và cửa sổ mở rộng. Đặt lại vị trí hộp thoại để có thể tiếp cận trên tất cả màn hình.

Sắp xếp nội dung thành các ngăn để hỗ trợ bố cục nhiều ngăn như list-detail và ngăn bổ trợ để hiển thị nội dung động.

✓ Nên: Các hoạt động Danh sách và Chi tiết được sắp xếp theo bố cục hai ngăn.
➜ Không nên

Nếu bạn không sử dụng ngăn nội dung, đừng chỉ kéo giãn các phần tử trên giao diện người dùng để lấp đầy không gian hiển thị có sẵn. Các dòng văn bản dài khó đọc. Giãn các nút trông có thiết kế không đẹp. Nếu sử dụng Modifier.fillMaxWidth, bạn không nên giả định đó là hành vi phù hợp cho mọi kích thước hiển thị.

Hành động không nên thực hiện: Bố cục đã được kéo dài để lấp đầy cửa sổ mở rộng.

Thiết bị đầu vào

Người dùng không chỉ sử dụng màn hình cảm ứng để tương tác với ứng dụng.

Ứng dụng thích ứng hỗ trợ bàn phím, chuột và bút cảm ứng bên ngoài để mang đến trải nghiệm nâng cao trải nghiệm người dùng và giúp người dùng làm việc hiệu quả hơn dựa trên các kiểu dáng tất cả các loại.

✓ Nên

Tận dụng chức năng tích hợp sẵn của khung Android để điều hướng bằng phím tab trên bàn phím và nhấp chuột, chọn và cuộn bằng chuột hoặc bàn di chuột. Đăng phím tắt của ứng dụng trong Trình trợ giúp phím tắt.

Sử dụng thư viện Material 3 Jetpack để cho phép người dùng ghi vào mọi Thành phần TextField dùng bút cảm ứng.

➜ Không nên

Đừng làm cho các phương thức nhập thay thế trở nên bất khả thi. Không giới thiệu khả năng hỗ trợ tiếp cận vấn đề.

Tóm tắt

  • Tạo ứng dụng bằng Compose và Thư viện thích ứng Material 3
  • Bố cục cơ sở dựa trên các lớp kích thước cửa sổ
  • Tạo bố cục nhiều ngăn
  • Làm cho ứng dụng có thể thay đổi kích thước
  • Không bao giờ khoá hướng hoạt động
  • Không hạn chế tỷ lệ khung hình
  • Hỗ trợ phương thức nhập không phải thao tác chạm
  • Tránh các API không dùng nữa

✓ Thực hiện những gì người dùng của bạn mong đợi: tối ưu hóa ứng dụng của bạn cho nhiều loại thiết bị mà mọi người sử dụng mỗi ngày.

#### Đừng chờ đợi. Hãy bắt đầu ngay hôm nay!