Tại sao Java được chọn cho Android?


46

Tại sao Java được chọn cho Android, thay vì một cái gì đó như C ++? Tôi đã nghe nói rằng Java sử dụng khá nhiều bộ nhớ và tôi cho rằng việc sử dụng bộ nhớ thấp sẽ khá quan trọng trên các thiết bị di động. Có bất kỳ lợi thế thực sự nào khi sử dụng Java thay vì ngôn ngữ như C ++ trên thiết bị di động không?


29
Điểm nhỏ, Android không được bắt đầu bởi Google. Google đã mua Android bao gồm cả việc sử dụng Java.
Kỹ sư thế giới

2
@ZJR: các ngôn ngữ chính được sử dụng tại Google luôn là Java, Python và C ++. Java luôn ở đó ngay cả trước Android.
ChúZeiv

15
Android sử dụng Ngôn ngữ Java và KHÔNG phải Máy ảo Java, có một sự khác biệt lớn , thậm chí nó còn sử dụng định dạng mã byte riêng. Câu hỏi này là thiếu sót trong ý định của nó và cũng không mang tính xây dựng!

8
@JarrodRoberson Tôi nghĩ rằng nó mang tính xây dựng miễn là nó không biến thành một cái
lòe loẹt

5
Tôi đang mở lại dựa trên một cuộc thảo luận về các câu hỏi có tầm quan trọng lịch sử . Các câu hỏi về lịch sử phát triển phần mềm và các chủ đề có liên quan là chủ đề ở đây và thêm giá trị. Với cách diễn đạt câu hỏi này và câu trả lời của nó, tôi nghĩ rằng câu hỏi này phù hợp với cộng đồng này.
Thomas Owens

Câu trả lời:


40

Bài viết này làm sáng tỏ tình hình. Liên kết thích hợp nhất trong bài viết đó là đây . Vì vậy, bạn đã có một cơ sở cài đặt khổng lồ với rất nhiều lập trình viên biết ngôn ngữ và nó được giảng dạy rộng rãi tại các trường đại học. C ++ đã bị loại khỏi chương trình giảng dạy của trường tôi, Java vẫn còn ở đây. Java có Java ME có cơ sở cài đặt lớn trên các điện thoại di động khác. Pantec Easy tôi có trong túi ngay bây giờ có một tách cà phê nhỏ ở góc màn hình. Bất cứ ai quan tâm để đoán đó là gì?

Câu trả lời này trên Stack Overflow cũng bao gồm nó khá tốt.

Tóm tắt câu trả lời SO:

java là một ngôn ngữ được biết đến, các nhà phát triển biết nó và không phải học nó

Thật khó để tự bắn java bằng mã c, c ++ vì nó không có số học con trỏ

nó chạy trong một vm, vì vậy không cần phải biên dịch lại cho mọi điện thoại ngoài kia và dễ dàng bảo mật

số lượng lớn các công cụ phát triển cho java (xem đầu tiên)

Một số điện thoại di động đã sử dụng java tôi, vì vậy java được biết đến trong ngành

sự khác biệt về tốc độ không phải là vấn đề đối với hầu hết các ứng dụng, nếu đó là mã bạn nên lắp ráp


1
Ah, bạn đánh tôi với nó, vì vậy tôi sẽ chỉ thêm vào danh sách của bạn. Tôi đã tìm thấy câu hỏi SO khác này có thêm một lý do tại sao Java được chọn (đó là ngôn ngữ được quản lý). - stackoverflow.com/questions/5605575/ cường
Shauna

1
Cảm ơn, điều này đã trả lời câu hỏi của tôi. Không phải biên dịch lại cho mọi thiết bị chạy Android khác nhau thực sự có vẻ như là một chuyên gia rất lớn để chọn Java. Tôi không biết tại sao tôi không nghĩ về điều đó. Cảm ơn!
cgt

2
Cho biết có bao nhiêu thiết bị Android mà thị trường đã phân tách, gần như không thể đối phó với điều khác.
Kỹ sư thế giới

3
Điều này là chính xác, nhưng họ có thể đã chọn bất kỳ ngôn ngữ. Họ thậm chí có thể viết một cái mới; họ đã xây dựng VM. Java có lợi thế của một đặc tả VM được xác định rõ ràng.
Michael K

18

Tôi sẽ mạo hiểm đoán rằng Google chọn Java để làm quen, nếu không có gì khác. Nhiều dự án của Google xoay quanh ít nhất các khái niệm về sơ đồ Java (ví dụ: GWT).

Ngoài ra, đó là ngôn ngữ được dạy rộng rãi trong các trường kỹ thuật (không giống như Javascript, mà Android cũng rất nhiệt tình hỗ trợ)). Java chắc chắn không phải là ngôn ngữ tốt nhất cho thiết bị di động về hiệu suất và sản xuất, nhưng nó được biết đến.

Cũng nên nhớ rằng Android đến muộn trong bữa tiệc. Buộc các nhà phát triển sử dụng C ++, ngôn ngữ biên dịch cấp thấp, sẽ khiến việc tạo ra yếu tố 'wow' trở nên khó khăn hơn và nếu không có gì khác, Android cần số (ứng dụng) và sự hào nhoáng để khởi đầu.


3
Tôi thích ý tưởng của bạn về việc phát triển ứng dụng. Tôi chưa bao giờ nghĩ về điều đó trước đây, nhưng nó có ý nghĩa. +1
Russell

6
Tôi nghĩ rằng sự ác cảm với C ++ so với Java trong trường hợp này ít liên quan đến sự hào nhoáng và yếu tố wow, và nhiều hơn nữa là khả năng cho các nhà phát triển nhanh chóng và dễ dàng viết các ứng dụng cho thị trường. Vào thời điểm thông số kỹ thuật được viết, kiến ​​thức phổ biến là sự thành công của iPhone tương quan với mức độ thành công của Apple trong việc làm cho việc phát triển ứng dụng trở nên hấp dẫn đối với các nhà phát triển. C ++ sẽ hơi khó khăn đối với hầu hết các nhà phát triển, do đó, việc mất hiệu năng tối thiểu của Java là rất đáng giá.
maple_shaft

8
@maple_shaft: thật sao ?? Tôi luôn thấy rằng sự thành công của iPhone là bất chấp sự phát triển ứng dụng không hấp dẫn như thế nào, không phải do nó hấp dẫn như thế nào!
Carson63000

3
@maple_shaft: Phải đồng ý với Carson tại đây. Phát triển iOS là một cơn ác mộng. Có một lý do không ai ngoài hệ sinh thái Apple đang sử dụng Objective-C, và đó là trước khi bạn chạm vào những điều khoản xấu xa của Apple khi thực sự cố gắng triển khai ứng dụng mà bạn đã tạo ...
Mason Wheeler

@Jeffrey, tại sao bạn nói rằng Android hỗ trợ JavaScript?
Pacerier

9

Không chắc chắn tại sao chính xác Java được chọn nhưng có lẽ vì một số lý do

  1. Để nắm bắt nhóm lớn các nhà phát triển đã quen thuộc và sử dụng Java

  2. Lấp đầy khoảng trống di động trong Java, nơi các công nghệ như J2ME thiếu Java.

Thứ hai, không có Máy ảo Java được chỉ định cho Android. Thay vào đó, tất cả các mã Java được biên dịch để chạy trên Dalvik , đây là một VM nhẹ, được tối ưu hóa được thiết kế đặc biệt để chạy trong môi trường di động. Nó cố gắng tăng cường tuổi thọ pin và tối đa hóa việc sử dụng tài nguyên hiệu quả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.