Khi bạn tải một tệp APK lên, tệp này phải đáp ứng các yêu cầu về cấp độ API mục tiêu của Google Play.
Kể từ ngày 31 tháng 8 năm 2024:
- Để được gửi lên Google Play, các ứng dụng mới và bản cập nhật ứng dụng đều phải nhắm đến Android 14 (API cấp 34) trở lên; ngoại trừ ứng dụng chạy trên Wear OS và Android TV thì phải nhắm đến Android 13 (API cấp 33) trở lên.
- Các ứng dụng hiện có phải nhắm đến Android 13 (API cấp 33) trở lên để có thể tiếp tục cung cấp cho người dùng mới trên thiết bị chạy hệ điều hành Android cao hơn cấp độ API mục tiêu của ứng dụng. Các ứng dụng nhắm đến Android 12 (API cấp 31) trở xuống (Android 10 (API cấp 29) trở xuống đối với Wear OS và Android 11 (API cấp 30) trở xuống đối với Android TV) chỉ được cung cấp trên thiết bị chạy hệ điều hành Android bằng hoặc thấp hơn cấp độ API mục tiêu của ứng dụng.
Nếu cần thêm thời gian để cập nhật ứng dụng, bạn có thể yêu cầu gia hạn đến ngày 1 tháng 11 năm 2024. Sắp tới trong năm nay, bạn có thể truy cập biểu mẫu gia hạn cho ứng dụng của mình trên Play Console.
Những yêu cầu này có một số ngoại lệ sau đây:
- Ứng dụng riêng tư vĩnh viễn chỉ dành cho người dùng trong một tổ chức cụ thể và chỉ nhằm phân phối nội bộ.
- Ứng dụng nhắm đến Android Automotive OS hoặc được đóng gói bằng APK nhắm đến Android Automotive OS.
Tại sao nên nhắm mục tiêu đến các SDK mới hơn?
Mỗi phiên bản Android mới đều có các thay đổi nhằm cải thiện hiệu suất và bảo mật, đồng thời nâng cao trải nghiệm người dùng Android. Một số thay đổi này chỉ áp dụng cho những ứng dụng tuyên bố rõ ràng là có hỗ trợ thông qua thuộc tính tệp kê khai targetSdkVersion
của ứng dụng (còn được gọi là cấp độ API mục tiêu).
Việc định cấu hình ứng dụng để nhắm đến một cấp độ API mới giúp đảm bảo rằng người dùng có thể hưởng lợi từ những cải tiến này, trong khi ứng dụng của bạn vẫn có thể chạy trên các phiên bản Android cũ. Việc nhắm đến một cấp độ API mới cũng cho phép ứng dụng của bạn tận dụng các tính năng mới nhất của nền tảng để làm hài lòng người dùng. Hơn nữa, kể từ Android 10 (API cấp 29), người dùng sẽ thấy một cảnh báo khi khởi động ứng dụng lần đầu nếu ứng dụng đó nhắm đến Android 5.1 (API cấp 22) trở xuống.
Tài liệu này nêu bật những điểm quan trọng bạn cần phải biết khi cập nhật cấp độ API mục tiêu để đáp ứng yêu cầu của Google Play. Hãy xem hướng dẫn trong các phần sau, tuỳ thuộc vào phiên bản bạn đang di chuyển sang.
Di chuyển từ Android 12 trở lên (API cấp 31) sang phiên bản mới hơn
Để cập nhật ứng dụng nhắm đến một phiên bản Android mới hơn, hãy theo dõi danh sách các thay đổi về hành vi liên quan:
Di chuyển từ Android 11 (API cấp 30) sang Android 12 (API cấp 31)
Tính bảo mật và quyền truy cập
- Bluetooth: Bạn phải thay thế phần khai báo cho quyền
BLUETOOTH
vàBLUETOOTH_ADMIN
bằng quyềnBLUETOOTH_SCAN
,BLUETOOTH_ADVERTISE
hoặcBLUETOOTH_CONNECT
. Bạn không cần yêu cầu cấp quyền khi bắt đầu chạy đối vớiLOCATION
cho các hoạt động Bluetooth nữa. - Vị trí: Người dùng có thể yêu cầu các ứng dụng chỉ truy xuất thông tin vị trí ước chừng. Bạn phải yêu cầu quyền
ACCESS_COARSE_LOCATION
bất cứ khi nào bạn yêu cầuACCESS_FINE_LOCATION
.- Bộ lọc ý định: Nếu ứng dụng của bạn chứa hoạt động, dịch vụ hoặc broadcast receiver sử dụng bộ lọc ý định, bạn phải khai báo rõ ràng thuộc tính android:exported cho các thành phần này.
- Ngủ đông: Các ứng dụng có thể chuyển sang chế độ ngủ đông nếu không được sử dụng trong một khoảng thời gian. Ở chế độ ngủ đông, quyền khi bắt đầu chạy và bộ nhớ đệm của ứng dụng sẽ được đặt lại và bạn không thể chạy công việc hoặc cảnh báo. Bạn có thể kiểm tra trạng thái ngủ đông của ứng dụng.
- Khả năng thay đổi ý định đang chờ xử lý: Bạn phải chỉ định khả năng thay đổi của từng đối tượng PendingIntent mà ứng dụng của bạn tạo ra.
Trải nghiệm người dùng
- Thông báo tuỳ chỉnh: Thông báo có khung hiển thị nội dung tuỳ chỉnh sẽ không còn sử dụng khu vực thông báo đầy đủ; thay vào đó, hệ thống sẽ áp dụng một mẫu chuẩn. Mẫu này đảm bảo rằng thông báo tuỳ chỉnh có cách trang trí giống như các thông báo khác ở tất cả các trạng thái. Hành vi này gần giống với hành vi của
Notification.DecoratedCustomViewStyle
. - Các thay đổi đối với quy trình xác minh Đường liên kết trong ứng dụng Android: Khi sử dụng tính năng xác minh Đường liên kết trong ứng dụng Android, hãy đảm bảo rằng bộ lọc ý định của bạn bao gồm danh mục BROWSABLE và hỗ trợ lược đồ HTTPS.
Hiệu suất
Hạn chế chạy dịch vụ trên nền trước: Để nhắm đến Android 12 trở lên, ứng dụng của bạn không thể bắt đầu các dịch vụ trên nền trước trong khi chạy ở chế độ nền, ngoại trừ một vài trường hợp đặc biệt. Nếu một ứng dụng cố gắng bắt đầu một dịch vụ trên nền trước trong khi chạy ở chế độ nền, thì sẽ có ngoại lệ (ngoại trừ một vài trường hợp đặc biệt).
Cân nhắc sử dụng WorkManager để lên lịch và bắt đầu công việc ưu tiên trong khi ứng dụng của bạn chạy ở chế độ nền. Để hoàn tất các thao tác cần chính xác về thời gian mà người dùng yêu cầu, hãy bắt đầu các dịch vụ trên nền trước trong phạm vi chuông báo chính xác.
Hạn chế về thành phần phản hồi với thao tác nhấn vào thông báo (notification trampoline): Khi người dùng nhấn vào thông báo, một số ứng dụng sẽ phản hồi bằng cách chạy thành phần ứng dụng bắt đầu hoạt động mà người dùng nhìn thấy và tương tác. Thành phần ứng dụng này được gọi là thành phần phản hồi với thao tác nhấn vào thông báo.
Ứng dụng không được bắt đầu hoạt động từ các dịch vụ hoặc broadcast receiver dùng làm thành phần phản hồi với thao tác nhấn vào thông báo. Sau khi người dùng nhấn vào một thông báo hoặc nút hành động trong thông báo, ứng dụng của bạn sẽ không thể gọi
startActivity()
bên trong một dịch vụ hoặc broadcast receiver.
Xem toàn bộ các thay đổi ảnh hưởng đến ứng dụng nhắm đến Android 12 (API cấp 31).
Di chuyển từ phiên bản Android 11 trở xuống (API cấp 30)
Chọn phiên bản Android bạn sẽ di chuyển khỏi:
Di chuyển sang Android 5 (API cấp 21)
Xem trang Các thay đổi về hành vi tương ứng với từng bản phát hành sau đây để đảm bảo ứng dụng của bạn đã có các thay đổi được giới thiệu trong những bản phát hành này:
Tiếp tục bằng cách làm theo hướng dẫn ở phần tiếp theo.
Di chuyển sang Android 6 (API cấp 23)
Những điểm cần cân nhắc sau đây áp dụng cho các ứng dụng nhắm đến Android 6.0 và các phiên bản cao hơn của nền tảng này:
-
-
Các quyền nguy hiểm chỉ được cấp khi bắt đầu chạy. Luồng giao diện người dùng (UI flows) của bạn phải cung cấp các thành phần cho phép cấp những quyền này.
-
Bất cứ khi nào có thể, hãy đảm bảo rằng ứng dụng của bạn sẵn sàng xử lý sự từ chối đối với các yêu cầu cấp quyền. Ví dụ: nếu người dùng từ chối yêu cầu truy cập vào GPS của thiết bị, hãy đảm bảo ứng dụng của bạn có cách khác để tiếp tục.
-
Để có danh sách đầy đủ các thay đổi có trong Android 6.0 (API cấp 23), hãy xem trang Các thay đổi về hành vi cho phiên bản nền tảng đó.
Tiếp tục bằng cách làm theo hướng dẫn ở phần tiếp theo.
Di chuyển sang Android 7 (API cấp 24)
Những điểm cần cân nhắc sau đây áp dụng cho các ứng dụng nhắm đến Android 7.0 và các phiên bản cao hơn của nền tảng này:
-
Chế độ Nghỉ và Chế độ chờ ứng dụng
Nội dung thiết kế cho các hành vi được mô tả ở phần Tối ưu hoá cho chế độ Nghỉ và Chế độ chờ ứng dụng, bao gồm các thay đổi gia tăng có trong một số bản phát hành của nền tảng.
Khi thiết bị ở vào chế độ Nghỉ và Chế độ chờ ứng dụng, hệ thống sẽ hoạt động như sau:
- Hạn chế quyền truy cập mạng
- Tạm hoãn chuông báo, đồng bộ hoá và công việc.
- Hạn chế quét tìm GPS và Wi-Fi
- Hạn chế các tin nhắn gửi bằng Giải pháp gửi thông báo qua đám mây của Firebase có mức độ ưu tiên thông thường.
-
Các thay đổi về quyền
- Hệ thống hạn chế quyền truy cập vào các thư mục riêng tư của ứng dụng.
-
Việc hiển thị một URI
file://
bên ngoài ứng dụng của bạn sẽ kích hoạtFileUriExposedException
. Nếu bạn cần chia sẻ tệp ra bên ngoài ứng dụng, hãy triển khaiFileProvider
-
Hệ thống cấm việc liên kết với các thư viện không phải NDK.
Để có danh sách đầy đủ các thay đổi có trong Android 7.0 (API cấp 24), hãy xem trang Các thay đổi về hành vi cho phiên bản nền tảng đó.
Tiếp tục bằng cách làm theo hướng dẫn ở phần tiếp theo.
Di chuyển sang Android 8 (API cấp 26)
Những điểm cần cân nhắc sau đây áp dụng cho các ứng dụng nhắm đến Android 8.0 và các phiên bản cao hơn của nền tảng này:
- Giới hạn thực thi dưới nền
-
Hệ thống hạn chế dịch vụ đối với các ứng dụng không chạy ở nền trước.
-
startService()
hiện tại sẽ ném một trường hợp ngoại lệ khi ứng dụng gọi phương thức này trong lúcstartService()
bị cấm. -
Để bắt đầu các dịch vụ trên nền trước, ứng dụng phải dùng
startForeground()
vàstartForegroundService()
. - Xem xét kỹ các thay đổi được thực hiện cho API JobScheduler, như được nêu trên trang về Các thay đổi về hành vi của Android 8.0 (API cấp 26).
- Giải pháp gửi thông báo qua đám mây của Firebase yêu cầu phiên bản 10.2.1 trở lên đối với SDK Dịch vụ Google Play.
- Khi sử dụng Giải pháp gửi thông báo qua đám mây của Firebase, việc gửi tin nhắn phải tuân thủ giới hạn thực thi dưới nền. Nếu cần thực hiện công việc trong nền khi nhận được tin nhắn, chẳng hạn như thực hiện đồng bộ hoá dữ liệu nền, ứng dụng của bạn phải lên lịch công việc bằng cách sử dụng Firebase Job Dispatcher (Trình điều phối công việc Firebase) hoặc JobIntentService. Để biết thêm thông tin, hãy xem tài liệu về Giải pháp gửi thông báo qua đám mây của Firebase.
-
- Thông báo truyền phát ngầm
-
Các thông báo truyền phát ngầm bị hạn chế. Để biết thông tin về cách xử lý các sự kiện chạy dưới nền, hãy xem tài liệu về API
JobScheduler
.
-
Các thông báo truyền phát ngầm bị hạn chế. Để biết thông tin về cách xử lý các sự kiện chạy dưới nền, hãy xem tài liệu về API
- Giới hạn quyền truy cập thông tin vị trí ở chế độ nền
-
Các ứng dụng chạy ở chế độ nền chỉ có quyền truy cập giới hạn vào dữ liệu vị trí.
- Trên các thiết bị có dịch vụ của Google Play, hãy sử dụng trình cung cấp vị trí kết hợp để nhận các thông báo cập nhật vị trí định kỳ.
-
Các ứng dụng chạy ở chế độ nền chỉ có quyền truy cập giới hạn vào dữ liệu vị trí.
-
Hệ thống hạn chế dịch vụ đối với các ứng dụng không chạy ở nền trước.
- Kênh thông báo
- Bạn nên xác định các thuộc tính gián đoạn thông báo trên cơ sở từng kênh.
- Bạn phải chỉ định thông báo cho một kênh để thông báo xuất hiện.
-
Phiên bản này của nền tảng hỗ trợ
NotificationCompat.Builder
.
- Quyền riêng tư
- ANDROID_ID được giới hạn trên mỗi khoá ký ứng dụng.
Để có danh sách đầy đủ các thay đổi được giới thiệu trên Android 8.0 (API cấp 26), hãy xem trang Các thay đổi về hành vi cho phiên bản nền tảng đó.
Di chuyển từ Android 8 (API 26) sang Android 9 (API 28)
- Quản lý nguồn
- Nhóm chế độ chờ ứng dụng mang đến các hạn chế mới đối với hoạt động chạy trong nền dựa trên mức độ tương tác với ứng dụng, chẳng hạn như công việc bị tạm hoãn, chuông báo và hạn mức thông báo có mức độ ưu tiên cao
- Cải tiến trình tiết kiệm pin giúp tăng giới hạn cho ứng dụng ở chế độ chờ
-
Quyền của dịch vụ nền trước
- Cần yêu cầu quyền thông thường
FOREGROUND_SERVICE
(không phải quyền khi bắt đầu chạy)
- Cần yêu cầu quyền thông thường
-
Các thay đổi về quyền riêng tư
- Hạn chế truy cập cảm biến nền
- Hạn chế quyền truy cập vào nhật ký cuộc gọi, hiện đã có trong nhóm quyền
CALL_LOG
- Hạn chế quyền truy cập vào số điện thoại, yêu cầu quyền
READ_CALL_LOG
- Hạn chế quyền truy cập vào thông tin Wi-Fi
Để xem danh sách đầy đủ các thay đổi được giới thiệu trong Android 9.0 (API cấp 28), hãy xem phần thay đổi về hành vi.
Chuyển từ Android 9 (API cấp 28) sang Android 10 (API cấp 29)
-
Thông báo có cơ chế toàn màn hình
-
Cần yêu cầu quyền thông thường
USE_FULL_SCREEN_INTENT
(không phải quyền khi bắt đầu chạy).
-
Cần yêu cầu quyền thông thường
-
Hỗ trợ thiết bị có thể gập và thiết bị có màn hình lớn
-
Hiện tại, nhiều hoạt động có thể được đặt ở trạng thái "đã tiếp tục" cùng lúc, nhưng thực sự chỉ một hoạt động có trọng tâm.
-
Thay đổi này ảnh hưởng đến hành vi của
onResume()
và củaonPause()
. -
Bạn có thể phát hiện một khái niệm mới về vòng đời là "đã tiếp tục ở trên cùng" bằng cách đăng ký
onTopResumedActivityChanged()
.- Chỉ một hoạt động có thể ở vào trạng thái "đã tiếp tục ở trên cùng".
-
Thay đổi này ảnh hưởng đến hành vi của
-
Thời điểm
resizeableActivity
được đặt thànhfalse
, các ứng dụng có thể chỉ định thêm mộtminAspectRatio
, có chức năng tự động tạo hòm thư ở một tỷ lệ khung hình hẹp hơn.
-
Hiện tại, nhiều hoạt động có thể được đặt ở trạng thái "đã tiếp tục" cùng lúc, nhưng thực sự chỉ một hoạt động có trọng tâm.
-
Các thay đổi về quyền riêng tư
- Bộ nhớ có giới hạn
- Quyền truy cập vào bộ nhớ ngoài chỉ giới hạn ở một thư mục dành riêng cho ứng dụng và các loại nội dung nghe nhìn cụ thể mà ứng dụng tạo ra.
-
Hạn chế quyền truy cập vào vị trí khi ứng dụng chạy ở chế độ nền, yêu cầu quyền
ACCESS_BACKGROUND_LOCATION
. - Hạn chế quyền truy cập vào giá trị nhận dạng không thể đặt lại như IMEI và số sê-ri.
-
Hạn chế quyền truy cập vào thông tin về hoạt động thể chất, chẳng hạn như số bước của người dùng, yêu cầu quyền
ACTIVITY_RECOGNITION
. -
Hạn chế quyền truy cập vào một số API điện thoại, Bluetooth và Wi-Fi, yêu cầu quyền
ACCESS_FINE_LOCATION
. -
Hạn chế quyền truy cập vào phần cài đặt Wi-Fi
- Các ứng dụng không thể bật hoặc tắt Wi-Fi trực tiếp nữa và cần thực hiện việc này bằng các bảng điều khiển cài đặt.
-
Các hạn chế về việc bắt đầu một kết nối tới mạng Wi-Fi, yêu cầu sử dụng
WifiNetworkSpecifier
hoặcWifiNetworkSuggestion
.
- Bộ nhớ có giới hạn
Di chuyển từ Android 10 (API cấp 29) sang Android 11 (API cấp 30)
-
Quyền riêng tư
- Thực thi bộ nhớ có giới hạn: Ứng dụng nên sử dụng mô hình bộ nhớ có giới hạn mà các loại tệp dành riêng cho ứng dụng, tệp nội dung nghe nhìn và các loại tệp khác được lưu và truy cập thông qua các vị trí chuyên dụng.
- Tự động đặt lại quyền: Nếu người dùng không tương tác với ứng dụng trong vài tháng, thì hệ thống sẽ tự động đặt lại các quyền truy cập thông tin nhạy cảm của ứng dụng đó. Điều này sẽ không ảnh hưởng đến hầu hết các ứng dụng. Nếu ứng dụng của bạn chủ yếu hoạt động ở chế độ nền mà không có tương tác của người dùng, bạn có thể xem xét việc yêu cầu người dùng tắt tính năng tự động đặt lại.
- Quyền truy cập thông tin vị trí ở chế độ nền: Ứng dụng phải yêu cầu cấp quyền truy cập thông tin vị trí ở chế độ nền và chế độ nền trước một cách riêng biệt. Bạn chỉ có thể thực hiện việc cấp quyền truy cập thông tin vị trí ở chế độ nền trong phần cài đặt ứng dụng thay vì hộp thoại quyền khi bắt đầu chạy.
-
Chế độ hiển thị gói: Khi truy vấn một ứng dụng về danh sách các ứng dụng và dịch vụ đã cài đặt trên thiết bị, danh sách trả về sẽ được lọc.
- Nếu sử dụng các dịch vụ Chuyển văn bản sang lời nói hoặc Nhận dạng lời nói, bạn cần thêm các phần tử truy vấn cho dịch vụ vào tệp kê khai.
-
Bảo mật
- Các tệp `resource.arsc` được nén không còn được hỗ trợ
- Hiện bắt buộc sử dụng Lược đồ chữ ký APK phiên bản 2. Để đảm bảo khả năng tương thích ngược, các nhà phát triển cũng nên tiếp tục ký bằng Lược đồ chữ ký APK phiên bản 1.
- Hạn chế đối với giao diện không phải SDK. Bạn không nên sử dụng giao diện không phải SDK cho ứng dụng nhắm đến API cấp 30, vì một số giao diện không phải SDK này hiện đã bị chặn. Xem Các giao diện không phải SDK hiện đã bị chặn trên Android 11 để biết danh sách đầy đủ các giao diện không phải SDK bị chặn.
Để xem danh sách đầy đủ các thay đổi được giới thiệu trên Android 11 (API cấp 30), hãy xem trang Các thay đổi về hành vi.
Hãy tiếp tục cập nhật lên API 31 bằng cách làm theo các hướng dẫn trong phần trước.
Hiện đại hoá ứng dụng
Khi cập nhật cấp độ API mục tiêu cho ứng dụng, hãy cân nhắc việc áp dụng các tính năng gần đây của nền tảng để hiện đại hoá ứng dụng của bạn và làm hài lòng người dùng.
- Hãy sử dụng CameraX (đang trong giai đoạn thử nghiệm) để khai thác tối đa việc sử dụng máy ảnh.
- Sử dụng các thành phần Jetpack để giúp bạn thực hiện các phương pháp tối ưu nhất mà không phải viết các mã nguyên mẫu, đồng thời đơn giản hoá các tác vụ phức tạp để bạn có thể tập trung vào các mã mà bạn quan tâm.
- Sử dụng Kotlin để viết ứng dụng tốt hơn nhanh hơn và với ít mã hơn.
- Hãy đảm bảo bạn tuân thủ các phương pháp tối ưu và các yêu cầu về quyền riêng tư.
- Thêm tính năng hỗ trợ giao diện tối vào ứng dụng.
- Thêm tuỳ chọn hỗ trợ thao tác bằng cử chỉ vào các ứng dụng của bạn.
- Di chuyển ứng dụng từ dịch vụ Gửi thông báo qua đám mây của Google (GCM) sang Giải pháp gửi thông báo qua đám mây của Firebase phiên bản mới nhất.
- Tận dụng tính năng quản lý cửa sổ nâng cao.
- Hỗ trợ tỷ lệ khung hình lớn hơn (hơn 16:9) để tận dụng những tiến bộ gần đây về phần cứng. Hãy đảm bảo rằng ứng dụng của bạn đổi kích thước để lấp đầy không gian màn hình còn trống. Chỉ khai báo tỷ lệ khung hình tối đa khi không còn cách nào khác. Để biết thêm thông tin về tỷ lệ khung hình tối đa, hãy xem phần Khai báo hỗ trợ màn hình ở mức hạn chế.
- Thêm tính năng hỗ trợ nhiều cửa sổ để giúp ứng dụng tăng năng suất và quản lý nhiều màn hình.
- Nếu việc trải nghiệm ứng dụng thu nhỏ tuyệt vời có thể cải thiện trải nghiệm người dùng, hãy thêm tính năng hỗ trợ Hình trong hình.
- Tối ưu hoá cho các thiết bị có thiết kế vết cắt trên màn hình.
- Đừng giả định chiều cao của thanh trạng thái. Thay vào đó, hãy sử dụng
WindowInsets
vàView.OnApplyWindowInsetsListener
. Để tìm hiểu thêm, hãy xem video droidcon NYC 2017 để biết nội dung giải thích. - Đừng giả định rằng ứng dụng sẽ choán toàn bộ cửa sổ. Thay vào đó, hãy xác nhận vị trí của cửa sổ bằng cách sử dụng
View.getLocationInWindow()
, chứ không phải bằngView.getLocationOnScreen()
. * Khi xử lýMotionEvent
, hãy sử dụngMotionEvent.getX()
vàMotionEvent.getY()
, đừng sử dụngMotionEvent.getRawX()
vàMotionEvent.getRawY()
.
Kiểm tra và cập nhật SDK cũng như thư viện của bạn
Hãy đảm bảo rằng các phần phụ thuộc SDK bên thứ ba của bạn hỗ trợ API 31: Một số nhà cung cấp SDK phát hành nội dung này trong tệp kê khai của họ; số khác sẽ cần phải điều tra thêm. Nếu bạn sử dụng một SDK không hỗ trợ API 31, hãy ưu tiên làm việc với nhà cung cấp SDK để giải quyết vấn đề này.
Ngoài ra, xin lưu ý rằng targetSdkVersion
của ứng dụng hoặc trò chơi có thể hạn chế quyền truy cập vào thư viện nền tảng Android riêng tư; xem phần Các ứng dụng NDK liên kết với thư viện nền tảng để biết chi tiết.
Bạn cũng nên xác minh mọi hạn chế có thể tồn tại trong phiên bản Thư viện hỗ trợ Android mà bạn đang sử dụng. Như mọi khi, bạn phải đảm bảo tính tương thích giữa phiên bản chính của Thư viện hỗ trợ Android và compileSdkVersion
của ứng dụng.
Bạn nên chọn targetSdkVersion
nhỏ hơn hoặc bằng phiên bản chính của Thư viện hỗ trợ. Chúng tôi khuyến khích bạn cập nhật lên phiên bản Thư viện hỗ trợ tương thích gần đây để tận dụng các tính năng tương thích mới nhất và các bản sửa lỗi.
Kiểm thử ứng dụng
Sau khi cập nhật cấp độ API của ứng dụng và các tính năng phù hợp, bạn nên kiểm thử một số trường hợp sử dụng chính. Các đề xuất sau đây không mang tính toàn diện mà chỉ nhằm mục đích hướng dẫn quy trình kiểm thử của bạn. Bạn nên kiểm tra xem:
- Ứng dụng của bạn biên dịch thành API 29 mà không gặp phải lỗi hoặc cảnh báo.
Ứng dụng của bạn có chiến lược cho các trường hợp người dùng từ chối yêu cầu cấp quyền và nhắc người dùng cấp quyền. Cách làm như sau:
- Chuyển đến màn hình Thông tin ứng dụng của ứng dụng và vô hiệu hóa từng quyền.
- Mở ứng dụng và đảm bảo rằng không xảy ra sự cố.
- Thực hiện các thử nghiệm trường hợp sử dụng chính và đảm bảo rằng các quyền bắt buộc được nhắc lại.
Xử lý chế độ Nghỉ với kết quả dự kiến và không có lỗi.
- Sử dụng adb, đặt thiết bị thử nghiệm của bạn vào chế độ Nghỉ trong khi ứng dụng của bạn đang chạy.
- Kiểm thử bất kỳ trường hợp sử dụng nào kích hoạt thông báo qua Giải pháp gửi thông báo qua đám mây của Firebase.
- Thử nghiệm bất kỳ trường hợp sử dụng nào có dùng đến Báo thức hoặc Công việc.
- Loại bỏ bất kỳ phần phụ thuộc nào có trên các dịch vụ nền.
- Đặt ứng dụng của bạn ở Chế độ chờ ứng dụng
- Kiểm thử bất kỳ trường hợp sử dụng nào kích hoạt thông báo qua Giải pháp gửi thông báo qua đám mây của Firebase.
- Kiểm thử bất kỳ trường hợp sử dụng nào có dùng đến Chuông báo.
- Sử dụng adb, đặt thiết bị thử nghiệm của bạn vào chế độ Nghỉ trong khi ứng dụng của bạn đang chạy.
Xử lý ảnh / video mới đang được chụp hoặc quay
- Kiểm tra để đảm bảo ứng dụng của bạn xử lý các nội dung bị hạn chế
ACTION_NEW_PICTURE
vàACTION_NEW_VIDEO
truyền tin đúng cách (tức là được chuyển thành công việc của JobScheduler). - Đảm bảo rằng mọi trường hợp sử dụng quan trọng phụ thuộc vào những sự kiện này vẫn hoạt động.
- Kiểm tra để đảm bảo ứng dụng của bạn xử lý các nội dung bị hạn chế
Xử lý việc chia sẻ tệp với các ứng dụng khác – Kiểm thử mọi trường hợp sử dụng có chia sẻ dữ liệu tệp với bất kỳ ứng dụng nào khác (kể cả một ứng dụng khác của cùng nhà phát triển)
- Kiểm thử nội dung hiển thị trong ứng dụng khác và không gây ra sự cố.
Thông tin khác
Hãy Chọn nhận email trong Google Play Console để chúng tôi có thể gửi cho bạn các thông tin cập nhật và thông báo quan trọng từ Android và Google Play, bao gồm cả bản tin hằng tháng của chúng tôi về đối tác.