2010-10-08 12 views
14

Mamy aplikację Java na komputery stacjonarne i internetowe, a także rozwijamy system Android.Java platformy między platformami? Android i komputer stacjonarny

Idealnie byśmy chcieli, aby jedna aplikacja działała zarówno na komputerze, jak i na Androida.

Z tego co wiemy, nie jest możliwe uruchomienie normalnych aplikacji java na Androidzie. Ale zastanawiasz się, czy może to zrobić w inny sposób? To znaczy, uruchamiaj aplikacje na Androida na pulpicie (bez instalowania emulatora SDK lub Android)?

W idealnym świecie chcielibyśmy jednej aplikacji dla obu platform. Realistycznie chociaż wygląda na to, że będziemy musieli mieć jedną aplikację z dwoma frontami?

Odpowiedz

18

Zasadniczo można podzielić aplikację na co najmniej trzy projekty ... jeden projekt Android dla konkretnych elementów systemu Android, jeden projekt Java na komputery dla konkretnych aplikacji na komputery, a następnie jeden projekt biblioteki Java dla wspólnej funkcji (gdzie większość twojej prawdziwej pracy powinna zostać wykonana). Następnie możesz ponownie użyć projektu biblioteki zarówno w projektach na Androida, jak i na komputerach.

Istnieje kilka różnic w tym, co jest dostępne w środowisku Android, więc musisz mieć na to oko, ale przy dobrym projekcie nie powinieneś mieć problemów z dzieleniem się kawałkiem kodu pomiędzy Twoimi projektami.

Powodzenia.

1

Skąd o tym słyszałeś?

Podstawowym językiem programistycznym Androida jest język Java, mimo że używano maszyny Dalvik VM zamiast Java VM. Będziesz musiał przekompilować swój kod .java, i jest kilka części bibliotek Java, które nie są dostępne w systemie Android i na odwrót, i oczywiście będziesz musiał napisać osobny interfejs GUI; ale to wszystko, możesz mieć w dużym stopniu ten sam kod do uruchamiania na obu platformach.

0

Masz rację, ponieważ nie będziesz w stanie pobrać standardowych plików klas i po prostu uruchomić na Androidzie. Kod bajtowy generowany przez dalvik vm różni się od kodu bajtowego utworzonego z jvm. Jednak większość kodu będzie można ponownie wykorzystać i przy dobrym projektowaniu można znacznie zmniejszyć ten problem.

0

Nie jest dobrym pomysłem korzystanie z tego samego GUI na smartfonie i systemie stacjonarnym. Musisz użyć zupełnie innych koncepcji użycia. Dla twojej logiki biznesowej podział na 3 projekty, takie jak cjstehno, może być dobrym pomysłem.

+3

Android! = Smartphone. Jest mnóstwo 10-calowych tabletów z systemem Android z rozdzielczością WVGA lub wyższą, więc nie jest to zły pomysł, aby mieć ekran dotykowy w tej rozdzielczości i chcieć, aby działał na wielu platformach obsługujących dotyk (Android i Java na komputer). –

0

Możesz podzielić swoje zadanie na dwa projekty. Jeden dotyczy rzeczy biznesowych, w których należy obsłużyć całą pracę, z wyjątkiem interakcji z użytkownikiem. Drugi to interakcja z użytkownikiem i wyświetlanie danych. Ta druga część powinna być idealnie przygotowana w HTML5, tak aby wielu klientów mogło zobaczyć gui bezbłędnie, i nie będziesz musiał pisać różnych kodów dla różnych platform klienta

1

Próbowałem następujące podejście: napisać bibliotekę otoki dla pulpit, który eksponuje te same klasy co pakiet android.graphics, ale używa SWT pod maską.

I już ułożyła surowy, szybki i brzydka prototypu do wykazania podejście: https://github.com/davidair/android-swt-demo

Pozwala napisać kod UI raz (w moim przykładzie, widok niestandardowy) i skompilować go dwa razy dla dwóch różnych platform. Nie wiem, jak daleko można posunąć ten pomysł, choć ...

0

Istnieje kilka narzędzi krzyżowych dla GUI. Na przykład Codename, wydaje się być dobrze obsługiwany i jest opensource.

Powiązane problemy