2012-05-17 20 views
10

Tôi đã viết một ứng dụng Android cho Android SDK 2.3.3 nhưng sau đó tôi đã được yêu cầu thử nghiệm nó trên một thiết bị chạy Android 2.2.1. Vì vậy, tôi đặt mục tiêu của tôi là 8 thay vì 10. Nhưng sau đó java.util.concurrent.TimeUnit chỉ có bộ tính năng Java 1.5 thay vì tập hợp tính năng Java 1.6/1.7 của java.util.concurrent.TimeUnit. Vì vậy, tôi đặt openjdk 6 thực hiện TimeUnit vào gói của tôi cho ứng dụng Android của tôi và mọi thứ hoạt động tốt.Phiên bản nào của SDK Android hỗ trợ mã hóa trong phiên bản Java nào?

Có ai biết nơi tôi có thể lấy một số tài liệu cung cấp cho tôi biểu đồ cho tôi biết, ví dụ, khi sử dụng SDK chính thức, Android 2.2 phải được mã hóa bằng cách sử dụng Java 1.5 từ khóa/cú pháp/API, Android 2.3. 3 có thể được mã hóa bằng cách sử dụng Java 1.6 từ khóa/cú pháp/API, v.v ...?

+0

Có vẻ lạ với tôi rằng Android sẽ buộc bạn sử dụng 1,5, khi Java 1.6 cũ hơn Android. Có lẽ có nhiều điều đang diễn ra ở đây. – jpaugh

+0

Tôi đặt cược openjdk chỉ lên đến 1.5 vào thời điểm đó và điều đó có liên quan đến nó. openjdk 7 đã không được phát hành cho đến 2011/07/28 –

+0

các bản sao: http://stackoverflow.com/q/7535385/324625 và http://stackoverflow.com/q/390482/324625 –

Trả lời

6

Bạn đang cố gắng xem Android như một tập con của Java mà nó không phải là. Chúng hoàn toàn tách biệt nhau. Mặc dù Android xuất phát từ Java, nó xuất phát từ nó khá một chút và không có sự tương quan 'phiên bản khôn ngoan' nữa giữa hai.

Những gì bạn có thể xem là tài liệu Android. Đối với mỗi lệnh/lệnh/phương pháp/thuộc tính, ở trên cùng bên phải, bạn sẽ tìm thấy mức api mà tại đó bạn có thể truy cập thuộc tính đã nói.

Nhấp vào cấp api sẽ đưa bạn đến một trang có chứa bảng chuyển mức api sang phiên bản Android.

Cách dễ dàng để tìm hiểu xem bạn có được phép sử dụng thuộc tính đang sử dụng nhật thực và làm những gì bạn vừa làm: Thay đổi cấp api mục tiêu. Sau đó, bất kỳ cuộc gọi đến phương pháp hoặc tài sản không có sẵn cho bạn sẽ tạo ra lỗi nghiêm trọng.

+1

"và không còn mối tương quan nữa giữa hai người. " điều đó không đúng? – keyser

+0

@Keyser Điểm của Yahel có vẻ là bạn không nên cố gắng lập bản đồ các phiên bản Android cho các phiên bản java cụ thể để tìm hiểu những gì được hỗ trợ - thay vào đó bạn nên trực tiếp kiểm tra tài liệu Android. –

+0

@Keyser: Nếu bạn quan tâm để xây dựng :) – Yahel