Đang thực hiện
Tên đăng nhập
Mật khẩu
 
Hoặc đăng nhập bằng:
Nhập lại mật khẩu

Trang chủ Tin tổng hợp
Tin tổng hợp

Khai báo hỗ trợ màn hình hạn chế trong Android

Cập nhật: 13/06/2019 Lượt xem: 40
Mặc dù chúng tôi thực sự khuyên bạn nên thiết kế ứng dụng của mình để ứng dụng có thể thích ứng với mọi kích thước và mật độ màn hình bạn vẫn có thể không muốn ứng dụng của mình hỗ trợ một số cấu hình màn hình nhất định. 
Mặc dù chúng tôi thực sự khuyên bạn nên thiết kế ứng dụng của mình để ứng dụng có thể thích ứng với mọi kích thước và mật độ màn hình bạn vẫn có thể không muốn ứng dụng của mình hỗ trợ một số cấu hình màn hình nhất định. 

Nếu vậy bạn có thể giới hạn số lượng Android có thể thay đổi kích thước ứng dụng của mình hoặc thậm chí hạn chế thiết bị nào có thể cài đặt ứng dụng đó như được mô tả trên trang này.

 
khai báo hỗ trợ màn hình hạn chế trong Android
Khai báo hỗ trợ màn hình hạn chế trong Android​
 

Trước khi bạn giới hạn ứng dụng của mình ở một số màn hình nhất định bạn nên hiểu tất cả các kỹ thuật để hỗ trợ nhiều màn hình và triển khai chúng ở khả năng tốt nhất.
 

Xuất bản APK riêng cho các màn hình khác nhau

 

Trong trường hợp không hợp lý khi bạn xây dựng một APK duy nhất hỗ trợ tất cả các cấu hình màn hình Google Play cho phép bạn xuất bản nhiều APK cho cùng một danh sách ứng dụng. 

Bạn có thể sử dụng tính năng này để cung cấp các APK riêng biệt mỗi APK hỗ trợ một bộ cấu hình màn hình khác nhau (như được khai báo trong tệp kê khai) mà không cần tạo danh sách riêng trong Cửa hàng Google Play.


Ví dụ: nếu bạn muốn xuất bản cả phiên bản điện thoại cầm tay và phiên bản máy tính bảng của ứng dụng, nhưng bạn không thể làm cho một APK hoạt động cho cả hai kích thước màn hình bạn có thể xuất bản hai APK cho cùng một danh sách ứng dụng. 


>> Hiện nay các Doanh nghiệp đang rất cần nhân sự làm về Android, chính vì thế NIIT - ICT Hà Nội đã kết hợp với Doanh nghiệp để mở ra Khóa học lập trình Android này. Nhanh tay đăng ký nhận ngay học bổng <<


Tùy thuộc vào cấu hình màn hình của từng thiết bị Google Play sẽ tải xuống APK phù hợp với kích thước màn hình của từng thiết bị.


Để biết thêm thông tin, hãy xem Tạo nhiều APK cho các kích thước màn hình khác nhau .
 

Khai báo tỷ lệ khung hình tối đa


Để hỗ trợ càng nhiều thiết bị càng tốt một ứng dụng nên tự động điều chỉnh bố cục của nó để đảm bảo nội dung và điều khiển của nó được hiển thị và được tổ chức tốt.

Hầu hết các ứng dụng cũng có thể thay đổi kích thước để người dùng có thể chạy chúng ở chế độ đa cửa sổ. Người dùng có thể khởi chạy một hoạt động có thể thay đổi kích thước ở chế độ chia đôi màn hình và dạng tự do và thay đổi kích thước của hoạt động bằng cách kéo các cạnh hoặc góc của nó.

Chế độ nhiều cửa sổ khả dụng cho tất cả các ứng dụng chạy trong Android 7.0 (API cấp 24) trở lên và các ứng dụng có thể thay đổi kích thước theo mặc định. Bạn cũng có thể đặt rõ ràng thuộc tính android:resizeableActivity truecho toàn bộ ứng dụng hoặc các hoạt động cụ thể.

Nếu bạn không muốn ứng dụng hoặc hoạt động của mình chạy ở chế độ nhiều cửa sổ, hãy đặt android:resizeableActivity false. Trong trường hợp này, ứng dụng luôn xuất hiện trên toàn màn hình. Hệ thống kiểm soát cách thực hiện, tùy thuộc vào cấp độ HĐH Android:


Nếu ứng dụng của bạn nhắm mục tiêu Android 8.0 (API cấp 26) trở lên, ứng dụng sẽ lấp đầy toàn bộ màn hình, theo bố cục của nó.

Nếu ứng dụng của bạn nhắm mục tiêu Android 7.1 (API cấp 25) trở xuống, hệ thống sẽ giới hạn kích thước giao diện của ứng dụng ở một cửa sổ với tỷ lệ khung hình là 16: 9 (khoảng 1,86). 

Nếu ứng dụng chạy trên thiết bị có tỷ lệ khung hình màn hình lớn hơn, ứng dụng sẽ xuất hiện trong hộp thư 16: 9 khiến một phần màn hình không được sử dụng.


Nếu bố cục ứng dụng của bạn không thể thích ứng với tỷ lệ khung hình lớn tùy ý, bạn có thể thực thi rõ ràng hộp thư trên tất cả các cấp hệ điều hành Android bằng cách đặt tỷ lệ khung hình tối đa. Chúng tôi khuyên bạn nên tỷ lệ 2,4 (12: 5). 

