2013-02-18 32 views
11

Câu hỏi đơn giản: Trong Eclipse "Dự án Android mới" lệnh luôn cố gắng sử dụng sdk có sẵn cuối cùng. Nó luôn luôn là một ý tưởng tốt?Tôi có cần sử dụng luôn targetSdkVersion cuối cùng không?

UPDATE:

Tôi cố gắng giải thích. Bây giờ trong Eclipse, "dự án mới" tạo ra một biểu hiện với:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

Vì vậy, phấn đấu đến Android mới nhất (Jelly Bean, 4.2.x) nhưng nó cũng có thể chạy trên Froyo (2.2). Không sao đâu. Tôi có thể làm gì sai với lựa chọn này?

CẬP NHẬT

Is it ok nếu tôi đặt android: minSdkVersion = "8" + android: targetSdkVersion = "17" và xây dựng mục tiêu 2.2 để chắc chắn ứng dụng của tôi sẽ chạy trên các thiết bị cũ (không NoSuchMethodError ngoại lệ)?

+0

Tùy thuộc vào thiết bị nào bạn muốn nhắm mục tiêu – vodich

+0

Tôi đã chỉnh sửa câu hỏi của mình –

+1

Đọc mô tả này về "phiên bản sdk mục tiêu" có nghĩa là: http://developer.android.com/guide/topics/manifest/uses-sdk -element.html Đối với điều này nó sau mà bạn đã thử nghiệm ứng dụng của bạn trên phiên bản sdk này và xác minh nó hoạt động ok. Vì vậy, thiết bị không cần phải mô phỏng sdk cũ cho bạn. – tuxSlayer

Trả lời

10

Tôi có thể làm gì sai với lựa chọn này?

Không có gì sai với lựa chọn này, đó là lý do công cụ xây dựng mặc định cho nó.

Đặt targetSdkVersion sẽ đưa bạn vào các hành vi cụ thể mà bạn có thể không nhận được với số cũ targetSdkVersion. Bạn có thể thấy một số điều bạn nhận được bằng cách đọc the documentation for Build.VERSION_CODES.

+0

Trước đây, targetSdk là 8, và bây giờ (với 17) tôi nhận ngoại lệ NetworkOnMainThreadException. Thay đổi mục tiêu đã giúp tôi khám phá ra những dòng "xấu" đó. –

+0

Có ổn không nếu tôi đặt android: minSdkVersion = "8" android: targetSdkVersion = "17" và mục tiêu xây dựng là 2,2 để chắc chắn ứng dụng của tôi sẽ chạy trên các thiết bị cũ hơn? –

+1

@Seraphim: Tôi sẽ không đề xuất phương pháp đó.Lint sẽ cho bạn biết khi có các lớp và phương thức mà bạn đang sử dụng vượt quá 'minSdkVersion' của bạn. Với ~ 40% thiết bị Android chạy Android 3.0+, bạn nên bắt đầu sử dụng các tính năng mới hơn Android 2.2, chỉ có điều kiện (ví dụ: thông qua 'Build.VERSION.SDK_INT'). Trong những trường hợp đó, bạn nên đặt mục tiêu xây dựng của mình thành phiên bản Android có tất cả các lớp và phương thức mà bạn đang cố gắng sử dụng. – CommonsWare

4

Nếu bạn muốn phát triển các ứng dụng cho một phiên bản cũ hơn, nó không phải là một ý tưởng tốt. Bạn luôn có thể kiểm tra xem most used version là gì và làm cho ứng dụng của bạn chống lại phiên bản đó. Trong một số trường hợp, cần phải sử dụng phiên bản mới nhất vì một số chức năng chưa được triển khai trong phiên bản cũ hơn.

+0

Tôi đã chỉnh sửa câu hỏi của mình. –

Các vấn đề liên quan