Tôi đang viết một ứng dụng Android được nhắm mục tiêu đến cấp API 15 nhưng tôi cũng muốn giữ sự tương thích ngược với các mức API cũ hơn (min-sdk 7).Có OK có nhiều phương pháp không được chấp nhận trong mã tương thích ngược không?
Tôi sẽ tiếp cận điều này bằng cách đặt điều kiện quyết định mã sẽ sử dụng theo cấp API hiện tại (như được hiển thị bên dưới). Tôi cho rằng đây là một cách tiếp cận tốt, tôi chỉ muốn hỏi liệu có quá nhiều phương pháp không được chấp nhận (như display.getWidth()
), bởi vì có khá nhiều thay đổi giữa API cấp 8 và 15. Và nếu có, nếu đó là cách sử dụng tốt trong số @SuppressWarning("deprecation")
trong trường hợp này? Bạn có thể sử dụng nhiều APK ví dụ cho các cấp độ API < = 8 và> = 9 không? (Mặc dù nó không được khuyến khích bởi developer.android.com
Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
Point screenSize = new Point();
// calculate the width
float width;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
display.getSize(screenSize);
width = screenSize.x;
} else {
width = display.getWidth();
}
Cảm ơn
Tôi đang nhắm mục tiêu API cấp 15 nên có thể sẽ không còn được dùng cho một số phiên bản hệ điều hành nữa. Tôi cũng tin rằng luôn có thay thế cho mã không dùng nữa (hoặc đúng hơn, tôi đang sử dụng API mới không có sẵn trên cũ những cái này, vì vậy tôi phải sửa nó để duy trì tính tương thích). Tốt, bạn có thể có nhiều điều kiện để giữ tính tương thích ngược hay tốt hơn là nên có hai APK cho ICS (ví dụ) và cho các phiên bản cũ hơn? –
Nó tốt và được khuyến khích. Nếu bạn phát hành hai phiên bản ứng dụng của mình, một phiên bản cho ICS, một phiên bản dành cho ICS trước, bạn đang mời một cơn đau đầu lớn kể từ đó bạn sẽ phải duy trì hai cơ sở mã riêng biệt. –