/ / Dlaczego Android potrzebuje maszyny wirtualnej (DVM)? - Android, jvm, dalvik, implementacja vm

Dlaczego Android potrzebuje maszyny wirtualnej (DVM)? - android, jvm, dalvik, implementacja vm

Maszyny wirtualne są używane do uruchamiania aplikacjiinny system operacyjny (Java kompiluje kod do niezależnych od systemu plików .class, które są interpretowane jako kod bajtowy). Ponieważ aplikacje na Androida działają na tym samym systemie operacyjnym (np. Na Androidzie), nie wymagają maszyny wirtualnej (mogłem się mylić). Dlaczego więc potrzebuje maszyny Dalvik VM?

Odpowiedzi:

8 dla odpowiedzi № 1

Platforma Android może działać na innycharchitektury - ARM, MIPs i x86. Aby wyjaśnić potrzebę kompilowania plików binarnych dla każdej architektury VM wchodzi w grę. Zajmuje się także zarządzaniem pamięcią dla programisty.


2 dla odpowiedzi nr 2

Potrzebujemy kogoś, kto skompiluje i skonwertuje klasy java na kod bajtowy, który może zostać wykonany przez interpretera.

Jest podobny do JVM ... masz.pliki java, które zostaną skompilowane przez kompilator java do plików .class. pliki .class są niczym innym jak kodem bajtowym, który będzie uruchamiany przez maszynę JVM. JVM może znajdować się na dowolnej platformie (Windows, Linux lub Unix).

W Androidzie pliki są także kompilowane.pliki dex i uruchamiane przez DVM. aby dać pomysł, kiedy aplikacja jest zainstalowana, Android OS przypisuje unikalny identyfikator użytkownika linux, DVM jest przypisany do każdej aplikacji. Tak więc w skrócie każda aplikacja ma własny proces linux, identyfikator użytkownika DVM i linux.

Pliki java są kompilowane do plików .dex, które zużywają mniej pamięci w porównaniu z plikami .class.

Załóżmy teraz, że 10 aplikacji ma 10 pojedynczych urządzeń DVM, a system operacyjny obsługuje 10 procesów.

Dyspozytor lub planista w systemie operacyjnym Android jest odpowiedzialny za obsługę tych 10 procesów .... dlatego mamy cykl życia aktywności systemu Android.

Potrzebujesz DVM, aby utrzymać bieżący stan każdego procesu (każdej aplikacji).


1 dla odpowiedzi nr 3

Dlaczego android potrzebuje maszyny wirtualnej, opiera się na założeniu, że Google opracowało interfejs API systemu Android, aby w znacznym stopniu korzystać z interfejsu Java. Jawa jest zwykle uruchamiana na maszynie wirtualnej.

JVM sama w sobie jest maszyną wirtualną opartą na stosieVM systemu Android (zwany Dalvik) jest maszyną wirtualną opartą na rejestrze (ze względu na mniej generowanego kodu i większą szybkość, aby uzyskać lepszą wydajność z dowolnego urządzenia korzystającego z Androida)

Celem maszyny wirtualnej jest możliwośćabstrakcyjny sprzęt, symulując go. Jeśli tworzysz maszynę wirtualną i kompilujesz ją do pracy na każdym możliwym sprzęcie, otrzymujesz to, co pierwotnie spowodowało, że Java stała się popularna: pisz raz uruchom w dowolnym miejscu.

Możesz pisać kod, bez konieczności zmiany i uruchamiania go na dowolnym sprzęcie, na którym może działać maszyna wirtualna.

Digressing, Android jest w większości zbudowany w C (i C ++?), Ale API, które manipuluje systemem operacyjnym, jest połączone poprzez Javę, więc potrzebujesz maszyny wirtualnej.