Ứng dụng của bạn sẽ được đóng hộp thư khi nó chạy trên thiết bị có tỷ lệ khung hình lớn hơn tỷ lệ bạn chỉ định. Giá trị bạn chọn phải có ít nhất là 1.0 cho các thiết bị Wear OS và ít nhất là 1.33 cho các thiết bị khác. 

Nếu bạn chỉ định tỷ lệ nhỏ hơn các giới hạn này, hệ thống sẽ ràng buộc tỷ lệ khung hình của ứng dụng của bạn tùy thuộc vào cấp độ HĐH như được mô tả ở trên.


Để đặt tỷ lệ khung hình tối đa cho Android 8.0 (API cấp 26) trở lên, hãy khai báo tỷ lệ tối đa bằng cách sử dụngandroid:MaxAspectRatio trong thẻ của bạn . Ví dụ sau đây cho thấy cách khai báo tỷ lệ khung hình tối đa là 2,4:


ví dụ khai báo tỉ lệ khung tối đa

Đối với Android 7.1 trở xuống, hãy thêm một  yếu tố có tên android.max_aspect trong thành phần, như sau: 

đây là ví dụ đối với Android 7.1 trở xuống

Nếu bạn đặt tỷ lệ khung hình tối đa, đừng quên đặt android:resizeableActivity false. Mặt khác, tỷ lệ khung hình tối đa không có hiệu lực.

 

Khai báo kích thước màn hình tối đa
 

Ngay cả khi không tối ưu hóa hoàn toàn ứng dụng của bạn để hỗ trợ các kích thước màn hình khác nhau , Android vẫn có thể kéo dài hầu hết các ứng dụng để phù hợp với màn hình lớn hơn. Vì vậy, hầu như không bao giờ cần phải khai báo kích thước màn hình tối đa.

Và nếu bạn quyết định tạo nhiều APK cho các kích thước màn hình khác nhau , thì không cần giới hạn APK chỉ ở màn hình nhỏ, vì APK của bạn được tối ưu hóa cho màn hình lớn nên có kích thước lớn hơn versionCode, vì vậy Google Play luôn cung cấp APK đó cho các thiết bị có màn hình lớn.

Tuy nhiên, nếu bạn vẫn không hài lòng với cách Android thay đổi kích thước ứng dụng của bạn cho màn hình lớn, bạn có thể vô hiệu hóa thay đổi kích thước vượt quá độ rộng nhất định bằng cách chỉ định largestWidthLimitDp thuộc tính trong  thẻ kê khai. 

Sau đó, thay vì thay đổi kích thước bố cục của bạn, Android cho phép chế độ tương thích màn hình , vẽ bố cục của bạn như trên kích thước lớn nhất mà ứng dụng của bạn hỗ trợ, sau đó mở rộng tất cả các pixel để lấp đầy màn hình.


Hạn chế ứng dụng của bạn chỉ dành cho máy tính bảng hoặc TV

 

Bạn có thể ngăn các thiết bị cầm tay tải xuống ứng dụng của mình bằng cách sử dụng  phần tử tệp kê khai.
 

Ví dụ: các tuyên bố sau đây chỉ rằng màn hình lớn và rộng mới nên cài đặt ứng dụng của bạn:

 

ví cụ của các tuyên bố chỉ màn hình lớn và rộng

Hạn chế ứng dụng của bạn chỉ với kích thước và mật độ cụ thể


Bạn có thể xác định kích thước và mật độ màn hình chính xác mà ứng dụng của bạn hỗ trợ bằng cách sử dụng phần tử tệp kê khai. 


Nhưng chúng tôi thực sự khuyên bạn nên tránh sử dụng điều này bởi vì bất kỳ sự kết hợp nào về kích thước và mật độ mà bạn không chỉ định đều được coi là cấu hình màn hình mà ứng dụng của bạn không tương thích. 

Vì vậy sử dụng yếu tố này giúp dễ dàng chặn ứng dụng của bạn khỏi nhiều thiết bị mà ứng dụng của bạn thực sự có thể hỗ trợ.


Phần  tử phải chứa một hoặc nhiều  phần tử. Mỗi thành  phần chỉ định cấu hình màn hình mà ứng dụng của bạn tương thích sử dụng cả thuộc tính android:screenSize và android:screenDensity thuộc tính. 

Mỗi thành  phần phải bao gồm cả hai thuộc tính để chỉ định một cấu hình màn hình riêng lẻ nếu thiếu một trong hai thuộc tính thì thành phần đó không hợp lệ (các dịch vụ bên ngoài như Google Play sẽ bỏ qua nó).

 

Đây là mục nhập tệp kê khai trông như thế nào nếu ứng dụng của bạn chỉ tương thích với kích thước màn hình nhỏ và bình thường (và một tập hợp con có mật độ màn hình):


ví dụ về mục nhập tệp kê khai

Mọi kết hợp kích thước và mật độ không được khai báo rõ ràng ở đây sẽ bị hạn chế cài đặt ứng dụng.

 

 

Tư vấn viên 1: Nguyễn Thu Huyền
Tư vấn viên 2: Thu Huyền
Tuyển sinh lập trình viên quốc tế - MMS new vision
Khóa học C&B Excel - Trần Văn Hải