2016-12-13 10 views
20

Kiedy tworzę aplikacje hybrydowe z React-Native. Czy napisany kod JavaScript przekształca się w kod Java lub Java-Bytecode dla Dalvik/ART Runtime, gdy tworzę aplikację dla systemu Android z mojego kodu React-Native? Czy są to tylko składniki interfejsu użytkownika skompilowane w natywne komponenty interfejsu użytkownika? A może biblioteka taka jak Fetch API kompiluje kod JavaScript do kodu Java lub kodu Java-Bytecode?Czy reaguje natywna kompilacja JavaScript na Javę dla Androida?

Odpowiedz

29

Zasadniczo piszesz Javascript. Javascript komunikuje się z natywnymi komponentami (Java na Androida, Objective C na iOS, C# na Windows).

Komunikacja odbywa się za pośrednictwem tak zwanego "mostu". Jeśli w dowolnym momencie poczujesz, że ta komunikacja zbyt mocno spowalnia rzeczy, możesz zdecydować się na implementację funkcji JavaScript w Javie, Objective C lub C#, aby działać czysto natywnie. W tym przypadku piszesz bezpośrednio w natywnym kodzie, więc nie ma kodu Javascript do natywnej kompilacji.

Spowoduje to rezygnację ze zgodności dla wydajności. Zwykle nie jest to konieczne.

+2

Najlepsza odpowiedź, ponieważ jest tak opisowa. Dzięki. Czy dokonałeś porównań wydajności między logiką JavaScript a logiką Java? Na przykład. czy uruchomiłeś żądanie sieciowe przez np. Pobierz api i porównaj środowisko wykonawcze z np. modernizacja? Oczywiście zależy to bardziej od prędkości sieci niż od prędkości "lokalnej". Być może wykonałeś inne porównania wydajności, np. pobieranie obiektu kamery natywnie i poprzez JavaScript? – unlimited101

10

Kod pozostaje natywnym kodem JavaScript i nie jest konwertowany na żaden inny format. Aplikacje hybrydowe działają w rodzimej aplikacji kontenerowej, która wywołuje mechanizm wykonywania kodu JavaScript, który zajmuje się wykonywaniem kodu JavaScript. Mam nadzieję, że to wyjaśni pytanie.

+1

OK. Czy możesz mi powiedzieć, skąd masz te informacje? – unlimited101

+1

https://facebook.github.io/react-native/docs/javascript-environment.html –

-5

Cytując ze strony internetowej bezpośrednio

Z React Native, nie budować „mobilną aplikację internetową”, to „HTML5 APP”, lub „hybrydowy aplikację”. Budujesz prawdziwą aplikację mobilną, która jest nieodróżnialna od aplikacji zbudowanej przy użyciu Objective-C lub Java. React Native używa tych samych fundamentalnych elementów składowych interfejsu użytkownika, jak zwykłe aplikacje na iOS i Androida. Po prostu wstawiasz te bloki konstrukcyjne za pomocą JavaScript i React.

Więc kodu w javascript i który jest konwertowany w natywny kod.

+2

Tak, oznacza to, że składniki interfejsu użytkownika są tłumaczone na kod natywny. Ale tam w cytowanym tekście nie ma nic napisanego o LOGIC, którą implementujesz w js – unlimited101

+0

Wszystko Logika, Zapytania, HTML są napisane w JSX (używane w React-Native) i są konwertowane na natywny kod JAVA (Android) lub Swift (iOS). –

+1

Proszę dać mi odniesienie. Dzięki. – unlimited101

Powiązane problemy