Việc tiếp cận người dùng mới đồng nghĩa với việc hỗ trợ nhiều phiên bản nền tảng Android và thông số kỹ thuật của thiết bị hơn. Để cải thiện trải nghiệm người dùng, hãy tối ưu hoá cho các cấu hình RAM, kích thước và độ phân giải màn hình phổ biến.
Hỗ trợ nhiều kích thước màn hình
Ứng dụng của bạn có thể mang lại trải nghiệm người dùng tốt hơn cho hàng tỷ người dùng nếu hỗ trợ màn hình có nhiều kích thước và độ phân giải. Phần này mô tả một số cách bạn có thể thực hiện việc này.
Sử dụng pixel không phụ thuộc vào mật độ (dp)
- Việc xác định kích thước bố cục bằng pixel không hiệu quả vì mỗi màn hình có mật độ pixel riêng, nên cùng một số lượng pixel có thể tương ứng với các kích thước thực tế khác nhau trên các thiết bị khác nhau.
- Để khắc phục vấn đề này, Android hỗ trợ pixel không phụ thuộc vào mật độ (dp), tương ứng với kích thước thực của một pixel ở mật độ 160 số điểm trên mỗi inch (mật độ mdpi).
- Việc xác định bố cục bằng dp đảm bảo rằng kích thước thực tế của giao diện người dùng nhất quán bất kể thiết bị. Hãy xem hướng dẫn của Android về Hỗ trợ nhiều màn hình để biết các phương pháp hay nhất khi sử dụng pixel độc lập với mật độ.
Kiểm thử văn bản và đồ hoạ trên mật độ màn hình ldpi và mdpi
- Kiểm thử để đảm bảo văn bản và đồ hoạ của bạn hoạt động tốt trên màn hình có mật độ thấp và trung bình (ldpi và mdpi) vì đây là các mật độ phổ biến, đặc biệt là trên các thiết bị có chi phí thấp hơn. Hãy chú ý đến văn bản có thể không rõ ràng trên màn hình có mật độ thấp, nơi các chi tiết nhỏ không hiển thị.
- Các thiết bị có màn hình mật độ thấp thường có thông số kỹ thuật phần cứng thấp hơn. Để đảm bảo ứng dụng của bạn hoạt động hiệu quả trên các thiết bị này, hãy cân nhắc việc giảm hoặc loại bỏ các tải xử lý đồ hoạ nặng, chẳng hạn như ảnh động và hiệu ứng chuyển đổi.
- Để biết thêm thông tin về cách hỗ trợ nhiều mật độ, hãy xem khoá đào tạo Android về Hỗ trợ nhiều mật độ.
Kiểm thử bố cục trên màn hình có kích thước nhỏ và trung bình
- Kiểm thử trên các màn hình nhỏ hơn để đảm bảo bố cục của bạn ở dạng thu nhỏ. Khi kích thước màn hình giảm, hãy chọn lọc rất kỹ các phần tử trên giao diện người dùng có thể nhìn thấy, vì không gian cho các phần tử này bị hạn chế.
- Các nguyên tắc của Material Design mô tả các chỉ số và đường cơ sở để đảm bảo bố cục của bạn có thể điều chỉnh theo mật độ màn hình.
- Để biết thêm thông tin về cách hỗ trợ nhiều kích thước màn hình, hãy xem khoá đào tạo Android về Hỗ trợ nhiều kích thước màn hình.
Cung cấp khả năng tương thích ngược
Không phải tất cả người dùng của bạn đều có thể đang sử dụng các thiết bị chạy phiên bản mới nhất và ưu việt nhất của nền tảng Android. Sau đây là một số cách giúp bạn cải thiện khả năng tương thích ngược, giúp ứng dụng của bạn có thể tiếp cận nhiều người nhất có thể.
Thiết lập targetSdkVersion và minSdkVersion một cách phù hợp
-
Ứng dụng nên tạo và nhắm đến phiên bản Android mới nhất để đảm bảo ứng dụng cung cấp hành vi mới nhất trên nhiều loại thiết bị; điều này vẫn mang lại khả năng tương thích ngược cho các phiên bản cũ.
Sau đây là các phương pháp hay nhất để nhắm đến cấp độ API một cách phù hợp:
-
targetSdkVersionphải là phiên bản Android mới nhất. Việc nhắm đến phiên bản gần đây nhất đảm bảo rằng ứng dụng của bạn sẽ kế thừa các hành vi thời gian chạy mới hơn khi chạy các phiên bản Android mới hơn. Hãy nhớ kiểm thử ứng dụng của bạn trên các phiên bản Android mới hơn khi cập nhậttargetSdkVersionvì điều này có thể ảnh hưởng đến hành vi của ứng dụng. -
minSdkVersionĐặt phiên bản Android tối thiểu được hỗ trợ. Việc đặtminSdkVersioncũng khiến các công cụ tạo bản dựng Android báo cáo việc sử dụng không chính xác các API mới có thể không có trong các phiên bản cũ hơn của nền tảng. Nhờ đó, bạn sẽ tránh được việc vô tình làm gián đoạn khả năng tương thích ngược.
-
- Tham khảo trang tổng quan Android, Google Play Developer Console cho ứng dụng của bạn và nghiên cứu ngành ở các thị trường mục tiêu để đánh giá phiên bản Android cần nhắm đến, dựa trên người dùng mục tiêu.
Sử dụng Thư viện hỗ trợ Android
-
Đảm bảo ứng dụng của bạn mang lại trải nghiệm nhất quán trên các phiên bản hệ điều hành bằng cách sử dụng Thư viện hỗ trợ Android.
Thư viện này cung cấp các phiên bản tương thích ngược của API khung Android cũng như các tính năng chỉ có thông qua API thư viện, chẳng hạn như
AppCompatActivityvà Thư viện hỗ trợ Material Design. - Một số điểm nổi bật bao gồm:
- Thư viện hỗ trợ v4 và v7: Nhiều API khung cho các phiên bản Android cũ hơn, chẳng hạn như
ViewPager,ActionBar,RecyclerViewvàPalette. - Thư viện hỗ trợ Material Design: Các API hỗ trợ việc thêm các thành phần và mẫu Material Design vào ứng dụng của bạn.
- Thư viện hỗ trợ multidex: cung cấp dịch vụ hỗ trợ cho các ứng dụng lớn có hơn 65.000 phương thức. Điều này có thể xảy ra nếu ứng dụng của bạn đang sử dụng nhiều thư viện.
- Thư viện hỗ trợ v4 và v7: Nhiều API khung cho các phiên bản Android cũ hơn, chẳng hạn như
- Để biết thêm thông tin về các thư viện hỗ trợ hiện có, hãy xem phần Các tính năng của Thư viện hỗ trợ trên trang web dành cho nhà phát triển Android.
Sử dụng Dịch vụ Google Play
- Dịch vụ Google Play mang đến những API tốt nhất của Google, bất kể phiên bản nền tảng Android. Hãy cân nhắc sử dụng các tính năng của Dịch vụ Google Play để mang đến trải nghiệm mượt mà nhất của Google trên thiết bị Android.
- Dịch vụ Google Play cũng bao gồm các API hữu ích như
GcmNetworkManager, cung cấp phần lớn APIJobSchedulercủa Android 5.0 cho các phiên bản Android cũ. - Các bản cập nhật cho Dịch vụ Google Play được Cửa hàng Google Play phân phối tự động và các phiên bản mới của thư viện ứng dụng được phân phối thông qua Trình quản lý SDK Android.
Sử dụng bộ nhớ một cách hiệu quả
Bộ nhớ là một yếu tố thầm lặng nhưng quan trọng đối với trải nghiệm người dùng. Việc quản lý bộ nhớ hiệu quả có thể giúp ứng dụng của bạn ổn định và hoạt động hiệu quả hơn; trong một số trường hợp, việc sử dụng bộ nhớ hiệu quả có thể là yếu tố duy nhất giúp ứng dụng của bạn có thể sử dụng được. Sau đây là một số cách giúp ứng dụng của bạn sử dụng bộ nhớ một cách hợp lý.
Giảm mức sử dụng bộ nhớ trên các thiết bị giá rẻ
- Điều chỉnh mức sử dụng bộ nhớ một cách linh hoạt để đảm bảo khả năng tương thích trên các thiết bị có cấu hình RAM khác nhau.
- Các phương thức như
isLowRamDevice()vàgetMemoryClass()giúp xác định các hạn chế đối với bộ nhớ trong thời gian chạy. Bạn có thể dựa vào thông tin này để giảm mức sử dụng bộ nhớ. Ví dụ: bạn có thể sử dụng hình ảnh có độ phân giải thấp hơn trên các thiết bị có bộ nhớ thấp. - Để biết thêm thông tin về cách quản lý bộ nhớ của ứng dụng, hãy xem khoá đào tạo của Android về Quản lý bộ nhớ của ứng dụng.
Tránh các quy trình chạy trong thời gian dài
- Các quy trình chạy trong thời gian dài vẫn nằm trong bộ nhớ và có thể làm chậm thiết bị. Trong hầu hết các trường hợp, ứng dụng của bạn sẽ thức dậy cho một sự kiện nhất định, xử lý dữ liệu và tắt. Bạn nên sử dụng Giải pháp gửi thông báo qua đám mây của Firebase (FCM) và
GcmNetworkManagerđể tránh các dịch vụ chạy trong nền trong thời gian dài và giảm áp lực bộ nhớ trên thiết bị của người dùng.
Đo điểm chuẩn mức sử dụng bộ nhớ
Android Studio cung cấp các công cụ đo điểm chuẩn và phân tích bộ nhớ, cho phép bạn đo lường mức sử dụng bộ nhớ trong thời gian chạy. Việc đo điểm chuẩn mức sử dụng bộ nhớ của ứng dụng cho phép bạn theo dõi mức sử dụng bộ nhớ trên nhiều phiên bản của ứng dụng. Điều này có thể giúp phát hiện mức tăng bộ nhớ ngoài ý muốn. Sử dụng công cụ Trình phân tích bộ nhớ để làm những việc sau:
- Tìm hiểu xem các mẫu sự kiện thu thập rác (GC) không mong muốn có thể gây ra vấn đề về hiệu suất hay không.
- Xác định các loại đối tượng được phân bổ hoặc vẫn được phân bổ một cách không mong muốn hoặc không cần thiết.
- Xác định vị trí có thể xảy ra vấn đề trong mã của bạn.
Để biết thêm thông tin về việc đo điểm chuẩn mức sử dụng bộ nhớ, hãy xem bài viết Xem vùng nhớ khối xếp và mức phân bổ bằng Trình phân tích bộ nhớ.
Tối ưu hoá cho thiết bị chạy Android (phiên bản Go)
Android (phiên bản Go) là một trải nghiệm được tối ưu hoá cho các thiết bị cấp thấp có RAM ≤ 1 GB, bắt đầu từ Android Oreo (phiên bản Go). Để đảm bảo ứng dụng của bạn chạy tốt trên thiết bị Android (phiên bản Go), bạn nên cân nhắc các nguyên tắc sau:
- targetSdkVersion phải là phiên bản Android mới nhất. Các thiết bị Android (phiên bản Go) chỉ chạy Android Oreo (API 27 trở lên).
- Ứng dụng phải chạy mượt mà trên các thiết bị có RAM ≤ 1 GB. Hãy lưu ý đến các hoạt động tối ưu hoá bộ nhớ được liệt kê trong phần Sử dụng bộ nhớ hiệu quả ở trên và sử dụng Android vitals để xác định và khắc phục các hành vi xấu như kết xuất chậm và khung hình bị treo.
- Chế độ hình trong hình (PIP) có thể bị tắt trên một số thiết bị. Trước khi ứng dụng của bạn sử dụng chế độ PIP, hãy kiểm tra để đảm bảo rằng chế độ này có sẵn bằng cách gọi
hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE). - Kích thước ứng dụng trên thiết bị phải nhỏ hơn 40 MB.
- Kích thước cài đặt theo tỷ lệ (PSS) của mức sử dụng RAM của ứng dụng không được vượt quá 90 MB. Đối với trò chơi, PSS của mức sử dụng RAM của trò chơi không được vượt quá 150 MB. Để biết thêm thông tin về PSS, hãy xem hướng dẫn Điều tra mức sử dụng RAM.
- Thời gian khởi động ứng dụng phải tối thiểu và dưới 5 giây.
-
SYSTEM_ALERT_WINDOW(cho phép ứng dụng vẽ một cửa sổ lên trên các ứng dụng khác) có thể bị tắt trên các thiết bị Android Go có RAM thấp. Trước khi vẽ lên các ứng dụng khác, hãy kiểm tra xem ứng dụng của bạn có quyền uỷ quyền này hay không bằng cách gọi Settings.canDrawOverlays(). Nếu ứng dụng của bạn không thể nhận được quyền này, hãy xuống cấp nhẹ ứng dụng để người dùng có thể tiếp tục sử dụng ứng dụng của bạn, có thể là bằng cách tắt tính năng yêu cầu quyềnSYSTEM_ALERT_WINDOW.
Hầu hết nhà phát triển nên tối ưu hoá ứng dụng hiện có của mình (ứng dụng này sẽ có trên mọi thiết bị Android (phiên bản Go)), vì việc giúp ứng dụng chạy nhanh hơn và nhẹ hơn sẽ mang lại lợi ích cho toàn bộ đối tượng của bạn.
Bạn có thể sử dụng Tính năng nhiều tệp APK trên Play Console để phân phối một tệp APK cụ thể cho các thiết bị Android (phiên bản Go), nhưng bạn chỉ nên làm như vậy mà không làm ảnh hưởng đến trải nghiệm (ví dụ: bạn nên tránh xoá các tính năng).
Tệp APK nhắm đến các thiết bị Android (phiên bản Go) cần khai báo <uses-feature android:name="android.hardware.ram.low" android:required="true">, nhắm đến cấp độ API tối thiểu là 26 và có mã phiên bản cao hơn tệp APK không phải là phiên bản Go.
Liên quan
Tài nguyên khác
Để tìm hiểu thêm về cách hỗ trợ nhiều loại thiết bị, hãy xem tài nguyên sau: