Skocz do zawartości
piotrpo

Jak zacząć programować na androida - temat dla początkujących

    Rekomendowane odpowiedzi

    piotrpo

    Jak zacząć programować pod androida - krótki poradnik.

    Do pisania aplikacji działających w systemie Android potrzeba następujących elementów:

    1. Narzędzi

    2. Wiedzy

    Z narzędziami jest dość prosto - trzeba zainstalować Eclipse z jedną z dostępnych wtyczek.

    Eclipse jest do pobrania tutaj: Eclipse Downloads jak nie wiesz którą wersję wybrać wybierz Classic.

    Należy również pobrać wtyczkę ADT. Opis jak zainstalować narzędzia jest dostępny tutaj: Building Your First App | Android Developers

    Możliwe jest też użycie dowolnego innego IDE pozwalającego na pisanie programów w Java, należy jednak pamiętać, że wiąże się to z trudniejszą konfiguracją, słabszym dostosowaniem do Androida oraz znacznie słabszym wsparciem ze strony społeczności. Jeżeli zaczynasz dopiero pracę z Androidem polecamy wybór Eclipse.

    Z wiedzą jest trochę trudniej - instalacja postępuje wolno, musisz jednak zgromadzić następujące elementy:

    Znajomość angielskiego - przynajmniej podstawy. Uprzedzając pytania - tak jest to niezbędne. Podczas pisania programów nieraz pokłócisz się z kompilatorem, debugerem itd. - dobrze, żeby były to dyskusje na tematy merytoryczne a nie językowe. Całość dokumentacji z której będziesz korzystał, również jest w tym języku.

    Przyzwoita znajomość programowania Java - nie chodzi o wiedzę bardzo wybujałą, jednak na blachę trzeba znać takie zagadnienia jak składnia języka i model obiektowości w Java. Warto też dorzucić do tego znajomość podstawowych klas z JSE. Całość potrzebnej wiedzy jest zawarta w książce "Java2 - Podstawy"

    Znajomość specyfiki tworzenia aplikacji dla systemu Android, w szczególności przynajmniej przeczytanie sobie o tym jakie elementy występują w aplikacjach (wszystkie 4) - to nie jest jakoś strasznie rozległa wiedza, chociaż oczywiście wraz z tworzeniem kolejnych programów, będziesz ją w sobie rozwijał

    Częste pytania:

    Czy mogę pisać dla Androida w języku C++?

    Tak - Możliwość pisania aplikacji w C++ pierwotnie była dodatkiem mającym na celu portowanie już istniejących aplikacji i wymagało "owijania" kodu C++ w Java. Obecnie możliwe jest wykonanie całej aplikacji z użyciem C++. Jeżeli interesuje cię ta możliwość poszukaj w Google hasła "Android NDK"

    Czy mogę pisać dla androida w języku PHP, Action Script, HTML, C#, Delphi, Brainfuck, Lua, Perl (...)?

    Dla niektórych z tych języków istnieją różnego rodzaju narzędzia, pozwalające na ten proceder. Pojawiły się również różnego rodzaju specjalizowane narzędzia (np. do tworzenia gier). Niektóre z nich są wspomniane dalej w tym wątku

    Czy w Android Market można sprzedawać aplikacje?

    Tak, Polacy mogą sprzedawać aplikacje przez Google Play.

    Czy mogę publikować aplikacje w Android Market?

    Tak, możesz - utworzenie konta developera w AM to kilka minut i $25 uciekające z karty. Trzeba mieć kartę płatniczą obsługującą płatności w internecie.

    Czy mogę umieścić reklamę w aplikacji?

    Tak możesz, są 2 sieci reklamowe pozwalające na to - adMob i MobClix. Pierwsza z nich wygląda na bardziej popularną. Rejestracja w obu jest darmowa, wynagrodzenie w obu przypadkach zależy od liczby kliknięć w reklamy wyświetlone przez ciebie. Wartość kliknięcia to od $0.01 do $0.20 i nie masz na to żadnego wpływu. Wypłata w obu przypadkach następuje za pośrednictwem PayPal. Uwaga - pojawiło się znacznie więcej sieci reklamowych, częśc z nich oferuje reklamy inne niż banery.

    Czy polecacie jakieś książki / źródła dotyczące programowania?

    Nauka Java - "Java 2 Podstawy", "Thinking in Java", "Head First: Java"

    Dokumentacja android SDK + wskazówki dla developerów - Android Developers

    Przykładowe projekty instalowane z SDK. ~\android-sdk-windows\samples\...

    Książki dostępne tutaj: CommonsWare(roczna subskrypcja uaktualnień to $40)

    Po polsku ukazała się jedna książka Android 2 Tworzenie aplikacji Książka "Android 2. Tworzenie aplikacji" - Sayed Hashimi, Satya Komatineni, Dave MacLean - 9788324627547 -- Wydawnictwo Helion, księgarnia helion.pl jakoś bardzo jej nie polecamy, ale nic innego w ojczystym języku nie znajdziesz.

    Odpowiedzi na sporo pytań znajdziesz tutaj: Stack Overflow

    Dlaczego nikt nie odpowiada na moje pytanie?

    Prawdopodobnie zadałeś je w sposób tak mało zrozumiały, że nikt go nie kuma - jak chcesz dostać precyzyjną odpowiedź, to precyzyjnie pytaj. Napisz co chcesz zrobić, co i jak zrobiłeś, i co ci się nie podoba w efekcie który uzyskałeś. Pamiętaj też, że na tym forum pisuje zaledwie kilka wróżek i są na ogół zajęte w innych działach, w związku z tym dla własnego dobra umieść od razu wszystko co jest potrzebne - kod, definicję layoutu, logi DDMS.

    Zdarza się też, że problem z którym się zwracasz jest na tyle trywialny, że zdradza twoją kompletną nieznajomość podstaw - posłuchaj rad, które padają i doczytaj / poćwicz to co niezbędne.

    Jak połączyć się z zewnętrzną (zdalną) bazą danych

    W tym wątku jest opisany problem: http://forum.android.com.pl/f43/zdalny-sqlite-51840/

    Jak szybko zainstalować narzędzia?

    Najprościej będzie zainstalować MotoDev Studio - jeden krok mniej.

    1. Pobieramy i instalujemy JDK (nie SDK) ze stron Oracle Java SE Downloads - wybieramy najnowszą wersję

    2. Pobieramy i instalujemy Eclipse - Eclipse - The Eclipse Foundation open source community website.

    2a Pobieramy i instalujemy ADT Installing the Eclipse Plugin | Android Developers

    3. Po instalacji uruchamiamy Eclipse, szukamy w górnym pasku ikony z androidem (górny, lewy róg), za pomocą formularza pobieramy wszystkie dostępne pakiety - to potrwa kilkanaście minut.

    4. Szukamy swojego telefonu z Androidem, kabla USB do niego i sterowników ADB - w części przypadków mogą być te z Google.

    5. W telefonie ustawiamy ustawienia > aplikacje > dla programistów > debugowanie USB i podłączamy do komputera. Od wersji Androida 4.2 opcje programistyczne są ukryte - zanim włączysz wejdź w opcje, informacje o systemie i kliknij kilkanaście razy w numer kompilacji

    6. Instalujemy nowe urządzenie w systemie, używając pobranych wcześniej sterowników.

    Inne narzędzia

    http://forum.android.com.pl/f42/narzae-dzia-wspomagajae-ce-pisanie-aplikacji-58019/

    7ymek podał następujące informacje dla programujących we Flex:

    Adobe Flash Builder Burrito: środowisko oparte na eclipse umożliwiające budowanie aplikacji we Flex'ie/Flashu dla androida. Jeszcze wersja beta ale już bardzo stabilna.

    Adobe Flash Builder "Burrito" | cross platform development - Adobe Labs

    Necessitas: programowanie aplikacji na androida w Qt:) kompletne środowisko programistyczne oparte na QtCreatorze. wersja alfa także bardziej jako ciekawostka

    Bringing Qt applications to Android – a quickstart video

    ===========

    Jeżeli macie jakieś uwagi, przesyłajcie je niżej postaram się uaktualniać ten post możliwie na bieżąco. Może dorobimy się FAQ, pozwalającego na uniknięcie odpowiadania 10 razy na te same pytania.

    Edytowane przez chaosmedia
    powstał nowy, czysty od offtopu temat na podstawie tego po uzgodnieniu z moderatorem globalnym
    • Piwko! 1
    • Lubię to! 16

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Pitr44
    Brainfuck
    a co to za cholerstwo xD fajna nazwa xd

    PS.

    Masz piwo napewno się dla wielu przyda ;):)

    //

    Czyli nie mogę sprzedawać swoich aplikacji w markecie? nawet jak zaplace te 25$ ?? I zarejestruje się jako Developer Np z USA ?? xd

    Edytowane przez Pitr

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    ngcore
    Możliwe jest też użycie dowolnego innego IDE pozwalającego na pisanie programów w Java, jednak nie jest to dobry pomysł.

    Kompletnie się nie zgadzam. Ja się trzymam od Eclipse z daleka, bo po prostu mi nie pasuje - o niebo lepszym IDE jest dla mnie IntelliJ Idea, która od niedawna jest w wersji darmowej dla deweloperów Android.

    Co do innych środowisk deweloperskich - co kto lubi, uparciuch może i w Notepad++ pisać (zwyczajny notatnik odpada ze względu na brak kolorowania składni), taskiem antowym kompilować i wrzucać na emulator, a logi oglądać z pomocą DDMS-a.

    Dlatego proponuję sprostowanie tekstu w postaci - zalecanym dla początkującego środowiskiem deweloperskim jest Eclipse, jednak można używać dowolnego przeznaczonego dla Java :)

    Udostępnij tę odpowiedź


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

    AM uzupełniłem.

    Brainfuck to język z gatunku "ezoterycznych" - odwzorowuje działania maszyny Touringa i nic, kompletnie nic więcej. Jest to najprostszy (składający się z oidp 8 komend język programowania, w którym da się (teoretycznie) napisać wszystko.

    Zredagowałem wpis o IDE - mam nadzieję, że teraz jest bardziej poprawny politycznie.

    BTW. Ja również nie lubię Eclipse, uważam jednak, że przynajmniej na początku pracy z androidem jest to jedyny sensowny wybór, Chociaż przyznam się, że nie wiem jak wygląda sprawa wsparcia dla androida z poziomu InteliJ.

    Edytowane przez piotrpo

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Czyli nie mogę sprzedawać swoich aplikacji w markecie? nawet jak zaplace te 25$ ?? I zarejestruje się jako Developer Np z USA ?? xd

    Z tego co kojarzę inne tematy na forum i wypowiedzi w sieci, to jeśli chciałbyś wykonać taką sztuckę to musiałbyć posiadać odpowiednik polskiego NIP'u w Ameryce i rozliczać się z ichnim fiskusem chyba...

    Chyba najobszerniejszy temat na forum pod tym kątem : http://forum.android.com.pl/f42/czy-coa-siae-zmienia-o-42729/

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    ngcore
    nie wiem jak wygląda sprawa wsparcia dla androida z poziomu InteliJ

    Wszystko super działa, kompilacja i deploy na urządzeniu lub emulatorze jednym kliknięciem. Brak jedynie edytora GUI, ale jak się już płynnie posługuje layoutami w XML to nie ma problemu.

    Polecam bardzo to środowisko, korzystam z niego nie tylko w przypadku Androida, ale też do aplikacji webowych (J2EE etc.)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    gzajac
    Rozwiązanie : DroidDraw

    W porównaniu do najnowszych narzędzi ADT do Eclipse'a, DroidDraw wypada gorzej niż beznadziejnie.

    BTW, ciekawe czy doczekamy kiedyś takiego wygodnego i potężnego tool'a do HMI Androida, jak Interface Builder na iOS'a.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Co do innych środowisk deweloperskich - co kto lubi, uparciuch może i w Notepad++ pisać (zwyczajny notatnik odpada ze względu na brak kolorowania składni), taskiem antowym kompilować i wrzucać na emulator, a logi oglądać z pomocą DDMS-a.

    Pamiętajmy, że temat jest adresowany w dużej mierze do osób nie mających dużego doświadczenia w programowaniu, bądź też programujących trochę, ale nie na Androida - dlatego imo wskazanie przez piotrapo Eclipse'a jako narzędzia podstawowego jest jak najbardziej trafione. Bo owszem, tak jak piszesz, można wszystko zrobić nawet z poziomu konsoli, tylko, że to osoby niedoświadczone raczej zniechęci :). Oczywiście wskazać alternatywne narzędzia też nie zaszkodzi - zebranie wspólnej wiedzy może ułatwić pracę/pozwolić odkryć coś ciekawego również tym, którzy parają się programowaniem w większym stopniu. Np. o InetlliJ nie wiedziałem, a chociaż Eclipse'a cenię, to dostrzegam również jego wady i chętnie sprawdzę alternatywę :).

    Czy mogę pisać dla Androida w jeżyku C++?

    Ja bym tutaj jeszcze dodał, że generalnie pisanie w języku C++ opłaca się tylko, jeżeli piszemy kod intensywny obliczeniowo (w ramach pytań nie tylko 'czy można', ale i 'czy warto') - inaczej C++ to overkill, bo jedynie komplikuje projekt i nie daje żadnych korzyści wydajnościowych, a wręcz ze względu na narzut wywołań funkcji przez JNI może spowodować spadek wydajności. Dodatkowo od Androida 2.3 (NDK5) istnieje możliwość napisania większości aplikacji w kodzie natywnym (NativeActivity + np. natywny dostęp do OpenGL), ale opłaca się to tylko w przypadku skomplikowanych gier i jeżeli piszący naprawdę wie co robi :). Jednak w dalszym ciągu kod w C++ jest wywoływany z poziomu Javy i działa pod 'opieką' DVM - pisanie aplikacji czysto natywnych nie jest możliwe.

    Udostępnij tę odpowiedź


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

    Dodane - chociaż MSZ nie ma co za dużo pisać akurat na ten temat, bo zaraz się zaczną wnikania, rozszerzenia itd. C++ w Androidzie nie jest zabawką dla noobów :D

    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