Чому Java обрали для Android?


46

Чому Java обрали для Android, а не щось на зразок C ++? Я чув, що Java використовує досить багато пам'яті, і я вважаю, що низьке використання пам'яті буде досить важливим на мобільних пристроях. Чи є якась реальна перевага використовувати Java на мобільному пристрої замість такої мови, як C ++?


29
Незначна точка Android не була запущена Google. Google купив Android, включаючи використання Java.
Всесвітній інженер

2
@ ZJR: основними мовами, якими користуються Google, завжди були Java, Python та C ++. Java завжди була там ще до Android.
UncleZeiv

15
Android використовує мову Java, а НЕ віртуальну машину Java, є велика різниця , він навіть використовує власний формат байтового коду. Це питання є помилковим у своєму намірі і не є конструктивним жодним чином!

8
@JarrodRoberson Я думаю, що вона конструктивна, доки вона не перетворюється на вогняну, АЛЕ громада говорить ...
maple_shaft

5
Я знову відкриваюся на основі дискусії з мета щодо питань, що мають історичне значення . Питання з історії розробки програмного забезпечення та відповідних тем є актуальними тут і додають додаткової цінності. Враховуючи формулювання цього питання та його відповіді, я вважаю, що це питання добре підходить для цієї громади.
Томас Оуенс

Відповіді:


40

Ця стаття проливає деяке світло на ситуацію. Найбільш доречне посилання в цій статті - це . Таким чином, у вас є масивна база встановлення з великою кількістю програмістів, які знають мову, і це широко викладається в університетах. C ++ випав із навчальної програми моєї школи, Java все ще є тут. У Java є Java ME, яка має масивну базу для встановлення на інших мобільних телефонах. У моєму кишені зараз "Pantec Ease", у куті екрана є маленька чашка кави. Комусь хочеться здогадатися, що це?

Ця відповідь на переповнення стека також досить добре покриває його.

Короткий зміст відповіді на відповідь:

java - відома мова, розробники її знають і не повинні її вивчати

важче знімати себе Java, ніж код c, c ++, оскільки він не має арифметики вказівника

він працює в vm, тому не потрібно перекомпілювати його на кожен телефон там, і його легко забезпечити

велика кількість інструментів розробки для Java (див. перше)

кілька мобільних телефонів вже використовували мене, тому java була відома в галузі

різниця швидкостей не є проблемою для більшості застосунків, якщо б ви її кодували в зборі


1
Ах, ти побив мене до цього, тож я просто додам до твого списку. Я знайшов це інше питання SO, яке додає ще одну причину, чому Java була обрана (це керована мова). - stackoverflow.com/questions/5605575/…
Shauna

1
Дякую, це відповіло на моє запитання. Немає необхідності перекомпілювати для кожного іншого Android-пристрою фактично здається величезним профі для вибору Java. Я не знаю, чому я про це не думав. Дякую!
cgt

2
Зважаючи на те, на скільки Android-пристроїв розбився ринок, інакше було б майже неможливо впоратися.
Світовий інженер

3
Це правильно, але вони могли вибрати будь-яку мову. Вони могли навіть написати новий; вони побудували ВМ. Java, однак, має перевагу в чітко визначених специфікаціях VM.
Майкл К

18

Я ризикую здогадатися, що Google вибирає Java для ознайомлення, якщо нічого іншого. Багато проектів Google містять принаймні концепції схеми Java (наприклад, GWT).

Крім того, це мова, яку широко вивчають у технікумах (на відміну від, скажімо, Javascript (яку Android також ревно підтримує)). Java, звичайно, не найкраща мова для мобільного пристрою з точки зору продуктивності та виробництва, але це добре відомо.

Також пам’ятайте, що Android прийшов трохи пізно на вечірку. Примушуючи розробників використовувати C ++, мову компіляції низького рівня, ускладнюватиметься генерування фактора "wow", і якщо нічого іншого, для Android потрібні номери (програми) та легковажність, щоб зійти з місця.


3
Мені подобається ваше уявлення про розробку додатків. Я ніколи про це не думав, але це має сенс. +1
Рассел

6
Я думаю, що відраза до C ++ над Java у цьому випадку має менший зв’язок із швидкістю та вау-фактором, а більше - із можливістю розробників швидше та легше писати програми для ринку. У той час, коли специфікація була написана, загальновідомим було те, що успіх iPhone співвідносився з тим, наскільки успішно Apple зробила розробку додатків привабливою для розробників. C ++ було б занадто важким для більшості розробників ковтати, тому мінімальна втрата продуктивності Java цілком вартувала цього.
maple_shaft

8
@maple_shaft: справді ?? мені завжди здавалося, що успіх iPhone був незважаючи на те, наскільки розроблений непривабливий додаток, не через те, наскільки він привабливий!
Carson63000

3
@maple_shaft: Я повинен погодитися з Карсоном тут. Розробка iOS - це кошмар. Існує причина, що ніхто за межами екосистеми Apple не використовує Objective-C, і це перш ніж ви навіть торкаєтесь відвертих злих термінів Apple, коли справа стосується насправді спроби розгорнути створений вами додаток ...
Мейсон Уілер

@ Джефрі, чому ти кажеш, що Android підтримує JavaScript?
Pacerier

9

Не впевнений, чому саме вибрали Java, але, мабуть, це було з кількох причин

  1. Для захоплення великої групи розробників, які знайомі з Java

  2. Заповніть мобільний пробіл у Java, де таких технологій, як J2ME, де Java не вистачає.

По-друге, для Android не вказана віртуальна машина Java. Натомість весь код Java складається для роботи на Dalvik , який є легким, оптимізованим VM, спеціально розробленим для роботи в мобільних середовищах. Це нібито збільшує час автономної роботи та максимально ефективно використовує ресурси.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.