Dlaczego Java została wybrana na Androida zamiast C ++? Słyszałem, że Java zużywa sporo pamięci i przypuszczam, że niskie zużycie pamięci byłoby bardzo ważne na urządzeniach mobilnych. Czy jest jakaś korzyść z używania Javy zamiast języka takiego jak C ++ na urządzeniu mobilnym?
46
Odpowiedzi:
Ten artykuł rzuca nieco światła na sytuację. Najbardziej odpowiedni link w tym artykule jest następujący . Masz więc ogromną bazę instalacyjną z wieloma programistami, którzy znają język i jest powszechnie nauczany na uniwersytetach. C ++ został usunięty z programu nauczania mojej szkoły, Java wciąż tu jest. Java ma Java ME, który ma ogromną bazę instalacyjną na innych telefonach komórkowych. Model Pantec Easy, który mam teraz w kieszeni, ma mały kubek kawy w rogu ekranu. Czy ktoś chce zgadnąć, co to jest?
Ta odpowiedź na temat przepełnienia stosu również całkiem dobrze ją obejmuje.
Podsumowanie odpowiedzi SO:
źródło
Zaryzykuję przypuszczenie, że Google wybrał Javę dla znajomości, jeśli nic więcej. Wiele projektów Google dotyczy przynajmniej koncepcji schematów Java (na przykład GWT).
Ponadto jest to język powszechnie nauczany w szkołach technicznych (w przeciwieństwie do powiedzmy Javascript (który Android także gorliwie obsługuje)). Java z pewnością nie jest najlepszym językiem dla urządzeń mobilnych pod względem wydajności i produkcji, ale jest dobrze znana.
Pamiętaj też, że Android przyszedł na imprezę trochę późno. Zmuszenie programistów do korzystania z C ++, języka kompilacji niskiego poziomu, utrudniłoby wygenerowanie czynnika „wow”, a jeśli nic więcej, Android potrzebował liczby (aplikacji) i błyskotliwości, aby zejść z ziemi.
źródło
Nie jestem pewien, dlaczego dokładnie wybrano Javę, ale prawdopodobnie z wielu powodów
Aby uchwycić dużą grupę programistów, którzy znają i używają Java
Wypełnij lukę mobilną w Javie, gdzie brakuje technologii takich jak J2ME.
Po drugie, nie określono Java Virtual Machine dla Androida. Zamiast tego cały kod Java jest kompilowany do działania na Dalvik , który jest lekką, zoptymalizowaną maszyną wirtualną zaprojektowaną specjalnie do działania w środowiskach mobilnych. Podobno wydłuża żywotność baterii i maksymalizuje efektywne wykorzystanie zasobów.
źródło