2011-01-03 18 views

Odpowiedz

58

Począwszy od wersji 4.0 (Ice Cream Sandwich) zachowanie Dalvik powinno być zgodne z JSR-133 (model pamięci Java).

Od wersji 3.0 (plaster miodu) większość elementów była na miejscu, ale pomijano pewne drobne rzeczy, które trudno byłoby napotkać w praktyce (na przykład w niektórych przypadkach w finalizacji).

Od wersji 2.3 (Gingerbread) Dalvik był ogólnie poprawny na procesorach jednoprocesorowych, ale brakowało niektórych kluczowych funkcji wymaganych do prawidłowego działania na sprzęcie SMP (na przykład właściwej obsługi pola final).

Pre-Gingerbread, nie było żadnych barier pamięci i podstawowe rzeczy, takie jak volatile long zostały zerwane.

+7

Gdzie przeczytałeś tę informację? –

+62

Pracuję nad Dalvik. – fadden

+8

Niejasne powiązania: Android + SMP Primer pod adresem http://developer.android.com/training/articles/smp.html – fadden

0

W specyfikacji podano, że wszystkie operacje na liczbach 32-bitowych (nie podwójne, nie długie) są atomowe. Nie ma gwarancji, że operacje na liczbach 64-bitowych są również atomowe.

+4

Która to specyfikacja? Jeśli masz na myśli specyfikację Java, myślę, że chodzi o pytanie, czy Dalvik implementuje tę część semantyki Javy. Jeśli masz na myśli jakąś inną specyfikację, nny szansa na link? –

13

Jest a document in the Dalvik source który mówi:

Z punktu widzenia kawałek kodu napisanego w języku programowania Java lub ukierunkowane w taki sam sposób do .class plików, zostanie Dalvik VM ma zachowywać się w sposób w pełni zgodny z definicją języka. Oznacza to, że kod działający w Dalvik będzie zachowywał się tak samo, jak by działał w dowolnej innej maszynie wirtualnej.

Co powinno oznaczać, że zachowanie jest takie samo, jak w odpowiedniej Java. Niezależnie od tego, czy tak jest, czy nie, nie mam pojęcia.

Powiązane problemy