Czym różni się Java dla JRE od Java dla Androida?

13

Jestem nowy w rozwoju tej gry i zaczynam się uczyć java, ponieważ powiedziano mi, że to świetny sposób na rozpoczęcie. Chcę później tworzyć gry dla rynku Android i chcę mieć dobry widok od was, więc wiem dokładnie, z czym mam do czynienia.

Wiem, że programowanie Androida ma różne architektury i tak dalej (to dobry sposób, aby to powiedzieć?)

Dzięki!

Bezskrzydły
źródło
4
Z tego powodu warto aplikacje na Androida są zwykle napisane w Javie. Różnica między nimi polega na tym, że „Android” to system operacyjny, a „Java” to język programowania. Służą one innym (nie nakładającym się) celom.
dash-tom-bang
Wyjaśniono tytuł pytania OP.
Inżynier

Odpowiedzi:

13

Do tworzenia aplikacji na Androida używasz Java i bibliotek rozszerzeń, które zapewnia Android. Nie są to rozszerzenia w pewnym sensie języka Java; Mam na myśli biblioteki dostarczane z systemem Android, które pomogą Ci osiągnąć typowe rzeczy, które chcesz robić na telefonie komórkowym.

Na przykład Blackberry ( inny mobilny system operacyjny oparty na Javie ) używa Java jako wybranego języka, a Research In Motion zapewnia zestaw bibliotek w pakiecie RIM, który pomaga mi abstrakcyjnie robić rzeczy na moim telefonie.

Możesz używać czystego języka Java, ale przez większość czasu chcesz korzystać z bibliotek RIM dostarczonych przez RIM.

Jeśli jesteś zupełnie nowy w programowaniu, poleciłbym najpierw nauczenie się dobrych zasad Java - klas, metod, programowania obiektowego itp .; następnie poznajemy interfejs API Androida dostarczony przez Google. Jeśli najpierw nauczysz się Androida, szybko się zdezorientujesz i nie będziesz przestrzegać dobrych praktyk programistycznych.

Polecam zacząć od książki Head First Java .


źródło
4

Android wykorzystuje własną implementację Java. Piszesz kod składni Java i możesz korzystać z wielu interfejsów API Java, ale istnieje wiele różnic:

  • Aplikacje na Androida mają specjalny cykl życia:
    • brak głównej funkcji
    • Twoje aplikacje zawierają działania z funkcjami onCreate, onResume, onPause, onDestroy, które musisz zastąpić
  • Kod jest kompilowany do kodów Dalvik (nie kod bajtu java);
  • Wiele interfejsów API jest podobnych, ale nie masz wszystkich interfejsów API J2SE. Musisz sprawdzić na stronie programisty ;
  • Wiele interfejsów API ogranicza się do systemu Android (kontakty, zarządzanie energią, grafika ...);
  • IHM to tylko Android (bez Swing, bez JavaFX ...). Musisz użyć XML, aby zadeklarować GUI;
  • możesz używać słoików Java (jeśli używają tylko kompatybilnych API), ale są one konwertowane na dalvik.

To jest jak nowa platforma; ale jeśli znasz Javę, bardzo łatwo jest ją rozwijać na Androidzie. Pobierz SDK i spróbuj grać z dostarczonymi próbkami i dostosuj je. Możesz używać dobrego IDE jako Eclipse i Idea (wtyczka Android pojawi się w wydaniach społeczności Idea 10).

Dla maniaków C / C ++ możesz użyć NDK (Native Development Kit), ale potrzebujesz trochę kodu ładującego Java i znajomości JNI.

Ellis
źródło