Skocz do zawartości
wald10

Języki programowania...

    Rekomendowane odpowiedzi

    wald10

    Od czego zacząć? Może wypowie się ktoś co już cokolwiek napisał? I pierwsze, może i naiwne pytanie :

    Czy tylko w Javie można pisać programy na G1, czy też można używać innych języków (C,C++,Pascal)?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    warto przeczytać :

    Dalvik - miasto na północnym wybrzeżu Islandii w którym żyje ok. 1500 osób. Jest typowym miastem portowym, dobrze rozwinięte jest tu rybołówstwo oraz przeróbka ryb, a także znajduje się niewielki przemysł. Zaopatrywany jest w ciepłą wodę z gorących źródeł. Mieści się tu urząd gminy oraz muzeum. W 1943 roku trzęsienie ziemi zniszczyło większość domostw w Dalvik.

    - Wikipedia

    Z wierzchu Java, pod maską Dalvik

    Docelowym językiem programowania na Androida jest Java. Zwykle pliki z kodem źródłowym napisanym w Javie kompilowane są do plików .class, zawierających instrukcje dla wirtualnej maszyny. Instrukcje te nazywa się bytecode ‘em Javy (Java Bytecode). Kiedy uruchamiamy skompilowany program napisany w Javie, wirtualna maszyna (JVM) ładuje owe pliki do pamięci i uruchamia zawarty w nich kod. Jednak Android nie posiada JVM! Zamiast JVM, Google zdecydował się wyposażyć Androida w technologię Dalvik.

    Java Reloaded

    Dalvik to coś w rodzaju ulepszonej wirtualnej maszyny Javy. Java ma już swoje lata, ale od tego czasu fundamenty tej technologii nie zmieniły się. Kilkanaście lat doświadczeń z Javą i urządzeniami mobilnymi wykazały nieliczne, lecz bardzo ważne słabe punkty JVM. Sun nadal nie zdecydował się na podjęcie drastycznych kroków, aby te problemy rozwiązać. Skoro Sun nie skłania się do ulepszenia Javy jako platformy w najbliższym czasie, inżynierzy Google’a zdecydowali wziąć sprawy w swoje ręce i stworzyli własne rozwiązanie. Tak właśnie powstał Dalvik - nowoczesna wirtualna maszyna, przystosowana specjalnie do urządzeń mobilnych, gdzie szczególną uwagę należy zwrócić na małe zasoby pamięci, energii i niewielką prędkość procesorów.

    Wśród narzędzi zawartych w SDK znajduje się kompilator. Kompilator ów nie tworzy jednak plików .class z bytecode’m Javy, lecz pliki .dex z bytecode’m Dalvik’a. Następnie skompilowane pliki, wraz ze strukturą katalogów i znajdującymi się w nich multimediami, zostają spakowane - zamiast do pliku .jar - do pliku .apk (Android Package). Tak przygotowana aplikacja uruchamiana jest przez wirtualną maszynę Dalvik’a.

    Ma to swoje implikacje - zarówno plusy, jak i minusy. Do plusów należy zaliczyć z pewnością lepszą obsługę pamięci, lepszy Garbage Collector, większą wydajność. Z drugiej strony bytecode Dalvik’a nie jest w 100% kompatybilny z bytecode’m Javy. Nie zadziałają więc na Adnroidzie bardziej wyrafinowane sztuczki programistyczne, korzystające z Class Loader’ów czy Java Reflection API.

    Prawie jak Java

    Bezpośrednio przekłada się to na problemy z uruchomieniem na Androidzie projektów korzystających np. z języków takich jak Groovy, JRuby czy Jython. Ponadto pojawiają się problemy, jeśli chcemy użyć framework’ów IoC takich jak Spring, OSGi czy chociażby PicoContainer. Także iJetty - wersja popularnego, minimalistycznego serwera webowego Jetty, przygotowana specjalnie dla Androida - nie może w tej chwili samodzielnie instalować aplikacji webowych dostarczanych w plikach .war.

    A więc Dalvik jest prawie jak Java. Jak wiadomo, prawie robi wielką różnicę i jeśli Google pragnie sukcesu Androida, będzie musiał podjąć pewne kroki. Na razie pojawiają się plotki o obietnicach, że w SDK pojawią się w ClassLoader’y takie jak w Javie, a także z czasem dostępne będzie też pełne wsparcie dla Reflection API.

    (ź)gphone

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    sevos

    Myślę, że Qt nie sprawdziło by si na naszym OS ze względu na jego filozofię.

    Takie aplikacje po pierwsze musiałyby obsługiwać zmianę orientacji ekranu. Po drugie należy pamiętać, że aplikacja nie steruje swoim cyklem życia (system może ją wyświetlić, zamknąć, zabić w dowolnej chwili, a aplikacja może się jedynie do tego ustosunkować).

    Zostaje więc nam Java, ale nie masz co myśleć, że uświadczysz tu czegoś takiego jak Swing, okienka i inne. Trzeba trochę sposób myślenai przestawić.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Rad-X

    Stworzenie samego dalvika przypomina mi okres gdy MS przed .NET kombinowac z JAVA jednak zostal pozwany za to. Ciekawe czy Google nie bedzie mialo problemow.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Alus

    Google nie będzie miało o to kłopotów bo podpisali umowę z Javą.

    MS pewnie chciał skorzystać z javy i podpisać jako swoje:/

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    skoti
    Stworzenie samego dalvika przypomina mi okres gdy MS przed .NET kombinowac z JAVA jednak zostal pozwany za to. Ciekawe czy Google nie bedzie mialo problemow.

    To jest zupełnie inna sytuacja - dalvik to nie java (jedynie ma jej składnię, a maszynę wirtualną, kod pośredni i wszystko inne (czyli wszystko to co jest naprawdę istotne) jest zupełnie rożne).

    Dalvik w praktyce tylko wygląda na javę, ale jest innym językiem i sun się nie może przyczepić. Sytuacja z MS była inna - MS pisał implementację Javy gdzie maszyna wirtualna i kod pośredni był zgodny z sunowskim... i by mógł to robić, tylko, że MS chciał czegoś więcej dlatego rozszerzał implementację javy tak, jak JS w IE (czyli tak aby ostatecznie aplikacje nie mogły działać na innej implementacji niż MS - czyli był to zamach na największy atut javy czyli wieloplatformowość aplikacji w nim pisanych) - dlatego sun pozwał MS, bo to już nie była java, a korzystała z nazwy tego języka (dlatego teraz java od MS nazywa się J++ lub J#). Jednak implementacji javy jest sporo (np. od IBM, Apple, Oracle, NEC, SAP czy w GCC (gcj) - a sun ma 2x implementacje - zamkniętą własnościową i otwartą przepisaną (do niektórych części orginalnej javy sun nie ma prawa udostępniać kodu, albo tylko licencjonuje patent od innej firmy dlatego musiał to przepisać inaczej) i udostępnioną na otwartej licencji nie tak dawno temu).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    razor
    Google nie będzie miało o to kłopotów bo podpisali umowę z Javą.

    MS pewnie chciał skorzystać z javy i podpisać jako swoje:/

    z Javą nie da się umów podpisywać, bo to język programowania.

    Mogli podpisać wcześniej z Sunem, a teraz z Oraclem.

    Poza tym źródła Javy są od jakiegoś czasu dostępne, a maszyn wirtualnych Javy na rynku jest kilka (oracle'a, wcześniej bea, ibma itp.) i każdy tuninnguje je pod swoje potrzeby.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x