logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ANDROID] Jaki język programowania wybrać do tworzenia aplikacji na Androida?

maly_elektronik 03 Kwi 2012 21:42 7809 14
REKLAMA
  • #1 10754072
    maly_elektronik
    Poziom 23  
    Posty: 777
    Pomógł: 35
    Ocena: 5
    Witam :)

    Zajmuję się programowaniem od dobrych kilku lat, niestety moja znajomość ogranicza się tylko i wyłącznie do zagadnień internetowych oraz C/C++.
    Niestety przyszłościowy rynek pracy wymaga programowania/pisania aplikacji na środowiska mobilne :) Jak wiadomo obecnie góruje wśród nich android oraz windows mobile.
    Chciałbym rozpocząć naukę pod kątem androida. Niestety nie ma zbyt dobrych kompilatorów dla języka C++. Zostaje mi przesiąść się na coś innego.
    Moje pytanie brzmi:
    Czy android korzysta z JAVY czy jest to jakaś jej specyficzna odmiana (jeśli to co innego to proszę o nazwę) :?:
    Czy znacie jakieś dobre tutoriale/książki, które pomogą mi w tym zagadnieniu :?:

    P.S Czytałem już wiele na ten temat w sieci ale to nie są zbyt wartościowe odpowiedzi a na android dev nie mogę znaleźć notki odnośnie języka:)

    Z góry dziękuję i pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 10754120
    directx11
    Poziom 17  
    Posty: 250
    Pomógł: 25
    Ocena: 14
    Zależy jaka warstwa Cię interesuje, niższe to c/c++, aplikacje to Java, choć da się robić to w różne strony używając wynalazku o nazwie JNI, ale chyba nie warto sobie na początku zawracać tym głowy. SDK Androida to najbogatsze źródło wiedzy, Java nie jest jakaś specjalna do tego. Sztuką jest poznać wszystkie mechanizmy i elementy systemu Android, jest wiele dobrych książek. Jeśli interesując Cię niższe warstwy to trzeba się zainteresować także programowaniem kernela Linuxa. Co do środowiska do pisania aplikacji to Eclipse + plugin ADT dostępny z SDK, znacznie ułatwia pracę i dostarcza mnóstwa pożytecznych narzędzi (DDMS, adb, hierarhyveiwer i wiele innych), nie mówiąc o wizualnym edytorze formularzy i zarządzaniem zasobami aplikacji. Samo pisanie aplikacji jest czystą przyjemnością, naprawdę banalne w większości przypadków.
  • #3 10756110
    maly_elektronik
    Poziom 23  
    Posty: 777
    Pomógł: 35
    Ocena: 5
    Z niższymi poziomami nie ma problemu bo na co dzień pracuję z Linuxem. Interesuje mnie pisanie aplikacji z przyjaznym dla użytkownika UI, więc nie muszę posiadać znajomości języka JAVA :?:
  • #4 10756132
    directx11
    Poziom 17  
    Posty: 250
    Pomógł: 25
    Ocena: 14
    Z tą znajomością Javy to nie tak do końca, jakieś podstawowe pojęcie trzeba mieć, ale jeśli radzisz sobie z C++ przesiadka jest praktycznie bezbolesna. Ja zostałem wrzucony od razu na głęboką wodę do pisania i poprawiania aplikacji a z Javą nie miałem praktycznie nic wspólnego wcześniej - problemu żadnego nie ma. Skupić się raczej należy jak mówiłem na poznaniu mechanizmów Androida, bo bez tego to ciężko napisać ciekawą aplikację. A jak ogarnąć korzystanie z usług takich jak telefonia, gps, mapy google, bazy danych, grafika 3D itd. to już można wymyślać. Tego z każdą wersją Androida przybywa coraz więcej i jest w czym wybierać.
  • REKLAMA
  • #5 10756135
    maly_elektronik
    Poziom 23  
    Posty: 777
    Pomógł: 35
    Ocena: 5
    Co rozumiesz przez pojęcie mechanizmy Androida :?:
  • REKLAMA
  • #6 10756154
    directx11
    Poziom 17  
    Posty: 250
    Pomógł: 25
    Ocena: 14
    Mechanizmy to może złe słowo, mam na myśli głównie usługi oraz sposoby w jaki aplikacje korzystają z dobrodziejstw systemu i się z nim komunikują. Jeśli chcesz na przykład robić UI to zagłębić się w detale layout-ów, obsługę stringów, tłumaczenia, zasoby, jak Android rozróżnia i definiuje wielkości ekranów urządzeń itp. Innym przykładem na "mechanizmy" jak to nazwałem są sensory, których w urządzeniu może być całe mnóstow, np, akcelerometr, warto zapoznać się z tym, jak się je obsługuje, tak samo jak obsługę multimediów itd... przykłady można mnożyć.
  • #7 10758109
    sedr
    Poziom 17  
    Posty: 186
    Pomógł: 19
    Ocena: 3
    maly_elektronik napisał:
    Niestety przyszłościowy rynek pracy wymaga programowania/pisania aplikacji na środowiska mobilne :)


    Pudło. Nie wymaga. Co prawda coraz więcej pojawia się ofert dla programistów systemów mobilnych, jednak dobry programista C/C++ znajdzie coś dla siebie zarówno przy aplikacjach desktopowych, serwerowych jak i embedded.

    maly_elektronik napisał:
    Jak wiadomo obecnie góruje wśród nich android oraz windows mobile.


    Pudło. Raczej Android i iOS.

    maly_elektronik napisał:
    Chciałbym rozpocząć naukę pod kątem androida. Niestety nie ma zbyt dobrych kompilatorów dla języka C++.


    Przepraszam, ale co to za bzdura? GCC nie jest dobrym kompilatorem?

    maly_elektronik napisał:
    Moje pytanie brzmi:
    Czy android korzysta z JAVY czy jest to jakaś jej specyficzna odmiana (jeśli to co innego to proszę o nazwę) :?:
    Czy znacie jakieś dobre tutoriale/książki, które pomogą mi w tym zagadnieniu :?:


    Specyficzna to jest odmiana wirtualnej maszyny. Nazywa się Dalvik.

    maly_elektronik napisał:
    P.S Czytałem już wiele na ten temat w sieci ale to nie są zbyt wartościowe odpowiedzi a na android dev nie mogę znaleźć notki odnośnie języka:)


    Po wpisaniu do wyszukiwarki android programming language otrzymujemy jako pierwszy wynik http://developer.android.com/guide/basics/what-is-android.html gdzie jest wszystko pięknie opisane. Kolega jednak nie czytał aż tak wiele...
  • #8 10758559
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 473
    sedr napisał:
    maly_elektronik napisał:
    Chciałbym rozpocząć naukę pod kątem androida. Niestety nie ma zbyt dobrych kompilatorów dla języka C++.


    Przepraszam, ale co to za bzdura? GCC nie jest dobrym kompilatorem?


    Chyba kolego g++
  • REKLAMA
  • #9 10759259
    sedr
    Poziom 17  
    Posty: 186
    Pomógł: 19
    Ocena: 3
    blue_17 napisał:
    sedr napisał:
    maly_elektronik napisał:
    Chciałbym rozpocząć naukę pod kątem androida. Niestety nie ma zbyt dobrych kompilatorów dla języka C++.


    Przepraszam, ale co to za bzdura? GCC nie jest dobrym kompilatorem?


    Chyba kolego g++


    Chyba jednak nie. GCC to "the GNU Compiler Collection" czyli cały zestaw kompilatorów z frontendami dla C, C++, Obj-C, Javy i innych.

    Ponadto z manuala GCC:
    man gcc napisał:
    gcc - GNU project C and C++ compiler
  • #10 10759311
    maly_elektronik
    Poziom 23  
    Posty: 777
    Pomógł: 35
    Ocena: 5
    Życzę powodzenia w pisaniu aplikacji w C++ na Androida. Sam przez to przechodziłem i jest z tym wiele problemów.

    P.S więcej polskich użytkowników posiada telefon z WM niż iOS
  • #11 10759338
    Tommy82
    Poziom 41  
    Posty: 12141
    Pomógł: 455
    Ocena: 1074
    P.S więcej polskich użytkowników posiada telefon z WM niż iOS

    Tak ale dopiero WP dorównuje androidowi i iOS w możliwościach.
    Co do tych mechanizmów to po prostu "każdy ma jakiegoś bzika każdy jakieś hobby ma".
    Chodzi o to ze pisanie pod androida pociąga za sobą pewne konsekwecje wynikające z jego budowy. Daj my na to obsługa wersji językowych. Można to zrobić "po swojemu" ale można to zrobić po "androidowemu" co jest rozwiązaniem znacznie lepszym.
  • #12 10759342
    sedr
    Poziom 17  
    Posty: 186
    Pomógł: 19
    Ocena: 3
    maly_elektronik napisał:
    Życzę powodzenia w pisaniu aplikacji w C++ na Androida. Sam przez to przechodziłem i jest z tym wiele problemów.


    Pisałem aplikację przy użyciu NDK i nie spotkałem większych problemów.

    maly_elektronik napisał:
    P.S więcej polskich użytkowników posiada telefon z WM niż iOS


    Jeśli myślisz o pisaniu na smartphony w celach zarobkowych to lepiej skupić się na Androidzie/iOS-ie. Więcej ofert pracy niż dla WM.
  • #13 10759364
    Tommy82
    Poziom 41  
    Posty: 12141
    Pomógł: 455
    Ocena: 1074
    Android ma tę przewagę ze ma względnie niskie bariery wejścia to znaczy zassać eclipse.
    Przy ios sprawa się nieco komplikuje bo zabawę w zasadzie trzeba zacząć od zakupu pudełka z jabłkiem na obudowie.
  • #14 10760399
    maly_elektronik
    Poziom 23  
    Posty: 777
    Pomógł: 35
    Ocena: 5
    Przez NDK mam rozumieć Necessitas (alternatywne QT4) :?:
    Jeśli tak to posłużę się przykładem zmiany czasu telefonu :) jest ono niemożliwe bez stosowania wstawek javy (dla androida).
    Jeśli znowu chodzi o MoSync sytuacja wygląda podobnie, no może z tą różnicą że tak w ogóle nie ma takiej możliwości ;)
  • #15 10762088
    beluosus
    Poziom 25  
    Posty: 362
    Pomógł: 123
    Ocena: 18
    maly_elektronik napisał:
    Przez NDK mam rozumieć Necessitas (alternatywne QT4) :?:
    NDK to zbiór narzędzi do pisania natywnych aplikacji dla Androida.
    Necessitas jest portem Qt dla Androida.
    Jedno z drugim nie ma wiele wspólnego.

    Co do pisania w C/C++ na Androida, bardzo ważna informacja:
    Cytat:
    In general, you should only use native code if it is essential to your application, not just because you prefer to program in C/C++.
    http://developer.android.com/sdk/ndk/overview.html#choosing

    PS
    Google nie gryzie.

    PPS
    Programy tak czy siak odpalane są w maszynie wirtualnej (Dalvik).

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono temat wyboru języka programowania do tworzenia aplikacji na Androida. Użytkownik z doświadczeniem w C/C++ zastanawia się nad nauką Javy, która jest głównym językiem dla aplikacji Android. Odpowiedzi wskazują, że Java jest standardowym językiem, ale istnieje możliwość użycia C++ poprzez NDK (Native Development Kit). Wskazano na znaczenie zrozumienia mechanizmów Androida, takich jak usługi, layouty, obsługa multimediów i sensorów. Użytkownicy podkreślają, że Eclipse z pluginem ADT jest dobrym środowiskiem do pracy. Wspomniano również o Dalvik, wirtualnej maszynie Androida, oraz o dostępności materiałów edukacyjnych w sieci.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA