Khi được chạm vào ở nơi khác, vấn đề chính là Android được thiết kế như một hệ điều hành di động, chạy trên nhiều loại phần cứng. Nó cũng xây dựng trên một khuôn khổ và ngôn ngữ quen thuộc với nhiều nhà phát triển di động hiện tại. Cuối cùng, tôi sẽ nói đó là đặt cược chống lại tương lai - bất kỳ vấn đề hiệu suất nào tồn tại sẽ trở nên không liên quan khi phần cứng được cải thiện - bằng cách khiến các nhà phát triển viết mã chống lại sự trừu tượng, Google có thể tách ra và thay đổi hệ điều hành cơ bản hơn nữa một cách dễ dàng, hơn là các nhà phát triển đã mã hóa các API POSIX/Unix.
Đối với hầu hết các ứng dụng, phí sử dụng ngôn ngữ dựa trên máy ảo trên bản địa không đáng kể (nút cổ chai cho các ứng dụng sử dụng dịch vụ web, như Twitter, chủ yếu là kết nối mạng). Palm WebOS cũng thể hiện điều này - và sử dụng JavaScript thay vì Java làm ngôn ngữ chính.
Do hầu như tất cả các máy ảo JIT biên dịch xuống mã gốc, tốc độ mã thô thường có thể so sánh với tốc độ gốc. Rất nhiều chậm trễ do các ngôn ngữ cấp cao hơn ít hơn khi thực hiện với VM overhead so với các yếu tố khác (một thời gian chạy đối tượng phức tạp, 'an toàn' kiểm tra truy cập bộ nhớ bằng cách kiểm tra giới hạn, vv).
Cũng nên nhớ rằng bất kể ngôn ngữ được sử dụng để viết một ứng dụng, rất nhiều công việc thực tế được thực hiện ở các API cấp thấp hơn. Ngôn ngữ cấp cao nhất thường chỉ kết hợp các cuộc gọi API với nhau.
Có, tất nhiên, có nhiều ngoại lệ đối với quy tắc này - trò chơi, ứng dụng âm thanh và đồ họa đẩy giới hạn phần cứng điện thoại. Ngay cả trên iOS, các nhà phát triển thường thả xuống C/C++ để có được tốc độ trong các lĩnh vực này.
Mã Java không được giải thích, ít nhất không phải trên Android - được biên dịch và chạy trên máy ảo. –
Tôi nghĩ Sun đã chứng minh Java có thể (trong một vài lĩnh vực, nhưng khá thường xuyên gần như) nhanh như mã gốc? Thêm vào đó, các chàng trai google là một gói thông minh - Tôi tin tưởng rằng JIT mà họ mới giới thiệu sẽ sớm hay muộn sản xuất mã rất tốt. – delnan
Giới thiệu về vấn đề hiệu suất, mã gốc không phải lúc nào cũng nhanh hơn mã bytecode? Vì CPU có thể trực tiếp thực thi nó mà không có máy ảo? Tôi không quen thuộc với cách thức Dalvik và các máy ảo khác hoạt động, nhưng phải dịch bytecode thành mã máy đầu tiên, và điều đó phải ăn rất nhiều hiệu suất trên mã bản sao chỉ-copy-to-RAM và chạy ... –